Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input

# Conflicts:
#	apps/cli/README.md
#	apps/cli/src/web.ts
#	apps/web/tests/smoke-fixture.e2e.ts
#	docs/architecture.i18n.yaml
#	docs/module-graph.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
#	packages/client/connection/src/client/api.ts
#	packages/client/connection/src/client/fixture.ts
#	packages/client/runtime/README.md
#	packages/client/runtime/src/client/index.ts
#	packages/client/runtime/src/client/sessions/conversation.ts
#	packages/client/runtime/src/client/sessions/service.ts
#	packages/client/runtime/src/client/sessions/session.ts
#	packages/client/ui-conversation/src/client/apply.ts
#	packages/client/ui-conversation/src/client/contract/slots.ts
#	packages/client/ui-conversation/src/client/index.ts
#	packages/client/ui-conversation/src/client/service.ts
#	packages/client/ui-conversation/src/client/skeleton/ConversationRoot.tsx
#	packages/client/ui-conversation/src/client/skeleton/EmptyState.tsx
#	packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
#	packages/client/ui-conversation/src/client/stores.ts
#	packages/client/ui-conversation/tests/apply-inject.spec.tsx
#	packages/client/ui-conversation/tests/service-orchestration.spec.ts
#	packages/client/ui-conversation/tests/skeleton-branches.spec.tsx
#	packages/client/ui-conversation/tests/skeleton.spec.tsx
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/host/apiproxy/package.json
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/host/apiproxy/src/api/sessions.schema.ts
#	packages/host/runtime/package.json
#	packages/host/runtime/src/boot.ts
#	packages/host/runtime/tests/host-runtime.spec.ts
#	packages/host/runtime/tsconfig.json
#	packages/host/webserver/README.md
#	packages/host/webserver/src/index.ts
#	packages/host/webserver/tests/webserver.spec.ts
#	packages/llm/llm-pi-ai/tests/convert.spec.ts
#	packages/ui/acp/src/codec.ts
#	packages/ui/acp/tests/codec.spec.ts
#	pnpm-lock.yaml
This commit is contained in:
Yichen Jiang
2026-07-25 22:35:22 +08:00
1264 changed files with 37694 additions and 29428 deletions

View File

@@ -0,0 +1,36 @@
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterEach, describe, expect, it } from 'vitest'
import { cordisConfigFiles } from './cordis-config-files.ts'
const roots: string[] = []
afterEach(() => {
for (const root of roots.splice(0)) rmSync(root, { recursive: true, force: true })
})
describe('cordisConfigFiles', () => {
it('finds Loader YAML without treating translation records as configs', () => {
const root = mkdtempSync(join(tmpdir(), 'dsh-cordis-config-files-'))
roots.push(root)
for (const directory of ['.claude', 'docs', 'examples', 'node_modules/pkg', 'vendor/pkg']) {
mkdirSync(join(root, directory), { recursive: true })
}
for (const file of [
'.claude/hidden.cordis.yml',
'docs/cordis-primer.i18n.yaml',
'examples/agent.cordis.yaml',
'examples/headless.cordis.yml',
'node_modules/pkg/hidden.cordis.yml',
'vendor/pkg/hidden.cordis.yml',
]) {
writeFileSync(join(root, file), '[]\n')
}
expect(cordisConfigFiles(root)).toEqual([
join('examples', 'agent.cordis.yaml'),
join('examples', 'headless.cordis.yml'),
])
})
})

View File

@@ -0,0 +1,18 @@
/** Cordis Loader configuration file discovery. */
import { globSync } from 'node:fs'
/**
* Return repository-relative Cordis Loader YAML paths under `root`.
*
* Translation consistency records are YAML sidecars, never Loader inputs.
*
* @param root Repository root to scan.
* @returns Sorted repository-relative Loader configuration paths.
*/
export function cordisConfigFiles(root: string): string[] {
return globSync(['**/*cordis*.yml', '**/*cordis*.yaml'], {
cwd: root,
exclude: ['.claude/**', 'node_modules/**', 'vendor/**', '**/*.i18n.yaml'],
}).sort()
}

View File

@@ -7,5 +7,5 @@
"docs/testing.md": 1020,
"examples/AGENTS.md": 310,
"packages/AGENTS.md": 660,
"packages/README.md": 760
"packages/README.md": 790
}

View File

