@deepseek-ai/dsh-persona 0.1.1-rc.1 → 0.1.2-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 +94 -8
- package/README.zh.md +99 -13
- package/lib/index.js +3 -3
- package/lib/types/index.d.ts +2 -2
- package/package.json +9 -9
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/persona/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: a136f4fa901bdb7a21daa43ddada7d3957e619d0
|
|
6
|
+
README.zh.md: c1773daeeaf9de0851636bd31c8c72e363bd8d7d
|
package/README.md
CHANGED
|
@@ -1,16 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
description: "The composable persona row presets mount to give one agent its own system-prompt persona, for users and maintainers configuring or debugging it."
|
|
3
|
+
kind: "package-reference"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# @deepseek-ai/dsh-persona
|
|
2
7
|
|
|
3
8
|
English | [中文](README.zh.md)
|
|
4
9
|
|
|
5
|
-
|
|
10
|
+
## Summary
|
|
11
|
+
|
|
12
|
+
`dsh-persona` gives one agent its own persona: a preset mounts this composable row to register the `deployment:persona` system-prompt section, shadowing the deployment-wide persona for that session. It can also make that persona the session's complete system prompt, suppressing every other section, and can turn off dynamic runtime-context snapshots for the session. Mount it inside a preset composition — mounting it globally collides with the prompt registry's own persona registration and fails loud. Without this row, a preset could change an agent's tools but never its identity.
|
|
13
|
+
|
|
14
|
+
## Table of Contents
|
|
15
|
+
|
|
16
|
+
- [Use this package](#use-this-package)
|
|
17
|
+
- [Understand the implementation](#understand-the-implementation)
|
|
18
|
+
- [Further Exploration](#further-exploration)
|
|
19
|
+
- [Model Experience](#model-experience)
|
|
20
|
+
- [Known Limitations and Deferred Work](#known-limitations-and-deferred-work)
|
|
21
|
+
- [Dev Note](#dev-note)
|
|
6
22
|
|
|
7
|
-
|
|
23
|
+
-----
|
|
8
24
|
|
|
9
|
-
|
|
25
|
+
<a id="use-this-package"></a>
|
|
26
|
+
## Use this package
|
|
10
27
|
|
|
11
|
-
|
|
28
|
+
Mount this row inside a preset composition to give that preset's sessions their own persona. The row needs an agent scope: mounted outside one it collides with the prompt registry's own `deployment:persona` registration and fails loud — the deployment persona already has an owner, and the whole point of this row is to shadow it for one agent.
|
|
12
29
|
|
|
13
|
-
|
|
30
|
+
### Configuration
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
- name: '@deepseek-ai/dsh-persona'
|
|
34
|
+
config:
|
|
35
|
+
text: You are a terse systems engineer who answers in short commands.
|
|
36
|
+
```
|
|
14
37
|
|
|
15
38
|
| Field | Default | Meaning |
|
|
16
39
|
|---|---|---|
|
|
@@ -18,15 +41,62 @@ Mounting this row outside an agent scope collides with the registry's own `deplo
|
|
|
18
41
|
| `complete` | `false` | Restore this persona after assembly as the only system-prompt section |
|
|
19
42
|
| `includeRuntimeContext` | `true` | Include dynamic runtime-context snapshots for this agent scope; false suppresses every context contribution without disabling its owning services |
|
|
20
43
|
|
|
21
|
-
|
|
44
|
+
The generated [configuration catalog](../../../docs/config-catalog.md#deepseek-aidsh-persona) is the exhaustive source for every accepted field and its JSDoc.
|
|
45
|
+
|
|
46
|
+
### Persona behavior
|
|
47
|
+
|
|
48
|
+
The persona `text` is a template: complete `{{…}}` groups resolve strictly against registered prompt variables when the prompt renders, not when it assembles. Empty text still occupies the slot — it shadows the deployment persona away entirely, then disappears at render. With `complete: true`, assembly still resolves contexts, tools, variables, and cooperative listeners, but the prompt registry restores this exact persona as the sole section; no identity, tool guidance, or listener can append prompt text. With `includeRuntimeContext: false`, context providers are not evaluated for this scope and contexts added by assembly listeners are discarded.
|
|
49
|
+
|
|
50
|
+
### When to use it
|
|
51
|
+
|
|
52
|
+
Use this row when a preset must change an agent's identity and not only its tools. The deployment-wide persona itself is configured on the `dsh-system-prompt` row, not here; this row exists only to shadow or replace it for one agent.
|
|
53
|
+
|
|
54
|
+
-----
|
|
55
|
+
|
|
56
|
+
<a id="understand-the-implementation"></a>
|
|
57
|
+
## Understand the implementation
|
|
58
|
+
|
|
59
|
+
<details>
|
|
60
|
+
<summary>Implementation internals — click to expand</summary>
|
|
61
|
+
|
|
62
|
+
### How the row registers
|
|
63
|
+
|
|
64
|
+
`apply` registers one prompt section through `ctx.systemPrompt.section({ name: PERSONA_SECTION, order: ctx.systemPrompt.getSectionOrder('DEPLOYMENT_PERSONA'), text, complete? })` inside the mounting context's scope, so the section lands at order 0 — immediately after the harness identity opener — and only for agents joined to the preset. The shared section name makes a preset persona shadow the deployment's instead of landing beside it, while the service-owned order lookup keeps repository contributors on the central allocation. `includeRuntimeContext: false` calls `ctx.systemPrompt.suppressRuntimeContext()`.
|
|
65
|
+
|
|
66
|
+
### Why the row is scope-only
|
|
67
|
+
|
|
68
|
+
`dsh-system-prompt` owns the global persona as its own config and registers `deployment:persona` unconditionally, so a process has exactly one. This row collides with that registration outside an agent scope, by design: the row exists because a preset cannot mount the prompt registry itself.
|
|
22
69
|
|
|
70
|
+
### Source map
|
|
71
|
+
|
|
72
|
+
| File | Role |
|
|
73
|
+
|---|---|
|
|
74
|
+
| [`src/index.ts`](src/index.ts) | Plugin entry: `Config` schema, persona section registration, runtime-context suppression |
|
|
75
|
+
| [`src/invariant.ts`](src/invariant.ts) | Invariant companion (no runtime invariant; the prompt registry owns identity, complete-prompt enforcement, and disposal) |
|
|
76
|
+
|
|
77
|
+
</details>
|
|
78
|
+
|
|
79
|
+
-----
|
|
80
|
+
|
|
81
|
+
<a id="further-exploration"></a>
|
|
82
|
+
## Further Exploration
|
|
83
|
+
|
|
84
|
+
Read these pages when the package-level contract is not enough; they move from the preset composition to the prompt registry this row feeds.
|
|
85
|
+
|
|
86
|
+
- [agent-presets package](../agent-presets/README.md) — the preset composition this row mounts into.
|
|
87
|
+
- [System prompt subsystem](../../../docs/subsystems/system-prompt.md) — sections, assembly, and the persona slot this row shadows.
|
|
88
|
+
- [Generated configuration catalog](../../../docs/config-catalog.md#deepseek-aidsh-persona) — every accepted config field and its source declaration.
|
|
89
|
+
|
|
90
|
+
-----
|
|
91
|
+
|
|
92
|
+
<a id="model-experience"></a>
|
|
23
93
|
## Model Experience
|
|
24
94
|
|
|
25
95
|
### The persona section
|
|
26
96
|
|
|
27
97
|
#### What the model sees
|
|
28
98
|
|
|
29
|
-
The `deployment:persona` section at order 0, immediately after the harness identity opener, carrying exactly this row's configured `text` with prompt variables resolved. For an agent whose preset mounts this row, it replaces whatever persona the deployment configured. In complete mode, the model sees only this rendered section as its system prompt. Runtime context remains enabled by default
|
|
99
|
+
The `deployment:persona` section at order 0, immediately after the harness identity opener, carrying exactly this row's configured `text` with prompt variables resolved. For an agent whose preset mounts this row, it replaces whatever persona the deployment configured. In complete mode, the model sees only this rendered section as its system prompt. Runtime context remains enabled by default; when disabled, a fresh agent receives no runtime-context snapshot from sandbox policy, approval policy, delegation, or another system-prompt context provider.
|
|
30
100
|
|
|
31
101
|
#### Token effect
|
|
32
102
|
|
|
@@ -38,4 +108,20 @@ Prefix-stable for the life of an agent — the row mounts once, before the agent
|
|
|
38
108
|
|
|
39
109
|
## Known Limitations and Deferred Work
|
|
40
110
|
|
|
111
|
+
<a id="known-limitations-and-deferred-work"></a>
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
These limits define when the row is a poor fit. They are current package constraints, not a task backlog.
|
|
115
|
+
|
|
41
116
|
- **No global mount** — the prompt registry owns the unscoped persona slot, so this row is usable only from a scoped composition. A deployment-wide persona change belongs in the `system-prompt` row's own config.
|
|
117
|
+
- **Runtime-context suppression is all-or-nothing** — `includeRuntimeContext: false` turns off every context contribution for the scope, including sandbox policy, approval policy, and delegation; there is no per-provider filter.
|
|
118
|
+
|
|
119
|
+
<a id="dev-note"></a>
|
|
120
|
+
### Dev Note
|
|
121
|
+
|
|
122
|
+
<details>
|
|
123
|
+
<summary>Working context for maintainers — click to expand</summary>
|
|
124
|
+
|
|
125
|
+
None.
|
|
126
|
+
|
|
127
|
+
</details>
|
package/README.zh.md
CHANGED
|
@@ -1,16 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
description: "preset 挂载的可组装人设行,让单个 agent 拥有自己的系统提示词人设,供配置或排查它的用户与维护者阅读。"
|
|
3
|
+
kind: "package-reference"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# @deepseek-ai/dsh-persona
|
|
2
7
|
|
|
3
8
|
[English](README.md) | 中文
|
|
4
9
|
|
|
5
|
-
|
|
10
|
+
## 概述
|
|
11
|
+
|
|
12
|
+
`dsh-persona` 让单个 agent(智能体)拥有自己的人设:preset 挂载这一可组装的行来注册 `deployment:persona` 系统提示词段落,为该会话遮蔽部署级人设。它还可以把人设变成该会话的完整系统提示词、抑制所有其他段落,并可为该会话关闭动态 runtime-context 快照。请把它挂在 preset 组装内部——全局挂载会与提示词注册表自身的人设注册相撞并明确报错。没有这一行,preset 能改变 agent 的工具,却永远改不了它的身份。
|
|
13
|
+
|
|
14
|
+
## 目录
|
|
15
|
+
|
|
16
|
+
- [使用本包](#use-this-package)
|
|
17
|
+
- [理解实现](#understand-the-implementation)
|
|
18
|
+
- [进一步探索](#further-exploration)
|
|
19
|
+
- [模型体验](#model-experience)
|
|
20
|
+
- [已知限制与延期工作](#known-limitations-and-deferred-work)
|
|
21
|
+
- [开发备注](#dev-note)
|
|
6
22
|
|
|
7
|
-
|
|
23
|
+
-----
|
|
8
24
|
|
|
9
|
-
|
|
25
|
+
<a id="use-this-package"></a>
|
|
26
|
+
## 使用本包
|
|
10
27
|
|
|
11
|
-
在 agent scope
|
|
28
|
+
在 preset 组装内部挂载本行,让该 preset 的会话拥有自己的人设。本行需要 agent scope:在 scope 之外挂载会与提示词注册表自身的 `deployment:persona` 注册相撞并明确报错——部署级人设已经有归属,而本行存在的意义正是为某一个 agent 遮蔽它。
|
|
12
29
|
|
|
13
|
-
|
|
30
|
+
### 配置
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
- name: '@deepseek-ai/dsh-persona'
|
|
34
|
+
config:
|
|
35
|
+
text: You are a terse systems engineer who answers in short commands.
|
|
36
|
+
```
|
|
14
37
|
|
|
15
38
|
| 字段 | 默认值 | 含义 |
|
|
16
39
|
|---|---|---|
|
|
@@ -18,24 +41,87 @@
|
|
|
18
41
|
| `complete` | `false` | 组装后将此人设恢复为唯一的系统提示词段落 |
|
|
19
42
|
| `includeRuntimeContext` | `true` | 是否为此 agent 作用域包含动态 runtime-context 快照;false 会抑制所有上下文贡献,但不禁用拥有它们的服务 |
|
|
20
43
|
|
|
21
|
-
|
|
44
|
+
生成的[配置目录](../../../docs/config-catalog.zh.md#deepseek-aidsh-persona)是每个受支持字段及其 JSDoc 的穷尽式真源。
|
|
45
|
+
|
|
46
|
+
### 人设行为
|
|
47
|
+
|
|
48
|
+
人设 `text` 是模板:完整的 `{{…}}` 组在提示词**渲染**时(而非组装时)严格解析为已注册的提示词变量。空文本同样占据该槽位——它会把部署级人设整个遮蔽掉,然后在渲染时消失。启用 `complete: true` 时,组装仍会解析上下文、工具、变量与协作式监听器,但提示词注册表会把这确切人设恢复为唯一段落;身份、工具引导或监听器都无法追加提示词文本。启用 `includeRuntimeContext: false` 时,此作用域的上下文提供方不会被求值,组装监听器添加的上下文也会被丢弃。
|
|
49
|
+
|
|
50
|
+
### 何时使用
|
|
51
|
+
|
|
52
|
+
当 preset 必须改变 agent 的身份、而不只是工具时,使用本行。部署级人设本身配置在 `dsh-system-prompt` 行上,不在这里;本行只用于为某一个 agent 遮蔽或替换它。
|
|
53
|
+
|
|
54
|
+
-----
|
|
55
|
+
|
|
56
|
+
<a id="understand-the-implementation"></a>
|
|
57
|
+
## 理解实现
|
|
58
|
+
|
|
59
|
+
<details>
|
|
60
|
+
<summary>实现细节——点击展开</summary>
|
|
61
|
+
|
|
62
|
+
### 本行如何注册
|
|
63
|
+
|
|
64
|
+
`apply` 在挂载上下文的 scope 内通过 `ctx.systemPrompt.section({ name: PERSONA_SECTION, order: ctx.systemPrompt.getSectionOrder('DEPLOYMENT_PERSONA'), text, complete? })` 注册一个提示词段落,因此该段落落在 order 0——紧随 harness 身份开场白之后——且只对加入该 preset 的 agent 生效。共享段落名让 preset 人设遮蔽部署人设,而不是落在它旁边;服务持有的 order 查询则让仓库自带贡献方服从集中分配。`includeRuntimeContext: false` 会调用 `ctx.systemPrompt.suppressRuntimeContext()`。
|
|
65
|
+
|
|
66
|
+
### 本行为何仅限 scope 内使用
|
|
67
|
+
|
|
68
|
+
`dsh-system-prompt` 以自身配置持有全局人设并无条件注册 `deployment:persona`,因此一个进程只有一份。本行在 agent scope 之外与该项注册相撞,这是刻意的:本行的存在是因为 preset 无法自行挂载提示词注册表。
|
|
22
69
|
|
|
70
|
+
### 源码地图
|
|
71
|
+
|
|
72
|
+
| 文件 | 职责 |
|
|
73
|
+
|---|---|
|
|
74
|
+
| [`src/index.ts`](src/index.ts) | 插件入口:`Config` schema、人设段落注册、runtime-context 抑制 |
|
|
75
|
+
| [`src/invariant.ts`](src/invariant.ts) | 不变式伴生插件(无运行时不变式;身份、完整提示词执行与资源释放归提示词注册表) |
|
|
76
|
+
|
|
77
|
+
</details>
|
|
78
|
+
|
|
79
|
+
-----
|
|
80
|
+
|
|
81
|
+
<a id="further-exploration"></a>
|
|
82
|
+
## 进一步探索
|
|
83
|
+
|
|
84
|
+
当包级约定不够用时阅读以下页面;它们从 preset 组装逐步进入本行所供给的提示词注册表。
|
|
85
|
+
|
|
86
|
+
- [agent-presets 包](../agent-presets/README.zh.md)——本行挂载进的 preset 组装。
|
|
87
|
+
- [系统提示词子系统](../../../docs/subsystems/system-prompt.zh.md)——段落、组装,以及本行所遮蔽的人设槽位。
|
|
88
|
+
- [生成的配置目录](../../../docs/config-catalog.zh.md#deepseek-aidsh-persona)——每个受支持配置字段及其源声明。
|
|
89
|
+
|
|
90
|
+
-----
|
|
91
|
+
|
|
92
|
+
<a id="model-experience"></a>
|
|
23
93
|
## 模型体验
|
|
24
94
|
|
|
25
95
|
### 人设段落
|
|
26
96
|
|
|
27
|
-
####
|
|
97
|
+
#### 模型看到什么
|
|
28
98
|
|
|
29
|
-
位于 order 0 的 `deployment:persona` 段落,紧随 harness 身份开场白之后,携带本行配置的 `text`,其中的提示词变量已解析。对于其 preset 挂载了本行的 agent,它会替换部署所配置的任何人设。在完整模式下,模型只会看到这个渲染后的段落作为系统提示词。Runtime context
|
|
99
|
+
位于 order 0 的 `deployment:persona` 段落,紧随 harness 身份开场白之后,携带本行配置的 `text`,其中的提示词变量已解析。对于其 preset 挂载了本行的 agent,它会替换部署所配置的任何人设。在完整模式下,模型只会看到这个渲染后的段落作为系统提示词。Runtime context 默认保持启用;禁用后,新建 agent 不会收到来自沙箱策略、批准策略、委派或其他 system-prompt 上下文提供方的 runtime-context 快照。
|
|
30
100
|
|
|
31
|
-
#### Token
|
|
101
|
+
#### Token 影响
|
|
32
102
|
|
|
33
103
|
对给定 preset 而言是固定的:该 agent 的每次请求都携带人设自身的 token,其他 agent 一个都不带。空文本不贡献任何 token。完整模式会移除该 agent 的其他所有系统提示词 token。
|
|
34
104
|
|
|
35
|
-
#### KV Cache
|
|
105
|
+
#### KV Cache 影响
|
|
36
106
|
|
|
37
107
|
在一个 agent 的整个生命周期内保持前缀稳定——本行只挂载一次,发生在 agent 发布之前、因而也在它的首个请求之前,且在 agent 运行期间文本不再改变。两个使用不同 preset 的 agent 从该段落起建立各自不同的前缀,谁都无法让对方失去缓存复用。
|
|
38
108
|
|
|
39
|
-
##
|
|
109
|
+
## 已知限制与延期工作
|
|
110
|
+
|
|
111
|
+
<a id="known-limitations-and-deferred-work"></a>
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
这些限制说明本行何时不合适。它们是当前包约束,不是任务积压。
|
|
115
|
+
|
|
116
|
+
- **不支持全局挂载**——提示词注册表拥有未加 scope 的人设槽位,因此本行只能从带 scope 的组装中使用。要改变部署级人设,应在 `system-prompt` 行自身的配置中修改。
|
|
117
|
+
- **runtime-context 抑制是全有或全无**——`includeRuntimeContext: false` 会关闭该作用域的所有上下文贡献,包括沙箱策略、批准策略与委派;没有按提供方过滤的选项。
|
|
118
|
+
|
|
119
|
+
<a id="dev-note"></a>
|
|
120
|
+
### 开发备注
|
|
121
|
+
|
|
122
|
+
<details>
|
|
123
|
+
<summary>维护者的工作上下文——点击展开</summary>
|
|
124
|
+
|
|
125
|
+
无。
|
|
40
126
|
|
|
41
|
-
|
|
127
|
+
</details>
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import z from "@deepseek-ai/schemastery";
|
|
2
|
-
import {
|
|
2
|
+
import { PERSONA_SECTION } from "@deepseek-ai/dsh-system-prompt";
|
|
3
3
|
//#region lib/types/index.js
|
|
4
4
|
/**
|
|
5
5
|
* A per-agent persona as a composable row.
|
|
@@ -34,11 +34,11 @@ const Config = z.object({
|
|
|
34
34
|
function apply(ctx, config) {
|
|
35
35
|
ctx.effect(() => ctx.systemPrompt.section({
|
|
36
36
|
name: PERSONA_SECTION,
|
|
37
|
-
order:
|
|
37
|
+
order: ctx.systemPrompt.getSectionOrder("DEPLOYMENT_PERSONA"),
|
|
38
38
|
text: config.text,
|
|
39
39
|
...config.complete ? { complete: true } : {}
|
|
40
40
|
}), "persona.section()");
|
|
41
41
|
if (!(config.includeRuntimeContext ?? true)) ctx.systemPrompt.suppressRuntimeContext();
|
|
42
42
|
}
|
|
43
43
|
//#endregion
|
|
44
|
-
export { Config,
|
|
44
|
+
export { Config, PERSONA_SECTION, apply, inject, name };
|
package/lib/types/index.d.ts
CHANGED
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import type { Context } from '@deepseek-ai/cordis';
|
|
16
16
|
import z from '@deepseek-ai/schemastery';
|
|
17
|
-
import {
|
|
18
|
-
export {
|
|
17
|
+
import { PERSONA_SECTION } from '@deepseek-ai/dsh-system-prompt';
|
|
18
|
+
export { PERSONA_SECTION };
|
|
19
19
|
/** Cordis plugin name. */
|
|
20
20
|
export declare const name = "persona";
|
|
21
21
|
/** The prompt registry this row contributes to. */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-persona",
|
|
3
3
|
"description": "Composition-authored deployment persona section for the DeepSeek Harness",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.2-alpha.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -32,17 +32,17 @@
|
|
|
32
32
|
],
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@deepseek-ai/dsh-
|
|
36
|
-
"@deepseek-ai/
|
|
37
|
-
"@deepseek-ai/
|
|
35
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.2-alpha.2",
|
|
36
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
37
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-alpha.2"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
40
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@deepseek-ai/dsh-invariants": "^0.1.
|
|
44
|
-
"@deepseek-ai/dsh-scope": "^0.1.
|
|
45
|
-
"@deepseek-ai/dsh-system-prompt": "^0.1.
|
|
46
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
43
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-alpha.2",
|
|
44
|
+
"@deepseek-ai/dsh-scope": "^0.1.2-alpha.2",
|
|
45
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.2-alpha.2",
|
|
46
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
47
47
|
}
|
|
48
48
|
}
|