@deepseek-ai/dsh-agent-presets 0.1.5-alpha.1 → 0.1.5-alpha.2
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/README.i18n.yaml +2 -2
- package/README.md +2 -0
- package/README.zh.md +2 -0
- package/lib/typert.host.js +14 -2
- package/package.json +28 -28
- package/presets/cordis/agent.cordis.yml +3 -0
- package/presets/minimal/agent.cordis.yml +5 -24
- package/presets/minimal/preset.yml +1 -1
- package/presets/ptc/agent.cordis.yml +3 -0
- package/presets/standard/agent.cordis.yml +3 -0
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write packages/preset/agent-presets/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 6ef3374a5f1ae6b83005073f80d63d156ee92f9c
|
|
6
|
+
README.zh.md: a1be6d634e592126711befad4ffcb06ca0bdc26c
|
package/README.md
CHANGED
|
@@ -27,6 +27,8 @@ Use `dsh-agent-presets` to give each session the tools, prompt sections, and ski
|
|
|
27
27
|
|
|
28
28
|
Mount this package in a composition that should give each agent session its own tools, prompt sections, and skills from a preset file. Every session names a preset — explicitly or through the configured default — and is composed from it; without the package, sessions fall back to whatever the host composition mounts.
|
|
29
29
|
|
|
30
|
+
The shipped Web `standard`, `ptc`, and `cordis` presets include [explicit file delivery](../../client/ui-deliverables/README.md#explicit-deliveries). The `minimal` preset keeps its fixed two-tool training configuration.
|
|
31
|
+
|
|
30
32
|
### What a preset gives a session
|
|
31
33
|
|
|
32
34
|
A session composed from a preset runs the plugins that preset's `agent.cordis.yml` names: its tools, prompt sections, and skills. Sessions joined to the same preset share one installed composition, and each session's state stays separate. A child agent (subagent) joins its parent's composition, so it sees the same tools and prompt sections as the agent that spawned it.
|
package/README.zh.md
CHANGED
|
@@ -27,6 +27,8 @@ kind: "package-reference"
|
|
|
27
27
|
|
|
28
28
|
在需要让每个 agent 会话从 preset 文件获得自己的工具、提示词段落与 skill 的组装中挂载本包。每个会话都会命名一个 preset——显式指定或通过配置的默认值——并据此组装;没有本包时,会话只能回退到宿主组装挂载的内容。
|
|
29
29
|
|
|
30
|
+
随附 Web 的 `standard`、`ptc` 与 `cordis` preset 包含[显式文件交付](../../client/ui-deliverables/README.zh.md#explicit-deliveries)。`minimal` preset 保留固定的双工具训练配置。
|
|
31
|
+
|
|
30
32
|
### preset 给会话带来什么
|
|
31
33
|
|
|
32
34
|
从 preset 组装的会话会运行该 preset `agent.cordis.yml` 所列插件:它的工具、提示词段落与 skill。加入同一 preset 的会话共享一份已安装的组装,且各会话的状态彼此隔离。子 agent(subagent)会加入其父方的组装,因此它看到的工具与提示词段落和创建它的 agent 相同。
|
package/lib/typert.host.js
CHANGED
|
@@ -476,6 +476,14 @@ export const TYPERT = {
|
|
|
476
476
|
"name": "EpochHeader",
|
|
477
477
|
"declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n tools?: ToolSchema[];\n}"
|
|
478
478
|
},
|
|
479
|
+
{
|
|
480
|
+
"name": "FeedbackCategory",
|
|
481
|
+
"declaration": "export type FeedbackCategory = 'task-result' | 'instruction-following' | 'product-interaction' | 'service-stability' | 'resource-cost' | 'security-privacy-permission' | 'other';"
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"name": "FeedbackRecord",
|
|
485
|
+
"declaration": "export interface FeedbackRecord {\n readonly text?: string;\n readonly category?: FeedbackCategory;\n}"
|
|
486
|
+
},
|
|
479
487
|
{
|
|
480
488
|
"name": "FileAttachmentRef",
|
|
481
489
|
"declaration": "export interface FileAttachmentRef {\n attachmentId: AttachmentId;\n name: string;\n bytes: number;\n}"
|
|
@@ -578,7 +586,7 @@ export const TYPERT = {
|
|
|
578
586
|
},
|
|
579
587
|
{
|
|
580
588
|
"name": "MessageFeedbackItem",
|
|
581
|
-
"declaration": "export interface MessageFeedbackItem {\n readonly messageId: MessageId;\n readonly rating: MessageFeedbackRating;\n readonly note?: string;\n readonly version: MessageFeedbackVersion;\n readonly createdAt: number;\n readonly updatedAt: number;\n}"
|
|
589
|
+
"declaration": "export interface MessageFeedbackItem {\n readonly messageId: MessageId;\n readonly rating: MessageFeedbackRating;\n readonly note?: string;\n readonly category?: FeedbackCategory;\n readonly version: MessageFeedbackVersion;\n readonly createdAt: number;\n readonly updatedAt: number;\n}"
|
|
582
590
|
},
|
|
583
591
|
{
|
|
584
592
|
"name": "MessageFeedbackPut",
|
|
@@ -678,7 +686,7 @@ export const TYPERT = {
|
|
|
678
686
|
},
|
|
679
687
|
{
|
|
680
688
|
"name": "SessionEventMap",
|
|
681
|
-
"declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
|
|
689
|
+
"declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'feedback/record': FeedbackRecord;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
|
|
682
690
|
},
|
|
683
691
|
{
|
|
684
692
|
"name": "SessionEventType",
|
|
@@ -736,6 +744,10 @@ export const TYPERT = {
|
|
|
736
744
|
"name": "StreamChunk",
|
|
737
745
|
"declaration": "export type StreamChunk = { type: 'block-start'; index: number; blockType: ContentBlockType; } | { type: 'text-delta'; index: number; text: string; } | { type: 'reasoning-delta'; index: number; text: string; } | { type: 'tool-call-delta'; index: number; id: ToolCallId; name?: string; argumentsDelta: string; } | { type: 'block-end'; index: number; block: ContentBlock; } | { type: 'usage'; usage: TokenUsage; } | { type: 'finish'; reason: FinishReason; replayState?: ReplayEnvelope; };"
|
|
738
746
|
},
|
|
747
|
+
{
|
|
748
|
+
"name": "SubagentCatalogEvent",
|
|
749
|
+
"declaration": "export type SubagentCatalogEvent = { readonly version: 0; readonly childId: SessionId; readonly childCreatedAt: number; } & ({ readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; });"
|
|
750
|
+
},
|
|
739
751
|
{
|
|
740
752
|
"name": "SubagentDescriptorBase",
|
|
741
753
|
"declaration": "export interface SubagentDescriptorBase {\n readonly version: number;\n readonly mode: 'one-shot' | 'continuable';\n readonly provider: string;\n}"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-agent-presets",
|
|
3
3
|
"description": "Per-session agent composition from preset cordis.yml files for the DeepSeek Harness",
|
|
4
|
-
"version": "0.1.5-alpha.
|
|
4
|
+
"version": "0.1.5-alpha.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -56,18 +56,18 @@
|
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"@deepseek-ai/cordis-plugin-include": "^1.0.7",
|
|
58
58
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.3",
|
|
59
|
-
"@deepseek-ai/dsh-agent": "^0.1.5-alpha.
|
|
60
|
-
"@deepseek-ai/dsh-atomic-write": "^0.1.5-alpha.
|
|
61
|
-
"@deepseek-ai/dsh-invariants": "^0.1.5-alpha.
|
|
62
|
-
"@deepseek-ai/dsh-home-paths": "^0.1.5-alpha.
|
|
63
|
-
"@deepseek-ai/dsh-scope": "^0.1.5-alpha.
|
|
64
|
-
"@deepseek-ai/dsh-session": "^0.1.5-alpha.
|
|
65
|
-
"@deepseek-ai/dsh-session-projection": "^0.1.5-alpha.
|
|
66
|
-
"@deepseek-ai/dsh-settings": "^0.1.5-alpha.
|
|
67
|
-
"@deepseek-ai/dsh-
|
|
68
|
-
"@deepseek-ai/dsh-
|
|
69
|
-
"@deepseek-ai/
|
|
70
|
-
"@deepseek-ai/
|
|
59
|
+
"@deepseek-ai/dsh-agent": "^0.1.5-alpha.2",
|
|
60
|
+
"@deepseek-ai/dsh-atomic-write": "^0.1.5-alpha.2",
|
|
61
|
+
"@deepseek-ai/dsh-invariants": "^0.1.5-alpha.2",
|
|
62
|
+
"@deepseek-ai/dsh-home-paths": "^0.1.5-alpha.2",
|
|
63
|
+
"@deepseek-ai/dsh-scope": "^0.1.5-alpha.2",
|
|
64
|
+
"@deepseek-ai/dsh-session": "^0.1.5-alpha.2",
|
|
65
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.5-alpha.2",
|
|
66
|
+
"@deepseek-ai/dsh-settings": "^0.1.5-alpha.2",
|
|
67
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.2",
|
|
68
|
+
"@deepseek-ai/dsh-tools": "^0.1.5-alpha.2",
|
|
69
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.2",
|
|
70
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"js-yaml": "^4.1.0",
|
|
@@ -75,23 +75,23 @@
|
|
|
75
75
|
"@deepseek-ai/schemastery": "^3.18.2"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
|
+
"@deepseek-ai/cordis-plugin-group": "^1.0.2",
|
|
78
79
|
"@deepseek-ai/cordis-plugin-include": "^1.0.7",
|
|
79
80
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.3",
|
|
80
|
-
"@deepseek-ai/dsh-agent": "^0.1.5-alpha.
|
|
81
|
-
"@deepseek-ai/dsh-agent-loop": "^0.1.5-alpha.
|
|
82
|
-
"@deepseek-ai/
|
|
83
|
-
"@deepseek-ai/dsh-
|
|
84
|
-
"@deepseek-ai/dsh-
|
|
85
|
-
"@deepseek-ai/dsh-
|
|
86
|
-
"@deepseek-ai/dsh-session": "^0.1.5-alpha.
|
|
87
|
-
"@deepseek-ai/dsh-
|
|
88
|
-
"@deepseek-ai/dsh-settings": "^0.1.5-alpha.
|
|
89
|
-
"@deepseek-ai/dsh-
|
|
90
|
-
"@deepseek-ai/dsh-
|
|
91
|
-
"@deepseek-ai/dsh-
|
|
81
|
+
"@deepseek-ai/dsh-agent": "^0.1.5-alpha.2",
|
|
82
|
+
"@deepseek-ai/dsh-agent-loop": "^0.1.5-alpha.2",
|
|
83
|
+
"@deepseek-ai/dsh-llm": "^0.1.5-alpha.2",
|
|
84
|
+
"@deepseek-ai/dsh-home-paths": "^0.1.5-alpha.2",
|
|
85
|
+
"@deepseek-ai/dsh-scope": "^0.1.5-alpha.2",
|
|
86
|
+
"@deepseek-ai/dsh-session": "^0.1.5-alpha.2",
|
|
87
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.5-alpha.2",
|
|
88
|
+
"@deepseek-ai/dsh-invariants": "^0.1.5-alpha.2",
|
|
89
|
+
"@deepseek-ai/dsh-settings": "^0.1.5-alpha.2",
|
|
90
|
+
"@deepseek-ai/dsh-settings-file": "^0.1.5-alpha.2",
|
|
91
|
+
"@deepseek-ai/dsh-tools": "^0.1.5-alpha.2",
|
|
92
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.2",
|
|
93
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.5-alpha.2",
|
|
92
94
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
93
|
-
"@deepseek-ai/dsh-
|
|
94
|
-
"@deepseek-ai/dsh-home-paths": "^0.1.5-alpha.1",
|
|
95
|
-
"@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.1"
|
|
95
|
+
"@deepseek-ai/dsh-atomic-write": "^0.1.5-alpha.2"
|
|
96
96
|
}
|
|
97
97
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# The `minimal` agent preset: a fixed-prompt,
|
|
1
|
+
# The `minimal` agent preset: a fixed-prompt, single-tool coding-agent composition.
|
|
2
2
|
#
|
|
3
3
|
# The persona is the complete system prompt, so global identity, Web orientation,
|
|
4
4
|
# tool guidance, and later assembly listeners cannot add prompt text. Runtime
|
|
5
|
-
# context snapshots are suppressed for this preset, and the model
|
|
6
|
-
# the persistent shell (`bash` on POSIX, `pwsh` on win32)
|
|
7
|
-
#
|
|
5
|
+
# context snapshots are suppressed for this preset, and the model receives only
|
|
6
|
+
# the persistent shell (`bash` on POSIX, `pwsh` on win32). Context compaction is
|
|
7
|
+
# absent.
|
|
8
8
|
|
|
9
9
|
- id: persona
|
|
10
10
|
name: '@deepseek-ai/dsh-persona'
|
|
@@ -41,8 +41,7 @@
|
|
|
41
41
|
description: |-
|
|
42
42
|
Run commands in a bash shell
|
|
43
43
|
* When invoking this tool, the contents of the "command" parameter does NOT need to be XML-escaped.
|
|
44
|
-
*
|
|
45
|
-
* You do have access to a mirror of common linux and python packages via apt and pip.
|
|
44
|
+
* Network access depends on the task environment. Prefer configured mirrors/proxies when they are available.
|
|
46
45
|
* State is persistent across command calls and discussions with the user.
|
|
47
46
|
* To inspect a particular line range of a file, e.g. lines 10-25, try 'sed -n 10,25p /path/to/the/file'.
|
|
48
47
|
* Please avoid commands that may produce a very large amount of output.
|
|
@@ -68,21 +67,3 @@
|
|
|
68
67
|
* Use native Windows paths (C:\...) and $env:NAME variables; this is PowerShell, not bash.
|
|
69
68
|
* Please avoid commands that may produce a very large amount of output.
|
|
70
69
|
* Please run long lived commands in the background, e.g. 'Start-Job' or start a server with Start-Process.
|
|
71
|
-
|
|
72
|
-
# The bare local filesystem shadows the host's sandboxed provider only for this
|
|
73
|
-
# preset. The editor shares that realm and requires absolute paths.
|
|
74
|
-
- id: filesystem
|
|
75
|
-
name: cordis:group
|
|
76
|
-
group: true
|
|
77
|
-
isolate:
|
|
78
|
-
fs: true
|
|
79
|
-
config:
|
|
80
|
-
- id: fs-local
|
|
81
|
-
name: '@deepseek-ai/dsh-fs-local'
|
|
82
|
-
config:
|
|
83
|
-
cwd: !!js process.env.DSH_CWD ?? process.cwd()
|
|
84
|
-
|
|
85
|
-
- id: str-replace-editor
|
|
86
|
-
name: '@deepseek-ai/dsh-tool-str-replace-editor'
|
|
87
|
-
config:
|
|
88
|
-
maxOutputChars: 16000
|