dsh-plugin-dev-kb 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +186 -178
- package/README.en.md +172 -172
- package/README.md +183 -183
- package/kb/INDEX.md +236 -234
- package/kb/README.md +88 -88
- package/kb/extra/AGENTS.md +77 -77
- package/kb/extra/deepseek-llm-api-wire-extensions.md +162 -162
- package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +162 -162
- package/kb/extra/defensive-patterns/package-surface.md +233 -232
- package/kb/extra/defensive-patterns/package-surface.zh.md +233 -232
- package/kb/extra/defensive-patterns/remote-and-api.md +117 -117
- package/kb/extra/defensive-patterns/remote-and-api.zh.md +117 -117
- package/kb/extra/development.md +221 -221
- package/kb/extra/development.zh.md +228 -228
- package/kb/extra/event-producer-consumer.md +133 -123
- package/kb/extra/event-producer-consumer.zh.md +135 -125
- package/kb/extra/module-graph.md +1961 -1888
- package/kb/extra/module-graph.zh.md +1963 -1890
- package/kb/extra/persistence-changes/2026-11-05-timeline-priority-notice.md +60 -0
- package/kb/extra/persistence-changes/2026-11-05-timeline-priority-notice.zh.md +60 -0
- package/kb/extra/persistence-changes/README.md +92 -92
- package/kb/extra/persistence-changes/README.zh.md +92 -92
- package/kb/extra/persistence-changes/historical-formats/README.md +75 -75
- package/kb/extra/persistence-changes/historical-formats/README.zh.md +75 -75
- package/kb/extra/persistence-changes/releases/README.md +103 -103
- package/kb/extra/persistence-changes/releases/README.zh.md +103 -103
- package/kb/extra/rescope.md +55 -55
- package/kb/extra/rescope.zh.md +55 -55
- package/kb/extra/subsystems/boot.md +631 -621
- package/kb/extra/subsystems/boot.zh.md +631 -621
- package/kb/extra/subsystems/computer-use.md +179 -137
- package/kb/extra/subsystems/computer-use.zh.md +179 -137
- package/kb/extra/subsystems/extensions.md +387 -384
- package/kb/extra/subsystems/extensions.zh.md +387 -384
- package/kb/extra/subsystems/feedback.md +418 -400
- package/kb/extra/subsystems/feedback.zh.md +418 -400
- package/kb/extra/subsystems/forge.md +2169 -1226
- package/kb/extra/subsystems/forge.zh.md +2171 -1226
- package/kb/extra/subsystems/liveshare.md +167 -158
- package/kb/extra/subsystems/liveshare.zh.md +167 -158
- package/kb/extra/subsystems/mcp.md +237 -234
- package/kb/extra/subsystems/mcp.zh.md +237 -234
- package/kb/extra/subsystems/office-kit.md +122 -0
- package/kb/extra/subsystems/office-kit.zh.md +122 -0
- package/kb/extra/subsystems/working-directory.md +95 -64
- package/kb/extra/subsystems/working-directory.zh.md +95 -64
- package/kb/extra/subsystems/worktrees.md +187 -127
- package/kb/extra/subsystems/worktrees.zh.md +187 -127
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.md +21 -21
- package/kb/extra/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.zh.md +21 -21
- package/kb/extra/upgrade-guide/v0.2.1-rc.4/sandbox-unsupported-policy-error/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.1-rc.4/sandbox-unsupported-policy-error/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/llm-error-builtin-codes/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.2/llm-error-builtin-codes/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-kit-package/guide.md +34 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-kit-package/guide.zh.md +34 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-operation-tools/guide.md +49 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-operation-tools/guide.zh.md +49 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-skill-resources/guide.md +36 -0
- package/kb/extra/upgrade-guide/v0.2.2-alpha.3/office-skill-resources/guide.zh.md +36 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/account-notification-fields/guide.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/account-notification-fields/guide.zh.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/account-remote-provider/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/account-remote-provider/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/archive-worktrees/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/archive-worktrees/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/attachment-error-codes/guide.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/attachment-error-codes/guide.zh.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-ax-read-limits/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-ax-read-limits/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-hover-ax-only/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-hover-ax-only/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.zh.md +23 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/dsh-doc-skill/guide.md +35 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/dsh-doc-skill/guide.zh.md +35 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-change-request-overview/guide.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-change-request-overview/guide.zh.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-pinned-diff/guide.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-pinned-diff/guide.zh.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-review-reads/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/forge-review-reads/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.zh.md +26 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/plugin-update-method/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/plugin-update-method/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.zh.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.md +48 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.zh.md +48 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.md +45 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.zh.md +45 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/runtime-context-reminders/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/runtime-context-reminders/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/session-append-overloads/guide.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/session-append-overloads/guide.zh.md +17 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/subagent-interrupt-default/guide.md +27 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/subagent-interrupt-default/guide.zh.md +27 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/terminal-backend-cleanup-error/guide.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/terminal-backend-cleanup-error/guide.zh.md +20 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/terminal-bundle-sidebar-backend/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/terminal-bundle-sidebar-backend/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/web-fetch-transport-error-codes/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/web-fetch-transport-error-codes/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/web-search-billing/guide.md +41 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/web-search-billing/guide.zh.md +41 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/window-drag-regions/guide.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.1/window-drag-regions/guide.zh.md +21 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/client-module-metadata/guide.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/client-module-metadata/guide.zh.md +29 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/connection-page-peer/guide.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/connection-page-peer/guide.zh.md +25 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/cordis-root-and-intercept-metadata/guide.md +31 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/cordis-root-and-intercept-metadata/guide.zh.md +31 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-agents-without-preset/guide.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-agents-without-preset/guide.zh.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-macos-provider/guide.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-macos-provider/guide.zh.md +24 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-partial-observations/guide.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/cua-partial-observations/guide.zh.md +19 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/deepseek-files-timeout/guide.md +15 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/deepseek-files-timeout/guide.zh.md +15 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/experimental-tool-error-codes/guide.md +28 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/experimental-tool-error-codes/guide.zh.md +28 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/package-export-cleanup/guide.md +36 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/package-export-cleanup/guide.zh.md +36 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/python-ptc-removal/guide.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/python-ptc-removal/guide.zh.md +22 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/session-status-package/guide.md +31 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/session-status-package/guide.zh.md +31 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/shared-search-filter/guide.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/shared-search-filter/guide.zh.md +18 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/shell-fs-tool-error-codes/guide.md +30 -0
- package/kb/extra/upgrade-guide/v0.2.2-rc.2/shell-fs-tool-error-codes/guide.zh.md +30 -0
- package/kb/extra/web-styling.md +57 -57
- package/kb/extra/web-styling.zh.md +57 -57
- package/kb/meta/search-index.json +4508 -3980
- package/kb/meta/source.json +18 -18
- package/kb/site/develop/practice/llm-adapter.md +192 -192
- package/kb/site/en/develop/practice/llm-adapter.md +192 -192
- package/kb/site/en/guide/desktop-uninstall-cleanup.md +63 -0
- package/kb/site/en/guide/plugin-market.md +153 -151
- package/kb/site/en/guide/providers.md +234 -234
- package/kb/site/en/guide/quickstart.md +35 -34
- package/kb/site/en/reference/capability-seams.md +789 -767
- package/kb/site/en/reference/config-catalog.md +5432 -5128
- package/kb/site/en/reference/cookbook/adding-a-package.md +175 -175
- package/kb/site/en/reference/cookbook/adding-a-tool.md +105 -104
- package/kb/site/en/reference/cookbook/extension-cookbook.md +178 -135
- package/kb/site/en/reference/cordis-api/context.md +373 -369
- package/kb/site/en/reference/cordis-api/fiber.md +457 -433
- package/kb/site/en/reference/cordis-api/inherited.md +44 -44
- package/kb/site/en/reference/cordis-api/service.md +118 -107
- package/kb/site/en/reference/experimental-persistence-catalog.md +36 -23
- package/kb/site/en/reference/index.md +174 -174
- package/kb/site/en/reference/persistence-catalog.md +9453 -9432
- package/kb/site/en/reference/subsystems/compaction.md +288 -288
- package/kb/site/en/reference/subsystems/core.md +1172 -1171
- package/kb/site/en/reference/subsystems/credentials.md +526 -497
- package/kb/site/en/reference/subsystems/filesystem.md +708 -708
- package/kb/site/en/reference/subsystems/index.md +82 -82
- package/kb/site/en/reference/subsystems/llm-streaming.md +1290 -1288
- package/kb/site/en/reference/subsystems/lsp.md +230 -206
- package/kb/site/en/reference/subsystems/persistence.md +451 -432
- package/kb/site/en/reference/subsystems/plan.md +91 -91
- package/kb/site/en/reference/subsystems/ptc-runtime.md +295 -261
- package/kb/site/en/reference/subsystems/sandbox.md +250 -232
- package/kb/site/en/reference/subsystems/session-query.md +525 -515
- package/kb/site/en/reference/subsystems/session-reference.md +231 -229
- package/kb/site/en/reference/subsystems/session.md +1478 -1431
- package/kb/site/en/reference/subsystems/sidebar-right.md +165 -165
- package/kb/site/en/reference/subsystems/skills.md +356 -356
- package/kb/site/en/reference/subsystems/slots.md +235 -231
- package/kb/site/en/reference/subsystems/terminal.md +188 -188
- package/kb/site/en/reference/subsystems/tools.md +902 -891
- package/kb/site/en/reference/subsystems/user-questions.md +330 -327
- package/kb/site/en/reference/subsystems/web-client.md +161 -104
- package/kb/site/en/reference/subsystems/web-server.md +434 -351
- package/kb/site/en/reference/subsystems/web.md +268 -268
- package/kb/site/en/reference/subsystems/workflow.md +287 -282
- package/kb/site/en/reference/subsystems/workspace.md +743 -651
- package/kb/site/en/reference/tool-catalog.md +2867 -2704
- package/kb/site/guide/desktop-uninstall-cleanup.md +63 -0
- package/kb/site/guide/plugin-market.md +153 -151
- package/kb/site/guide/providers.md +234 -234
- package/kb/site/guide/quickstart.md +35 -34
- package/kb/site/reference/capability-seams.md +789 -767
- package/kb/site/reference/config-catalog.md +5432 -5128
- package/kb/site/reference/cookbook/adding-a-package.md +175 -175
- package/kb/site/reference/cookbook/adding-a-tool.md +107 -106
- package/kb/site/reference/cookbook/extension-cookbook.md +182 -139
- package/kb/site/reference/cordis-api/context.md +373 -369
- package/kb/site/reference/cordis-api/fiber.md +459 -435
- package/kb/site/reference/cordis-api/inherited.md +44 -44
- package/kb/site/reference/cordis-api/service.md +118 -107
- package/kb/site/reference/experimental-persistence-catalog.md +36 -23
- package/kb/site/reference/index.md +178 -178
- package/kb/site/reference/persistence-catalog.md +9453 -9432
- package/kb/site/reference/subsystems/compaction.md +288 -288
- package/kb/site/reference/subsystems/core.md +1184 -1183
- package/kb/site/reference/subsystems/credentials.md +526 -497
- package/kb/site/reference/subsystems/filesystem.md +708 -708
- package/kb/site/reference/subsystems/index.md +82 -82
- package/kb/site/reference/subsystems/llm-streaming.md +1296 -1294
- package/kb/site/reference/subsystems/lsp.md +230 -206
- package/kb/site/reference/subsystems/persistence.md +451 -432
- package/kb/site/reference/subsystems/plan.md +91 -91
- package/kb/site/reference/subsystems/ptc-runtime.md +295 -261
- package/kb/site/reference/subsystems/sandbox.md +250 -232
- package/kb/site/reference/subsystems/session-query.md +525 -515
- package/kb/site/reference/subsystems/session-reference.md +231 -229
- package/kb/site/reference/subsystems/session.md +1482 -1435
- package/kb/site/reference/subsystems/sidebar-right.md +165 -165
- package/kb/site/reference/subsystems/skills.md +356 -356
- package/kb/site/reference/subsystems/slots.md +239 -235
- package/kb/site/reference/subsystems/terminal.md +188 -188
- package/kb/site/reference/subsystems/tools.md +902 -891
- package/kb/site/reference/subsystems/user-questions.md +330 -327
- package/kb/site/reference/subsystems/web-client.md +161 -104
- package/kb/site/reference/subsystems/web-server.md +434 -351
- package/kb/site/reference/subsystems/web.md +268 -268
- package/kb/site/reference/subsystems/workflow.md +287 -282
- package/kb/site/reference/subsystems/workspace.md +743 -651
- package/kb/site/reference/tool-catalog.md +2872 -2709
- package/lib/index.js +359 -359
- package/package.json +68 -68
- package/skills/dsh-plugin-dev-kb.md +71 -70
- package/kb/extra/subsystems/office-to-pdf.md +0 -87
- package/kb/extra/subsystems/office-to-pdf.zh.md +0 -87
|
@@ -1,229 +1,231 @@
|
|
|
1
|
-
---
|
|
2
|
-
editSource: "docs/subsystems/session-reference.md"
|
|
3
|
-
rawMarkdownPath: "en/reference/subsystems/session-reference.md"
|
|
4
|
-
outline: [2,3]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Session References
|
|
8
|
-
|
|
9
|
-
Host-backed file discovery plus structured cross-session reference requests and prepared message contexts. The [file-reference contract](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/file-reference) owns path-only completion records and grammar; the [session-reference contract](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/session-reference) defines canonical URIs, current-surface projection, tag-safe JSON and byte retention, stable errors, and the untrusted model prompt. Host adapters use these types instead of passing their UI mention syntax into the agent core.
|
|
10
|
-
|
|
11
|
-
Sources: [`packages/context/file-reference/src/types.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/file-reference/src/types.ts) · [`packages/context/session-reference/src/types.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/session-reference/src/types.ts)
|
|
12
|
-
|
|
13
|
-
## File candidates
|
|
14
|
-
|
|
15
|
-
`FileReferenceCandidate` is the path-only discovery result. The addressed agent supplies the working-directory scope; providers decide ranking and namespace access without reading file contents.
|
|
16
|
-
|
|
17
|
-
```ts type-equiv
|
|
18
|
-
/** One path-only completion candidate inside the target session cwd. */
|
|
19
|
-
interface FileReferenceCandidate {
|
|
20
|
-
/** User-facing path accepted by normal prompts and filesystem tools. */
|
|
21
|
-
path: string
|
|
22
|
-
/** Directories keep completion open; files finish the mention. */
|
|
23
|
-
kind: 'file' | 'directory'
|
|
24
|
-
}
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Inputs and candidates
|
|
28
|
-
|
|
29
|
-
`SessionReferenceInput` is the host-independent selection. The id is authoritative; the label is display metadata carried into the snapshot.
|
|
30
|
-
|
|
31
|
-
```ts type-equiv
|
|
32
|
-
/** One source session selected by a host. */
|
|
33
|
-
interface SessionReferenceInput {
|
|
34
|
-
/** Opaque source session identity. */
|
|
35
|
-
sessionId: SessionId
|
|
36
|
-
/** Optional user-facing mention label. */
|
|
37
|
-
label?: string
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
`SessionReferenceCandidate` is host-facing discovery output. Its `label` uses the latest Session title when present, while its optional display text prefers a subagent's durable creation label; filtering searches both alongside Session id and cwd, never transcript text. The Remote candidate's canonical mention uses the display text when present.
|
|
42
|
-
|
|
43
|
-
```ts type-equiv
|
|
44
|
-
/** One host-facing candidate from exact session metadata. */
|
|
45
|
-
interface SessionReferenceCandidate {
|
|
46
|
-
/** Opaque source session identity. */
|
|
47
|
-
sessionId: SessionId
|
|
48
|
-
/** Latest log-backed title, falling back to the opaque session id. */
|
|
49
|
-
label: string
|
|
50
|
-
/** Display and canonical-mention text, preferring a subagent's durable creation label over {@link label}. */
|
|
51
|
-
displayTitle?: string
|
|
52
|
-
/** Source session working directory, when recorded. */
|
|
53
|
-
cwd?: string
|
|
54
|
-
/**
|
|
55
|
-
* True when {@link SessionReferenceCandidate.cwd} is recorded and equals the
|
|
56
|
-
* requesting agent's. Hosts that only surface a distinguishing location
|
|
57
|
-
* read this instead of comparing paths they never received.
|
|
58
|
-
*/
|
|
59
|
-
sameWorkspace: boolean
|
|
60
|
-
/** Source session creation time in Unix epoch milliseconds. */
|
|
61
|
-
createdAt: number
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
The `sessionReferenceResolver/candidates` Remote method serves the same discovery to browser consumers and attaches each candidate's canonical prompt mention.
|
|
66
|
-
|
|
67
|
-
```ts type-equiv
|
|
68
|
-
/** One discovery candidate carrying its canonical prompt mention. */
|
|
69
|
-
interface SessionReferenceMentionCandidate extends SessionReferenceCandidate {
|
|
70
|
-
/** Canonical `@[label](dsh-session:…)` mention serialized into the prompt draft. */
|
|
71
|
-
mention: string
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Prepared messages
|
|
76
|
-
|
|
77
|
-
Preparation preserves readable current-message content and returns at most one aggregated context. Its durable source records keep `capturedThroughSeq` as a coordinate in the referenced Session's original generation; they never reinterpret it as a seq in the containing Session. `capturedFormatVersion` records that generation, with absence meaning released format v0.
|
|
78
|
-
|
|
79
|
-
```ts type-equiv
|
|
80
|
-
/** Durable source session, cited event seqs, and snapshot facts for prepared cross-session context. */
|
|
81
|
-
interface SessionReferenceSource {
|
|
82
|
-
kind: 'session-reference'
|
|
83
|
-
/** Material lifted out of another session's log (`recall` context form). */
|
|
84
|
-
form: 'recall'
|
|
85
|
-
version: 1
|
|
86
|
-
references: {
|
|
87
|
-
sessionId: string
|
|
88
|
-
label: string
|
|
89
|
-
/** Source Session format generation; absence identifies version 0. */
|
|
90
|
-
capturedFormatVersion?: number
|
|
91
|
-
capturedThroughSeq: OptionalSessionSeq
|
|
92
|
-
compacted: boolean
|
|
93
|
-
originalMessages: number
|
|
94
|
-
retainedMessages: number
|
|
95
|
-
omittedMessages: number
|
|
96
|
-
omittedBytes: number
|
|
97
|
-
truncated: boolean
|
|
98
|
-
inputIndex: number
|
|
99
|
-
}[]
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
```ts type-equiv
|
|
104
|
-
/** Direct message content and optional referenced-session context. */
|
|
105
|
-
interface PreparedReferencedMessage {
|
|
106
|
-
/** Readable message content after host mention tokens are removed. */
|
|
107
|
-
content: ContentBlock[]
|
|
108
|
-
/** Aggregated untrusted snapshot, absent when the message has no references. */
|
|
109
|
-
additionalContext?: UserMessage
|
|
110
|
-
}
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## Errors
|
|
114
|
-
|
|
115
|
-
`SessionReferenceError.code` separates invalid configuration or input, self-reference, count limits, source-read failure, budget failure, and cancellation. Host protocols map these codes to their own error envelopes without inspecting prompt bytes.
|
|
116
|
-
|
|
117
|
-
```ts type-equiv
|
|
118
|
-
/** Stable failure codes exposed to host adapters. */
|
|
119
|
-
type SessionReferenceErrorCode =
|
|
120
|
-
| 'SESSION_REFERENCE_INVALID_CONFIG'
|
|
121
|
-
| 'SESSION_REFERENCE_INVALID_REFERENCE'
|
|
122
|
-
| 'SESSION_REFERENCE_SELF_REFERENCE'
|
|
123
|
-
| 'SESSION_REFERENCE_TOO_MANY'
|
|
124
|
-
| 'SESSION_REFERENCE_READ_FAILED'
|
|
125
|
-
| 'SESSION_REFERENCE_BUDGET_EXCEEDED'
|
|
126
|
-
| 'SESSION_REFERENCE_CANCELLED'
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
130
|
-
|
|
131
|
-
<a id="cordis-surface"></a>
|
|
132
|
-
|
|
133
|
-
## Cordis API
|
|
134
|
-
|
|
135
|
-
Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
|
|
136
|
-
|
|
137
|
-
<a id="ctxfilereferences--filereferenceservice-abstract-seam"></a>
|
|
138
|
-
|
|
139
|
-
### `ctx.fileReferences` — `FileReferenceService` (abstract seam)
|
|
140
|
-
|
|
141
|
-
Host capability for cancellable file-reference discovery.
|
|
142
|
-
|
|
143
|
-
```ts cordis-catalog
|
|
144
|
-
/**
|
|
145
|
-
* List file and directory candidates for one agent's working directory.
|
|
146
|
-
* @param agent - target agent whose session cwd bounds discovery.
|
|
147
|
-
* @param query - path text following `@` or `@"`.
|
|
148
|
-
* @param signal - caller cancellation.
|
|
149
|
-
* @returns deterministic path-only candidates.
|
|
150
|
-
*/
|
|
151
|
-
abstract list( agent: Agent, query: string, signal: AbortSignal, ): Promise<FileReferenceCandidate[]>
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Types: [Agent](./core.md)
|
|
155
|
-
|
|
156
|
-
Source: [`packages/context/file-reference/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/file-reference/src/index.ts)
|
|
157
|
-
|
|
158
|
-
<a id="ctxsessionfilereferences--sessionfilereferences"></a>
|
|
159
|
-
|
|
160
|
-
### `ctx.sessionFileReferences` — `SessionFileReferences`
|
|
161
|
-
|
|
162
|
-
Host Remote adapter over the composed file-reference provider.
|
|
163
|
-
|
|
164
|
-
```ts cordis-catalog
|
|
165
|
-
/**
|
|
166
|
-
* List file and directory candidates for one Agent's working directory.
|
|
167
|
-
* @param agent - target Agent resolved from the Session identity on the wire.
|
|
168
|
-
* @param query - path text following `@` or `@"`.
|
|
169
|
-
* @param signal - caller cancellation.
|
|
170
|
-
* @returns deterministic path-only candidates from the composed provider.
|
|
171
|
-
*/
|
|
172
|
-
@Remote list( agent: Agent, query: string, signal: AbortSignal, ): Promise<FileReferenceCandidate[]>
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
Types: [Agent](./core.md)
|
|
176
|
-
|
|
177
|
-
Source: [`packages/api/session-controller/src/file-references.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/session-controller/src/file-references.ts)
|
|
178
|
-
|
|
179
|
-
<a id="ctxsessionreferenceresolver--sessionreferenceresolver"></a>
|
|
180
|
-
|
|
181
|
-
### `ctx.sessionReferenceResolver` — `SessionReferenceResolver`
|
|
182
|
-
|
|
183
|
-
Exact-read consumer that prepares immutable cross-session message context.
|
|
184
|
-
|
|
185
|
-
```ts cordis-catalog
|
|
186
|
-
/**
|
|
187
|
-
* List reference candidates, ranked by working-directory affinity.
|
|
188
|
-
*
|
|
189
|
-
* Discovery runs at keystroke rate, so titles and subagent labels only ever
|
|
190
|
-
* come from projection reads; sessions without either fall back to their id.
|
|
191
|
-
* @param agent - target agent; self is excluded and its cwd drives ranking.
|
|
192
|
-
* @param query - optional
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
* @
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
* @param
|
|
206
|
-
* @
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
* @param
|
|
219
|
-
* @param
|
|
220
|
-
* @param
|
|
221
|
-
* @
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
1
|
+
---
|
|
2
|
+
editSource: "docs/subsystems/session-reference.md"
|
|
3
|
+
rawMarkdownPath: "en/reference/subsystems/session-reference.md"
|
|
4
|
+
outline: [2,3]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Session References
|
|
8
|
+
|
|
9
|
+
Host-backed file discovery plus structured cross-session reference requests and prepared message contexts. The [file-reference contract](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/file-reference) owns path-only completion records and grammar; the [session-reference contract](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/session-reference) defines canonical URIs, current-surface projection, tag-safe JSON and byte retention, stable errors, and the untrusted model prompt. Host adapters use these types instead of passing their UI mention syntax into the agent core.
|
|
10
|
+
|
|
11
|
+
Sources: [`packages/context/file-reference/src/types.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/file-reference/src/types.ts) · [`packages/context/session-reference/src/types.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/session-reference/src/types.ts)
|
|
12
|
+
|
|
13
|
+
## File candidates
|
|
14
|
+
|
|
15
|
+
`FileReferenceCandidate` is the path-only discovery result. The addressed agent supplies the working-directory scope; providers decide ranking and namespace access without reading file contents.
|
|
16
|
+
|
|
17
|
+
```ts type-equiv
|
|
18
|
+
/** One path-only completion candidate inside the target session cwd. */
|
|
19
|
+
interface FileReferenceCandidate {
|
|
20
|
+
/** User-facing path accepted by normal prompts and filesystem tools. */
|
|
21
|
+
path: string
|
|
22
|
+
/** Directories keep completion open; files finish the mention. */
|
|
23
|
+
kind: 'file' | 'directory'
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Inputs and candidates
|
|
28
|
+
|
|
29
|
+
`SessionReferenceInput` is the host-independent selection. The id is authoritative; the label is display metadata carried into the snapshot.
|
|
30
|
+
|
|
31
|
+
```ts type-equiv
|
|
32
|
+
/** One source session selected by a host. */
|
|
33
|
+
interface SessionReferenceInput {
|
|
34
|
+
/** Opaque source session identity. */
|
|
35
|
+
sessionId: SessionId
|
|
36
|
+
/** Optional user-facing mention label. */
|
|
37
|
+
label?: string
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`SessionReferenceCandidate` is host-facing discovery output. Its `label` uses the latest Session title when present, while its optional display text prefers a subagent's durable creation label; filtering searches both alongside Session id and cwd, never transcript text. The Remote candidate's canonical mention uses the display text when present.
|
|
42
|
+
|
|
43
|
+
```ts type-equiv
|
|
44
|
+
/** One host-facing candidate from exact session metadata. */
|
|
45
|
+
interface SessionReferenceCandidate {
|
|
46
|
+
/** Opaque source session identity. */
|
|
47
|
+
sessionId: SessionId
|
|
48
|
+
/** Latest log-backed title, falling back to the opaque session id. */
|
|
49
|
+
label: string
|
|
50
|
+
/** Display and canonical-mention text, preferring a subagent's durable creation label over {@link label}. */
|
|
51
|
+
displayTitle?: string
|
|
52
|
+
/** Source session working directory, when recorded. */
|
|
53
|
+
cwd?: string
|
|
54
|
+
/**
|
|
55
|
+
* True when {@link SessionReferenceCandidate.cwd} is recorded and equals the
|
|
56
|
+
* requesting agent's. Hosts that only surface a distinguishing location
|
|
57
|
+
* read this instead of comparing paths they never received.
|
|
58
|
+
*/
|
|
59
|
+
sameWorkspace: boolean
|
|
60
|
+
/** Source session creation time in Unix epoch milliseconds. */
|
|
61
|
+
createdAt: number
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The `sessionReferenceResolver/candidates` Remote method serves the same discovery to browser consumers and attaches each candidate's canonical prompt mention.
|
|
66
|
+
|
|
67
|
+
```ts type-equiv
|
|
68
|
+
/** One discovery candidate carrying its canonical prompt mention. */
|
|
69
|
+
interface SessionReferenceMentionCandidate extends SessionReferenceCandidate {
|
|
70
|
+
/** Canonical `@[label](dsh-session:…)` mention serialized into the prompt draft. */
|
|
71
|
+
mention: string
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Prepared messages
|
|
76
|
+
|
|
77
|
+
Preparation preserves readable current-message content and returns at most one aggregated context. Its durable source records keep `capturedThroughSeq` as a coordinate in the referenced Session's original generation; they never reinterpret it as a seq in the containing Session. `capturedFormatVersion` records that generation, with absence meaning released format v0.
|
|
78
|
+
|
|
79
|
+
```ts type-equiv
|
|
80
|
+
/** Durable source session, cited event seqs, and snapshot facts for prepared cross-session context. */
|
|
81
|
+
interface SessionReferenceSource {
|
|
82
|
+
kind: 'session-reference'
|
|
83
|
+
/** Material lifted out of another session's log (`recall` context form). */
|
|
84
|
+
form: 'recall'
|
|
85
|
+
version: 1
|
|
86
|
+
references: {
|
|
87
|
+
sessionId: string
|
|
88
|
+
label: string
|
|
89
|
+
/** Source Session format generation; absence identifies version 0. */
|
|
90
|
+
capturedFormatVersion?: number
|
|
91
|
+
capturedThroughSeq: OptionalSessionSeq
|
|
92
|
+
compacted: boolean
|
|
93
|
+
originalMessages: number
|
|
94
|
+
retainedMessages: number
|
|
95
|
+
omittedMessages: number
|
|
96
|
+
omittedBytes: number
|
|
97
|
+
truncated: boolean
|
|
98
|
+
inputIndex: number
|
|
99
|
+
}[]
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
```ts type-equiv
|
|
104
|
+
/** Direct message content and optional referenced-session context. */
|
|
105
|
+
interface PreparedReferencedMessage {
|
|
106
|
+
/** Readable message content after host mention tokens are removed. */
|
|
107
|
+
content: ContentBlock[]
|
|
108
|
+
/** Aggregated untrusted snapshot, absent when the message has no references. */
|
|
109
|
+
additionalContext?: UserMessage
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Errors
|
|
114
|
+
|
|
115
|
+
`SessionReferenceError.code` separates invalid configuration or input, self-reference, count limits, source-read failure, budget failure, and cancellation. Host protocols map these codes to their own error envelopes without inspecting prompt bytes.
|
|
116
|
+
|
|
117
|
+
```ts type-equiv
|
|
118
|
+
/** Stable failure codes exposed to host adapters. */
|
|
119
|
+
type SessionReferenceErrorCode =
|
|
120
|
+
| 'SESSION_REFERENCE_INVALID_CONFIG'
|
|
121
|
+
| 'SESSION_REFERENCE_INVALID_REFERENCE'
|
|
122
|
+
| 'SESSION_REFERENCE_SELF_REFERENCE'
|
|
123
|
+
| 'SESSION_REFERENCE_TOO_MANY'
|
|
124
|
+
| 'SESSION_REFERENCE_READ_FAILED'
|
|
125
|
+
| 'SESSION_REFERENCE_BUDGET_EXCEEDED'
|
|
126
|
+
| 'SESSION_REFERENCE_CANCELLED'
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
<!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
|
|
130
|
+
|
|
131
|
+
<a id="cordis-surface"></a>
|
|
132
|
+
|
|
133
|
+
## Cordis API
|
|
134
|
+
|
|
135
|
+
Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
|
|
136
|
+
|
|
137
|
+
<a id="ctxfilereferences--filereferenceservice-abstract-seam"></a>
|
|
138
|
+
|
|
139
|
+
### `ctx.fileReferences` — `FileReferenceService` (abstract seam)
|
|
140
|
+
|
|
141
|
+
Host capability for cancellable file-reference discovery.
|
|
142
|
+
|
|
143
|
+
```ts cordis-catalog
|
|
144
|
+
/**
|
|
145
|
+
* List file and directory candidates for one agent's working directory.
|
|
146
|
+
* @param agent - target agent whose session cwd bounds discovery.
|
|
147
|
+
* @param query - path text following `@` or `@"`.
|
|
148
|
+
* @param signal - caller cancellation.
|
|
149
|
+
* @returns deterministic path-only candidates.
|
|
150
|
+
*/
|
|
151
|
+
abstract list( agent: Agent, query: string, signal: AbortSignal, ): Promise<FileReferenceCandidate[]>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Types: [Agent](./core.md)
|
|
155
|
+
|
|
156
|
+
Source: [`packages/context/file-reference/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/file-reference/src/index.ts)
|
|
157
|
+
|
|
158
|
+
<a id="ctxsessionfilereferences--sessionfilereferences"></a>
|
|
159
|
+
|
|
160
|
+
### `ctx.sessionFileReferences` — `SessionFileReferences`
|
|
161
|
+
|
|
162
|
+
Host Remote adapter over the composed file-reference provider.
|
|
163
|
+
|
|
164
|
+
```ts cordis-catalog
|
|
165
|
+
/**
|
|
166
|
+
* List file and directory candidates for one Agent's working directory.
|
|
167
|
+
* @param agent - target Agent resolved from the Session identity on the wire.
|
|
168
|
+
* @param query - path text following `@` or `@"`.
|
|
169
|
+
* @param signal - caller cancellation.
|
|
170
|
+
* @returns deterministic path-only candidates from the composed provider.
|
|
171
|
+
*/
|
|
172
|
+
@Remote list( agent: Agent, query: string, signal: AbortSignal, ): Promise<FileReferenceCandidate[]>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Types: [Agent](./core.md)
|
|
176
|
+
|
|
177
|
+
Source: [`packages/api/session-controller/src/file-references.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/session-controller/src/file-references.ts)
|
|
178
|
+
|
|
179
|
+
<a id="ctxsessionreferenceresolver--sessionreferenceresolver"></a>
|
|
180
|
+
|
|
181
|
+
### `ctx.sessionReferenceResolver` — `SessionReferenceResolver`
|
|
182
|
+
|
|
183
|
+
Exact-read consumer that prepares immutable cross-session message context.
|
|
184
|
+
|
|
185
|
+
```ts cordis-catalog
|
|
186
|
+
/**
|
|
187
|
+
* List reference candidates, ranked by working-directory affinity.
|
|
188
|
+
*
|
|
189
|
+
* Discovery runs at keystroke rate, so titles and subagent labels only ever
|
|
190
|
+
* come from projection reads; sessions without either fall back to their id.
|
|
191
|
+
* @param agent - target agent; self is excluded and its cwd drives ranking.
|
|
192
|
+
* @param query - optional search text: label and display title match
|
|
193
|
+
* fuzzily, session id and working directory as substrings. Matches keep the
|
|
194
|
+
* working-directory affinity order; relevance breaks ties within it.
|
|
195
|
+
* @param limit - optional positive result cap.
|
|
196
|
+
* @param signal - optional cancellation boundary for host autocomplete teardown.
|
|
197
|
+
* @returns candidates with canonical mention labels and presentation titles.
|
|
198
|
+
*/
|
|
199
|
+
async listCandidates( agent: Agent, query: string = '', limit: number = this.config.candidateLimit, signal?: AbortSignal, ): Promise<SessionReferenceCandidate[]>
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Remote face of {@link listCandidates}: the configured candidate limit
|
|
203
|
+
* applies, and every candidate carries the canonical mention a host inserts
|
|
204
|
+
* into the prompt draft.
|
|
205
|
+
* @param agent - target agent; self is excluded and its cwd drives ranking.
|
|
206
|
+
* @param query - optional search text, matched as {@link listCandidates} matches it.
|
|
207
|
+
* @param signal - caller cancellation.
|
|
208
|
+
* @returns mention-carrying candidates in rank order.
|
|
209
|
+
*/
|
|
210
|
+
@Remote('candidates') async remoteExportCandidates( agent: Agent, query: string, signal: AbortSignal, ): Promise<SessionReferenceMentionCandidate[]>
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Snapshot all references for one accepted direct message and return one aggregated durable context.
|
|
214
|
+
* Automatic budgets use the context capacity of `route`.
|
|
215
|
+
* Missing model capacity or adapter uses 64 KiB; other metadata lookup failures and cancellation reject preparation.
|
|
216
|
+
* Truncated previews include omission facts and a full-snapshot spill locator, or an explicit unavailable notice.
|
|
217
|
+
* Cancellation prevents context publication, including when storage completes after cancellation.
|
|
218
|
+
* @param agent - target agent; references to it are rejected.
|
|
219
|
+
* @param content - already host-normalized readable message content.
|
|
220
|
+
* @param references - structured source sessions in mention order.
|
|
221
|
+
* @param route - provider and model whose context capacity sizes the previews.
|
|
222
|
+
* @param signal - optional cancellation boundary for the active turn.
|
|
223
|
+
* @returns detached content and optional referenced-session context.
|
|
224
|
+
*/
|
|
225
|
+
async prepare( agent: Agent, content: ContentBlock[], references: SessionReferenceInput[], route: Readonly<Pick<LlmCallConfig, 'provider' | 'model'>>, signal?: AbortSignal, ): Promise<PreparedReferencedMessage>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Types: [Agent](./core.md) · [ContentBlock](./llm-streaming.md) · [LlmCallConfig](./llm-streaming.md)
|
|
229
|
+
|
|
230
|
+
Source: [`packages/context/session-reference/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/session-reference/src/index.ts)
|
|
231
|
+
<!-- END GENERATED cordis-surface -->
|