@@ -210,8 +210,17 @@ const TYPE_LINK_EXEMPTIONS: Readonly<Record<string, string>> = {
BashEnvVariableInfo: 'service-local metadata type is owned by packages/bash/tool-bash/src/index.ts',
CompactAgentContext: 'compaction service input is owned by packages/compact/compact/src/index.ts',
CreateAgentOptions: 'agent creation contract is owned by packages/core/agent/README.md',
Domain: 'domain interface is owned by packages/storage/storage-domain/README.md',
DomainChanged: 'event-local snapshot is owned by packages/storage/storage-domain/src/events.ts',
DomainFacility: 'domain form facility is owned by packages/storage/storage-domain/README.md',
DomainImpl: 'domain implementation contract is owned by packages/storage/storage-domain/README.md',
DomainSpec: 'domain declaration contract is owned by packages/storage/storage-domain/README.md',
StorageBackend: 'backend contract is owned by packages/storage/storage/src/backend.ts',
StorageForms: 'merge-extensible form map is owned by packages/storage/storage/src/index.ts',
InvariantInstaller: 'service-local contribution contract is owned by packages/support/invariants/README.md',
LocaleDict: 'service-local dictionary shape is owned by packages/client/i18n/src/index.ts',
WebBootGraph: 'web boot graph wire shape is owned by packages/client/modules/src/client/index.ts',
WebRoute: 'route registration contract is owned by packages/host/webserver/src/index.ts',
ThemeTokens: 'service-local token dictionary is owned by packages/client/ui-theme/src/index.ts',
Translate: 'service-local bound translator is owned by packages/client/i18n/src/index.ts',
TuiOverlayRequest: 'service-local extension contract is owned by packages/ui/tui/README.md',
@@ -227,6 +236,8 @@ const TYPE_LINK_EXEMPTIONS: Readonly<Record<string, string>> = {
WorkflowAgentEndInfo: 'event-local snapshot is owned by packages/workflow/workflow/src/index.ts',
WorkflowAgentInfo: 'event-local snapshot is owned by packages/workflow/workflow/src/index.ts',
WorkflowResultInfo: 'event-local snapshot is owned by packages/workflow/workflow/src/index.ts',
Workspace: 'workspace entity contract is owned by packages/workspace/workspace/README.md',
WorkspaceId: 'branded id is owned by packages/workspace/workspace/README.md',
}
/** Collect named references from parameter, generic-constraint/default, and return types. */

View File

@@ -78,7 +78,10 @@ const GROUP_ORDER = [
'session-persistence',
'session-query',
'session-title',
'storage',
'workspace',
'support',
'acp',
'ui',
]
@@ -139,9 +142,34 @@ const SERVICE_ROLES: ServiceRole[] = [
title: 'Durable session persistence seam',
mode: 'seam',
implementations: ['session-persistence-jsonl', 'session-persistence-sqlite'],
consumers: ['agent-loop', 'tool-bash', 'hooks-claude', 'hooks-codex', 'acp', 'session-query', 'session-query-sqlite'],
consumers: ['agent-loop', 'tool-bash', 'hooks-claude', 'hooks-codex', 'session-query', 'session-query-sqlite'],
note: 'Backends persist the same SessionEvent vocabulary; apps choose a backend at composition time.',
},
{
key: 'storage',
pkg: 'storage',
title: 'Non-session storage hub',
mode: 'seam',
implementations: ['storage-json', 'storage-sqlite'],
consumers: ['storage-domain'],
note: 'Backends register side by side under names; data forms (domain first) mount on the hub and translate typed operations into opaque KV-unit primitives.',
},
{
key: 'storageDomain',
pkg: 'storage-domain',
title: 'Domain data facility',
mode: 'core',
consumers: ['workspace'],
note: 'Waits for every configured backend, then publishes the domain form as one lifecycle-bound service for typed durable state.',
},
{
key: 'workspace',
pkg: 'workspace',
title: 'Workspace entity registry',
mode: 'core',
consumers: ['apiproxy'],
note: 'Owns WorkspaceId-branded records over the domain facility; stable sessionIds accounts drive Host RPC and GUI projections.',
},
{
key: 'sessionQuery',
pkg: 'session-query',
@@ -156,7 +184,7 @@ const SERVICE_ROLES: ServiceRole[] = [
pkg: 'session-reference',
title: 'Cross-session snapshot preparation',
mode: 'core',
consumers: ['tui', 'acp'],
consumers: ['tui'],
note: 'Projects bounded current-surface conversation snapshots into durable untrusted message context; host adapters own mention syntax.',
},
{
@@ -180,7 +208,7 @@ const SERVICE_ROLES: ServiceRole[] = [
pkg: 'tools',
title: 'Tool registry and guarded execution pipeline',
mode: 'core',
consumers: ['agent-loop', 'tool-ask-user', 'tool-bash', 'tool-cordis', 'tool-fs', 'tool-pty', 'tool-skill', 'tool-subagent', 'tool-todo', 'tool-web', 'acp'],
consumers: ['agent-loop', 'tool-ask-user', 'tool-bash', 'tool-cordis', 'tool-fs', 'tool-pty', 'tool-skill', 'tool-subagent', 'tool-todo', 'tool-web'],
note: 'Registers capabilities, owns Code Mode transport, and routes calls through pre-policy, monotonic guards, around dispatch, post-policy, and final-result observation.',
},
{
@@ -188,8 +216,8 @@ const SERVICE_ROLES: ServiceRole[] = [
pkg: 'user-interaction',
title: 'Human question/answer seam',
mode: 'seam',
implementations: ['tui', 'acp'],
consumers: ['tool-ask-user', 'tui', 'acp'],
implementations: ['tui'],
consumers: ['tool-ask-user', 'tui'],
note: 'UI front doors provide the active human-answer provider; tool-ask-user pauses a tool call on the provider-neutral ask() promise.',
},
{
@@ -197,7 +225,6 @@ const SERVICE_ROLES: ServiceRole[] = [
pkg: 'plan-mode',
title: 'Plan collaboration state',
mode: 'core',
consumers: ['acp'],
note: 'Folds logged plan/mode state, flushes user selections at turn boundaries, renders deployment-owned guidance, registers /plan, and keeps the plan-exit schema stable across transitions.',
},
{
@@ -205,8 +232,8 @@ const SERVICE_ROLES: ServiceRole[] = [
pkg: 'commands',
title: 'Human command registry',
mode: 'core',
consumers: ['tui', 'acp'],
note: 'Plugins register direct human commands; TUI and ACP consume the same effective per-agent catalog without sending invocations to the model.',
consumers: ['tui'],
note: 'Plugins register direct human commands; TUI consumes the effective per-agent catalog without sending invocations to the model.',
},
{
key: 'tui',
@@ -305,7 +332,6 @@ const SERVICE_ROLES: ServiceRole[] = [
title: 'Permission presets',
mode: 'core',
implementations: [],
consumers: ['acp'],
note: 'User-facing preset table (`workspace-write`/`danger-full-access`) bundling the sandbox-mode and approval-policy knobs; a switch writes one `permission/preset` event through to both knob events.',
},
{
@@ -371,6 +397,22 @@ const SERVICE_ROLES: ServiceRole[] = [
consumers: ['spill-policy'],
note: 'The backend saves oversized tool text and returns a model-facing locator plus retrieval hint; spill-policy is the tools/post-execute consumer that decides when to spill.',
},
{
key: 'httpServer',
pkg: 'webserver',
title: 'HTTP route registration',
mode: 'core',
consumers: ['connection', 'modules', 'hmr'],
note: 'Plain node:http carrier: named-route registry, index transform taps, and the static dist fallback; web-transport plugins register their own routes.',
},
{
key: 'clientModuleHost',
pkg: 'modules',
title: 'Client plugin graph host',
mode: 'core',
consumers: ['hmr'],
note: 'Composes the __DSH_BOOT__ entry graph from an incremental dshClient scan, serves plugin bundles, and notifies rebuilt/graph-changed subscribers.',
},
{
key: 'workflows',
pkg: 'workflow',
@@ -541,10 +583,10 @@ const APP_EXAMPLES = [
{
id: 'acp',
rel: 'examples/acp-agent/composition.md',
title: 'ACP Agent App Composition',
title: 'ACP Automation App Composition',
label: 'examples/acp-agent',
config: 'examples/acp-agent/cordis.yml',
summary: 'The ACP demo exposes the same agent spine over JSON-RPC stdio, with no stdout logger and no pre-created agent; clients create sessions through the ACP bridge.',
summary: 'The ACP demo exposes fresh baseline-prompt agent sessions to programmatic clients over JSON-RPC stdio, with no stdout logger, human UI, or pre-created agent.',
},
]
@@ -560,7 +602,7 @@ function renderAppExpansion(lines: string[], appNode: string, pluginName: string
} else if (pluginName === '@deepseek-ai/dsh-cli-demo') {
lines.push(` ${appNode} --> ${nodeId('frontdoor', 'cli')}["one-shot driver<br/>format-pure stdout<br/>fresh top-level agent"]`)
} else if (pluginName === '@deepseek-ai/dsh-acp-demo') {
lines.push(` ${appNode} --> ${nodeId('frontdoor', 'acp')}["@deepseek-ai/dsh-acp<br/>JSON-RPC stdio bridge<br/>sessions created by client"]`)
lines.push(` ${appNode} --> ${nodeId('frontdoor', 'acp')}["@deepseek-ai/dsh-acp<br/>automation-only JSON-RPC stdio<br/>fresh sessions created by client"]`)
}
lines.push(
` ${agentCore} --> ${nodeId('spine', 'llm')}["ctx.llm"]`,
@@ -1049,35 +1091,6 @@ function renderToolPipeline(): string {
].join('\n')
}
function renderSnapshotReplay(): string {
const maintenance = 'curated Mermaid sequence based on the snapshot test harness'
return [
...generatedHeader('ACP Snapshot Replay'),
'This graph explains what a snapshot scenario proves: recorded real-model session logs are replayed keylessly, ACP stdout is normalized and diffed, and scenario workspaces preserve tool side effects that the UI stream alone cannot prove.',
'',
'```mermaid',
'sequenceDiagram',
' participant Recorder as Real API recording',
' participant Fixture as snapshot fixture',
' participant Workspace',
' participant Replay as llm-replay adapter',
' participant ACP as acp-agent subprocess',
' participant Expected as stdout expected output',
' Recorder->>Fixture: session.jsonl + workspace inputs',
' Fixture->>Workspace: seed files and hook configs',
' Fixture->>Replay: recorded StreamChunk script',
` Replay->>ACP: deterministic ${mermaidCode('llm/stream')} chunks`,
' ACP->>Workspace: bash, fs, and hook side effects',
' ACP->>Expected: normalized sessionUpdate stream',
' Expected-->>ACP: diff must be empty',
'```',
'',
'The fs and hook snapshot matrix is valuable because it proves world state, hook decisions, and failed tool-card rendering, not just that replay returns text.',
'',
...maintenanceFooter(maintenance),
].join('\n')
}
function renderDocs(): GraphDoc[] {
const pkgs = collectPackageGraph(root, GROUP_ORDER, 'gen-doc-graphs')
const docs: GraphDoc[] = [
@@ -1086,7 +1099,6 @@ function renderDocs(): GraphDoc[] {
{ rel: 'docs/event-producer-consumer.md', content: renderEventRelations(pkgs) },
{ rel: 'docs/agent-lifecycle.md', content: renderLifecycle() },
{ rel: 'docs/tool-execution-pipeline.md', content: renderToolPipeline() },
{ rel: 'packages/ui/acp/snapshot-replay.md', content: renderSnapshotReplay() },
]
docs.unshift({ rel: 'docs/graph-atlas.md', content: renderIndex(docs) })
return docs
@@ -1102,7 +1114,6 @@ function renderIndex(docs: GraphDoc[]): string {
'docs/event-producer-consumer.md': 'event producer/consumer matrix',
'docs/agent-lifecycle.md': 'agent turn and step lifecycle',
'docs/tool-execution-pipeline.md': 'tool execution pipeline',
'packages/ui/acp/snapshot-replay.md': 'ACP snapshot replay',
}
const modes: Record<string, string> = {
'docs/capability-seams.md': 'hybrid generated',
@@ -1113,7 +1124,6 @@ function renderIndex(docs: GraphDoc[]): string {
'docs/event-producer-consumer.md': 'hybrid generated',
'docs/agent-lifecycle.md': 'curated',
'docs/tool-execution-pipeline.md': 'curated',
'packages/ui/acp/snapshot-replay.md': 'curated',
}
const rows = [
'| [module dependency graph](module-graph.md) | `generated` |',

View File

@@ -38,6 +38,7 @@ const GROUP_ORDER = [
'session-query',
'session-title',
'support',
'acp',
'ui',
]

View File

@@ -354,7 +354,7 @@ const TOOL_PACKAGES: ToolPackage[] = [
await ctx.plugin(ToolTodo)
},
note:
'todo_write is session-owned state; UIs render the latest todo/write event as a checklist or ACP plan.',
'todo_write is session-owned state; UIs render the latest todo/write event as a checklist.',
},
{
pkg: '@deepseek-ai/dsh-tool-workflow',

View File

@@ -172,13 +172,13 @@ describe('rewriteMarkdown', () => {
})
describe('docsPages locale routes', () => {
it('publishes every route in both locales and selects paired user sources', () => {
it('publishes every route in both locales and selects paired sources', () => {
const byRoute = new Map(docsPages.map(page => [page.route, page]))
for (const page of docsPages.filter(page => page.locale === 'root')) {
const counterpart = byRoute.get(`en/${page.route}`)
expect(counterpart, page.route).toBeDefined()
expect(counterpart?.locale).toBe('en')
if (page.source.startsWith('docs/user/')) {
if (page.contentLocale === 'zh-CN') {
expect(page.source).toMatch(/\.zh\.md$/)
expect(page.contentLocale).toBe('zh-CN')
expect(counterpart?.source).toBe(page.source.replace(/\.zh\.md$/, '.md'))
@@ -190,6 +190,22 @@ describe('docsPages locale routes', () => {
}
})
it('projects translated core-data pages while retaining explicit English fallbacks', () => {
const rootPages = docsPages.filter(page => (
page.locale === 'root' && page.route.startsWith('reference/core-data-structures/')
))
const translated = rootPages.filter(page => page.contentLocale === 'zh-CN')
const fallbacks = rootPages.filter(page => page.contentLocale === 'en-US')
expect(translated).toHaveLength(18)
expect(translated.every(page => page.source.endsWith('.zh.md'))).toBe(true)
expect(fallbacks.map(page => page.source).sort()).toEqual([
'docs/core-data-structures/commands.md',
'docs/core-data-structures/goal.md',
'docs/core-data-structures/pty.md',
])
})
it('publishes the Cordis core API under matching locale structures', () => {
const files = ['context.md', 'events.md', 'fiber.md', 'registry.md', 'service.md']
for (const file of files) {

File diff suppressed because one or more lines are too long

View File

@@ -1,24 +1,201 @@
{
"requiredSince": "2026-07-14",
"required": [
".agents/notes/README.md",
".agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.md",
".agents/notes/implemented/architecture/2026-06-11-custom-schema-dsl.md",
".agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.md",
".agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.md",
".agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.md",
".agents/notes/implemented/architecture/2026-06-11-runtime-arg-validation.md",
".agents/notes/implemented/architecture/2026-06-11-structured-error-taxonomy.md",
".agents/notes/implemented/architecture/2026-06-11-tool-schemas-in-prompt-assembly.md",
".agents/notes/implemented/architecture/2026-06-13-capability-seams.md",
".agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.md",
".agents/notes/implemented/architecture/2026-06-14-session-persistence.md",
".agents/notes/implemented/architecture/2026-06-15-turn-enclosure-invariant.md",
".agents/notes/implemented/architecture/2026-06-17-filesystem-capability-seam.md",
".agents/notes/implemented/architecture/2026-06-18-agent-lifecycle-and-ownership-seams.md",
".agents/notes/implemented/architecture/2026-06-18-session-surface.md",
".agents/notes/implemented/architecture/2026-06-18-shared-persistence-write-coordinator.md",
".agents/notes/implemented/architecture/2026-06-20-branded-ids.md",
".agents/notes/implemented/architecture/2026-06-20-extract-example-app-packages.md",
".agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md",
".agents/notes/implemented/architecture/2026-06-20-package-hierarchy.md",
".agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.md",
".agents/notes/implemented/architecture/2026-06-24-web-capability-seam.md",
".agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.md",
".agents/notes/implemented/architecture/2026-06-30-bash-stdin-env-trusted-plugin-surface.md",
".agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.md",
".agents/notes/implemented/architecture/2026-07-02-fs-per-session-cwd.md",
".agents/notes/implemented/architecture/2026-07-02-result-time-applied-hunk-diffs.md",
".agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.md",
".agents/notes/implemented/architecture/2026-07-03-filesystem-directory-listing-seam.md",
".agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.md",
".agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.md",
".agents/notes/implemented/architecture/2026-07-05-subagent-provider-lifecycle-events.md",
".agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.md",
".agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.md",
".agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.md",
".agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.md",
".agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.md",
".agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.md",
".agents/notes/implemented/architecture/2026-07-19-gui-layering-and-rpc-protocol.md",
".agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.md",
".agents/notes/implemented/architecture/2026-07-22-slot-type-chain-implementation.md",
".agents/notes/implemented/architecture/2026-07-23-client-plugin-loading-model.md",
".agents/notes/implemented/feature/2026-06-14-acp-agent-client-protocol.md",
".agents/notes/implemented/feature/2026-06-14-acp-multi-session.md",
".agents/notes/implemented/feature/2026-06-15-code-mode.md",
".agents/notes/implemented/feature/2026-06-17-filesystem-tool-schemas.md",
".agents/notes/implemented/feature/2026-06-18-acp-terminal-and-tool-rendering.md",
".agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.md",
".agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.md",
".agents/notes/implemented/feature/2026-06-22-acp-subagent-backend.md",
".agents/notes/implemented/feature/2026-06-25-ask-user-question.md",
".agents/notes/implemented/feature/2026-06-29-todo-write-tool.md",
".agents/notes/implemented/feature/2026-06-30-hook-bridges.md",
".agents/notes/implemented/feature/2026-06-30-hook-protocol-lib.md",
".agents/notes/implemented/feature/2026-06-30-interception-seams.md",
".agents/notes/implemented/feature/2026-06-30-session-store-fork-api.md",
".agents/notes/implemented/feature/2026-06-30-subagent-observe-enrich.md",
".agents/notes/implemented/feature/2026-07-05-dynamic-workflows.md",
".agents/notes/implemented/feature/2026-07-05-skill-system.md",
".agents/notes/implemented/feature/2026-07-06-approval-seam.md",
".agents/notes/implemented/feature/2026-07-06-explicit-tool-order.md",
".agents/notes/implemented/feature/2026-07-06-sandbox.md",
".agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.md",
".agents/notes/implemented/feature/2026-07-07-session-prefix.md",
".agents/notes/implemented/feature/2026-07-08-repeat-tool-guard.md",
".agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.md",
".agents/notes/implemented/feature/2026-07-10-session-query-service.md",
".agents/notes/implemented/feature/2026-07-12-subagent-persona-tool-filter-and-depth.md",
".agents/notes/implemented/process/2026-06-11-doc-sync-enforcement.md",
".agents/notes/implemented/process/2026-06-11-quality-gates.md",
".agents/notes/implemented/process/2026-06-11-tsdown-over-dumble.md",
".agents/notes/implemented/process/2026-06-11-vendor-cordis-as-source.md",
".agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.md",
".agents/notes/implemented/process/2026-06-17-ts-build-config.md",
".agents/notes/implemented/process/2026-06-18-markdown-cross-link-lint.md",
".agents/notes/implemented/process/2026-06-20-agent-note-classification.md",
".agents/notes/implemented/process/2026-06-20-core-data-structures-catalog.md",
".agents/notes/implemented/process/2026-06-20-generated-cordis-catalog.md",
".agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.md",
".agents/notes/implemented/process/2026-07-02-tool-schema-catalog.md",
".agents/notes/implemented/process/2026-07-03-documentation-graph-atlas.md",
".agents/notes/implemented/process/2026-07-04-cordis-jsdoc-completeness-gate.md",
".agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.md",
".agents/notes/implemented/process/2026-07-04-persistence-log-catalog.md",
".agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.md",
".agents/notes/implemented/process/2026-07-06-export-surface-jsdoc-gate.md",
".agents/notes/implemented/process/2026-07-06-generated-config-catalog.md",
".agents/notes/implemented/process/2026-07-06-node-engine-floor.md",
".agents/notes/implemented/process/2026-07-06-parallel-github-ci-gates.md",
".agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.md",
".agents/notes/implemented/process/2026-07-10-readme-known-limitations-gate.md",
".agents/notes/implemented/process/2026-07-12-package-model-experience-contract.md",
".agents/notes/implemented/process/2026-07-19-web-styling-system.md",
".agents/notes/implemented/simplification/2026-06-19-drop-mutable-session-summary.md",
".agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.md",
".agents/notes/implemented/simplification/2026-06-20-drop-unconsumed-llm-adapter-change-event.md",
".agents/notes/implemented/simplification/2026-06-20-drop-unconsumed-llm-assembled-surfaces.md",
".agents/notes/implemented/simplification/2026-06-20-prune-dead-seam-methods.md",
".agents/notes/implemented/simplification/2026-06-20-public-agent-stop-surface.md",
".agents/notes/implemented/simplification/2026-06-20-remove-agent-boundary-mirror-events.md",
".agents/notes/implemented/simplification/2026-06-20-unify-agent-and-session-id.md",
".agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.md",
".agents/notes/implemented/simplification/2026-07-02-remove-stream-chunk-mirror.md",
".agents/notes/implemented/simplification/2026-07-04-drop-image-content-block.md",
".agents/notes/implemented/simplification/2026-07-04-drop-inert-request-knobs.md",
".agents/notes/implemented/simplification/2026-07-04-drop-unconsumed-web-observation-surface.md",
".agents/notes/implemented/simplification/2026-07-04-fold-stdio-ui-helper.md",
".agents/notes/implemented/simplification/2026-07-04-prune-producerless-vocabulary-variants.md",
".agents/notes/implemented/simplification/2026-07-04-prune-write-only-fs-surface.md",
".agents/notes/implemented/simplification/2026-07-04-remove-agent-steering-mirror.md",
".agents/notes/implemented/simplification/2026-07-04-share-app-bin-boot-glue.md",
".agents/notes/implemented/simplification/2026-07-04-tighten-hook-protocol-contract.md",
".agents/notes/implemented/simplification/2026-07-04-trim-acp-bridge-unreachable-surface.md",
".agents/notes/implemented/simplification/2026-07-12-drop-unconsumed-skill-provider-events.md",
".agents/notes/implemented/simplification/2026-07-12-prune-unused-web-seam-fields.md",
".agents/notes/implemented/simplification/2026-07-12-simplify-session-log-representation.md",
".agents/notes/implemented/testing/2026-06-11-property-based-testing.md",
".agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.md",
".agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.md",
".agents/notes/implemented/testing/2026-06-20-remove-redundant-snapshot-log-expected-output.md",
".agents/notes/implemented/testing/2026-06-22-fork-child-replay-seed-boundary.md",
".agents/notes/implemented/testing/2026-06-22-fork-snapshot-scenarios.md",
".agents/notes/implemented/testing/2026-06-22-subagent-snapshot-replay.md",
".agents/notes/implemented/testing/2026-07-04-hook-snapshot-matrix.md",
".agents/notes/implemented/testing/2026-07-04-single-source-acp-replay-config.md",
".agents/notes/implemented/testing/2026-07-06-pin-request-header-content-in-one-scenario.md",
".agents/notes/implemented/testing/2026-07-08-shared-acp-snapshot-package.md",
".agents/notes/proposed/architecture/2026-06-16-typed-event-schemas.md",
".agents/notes/proposed/feature/2026-06-30-pre-tool-input-rewrite.md",
".agents/notes/proposed/feature/2026-07-07-claude-code-and-codex-subagent-backends.md",
".agents/notes/proposed/feature/2026-07-08-interactive-side-sessions.md",
".agents/notes/implemented/feature/2026-07-10-sqlite-session-query-provider.md",
".agents/notes/rejected/feature/2026-07-13-stream-workflow-progress-through-tool-calls.md",
".agents/notes/proposed/process/2026-06-11-api-extractor-reports.md",
".agents/notes/proposed/process/2026-06-11-architectural-conformance.md",
".agents/notes/proposed/process/2026-06-11-supply-chain-and-vendor-drift.md",
".agents/notes/proposed/process/2026-06-20-discover-package-inventory.md",
".agents/notes/proposed/simplification/2026-07-04-prune-dead-core-spine-surface.md",
".agents/notes/proposed/testing/2026-06-11-deterministic-and-stress-testing.md",
".agents/notes/proposed/testing/2026-06-11-mutation-testing.md",
".agents/notes/rejected/architecture/2026-06-11-immutable-public-surfaces.md",
".agents/notes/rejected/architecture/2026-06-20-providerless-example-base.md",
".agents/notes/rejected/process/2026-07-04-generate-agent-note-index-tables.md",
".agents/notes/rejected/simplification/2026-06-20-assembled-assistant-messages-only.md",
".agents/notes/rejected/simplification/2026-06-20-drop-acp-session-load.md",
".agents/notes/rejected/simplification/2026-06-20-drop-acp-terminal-meta.md",
".agents/notes/rejected/simplification/2026-06-20-drop-bash-output-spill-files.md",
".agents/notes/rejected/simplification/2026-06-20-drop-durable-step-boundaries.md",
".agents/notes/rejected/simplification/2026-06-20-drop-unused-session-lineage.md",
".agents/notes/rejected/simplification/2026-06-20-fold-session-persistence-interface.md",
".agents/notes/rejected/simplification/2026-06-20-generic-tool-rendering.md",
".agents/notes/rejected/simplification/2026-06-20-retire-mid-turn-steering.md",
".agents/notes/rejected/simplification/2026-06-20-single-session-acp-bridge.md",
".agents/notes/rejected/simplification/2026-06-20-truncate-interrupted-turns.md",
".agents/notes/rejected/simplification/2026-07-04-prune-unimplemented-subagent-vocabulary.md",
".agents/notes/rejected/simplification/2026-07-12-collapse-workflow-to-foreground-core.md",
".agents/notes/rejected/simplification/2026-07-12-prune-unused-skill-registry-surface.md",
"README.md",
"docs/architecture.md",
"docs/cookbook/adding-a-package.md",
"docs/cookbook/adding-a-tool.md",
"docs/cookbook/adding-a-vendored-package.md",
"docs/cookbook/adding-an-llm-adapter.md",
"docs/cookbook/extension-cookbook.md",
"docs/cookbook/responding-to-pr-review-on-a-stack.md",
"docs/cordis-primer.md",
"docs/core-data-structures/approval.md",
"docs/core-data-structures/bash.md",
"docs/core-data-structures/code-runtime.md",
"docs/core-data-structures/compaction.md",
"docs/core-data-structures/core.md",
"docs/core-data-structures/filesystem.md",
"docs/core-data-structures/llm-streaming.md",
"docs/core-data-structures/persistence.md",
"docs/core-data-structures/sandbox.md",
"docs/core-data-structures/scope.md",
"docs/core-data-structures/session-query.md",
"docs/core-data-structures/session.md",
"docs/core-data-structures/skills.md",
"docs/core-data-structures/subagent.md",
"docs/core-data-structures/system-prompt.md",
"docs/core-data-structures/tools.md",
"docs/core-data-structures/user-interaction.md",
"docs/core-data-structures/web.md",
"docs/core-data-structures/workflow.md",
"docs/defensive-patterns.md",
"docs/development.md",
"docs/glossary.md",
"docs/i18n/README.md",
"docs/i18n/translation-rules.md",
"docs/postmortem/0001-acp-default-export-drops-inject.md",
"docs/postmortem/0002-js-expression-disabled-filesystem-tools.md",
"docs/postmortem/README.md",
"docs/testing.md",
"docs/user/develop/basic/config.md",
"docs/user/develop/basic/index.md",
"docs/user/develop/basic/tool.md",
@@ -39,14 +216,19 @@
".agents/notes/AGENTS.md",
".agents/notes/implemented/AGENTS.md",
"docs/AGENTS.md",
"docs/agent-lifecycle.md",
"docs/capability-seams.md",
"docs/config-catalog.md",
"docs/cordis-catalog/",
"docs/event-producer-consumer.md",
"docs/graph-atlas.md",
"docs/i18n/style-samples.md",
"docs/i18n/terminology.md",
"docs/i18n/translation-prompt.md",
"docs/module-graph.md",
"docs/persistence-catalog.md",
"docs/tool-catalog.md",
"docs/tool-execution-pipeline.md",
"python/sdk-runtime/src/deepseek_harness_runtime/runtime/node/"
]
}

View File

@@ -459,26 +459,6 @@
"symbol": "SessionEventTrace",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-reference.md",
"symbol": "SessionReferenceInput",
"source": "packages/context/session-reference/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-reference.md",
"symbol": "SessionReferenceCandidate",
"source": "packages/context/session-reference/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-reference.md",
"symbol": "PreparedReferencedMessage",
"source": "packages/context/session-reference/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-reference.md",
"symbol": "SessionReferenceErrorCode",
"source": "packages/context/session-reference/src/config.ts"
},
{
"doc": "docs/core-data-structures/session-title.md",
"symbol": "SessionTitleProviderId",
@@ -534,6 +514,26 @@
"symbol": "SessionTitleProvider",
"source": "packages/session-title/session-title/src/index.ts"
},
{
"doc": "docs/core-data-structures/session-reference.md",
"symbol": "SessionReferenceInput",
"source": "packages/context/session-reference/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-reference.md",
"symbol": "SessionReferenceCandidate",
"source": "packages/context/session-reference/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-reference.md",
"symbol": "PreparedReferencedMessage",
"source": "packages/context/session-reference/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-reference.md",
"symbol": "SessionReferenceErrorCode",
"source": "packages/context/session-reference/src/config.ts"
},
{
"doc": "docs/core-data-structures/tools.md",
"symbol": "ToolOutputDefinition",
@@ -1253,6 +1253,929 @@
"doc": "docs/core-data-structures/session-query.md",
"symbol": "SessionSearchHit",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "Branded",
"source": "packages/util/brand/src/index.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "ContentBlockMap",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "AssistantProvenance",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "Message",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "MessageSourceMap",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "FinishReasonMap",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "LlmProviderInfo",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "LlmModelInfo",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "LlmModelContext",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "GenerateOptions",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "ToolSchema",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "LlmCallConfig",
"source": "packages/llm/llm/src/call-config.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "SessionEvent",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "SendOptions",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "AgentCancelCause",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "InjectOptions",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "ResolvedAgentInput",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "AgentMessageId",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "AgentMessage",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "CancelOptions",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "Agent",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "HookContext",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "PromptDecision",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "ContinuationDecision",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "RequestError",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "RequestErrorDecision",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "ContinuationStop",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/core.zh.md",
"symbol": "SessionStartSource",
"source": "packages/core/agent/src/types.ts"
},
{
"doc": "docs/core-data-structures/scope.zh.md",
"symbol": "ScopeKey",
"source": "packages/core/scope/src/index.ts"
},
{
"doc": "docs/core-data-structures/scope.zh.md",
"symbol": "Scoped",
"source": "packages/core/scope/src/index.ts"
},
{
"doc": "docs/core-data-structures/scope.zh.md",
"symbol": "Scope",
"source": "packages/core/scope/src/index.ts"
},
{
"doc": "docs/core-data-structures/scope.zh.md",
"symbol": "ScopeLayer",
"source": "packages/core/scope/src/store.ts"
},
{
"doc": "docs/core-data-structures/system-prompt.zh.md",
"symbol": "AssembleContext",
"source": "packages/core/system-prompt/src/index.ts"
},
{
"doc": "docs/core-data-structures/system-prompt.zh.md",
"symbol": "PromptSection",
"source": "packages/core/system-prompt/src/index.ts"
},
{
"doc": "docs/core-data-structures/system-prompt.zh.md",
"symbol": "ToolProviderResult",
"source": "packages/core/system-prompt/src/index.ts"
},
{
"doc": "docs/core-data-structures/llm-streaming.zh.md",
"symbol": "StreamChunk",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/llm-streaming.zh.md",
"symbol": "LlmFailure",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/llm-streaming.zh.md",
"symbol": "TokenUsage",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/llm-streaming.zh.md",
"symbol": "ContentBlockMap",
"source": "packages/llm/llm/src/types.ts"
},
{
"doc": "docs/core-data-structures/llm-streaming.zh.md",
"symbol": "AppIdentity",
"source": "packages/llm/llm/src/attribution.ts"
},
{
"doc": "docs/core-data-structures/llm-streaming.zh.md",
"symbol": "BlockAssembler",
"source": "packages/llm/llm/src/assembler.ts",
"projection": "public-api"
},
{
"doc": "docs/core-data-structures/llm-streaming.zh.md",
"symbol": "LlmAdapter",
"source": "packages/llm/llm/src/index.ts",
"projection": "public-api"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "PromptMessageData",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "SessionEventMap",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "OutOfBandSessionEventMap",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "EpochHeader",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "TodoItem",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "SessionEvent",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "TurnTriggerMap",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "TurnEndReasonMap",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "SurfaceEventType",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "SurfaceOp",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "SurfaceIntent",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "SessionSurface",
"source": "packages/core/session/src/surface.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "SurfaceFoldReplacement",
"source": "packages/core/session/src/surface.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "SurfaceFoldResult",
"source": "packages/core/session/src/surface.ts"
},
{
"doc": "docs/core-data-structures/session.zh.md",
"symbol": "Session",
"source": "packages/core/session/src/index.ts",
"projection": "public-api"
},
{
"doc": "docs/core-data-structures/persistence.zh.md",
"symbol": "SessionHeader",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/persistence.zh.md",
"symbol": "CreateSessionOptions",
"source": "packages/core/session/src/types.ts"
},
{
"doc": "docs/core-data-structures/persistence.zh.md",
"symbol": "SessionLocation",
"source": "packages/session-persistence/session-persistence/src/index.ts"
},
{
"doc": "docs/core-data-structures/persistence.zh.md",
"symbol": "SessionPersistenceRevision",
"source": "packages/session-persistence/session-persistence/src/revision.ts"
},
{
"doc": "docs/core-data-structures/persistence.zh.md",
"symbol": "SessionPersistenceSnapshot",
"source": "packages/session-persistence/session-persistence/src/index.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventSurface",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionRecord",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionLogSnapshot",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionSurfaceSnapshot",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventRecord",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionResultFilter",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventResultFilter",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventSearchDocument",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionSearchCursor",
"source": "packages/session-query/session-query/src/cursor.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionSearchRequest",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventSearchRequest",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionSearchPage",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventSearchHit",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionSearchHit",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionLineageNode",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionLineageTrace",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionQueryErrorCode",
"source": "packages/session-query/session-query/src/config.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventReadRequest",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventWindow",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventTraceRequest",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/session-query.zh.md",
"symbol": "SessionEventTrace",
"source": "packages/session-query/session-query/src/types.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolOutputDefinition",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolDefinition",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ValueSchemaSpec",
"source": "packages/core/tools/src/schema.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ParameterPropertySpec",
"source": "packages/core/tools/src/schema.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ParameterSchemaSpec",
"source": "packages/core/tools/src/schema.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "InferValue",
"source": "packages/core/tools/src/schema.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "InferArgs",
"source": "packages/core/tools/src/schema.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolExecutionToken",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolExecutionInput",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolExecution",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolDispatchExecution",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolExecutionMode",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolRunContext",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolGuard",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolRestriction",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolFailure",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolExecutionSuccess",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolExecutionFailure",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ToolExecutionResult",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "PreToolDecision",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "PostToolDecision",
"source": "packages/core/tools/src/index.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "JsonSchemaScalar",
"source": "packages/core/tools/src/json-schema.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "JsonSchemaType",
"source": "packages/core/tools/src/json-schema.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "JsonSchemaNode",
"source": "packages/core/tools/src/json-schema.ts"
},
{
"doc": "docs/core-data-structures/tools.zh.md",
"symbol": "ObjectJsonSchema",
"source": "packages/core/tools/src/json-schema.ts"
},
{
"doc": "docs/core-data-structures/user-interaction.zh.md",
"symbol": "AskUserQuestionOption",
"source": "packages/ui/user-interaction/src/types.ts"
},
{
"doc": "docs/core-data-structures/user-interaction.zh.md",
"symbol": "AskUserQuestionItem",
"source": "packages/ui/user-interaction/src/types.ts"
},
{
"doc": "docs/core-data-structures/user-interaction.zh.md",
"symbol": "AskUserQuestionRequest",
"source": "packages/ui/user-interaction/src/index.ts"
},
{
"doc": "docs/core-data-structures/user-interaction.zh.md",
"symbol": "AskUserQuestionAnswerItem",
"source": "packages/ui/user-interaction/src/types.ts"
},
{
"doc": "docs/core-data-structures/user-interaction.zh.md",
"symbol": "AskUserQuestionAnswer",
"source": "packages/ui/user-interaction/src/types.ts"
},
{
"doc": "docs/core-data-structures/user-interaction.zh.md",
"symbol": "UserInteractionProvider",
"source": "packages/ui/user-interaction/src/index.ts"
},
{
"doc": "docs/core-data-structures/user-interaction.zh.md",
"symbol": "UserInteractionError",
"source": "packages/ui/user-interaction/src/index.ts"
},
{
"doc": "docs/core-data-structures/approval.zh.md",
"symbol": "ApprovalRequestId",
"source": "packages/ui/user-approval/src/types.ts"
},
{
"doc": "docs/core-data-structures/approval.zh.md",
"symbol": "ApprovalOutcome",
"source": "packages/ui/user-approval/src/types.ts"
},
{
"doc": "docs/core-data-structures/approval.zh.md",
"symbol": "ApprovalPolicy",
"source": "packages/ui/user-approval/src/index.ts"
},
{
"doc": "docs/core-data-structures/approval.zh.md",
"symbol": "ApprovalRequest",
"source": "packages/ui/user-approval/src/index.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "DshEnvironmentKey",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "DshEnvironment",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "BashExecRequest",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "BashExecSpec",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "BashRunResult",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "BashSandboxInfo",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "CollectedOutput",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "BashProcess",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/bash.zh.md",
"symbol": "BashProcessRead",
"source": "packages/bash/bash/src/types.ts"
},
{
"doc": "docs/core-data-structures/sandbox.zh.md",
"symbol": "SandboxMode",
"source": "packages/sandbox/sandbox/src/index.ts"
},
{
"doc": "docs/core-data-structures/sandbox.zh.md",
"symbol": "ConfinedSandboxMode",
"source": "packages/sandbox/sandbox/src/index.ts"
},
{
"doc": "docs/core-data-structures/sandbox.zh.md",
"symbol": "SandboxExecutionPolicy",
"source": "packages/sandbox/sandbox/src/index.ts"
},
{
"doc": "docs/core-data-structures/sandbox.zh.md",
"symbol": "SandboxEnforcement",
"source": "packages/sandbox/sandbox/src/index.ts"
},
{
"doc": "docs/core-data-structures/sandbox.zh.md",
"symbol": "SandboxPolicy",
"source": "packages/sandbox/sandbox/src/index.ts"
},
{
"doc": "docs/core-data-structures/sandbox.zh.md",
"symbol": "SandboxPolicyRequest",
"source": "packages/sandbox/sandbox-policy/src/index.ts"
},
{
"doc": "docs/core-data-structures/sandbox.zh.md",
"symbol": "ConfinedArgv",
"source": "packages/sandbox/sandbox/src/index.ts"
},
{
"doc": "docs/core-data-structures/code-runtime.zh.md",
"symbol": "CodeJsonValue",
"source": "packages/code-runtime/code-runtime/src/types.ts"
},
{
"doc": "docs/core-data-structures/code-runtime.zh.md",
"symbol": "CodeRunRequest",
"source": "packages/code-runtime/code-runtime/src/types.ts"
},
{
"doc": "docs/core-data-structures/code-runtime.zh.md",
"symbol": "CodeRunResult",
"source": "packages/code-runtime/code-runtime/src/types.ts"
},
{
"doc": "docs/core-data-structures/code-runtime.zh.md",
"symbol": "CodeBindingNamespace",
"source": "packages/code-runtime/code-runtime/src/types.ts"
},
{
"doc": "docs/core-data-structures/code-runtime.zh.md",
"symbol": "CodeBindingErrorClass",
"source": "packages/code-runtime/code-runtime/src/types.ts"
},
{
"doc": "docs/core-data-structures/code-runtime.zh.md",
"symbol": "CodeBindingFunction",
"source": "packages/code-runtime/code-runtime/src/types.ts"
},
{
"doc": "docs/core-data-structures/code-runtime.zh.md",
"symbol": "CodeRunFailure",
"source": "packages/code-runtime/code-runtime/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsTarget",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsTargetKey",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsVersion",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsInfo",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsPathInfo",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsDirEntry",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsWriteIntent",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsWriteOutcome",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsEditRequest",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsEditOutcome",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsErrorCode",
"source": "packages/fs/fs/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FsPolicyExec",
"source": "packages/fs/fs-policy/src/types.ts"
},
{
"doc": "docs/core-data-structures/filesystem.zh.md",
"symbol": "FileReadOutcome",
"source": "packages/fs/tool-fs/src/read-render.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "SkillSource",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "SkillResourceBase",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "SkillSummary",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "SkillCandidate",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "SkillDefinition",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "SkillRegistration",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "SkillLookupOptions",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "SkillProvider",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/skills.zh.md",
"symbol": "Config",
"source": "packages/skill/skill/src/index.ts"
},
{
"doc": "docs/core-data-structures/compaction.zh.md",
"symbol": "CompactionResult",
"source": "packages/compact/compact/src/types.ts"
},
{
"doc": "docs/core-data-structures/compaction.zh.md",
"symbol": "CompactionTrigger",
"source": "packages/compact/compact/src/index.ts"
},
{
"doc": "docs/core-data-structures/compaction.zh.md",
"symbol": "PrunedEntry",
"source": "packages/compact/compact-tool-result-prune/src/types.ts"
},
{
"doc": "docs/core-data-structures/compaction.zh.md",
"symbol": "PruneResult",
"source": "packages/compact/compact-tool-result-prune/src/types.ts"
},
{
"doc": "docs/core-data-structures/subagent.zh.md",
"symbol": "SubagentCapabilities",
"source": "packages/subagent/subagent/src/types.ts"
},
{
"doc": "docs/core-data-structures/subagent.zh.md",
"symbol": "SubagentStartRequest",
"source": "packages/subagent/subagent/src/types.ts"
},
{
"doc": "docs/core-data-structures/subagent.zh.md",
"symbol": "SubagentResult",
"source": "packages/subagent/subagent/src/types.ts"
},
{
"doc": "docs/core-data-structures/subagent.zh.md",
"symbol": "SubagentStopReasonMap",
"source": "packages/subagent/subagent/src/types.ts"
},
{
"doc": "docs/core-data-structures/subagent.zh.md",
"symbol": "SubagentRun",
"source": "packages/subagent/subagent/src/types.ts"
},
{
"doc": "docs/core-data-structures/subagent.zh.md",
"symbol": "SubagentProvider",
"source": "packages/subagent/subagent/src/types.ts"
},
{
"doc": "docs/core-data-structures/web.zh.md",
"symbol": "WebSearchRequest",
"source": "packages/web/web/src/types.ts"
},
{
"doc": "docs/core-data-structures/web.zh.md",
"symbol": "WebSearchResult",
"source": "packages/web/web/src/types.ts"
},
{
"doc": "docs/core-data-structures/web.zh.md",
"symbol": "WebSearchSource",
"source": "packages/web/web/src/types.ts"
},
{
"doc": "docs/core-data-structures/web.zh.md",
"symbol": "WebFetchRequest",
"source": "packages/web/web/src/types.ts"
},
{
"doc": "docs/core-data-structures/web.zh.md",
"symbol": "WebFetchResult",
"source": "packages/web/web/src/types.ts"
},
{
"doc": "docs/core-data-structures/web.zh.md",
"symbol": "WebFetchBody",
"source": "packages/web/web/src/types.ts"
},
{
"doc": "docs/core-data-structures/workflow.zh.md",
"symbol": "WorkflowStartRequest",
"source": "packages/workflow/workflow/src/types.ts"
},
{
"doc": "docs/core-data-structures/workflow.zh.md",
"symbol": "WorkflowMeta",
"source": "packages/workflow/workflow/src/types.ts"
},
{
"doc": "docs/core-data-structures/workflow.zh.md",
"symbol": "WorkflowResult",
"source": "packages/workflow/workflow/src/types.ts"
},
{
"doc": "docs/core-data-structures/workflow.zh.md",
"symbol": "WorkflowRun",
"source": "packages/workflow/workflow/src/types.ts"
}
]
}

View File

@@ -12,6 +12,7 @@ import { globSync, readFileSync } from 'node:fs'
import { dirname, relative, resolve } from 'node:path'
import * as yaml from 'js-yaml'
import ts from 'typescript'
import { cordisConfigFiles } from './cordis-config-files.ts'
interface JsExpr {
__jsExpr: string
@@ -39,10 +40,7 @@ const jsExprType = new yaml.Type('tag:yaml.org,2002:js', {
})
const schema = yaml.JSON_SCHEMA.extend(jsExprType)
const files = globSync(['**/*cordis*.yml', '**/*cordis*.yaml'], {
cwd: root,
exclude: ['.claude/**', 'node_modules/**', 'vendor/**'],
}).sort()
const files = cordisConfigFiles(root)
const errors: string[] = []
const examplePluginReferences: PluginReference[] = []

View File

@@ -59,6 +59,7 @@ const SENTENCE_MODEL_EXPERIENCE: Readonly<Record<string, SentenceContract>> = {
'packages/client/ui-conversation': { kind: 'none', reason: 'Browser-side UI plugin layer; registers no model surface.' },
'packages/client/ui-question': { kind: 'indirect', reason: 'The package mounts dsh-tool-ask-user; that tool owns the model-visible schema and answer rendering.' },
'packages/client/ui-trajectory': { kind: 'none', reason: 'Browser-side UI plugin layer; registers no model surface.' },
'packages/client/ui-workspace': { kind: 'none', reason: 'Browser-side UI plugin layer; registers no model surface.' },
'packages/client/ui-theme': { kind: 'none', reason: 'Browser-side UI plugin layer; registers no model surface.' },
'packages/client/i18n': { kind: 'none', reason: 'Browser-side UI plugin layer; registers no model surface.' },
'packages/client/web': { kind: 'none', reason: 'Browser-side UI plugin layer; registers no model surface.' },
@@ -68,7 +69,6 @@ const SENTENCE_MODEL_EXPERIENCE: Readonly<Record<string, SentenceContract>> = {
'packages/fs/fs-sandbox': { kind: 'indirect', reason: 'The provider backend delegates model rendering to dsh-tool-fs.' },
'packages/hooks/hook-protocol': { kind: 'indirect', reason: 'Only the hook bridge plugins render decoded hook output to a model.' },
'packages/host/apiproxy': { kind: 'none', reason: 'The wire contract and fetch carriers move already-composed messages and register no model surface.' },
'packages/host/runtime': { kind: 'indirect', reason: 'The assembly mounts model-facing plugins and injects provider/model defaults into agents.' },
'packages/host/webserver': { kind: 'none', reason: 'The HTTP carrier bridges browser and API handler and registers no model surface.' },
'packages/llm/llm': { kind: 'none', reason: 'The adapter registry forwards already-assembled requests unchanged.' },
'packages/llm/token-meter': { kind: 'indirect', reason: 'The measurement service leaves model-visible changes to its consumers.' },