Merge remote-tracking branch 'origin/master' into fix/continuable-subagent-policy-inheritance

# Conflicts:
#	packages/subagent/subagent-inprocess/package.json
#	packages/subagent/subagent/package.json
#	pnpm-lock.yaml
This commit is contained in:
Hypatia May
2026-08-10 22:24:56 +08:00
1415 changed files with 4455 additions and 3324 deletions
@@ -1,6 +1,6 @@
# Replay counterpart to advanced.cordis.yml; only the live model is replaced.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -1,7 +1,7 @@
# Add Code Mode and Cordis tools to the base spawn/workflow stack, exercising
# all four boundaries in one ACP snapshot.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@
# swap. Include patches cannot target entries behind a nested include, so this file
# applies both overlays directly to `cordis.yml`.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -3,7 +3,7 @@
# this overlay for snapshot recording and the sibling overlay for replay. A config
# patch replaces the whole app config, so unchanged base fields are restated below.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@
# seam, model-facing tool, and tripwire provider while replacing DeepSeek with
# per-session replay.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -1,7 +1,7 @@
# Snapshot-only human-interaction composition. The provider is a tripwire: the
# runtime-owned child must be rejected by the seam before any UI wait begins.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,7 +1,7 @@
# Keyless replay counterpart of code-mode-workspace-context.cordis.yml. It adds
# Code Mode to the default filesystem suite and swaps in replay.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,7 +1,7 @@
# Code Mode workspace-context snapshot recording overlay. The default filesystem
# tools trigger nested instruction discovery after a read.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@
# swap. Include patches cannot target entries behind a nested include, so this file
# applies both overlays directly to `cordis.yml`.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -4,7 +4,7 @@
# replay overlay for `DSH_SNAPSHOT=replay`. A config patch replaces the whole app
# config, so unchanged base fields are restated below.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -1,7 +1,7 @@
# Add the self-referential Cordis tools without changing the base ACP tool
# presentation mode.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -9,7 +9,7 @@
# `DSH_SNAPSHOT_OVERRIDE` from the harness. The one-shot patch applies at include
# load time, and stdout remains reserved for ACP JSON-RPC.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,7 +1,7 @@
# Keyless counterpart to depth-two.cordis.yml: apply the depth patch and replace
# the live adapter with per-session replay.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -1,7 +1,7 @@
# Depth-limit snapshot overlay: keep the default composition and allow two
# generations of spawn children before runtime enforcement rejects another.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -5,7 +5,7 @@
# `deepseek-v4-pro`, but the recorded corpus was captured on flash, and a config
# patch replaces the whole app config, so the base fields are restated verbatim.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -2,7 +2,7 @@
# the base cordis.yml, so this overlay adds only the local tool-result spill
# storage those scenarios exercise.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,7 +1,7 @@
# Keyless runner-classification composition: replay authored model turns and
# replace the shipping provider with a deterministic process-launch stand-in.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,7 +1,7 @@
# Live counterpart for the runner-classification snapshot overlay. It replaces
# only the sandbox provider; authored scenarios are skipped in record mode.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -1,6 +1,6 @@
# Keyless replay counterpart to pty.cordis.yml.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -1,7 +1,7 @@
# Opt-in persistent PTY composition for the PTY snapshot scenario. The base
# deployment already owns the shared sandbox provider and policy.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -3,7 +3,7 @@
# 1 ms zero-jitter retry policy as the live sibling. The app patch still
# restates its whole config for raw JSONL persistence and the recorded model.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -6,7 +6,7 @@
# adapter fields around `retryPolicy`, while the app patch re-pins the recorded
# flash model and restates its base fields.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,7 +1,7 @@
# Keyless counterpart to session-query.cordis.yml: the nested snapshot overlay
# supplies replay plus deterministic private spill storage and its byte limit.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./fs.cordis.snapshot.yml
patches:
+1 -1
View File
@@ -1,7 +1,7 @@
# Explicit session-query tool opt-in for the dedicated spill scenario. The
# nested filesystem overlay supplies private spill storage and its byte limit.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./fs.cordis.yml
patches:
@@ -3,7 +3,7 @@
# and the deliberately distinct sandbox fallback are applied together to the
# live tree.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -3,7 +3,7 @@
# /tmp. A workspace-write mutation can therefore succeed only when the calling
# session's cwd replaces the process-level fallback root.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@
# the auxiliary route consumes replay.override.json with pacing so its accepted
# title commits only after the main turn has closed.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -2,7 +2,7 @@
# the ordinary DeepSeek route while the ACP app and every other capability stay
# identical to the base example.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@
# the live adapter with replay and switch the root session to read-only at
# creation.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@
# creation (the UI Access switch equivalent), so a continuable background
# child must inherit that override instead of the deployment default.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,7 +1,7 @@
# Keyless counterpart to subagent-durability-failure.cordis.yml: replace the
# live adapter with replay and fail the provider-owned final child checkpoint.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,7 +1,7 @@
# Snapshot-only durability-failure overlay. The child turn's ordinary flush
# succeeds; the provider-owned final confirmation fails deterministically.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import '@deepseek-ai/dsh-user-interaction'
/** Snapshot-only provider whose invocation means the child guard failed. */
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { setSandboxMode } from '@deepseek-ai/dsh-sandbox-policy'
import type {} from '@deepseek-ai/dsh-agent'
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { SessionId } from '@deepseek-ai/dsh-session'
export const name = 'subagent-durability-failure'
@@ -1,6 +1,6 @@
import { writeFileSync } from 'node:fs'
import { join } from 'node:path'
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type {} from '@deepseek-ai/dsh-subagent'
export const name = 'subagent-settlement-marker'
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type { GenerateOptions, StreamChunk } from '@deepseek-ai/dsh-llm'
import { CallId, LlmAdapter } from '@deepseek-ai/dsh-llm'
@@ -1,6 +1,6 @@
/** Parent adapter that fails if the composition-only Loader test starts a turn. */
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type { GenerateOptions, StreamChunk } from '@deepseek-ai/dsh-llm'
import { LlmAdapter } from '@deepseek-ai/dsh-llm'
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type {} from '@deepseek-ai/dsh-agent'
import { CompactionId, compactCheckpointSource } from '@deepseek-ai/dsh-compact'
import { createUserMessage } from '@deepseek-ai/dsh-llm'
@@ -3,7 +3,7 @@
# entries behind a nested include; the acp-agent restatement keeps the recorded
# deepseek-v4-flash model and raw JSONL persistence for the harness's harvest.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ../cordis.yml
patches:
@@ -5,7 +5,7 @@
# verbatim, and the acp-agent restatement re-pins `deepseek-v4-flash` to match
# the recorded corpus and its pinned request headers.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ../cordis.yml
patches:
@@ -1,6 +1,6 @@
# Keyless replay keeps the LSP composition intact and replaces only the model adapter.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ../cordis.yml
patches:
+1 -1
View File
@@ -1,7 +1,7 @@
# Exercise the model-facing LSP tool through the shipped ACP app and Loader entry path.
# The scenario workspace supplies the deterministic stdio server used by this test composition.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ../cordis.yml
patches:
+1 -1
View File
@@ -2,7 +2,7 @@
# fixture server stay real (the tool call re-executes the actual HTTP fetch and
# markdown rendering); only the model adapter is replaced by replay.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -4,7 +4,7 @@
# fixture server the scenario prompt fetches — deterministic content, no
# external network, in recording and replay alike.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@
# compose across includes, so this applies the scenario config and model swap
# directly to the live tree.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@
# discovery inside the scenario's temporary cwd. The app config patch replaces
# the whole base config, so the base fields are restated verbatim.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -8,7 +8,7 @@
# disables the key-requiring DeepSeek adapter and inserts `llm-replay` to serve
# recorded JSONL without a key or network.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -1,6 +1,6 @@
# Add Code Mode and Cordis tools to the headless spawn/workflow stack.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,6 +1,6 @@
# Keyless context-overflow composition for the assembled compaction snapshot.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -3,7 +3,7 @@
# the deepseek-official route still registers — so the prompt fails with the actionable
# MISSING_CREDENTIAL guidance this snapshot pins as first-run UX.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -8,7 +8,7 @@
# falls back to /home/user/workspace while Bash and PTY keep targeting the
# host path, so every tool call fails with a remote spawn error.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./advanced.cordis.yml
patches:
@@ -2,7 +2,7 @@
# a config patch cannot target an entry behind a nested include, then restates
# the goal overlay while replacing the live model with keyless replay.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
+1 -1
View File
@@ -1,6 +1,6 @@
# Add the persisted goal domain and its model-facing tools to the real one-shot app.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,6 +1,6 @@
# Keyless opt-in PTY composition for the headless stream-json snapshot.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,6 +1,6 @@
# Replay counterpart to cordis.yml for the shipped Ralph-loop snapshot.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -1,6 +1,6 @@
# Keyless provider-retry composition for the headless stream-json snapshot.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -2,7 +2,7 @@ import { mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, describe, expect, it, vi } from 'vitest'
import { Context } from 'cordis'
import { Context } from '@deepseek-ai/cordis'
import LlmService, { createUserMessage, CallId, HarnessError } from '@deepseek-ai/dsh-llm'
import SessionStore, { SessionId } from '@deepseek-ai/dsh-session'
import type { SessionEvent } from '@deepseek-ai/dsh-session'
@@ -4,7 +4,7 @@ import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, describe, expect, it } from 'vitest'
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { codingHarness, finalText, SYSTEM_PROMPT, waitForIdle } from './harness.ts'
import { SessionId } from '@deepseek-ai/dsh-session'
@@ -3,7 +3,7 @@ import { mkdtemp, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, describe, expect, it } from 'vitest'
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { codingHarness, finalText, SYSTEM_PROMPT, waitForIdle } from './harness.ts'
import { SessionId } from '@deepseek-ai/dsh-session'
+1 -1
View File
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import {
CallId,
LlmAdapter,
+1 -1
View File
@@ -2,7 +2,7 @@
name: './cli-mock-llm.ts'
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ../../cordis.yml
patches:
@@ -1,5 +1,5 @@
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ../../cordis.yml
patches:
@@ -1,6 +1,6 @@
/** Test-only Loader plugin that creates a goal at the first real step edge. */
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type {} from '@deepseek-ai/dsh-goal'
export const name = 'seed-goal'
+1 -1
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env node
/** Snapshot-only Loader driver: stream one fixture turn as canonical JSONL. */
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { boot, installFailLoud, loadEnv, resolveConfigPath } from '@deepseek-ai/dsh-app-boot'
import { runFixtureTurn } from '@deepseek-ai/dsh-loader-smoke'
import type { SessionEvent } from '@deepseek-ai/dsh-session'
@@ -46,7 +46,7 @@ export const inject = ['llm']
/**
* Register the deterministic provider adapter.
* @param {import('cordis').Context} ctx - plugin context carrying the LLM service.
* @param {import('@deepseek-ai/cordis').Context} ctx - plugin context carrying the LLM service.
*/
export function apply(ctx) {
ctx.llm.registerAdapter(['deepseek-official'], new RetrySnapshotAdapter())
@@ -3,7 +3,7 @@
* @module semantic-checkpoint-agent
*/
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type { SessionId } from '@deepseek-ai/dsh-session'
/** Fixture plugin name. */
@@ -4,7 +4,7 @@
* @module subagent-diagnostic-agent
*/
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type { SessionId } from '@deepseek-ai/dsh-session'
/** Fixture plugin name. */
@@ -3,7 +3,7 @@
* @module subagent-inheritance-agent
*/
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type { SessionId } from '@deepseek-ai/dsh-session'
/** Fixture plugin name. */
@@ -3,7 +3,7 @@
# The redact-rule entry models a deployment mounting its own scrub rule on the
# telemetry/record waterfall — the seam itself ships no rules.
- id: logger-console
name: '@cordisjs/plugin-logger-console'
name: '@deepseek-ai/cordis-plugin-logger-console'
config:
colors: false
levels:
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
/**
* Deployment-style redaction rule for the telemetry e2e: scrubs the fixture
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { LlmAdapter, type StreamChunk } from '@deepseek-ai/dsh-llm'
/** Deterministic one-step adapter for the time-context Loader fixture. */
@@ -3,7 +3,7 @@
* @module workspace-context-resume-agent
*/
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type { SessionId } from '@deepseek-ai/dsh-session'
/** Fixture plugin name. */
@@ -3,7 +3,7 @@ import { mkdtemp, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, describe, expect, it } from 'vitest'
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { codingHarness, finalText, SYSTEM_PROMPT, waitForIdle } from './harness.ts'
import { SessionId } from '@deepseek-ai/dsh-session'
+1 -1
View File
@@ -1,4 +1,4 @@
import { Context } from 'cordis'
import { Context } from '@deepseek-ai/cordis'
import type { SessionEvent } from '@deepseek-ai/dsh-session'
import type { Agent } from '@deepseek-ai/dsh-agent'
import AgentLoop from '@deepseek-ai/dsh-agent-loop'
+1 -1
View File
@@ -3,7 +3,7 @@ import { mkdtemp, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, describe, expect, it } from 'vitest'
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { SessionId } from '@deepseek-ai/dsh-session'
import { codingHarness, finalText, SYSTEM_PROMPT, waitForIdle } from './harness.ts'
@@ -1,7 +1,7 @@
import { readFile, writeFile } from 'node:fs/promises'
import { dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { Context } from 'cordis'
import { Context } from '@deepseek-ai/cordis'
import { normalizeSessionLog, scrubRequestHeaders, type NormalizeContext } from '@deepseek-ai/dsh-acp-snapshot'
import { LOADER_SMOKE_TEST_TIMEOUT_MS, runLoaderSmoke } from '@deepseek-ai/dsh-loader-smoke'
import { createUserMessage, CallId , createMessage } from '@deepseek-ai/dsh-llm'
@@ -7,7 +7,7 @@
import { readFile, readdir, writeFile } from 'node:fs/promises'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { Context } from 'cordis'
import { Context } from '@deepseek-ai/cordis'
import { normalizeSessionLog, scrubRequestHeaders, type NormalizeContext } from '@deepseek-ai/dsh-acp-snapshot'
import { LOADER_SMOKE_TEST_TIMEOUT_MS, runLoaderSmoke } from '@deepseek-ai/dsh-loader-smoke'
import { createUserMessage } from '@deepseek-ai/dsh-llm'
@@ -6,7 +6,7 @@
import { readFile, readdir, writeFile } from 'node:fs/promises'
import { join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { Context } from 'cordis'
import { Context } from '@deepseek-ai/cordis'
import { normalizeSessionLog, scrubRequestHeaders, type NormalizeContext } from '@deepseek-ai/dsh-acp-snapshot'
import { LOADER_SMOKE_TEST_TIMEOUT_MS, runLoaderSmoke } from '@deepseek-ai/dsh-loader-smoke'
import { createUserMessage } from '@deepseek-ai/dsh-llm'
@@ -3,7 +3,7 @@ import { mkdtemp, rm } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, describe, expect, it } from 'vitest'
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import { codingHarness, TODO_SYSTEM_PROMPT, waitForIdle } from './harness.ts'
import { SessionId } from '@deepseek-ai/dsh-session'
@@ -7,7 +7,7 @@ import { createHash } from 'node:crypto'
import { mkdir, readFile, readdir, writeFile } from 'node:fs/promises'
import { dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { Context } from 'cordis'
import { Context } from '@deepseek-ai/cordis'
import { normalizeSessionLog, scrubRequestHeaders, type NormalizeContext } from '@deepseek-ai/dsh-acp-snapshot'
import { LOADER_SMOKE_TEST_TIMEOUT_MS, runLoaderSmoke } from '@deepseek-ai/dsh-loader-smoke'
import { createUserMessage } from '@deepseek-ai/dsh-llm'
+1 -1
View File
@@ -8,7 +8,7 @@
# `llm-replay` reads `DSH_SNAPSHOT_FILE` / `DSH_SNAPSHOT_CHILD_FILES` from the
# harness. Stdout remains reserved for JSON-RPC frames.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./cordis.yml
patches:
@@ -4,7 +4,7 @@
# unowned route makes the SDK server mount the real adapter, which then demands
# a key this keyless lane has no way to supply.
- id: base
name: '@cordisjs/plugin-include'
name: '@deepseek-ai/cordis-plugin-include'
config:
path: ./persistent-tools.cordis.yml
patches:
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type { GenerateOptions, StreamChunk } from '@deepseek-ai/dsh-llm'
import { LlmAdapter } from '@deepseek-ai/dsh-llm'
@@ -1,4 +1,4 @@
import type { Context } from 'cordis'
import type { Context } from '@deepseek-ai/cordis'
import type { GenerateOptions, StreamChunk } from '@deepseek-ai/dsh-llm'
import { CallId, LlmAdapter } from '@deepseek-ai/dsh-llm'
+4 -4
View File
@@ -5,10 +5,10 @@
"type": "module",
"description": "Workspace umbrella for runnable demos and example-owned test compositions: declares their cordis.yml packages so plain Node resolves real exports→lib. Not a build target.",
"dependencies": {
"@cordisjs/plugin-hmr": "workspace:*",
"@cordisjs/plugin-include": "workspace:*",
"@cordisjs/plugin-logger-console": "workspace:*",
"@cordisjs/plugin-timer": "workspace:*",
"@deepseek-ai/cordis-plugin-hmr": "workspace:*",
"@deepseek-ai/cordis-plugin-include": "workspace:*",
"@deepseek-ai/cordis-plugin-logger-console": "workspace:*",
"@deepseek-ai/cordis-plugin-timer": "workspace:*",
"@deepseek-ai/dsh-acp-demo": "workspace:*",
"@deepseek-ai/dsh-agent": "workspace:*",
"@deepseek-ai/dsh-agent-loop": "workspace:*",