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:
@@ -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,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:
|
||||
|
||||
@@ -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,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:
|
||||
|
||||
@@ -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,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:
|
||||
|
||||
@@ -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,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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,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,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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,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:
|
||||
|
||||
@@ -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
-1
@@ -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,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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,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:
|
||||
|
||||
@@ -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,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
@@ -1,4 +1,4 @@
|
||||
import type { Context } from 'cordis'
|
||||
import type { Context } from '@deepseek-ai/cordis'
|
||||
import {
|
||||
CallId,
|
||||
LlmAdapter,
|
||||
|
||||
+1
-1
@@ -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,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,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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
-1
@@ -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
-1
@@ -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'
|
||||
|
||||
|
||||
@@ -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:*",
|
||||
|
||||
Reference in New Issue
Block a user