@coralai/sps-cli 0.90.0 → 0.90.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/dist/core/agents/ClaudeSdkBackend.d.ts +9 -0
- package/dist/core/agents/ClaudeSdkBackend.d.ts.map +1 -1
- package/dist/core/agents/ClaudeSdkBackend.js +5 -0
- package/dist/core/agents/ClaudeSdkBackend.js.map +1 -1
- package/dist/seams/agents-builtin/index.d.ts.map +1 -1
- package/dist/seams/agents-builtin/index.js +66 -51
- package/dist/seams/agents-builtin/index.js.map +1 -1
- package/dist/seams/memory/index.d.ts +8 -0
- package/dist/seams/memory/index.d.ts.map +1 -1
- package/dist/seams/memory/index.js +10 -0
- package/dist/seams/memory/index.js.map +1 -1
- package/dist/seams/memory/optional.d.ts +5 -0
- package/dist/seams/memory/optional.d.ts.map +1 -1
- package/dist/seams/memory/optional.js +7 -1
- package/dist/seams/memory/optional.js.map +1 -1
- package/docs/help/02-commands.md +2 -2
- package/docs/help/05-api.md +2 -2
- package/package.json +2 -2
|
@@ -3,6 +3,15 @@ export interface ClaudeSdkBackendOpts {
|
|
|
3
3
|
model: string;
|
|
4
4
|
cwd: string;
|
|
5
5
|
project: string;
|
|
6
|
+
/**
|
|
7
|
+
* 要注入这个 worker 的 Claude Code 插件目录(绝对路径)。
|
|
8
|
+
*
|
|
9
|
+
* 🔴 **claude 专属**,所以只出现在 claude 适配器的 opts 里,不进中立的
|
|
10
|
+
* `AgentBackend` 契约 —— openai/codex 没有对应概念,它们要等价能力时
|
|
11
|
+
* 各自在自己的适配器里解决。
|
|
12
|
+
* ⚠️ 由调用方从 `sps.memory` 之类的 seam 取;适配器只负责递给 SDK,不解析目录内容。
|
|
13
|
+
*/
|
|
14
|
+
claudePlugins?: string[];
|
|
6
15
|
}
|
|
7
16
|
export declare class ClaudeSdkBackend implements AgentBackend {
|
|
8
17
|
private readonly opts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeSdkBackend.d.ts","sourceRoot":"","sources":["../../../src/core/agents/ClaudeSdkBackend.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKxF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ClaudeSdkBackend.d.ts","sourceRoot":"","sources":["../../../src/core/agents/ClaudeSdkBackend.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKxF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,qBAAa,gBAAiB,YAAW,YAAY;IAavC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAkB;IAEhC,wCAAwC;IACxC,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IACD,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;gBAE3C,IAAI,EAAE,oBAAoB;IAEvD,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAIhE,OAAO,CAAC,IAAI;IAUN,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC7C,2CAA2C;IAC3C,OAAO,CAAC,SAAS;IA0BX,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAIlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
|
|
@@ -64,6 +64,11 @@ export class ClaudeSdkBackend {
|
|
|
64
64
|
// 2026-08-27 实测:不传 ⇒ 插件表里多出一个用户级插件;给 `['local']` 或 `[]` ⇒ 干净。
|
|
65
65
|
// `'project'` 是加载 CLAUDE.md 的必要条件,`'local'` 是 settings.local.json(模型/端点)。
|
|
66
66
|
settingSources: ['project', 'local'],
|
|
67
|
+
// 后端自带的 claude 插件(hooks 做自动召回)。**没有就不传这个参数** ——
|
|
68
|
+
// 关掉记忆时零残留,不需要去任何目录里卸载。
|
|
69
|
+
...(this.opts.claudePlugins?.length
|
|
70
|
+
? { plugins: this.opts.claudePlugins.map((path) => ({ type: 'local', path })) }
|
|
71
|
+
: {}),
|
|
67
72
|
// claude 自带编码工具;SPS 专属能力经共享 MCP(stdio)挂载。
|
|
68
73
|
mcpServers: { sps: { type: 'stdio', command: sps.command, args: sps.args } },
|
|
69
74
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeSdkBackend.js","sourceRoot":"","sources":["../../../src/core/agents/ClaudeSdkBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ClaudeSdkBackend.js","sourceRoot":"","sources":["../../../src/core/agents/ClaudeSdkBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/seams/agents-builtin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/seams/agents-builtin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,qBAAqB,CAAC;AAQ5D,6CAA6C;AAC7C,eAAO,MAAM,QAAQ,uBAAa,CAAC;AACnC,eAAO,MAAM,WAAW,uGAC2C,CAAC;AA8EpE,eAAO,MAAM,IAAI,uBAAuB,CAAC;AACzC,eAAO,MAAM,MAAM,UAAW,CAAC;AAE/B,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAKxC"}
|
|
@@ -2,69 +2,84 @@ import { ClaudeSdkBackend } from '../../core/agents/ClaudeSdkBackend.js';
|
|
|
2
2
|
import { DaemonBackend } from '../../core/agents/DaemonBackend.js';
|
|
3
3
|
import { OpenAiAgentBackend } from '../../core/agents/OpenAiAgentBackend.js';
|
|
4
4
|
import { AGENTS } from '../agents/index.js';
|
|
5
|
+
import { memoryOf } from '../memory/optional.js';
|
|
5
6
|
/** 插件页展示用。**由插件自己声明** —— 前端写死的表对第三方永远是空的。 */
|
|
6
7
|
export const category = 'Agent 后端';
|
|
7
8
|
export const description = '内建四个后端:claude-sdk / claude-daemon / openai-sdk / openai-daemon。';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
id: 'openai-daemon',
|
|
23
|
-
summary: 'openai/codex 走共享 daemon;provider 传输按 providerId 推导',
|
|
24
|
-
create: (ctx) => {
|
|
25
|
-
const providerId = ctx.providerId ?? 'official';
|
|
26
|
-
const transport = ctx.providerTransport ??
|
|
27
|
-
(providerId === 'codex'
|
|
28
|
-
? 'codex'
|
|
29
|
-
: providerId === 'official'
|
|
30
|
-
? 'responses'
|
|
31
|
-
: 'chat_completions');
|
|
32
|
-
return new DaemonBackend({
|
|
33
|
-
backend: 'openai',
|
|
9
|
+
/**
|
|
10
|
+
* 🔴 收 `host`(Cordis ctx)而不是模块级常量:`claude-sdk` 要问 `sps.memory`
|
|
11
|
+
* 有没有自带的 claude 插件目录,而 `BackendCtx` 里没有装配上下文 ——
|
|
12
|
+
* 加到 `BackendCtx` 上会把一个 claude 专属的需要摊给所有后端。
|
|
13
|
+
*/
|
|
14
|
+
function builtins(host) {
|
|
15
|
+
return [
|
|
16
|
+
{
|
|
17
|
+
id: 'claude-daemon',
|
|
18
|
+
summary: '人才市场:委托共享 daemon(与 chat 同宿主,统一并发/监控)',
|
|
19
|
+
create: (ctx) => new DaemonBackend({
|
|
20
|
+
backend: 'claude',
|
|
34
21
|
sessionName: ctx.sessionName,
|
|
35
22
|
cwd: ctx.cwd,
|
|
36
23
|
project: ctx.project,
|
|
37
24
|
resumeSessionId: ctx.resumeSessionId,
|
|
38
25
|
extraEnv: ctx.extraEnv,
|
|
39
|
-
|
|
40
|
-
providerId,
|
|
41
|
-
model: ctx.modelName,
|
|
42
|
-
transport,
|
|
43
|
-
...(ctx.providerBaseUrl ? { baseUrl: ctx.providerBaseUrl } : {}),
|
|
44
|
-
},
|
|
45
|
-
});
|
|
26
|
+
}),
|
|
46
27
|
},
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
28
|
+
{
|
|
29
|
+
id: 'openai-daemon',
|
|
30
|
+
summary: 'openai/codex 走共享 daemon;provider 传输按 providerId 推导',
|
|
31
|
+
create: (ctx) => {
|
|
32
|
+
const providerId = ctx.providerId ?? 'official';
|
|
33
|
+
const transport = ctx.providerTransport ??
|
|
34
|
+
(providerId === 'codex'
|
|
35
|
+
? 'codex'
|
|
36
|
+
: providerId === 'official'
|
|
37
|
+
? 'responses'
|
|
38
|
+
: 'chat_completions');
|
|
39
|
+
return new DaemonBackend({
|
|
40
|
+
backend: 'openai',
|
|
41
|
+
sessionName: ctx.sessionName,
|
|
42
|
+
cwd: ctx.cwd,
|
|
43
|
+
project: ctx.project,
|
|
44
|
+
resumeSessionId: ctx.resumeSessionId,
|
|
45
|
+
extraEnv: ctx.extraEnv,
|
|
46
|
+
provider: {
|
|
47
|
+
providerId,
|
|
48
|
+
model: ctx.modelName,
|
|
49
|
+
transport,
|
|
50
|
+
...(ctx.providerBaseUrl ? { baseUrl: ctx.providerBaseUrl } : {}),
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: 'openai-sdk',
|
|
57
|
+
summary: '进程内 @openai/agents SDK',
|
|
58
|
+
create: (ctx) => new OpenAiAgentBackend({
|
|
59
|
+
model: ctx.makeModel(),
|
|
60
|
+
cwd: ctx.cwd,
|
|
61
|
+
project: ctx.project,
|
|
62
|
+
sessionFile: ctx.sessionFile,
|
|
63
|
+
}),
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: 'claude-sdk',
|
|
67
|
+
summary: '进程内 claude-agent-sdk',
|
|
68
|
+
create: (bctx) => new ClaudeSdkBackend({
|
|
69
|
+
model: bctx.modelName,
|
|
70
|
+
cwd: bctx.cwd,
|
|
71
|
+
project: bctx.project,
|
|
72
|
+
// 记忆后端可自带一个 claude 插件(hooks 做自动召回)。
|
|
73
|
+
// 🔴 没装记忆插件 ⇒ `[]` ⇒ 不传 plugins 参数 ⇒ 零残留。
|
|
74
|
+
claudePlugins: memoryOf(host)?.workerPlugins() ?? [],
|
|
75
|
+
}),
|
|
76
|
+
},
|
|
77
|
+
];
|
|
78
|
+
}
|
|
64
79
|
export const name = 'sps-agents-builtin';
|
|
65
80
|
export const inject = [AGENTS];
|
|
66
81
|
export function apply(ctx) {
|
|
67
|
-
for (const f of
|
|
82
|
+
for (const f of builtins(ctx)) {
|
|
68
83
|
// effect 作用域:插件卸载时这些后端跟着注销,不会留下"注册着但代码已不在"的条目。
|
|
69
84
|
ctx.effect(() => ctx[AGENTS].register(f));
|
|
70
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/seams/agents-builtin/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,MAAM,EAA4B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/seams/agents-builtin/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,MAAM,EAA4B,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,WAAW,GACtB,iEAAiE,CAAC;AAGpE;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAAa;IAC7B,OAAO;QACP;YACE,EAAE,EAAE,eAAe;YACnB,OAAO,EAAE,sCAAsC;YAC/C,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE,CAC1B,IAAI,aAAa,CAAC;gBAChB,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC;SACL;QACD;YACE,EAAE,EAAE,eAAe;YACnB,OAAO,EAAE,oDAAoD;YAC7D,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE;gBAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC;gBAChD,MAAM,SAAS,GACb,GAAG,CAAC,iBAAiB;oBACrB,CAAC,UAAU,KAAK,OAAO;wBACrB,CAAC,CAAC,OAAO;wBACT,CAAC,CAAC,UAAU,KAAK,UAAU;4BACzB,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBAC5B,OAAO,IAAI,aAAa,CAAC;oBACvB,OAAO,EAAE,QAAQ;oBACjB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,eAAe,EAAE,GAAG,CAAC,eAAe;oBACpC,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,QAAQ,EAAE;wBACR,UAAU;wBACV,KAAK,EAAE,GAAG,CAAC,SAAS;wBACpB,SAAS;wBACT,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACjE;iBACF,CAAC,CAAC;YACL,CAAC;SACF;QACD;YACE,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,wBAAwB;YACjC,MAAM,EAAE,CAAC,GAAe,EAAE,EAAE,CAC1B,IAAI,kBAAkB,CAAC;gBACrB,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE;gBACtB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC;SACL;QACD;YACE,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,sBAAsB;YAC/B,MAAM,EAAE,CAAC,IAAgB,EAAE,EAAE,CAC3B,IAAI,gBAAgB,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,oCAAoC;gBACpC,0CAA0C;gBAC1C,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE;aACrD,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,oBAAoB,CAAC;AACzC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AAE/B,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,+CAA+C;QAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
|
|
@@ -89,6 +89,14 @@ export declare abstract class MemorySeam extends Service {
|
|
|
89
89
|
project?: string;
|
|
90
90
|
all?: boolean;
|
|
91
91
|
}): MemoryMigrateStats;
|
|
92
|
+
/**
|
|
93
|
+
* 要注入 worker 的 Claude Code 插件目录(绝对路径)。默认没有。
|
|
94
|
+
*
|
|
95
|
+
* 🔴 宿主**只拿路径,不解析目录内容** —— hooks.json / .mcp.json 是
|
|
96
|
+
* claude 运行时的格式,和"sps 不解析 claude transcript"同源:
|
|
97
|
+
* 一旦宿主开始读它,换个 claude 版本就要跟着改。
|
|
98
|
+
*/
|
|
99
|
+
workerPlugins(): string[];
|
|
92
100
|
promoteEntry(from: ScopeRef, id: string, to: ScopeRef, opts: {
|
|
93
101
|
move?: boolean;
|
|
94
102
|
}): MemoryEntry | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/seams/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,eAAe,IAAI,SAAS,EAClC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEpF,yCAAyC;AACzC,eAAO,MAAM,MAAM,eAAe,CAAC;AAEnC,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8BAAsB,UAAW,SAAQ,OAAO;gBAClC,GAAG,EAAE,OAAO;IASxB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAEzF,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,EAAE;IAClD,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IACjE,QAAQ,CAAC,aAAa,IAAI,QAAQ,EAAE;IAEpC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW;IAChE,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxD;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAE3C;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAE7B;;;OAGG;IACH;;;OAGG;IACH,YAAY,IAAI,IAAI;IAQpB,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE;QAAE,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAM;IAE5D,uCAAuC;IACvC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1C,gDAAgD;IAChD,OAAO,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,kBAAkB;IAIzE,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW,GAAG,IAAI;CAerG;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,YAAY,EAAE,UAAU,CAAC;KAC1B;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAKrE"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/seams/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,eAAe,IAAI,SAAS,EAClC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEpF,yCAAyC;AACzC,eAAO,MAAM,MAAM,eAAe,CAAC;AAEnC,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8BAAsB,UAAW,SAAQ,OAAO;gBAClC,GAAG,EAAE,OAAO;IASxB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAEzF,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,EAAE;IAClD,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IACjE,QAAQ,CAAC,aAAa,IAAI,QAAQ,EAAE;IAEpC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW;IAChE,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxD;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAE3C;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAE7B;;;OAGG;IACH;;;OAGG;IACH,YAAY,IAAI,IAAI;IAQpB,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE;QAAE,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAM;IAE5D,uCAAuC;IACvC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1C,gDAAgD;IAChD,OAAO,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,kBAAkB;IAIzE;;;;;;OAMG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW,GAAG,IAAI;CAerG;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,YAAY,EAAE,UAAU,CAAC;KAC1B;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAKrE"}
|
|
@@ -84,6 +84,16 @@ export class MemorySeam extends Service {
|
|
|
84
84
|
migrate(_target) {
|
|
85
85
|
return {};
|
|
86
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* 要注入 worker 的 Claude Code 插件目录(绝对路径)。默认没有。
|
|
89
|
+
*
|
|
90
|
+
* 🔴 宿主**只拿路径,不解析目录内容** —— hooks.json / .mcp.json 是
|
|
91
|
+
* claude 运行时的格式,和"sps 不解析 claude transcript"同源:
|
|
92
|
+
* 一旦宿主开始读它,换个 claude 版本就要跟着改。
|
|
93
|
+
*/
|
|
94
|
+
workerPlugins() {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
87
97
|
promoteEntry(from, id, to, opts) {
|
|
88
98
|
const e = this.readEntry(from, id);
|
|
89
99
|
if (!e)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/seams/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EACL,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAgB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG5D,yCAAyC;AACzC,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AAQnC,MAAM,OAAgB,UAAW,SAAQ,OAAO;IAC9C,YAAY,GAAY;QACtB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrB,CAAC;IAiBD,+CAA+C;IAE/C;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAc,EAAE,GAAW,IAAS,CAAC;IAE9C;;;OAGG;IACH,OAAO,CAAC,IAAc,IAAS,CAAC;IAEhC;;;OAGG;IACH;;;OAGG;IACH,YAAY,KAAU,CAAC;IAEvB,iBAAiB;IACjB,EAAE;IACF,gDAAgD;IAChD,2CAA2C;IAC3C,wBAAwB;IAExB,yBAAyB;IAChB,QAAQ,GAAwC,EAAE,CAAC;IAE5D,uCAAuC;IACvC,EAAE,CAAC,IAAc;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,gDAAgD;IAChD,OAAO,CAAC,OAA4C;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,IAAc,EAAE,EAAU,EAAE,EAAY,EAAE,IAAwB;QAC7E,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;YAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAQD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,IAAK,GAA0B,CAAC,IAAI,KAAK,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,CAAC,GAAI,GAA6B,CAAC,OAAO,CAAC;IACjD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC9D,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/seams/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EACL,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAgB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG5D,yCAAyC;AACzC,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AAQnC,MAAM,OAAgB,UAAW,SAAQ,OAAO;IAC9C,YAAY,GAAY;QACtB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrB,CAAC;IAiBD,+CAA+C;IAE/C;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAc,EAAE,GAAW,IAAS,CAAC;IAE9C;;;OAGG;IACH,OAAO,CAAC,IAAc,IAAS,CAAC;IAEhC;;;OAGG;IACH;;;OAGG;IACH,YAAY,KAAU,CAAC;IAEvB,iBAAiB;IACjB,EAAE;IACF,gDAAgD;IAChD,2CAA2C;IAC3C,wBAAwB;IAExB,yBAAyB;IAChB,QAAQ,GAAwC,EAAE,CAAC;IAE5D,uCAAuC;IACvC,EAAE,CAAC,IAAc;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,gDAAgD;IAChD,OAAO,CAAC,OAA4C;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,IAAc,EAAE,EAAU,EAAE,EAAY,EAAE,IAAwB;QAC7E,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;YAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAQD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,IAAK,GAA0B,CAAC,IAAI,KAAK,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,CAAC,GAAI,GAA6B,CAAC,OAAO,CAAC;IACjD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
* 而不声明 inject 直接读未注册的服务 ⇒ 返回 `undefined`,不抛错(实测)。
|
|
14
14
|
* ⇒ 可选能力只能走"运行时探测",这个文件就是那道统一的探测口。
|
|
15
15
|
*
|
|
16
|
+
* 🔴 **要惰性读,别在 apply 里读一次存起来。** 可选能力不声明 inject,
|
|
17
|
+
* 而 Cordis 不保证两个无依赖关系的插件谁先装 —— apply 时记忆可能还没到。
|
|
18
|
+
* 正确做法是在**真正要用的那一刻**调 `memoryOf()`(如后端工厂的 `create` 里),
|
|
19
|
+
* 那时装配早已完成。
|
|
20
|
+
*
|
|
16
21
|
* 🔴 **别在调用点各写各的判断** —— 那是"靠每个消费方记得",本仓为这种形状
|
|
17
22
|
* 付过多次代价。要么走 `memoryOf()` 拿到 null 后显式处理,
|
|
18
23
|
* 要么走 `withMemory()` 表达"没有就跳过"。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optional.d.ts","sourceRoot":"","sources":["../../../src/seams/memory/optional.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"optional.d.ts","sourceRoot":"","sources":["../../../src/seams/memory/optional.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI,CAQ9D;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAI3F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAE5E"}
|
|
@@ -7,7 +7,13 @@ import { buildMemoryInjection } from '../../core/memory2/inject.js';
|
|
|
7
7
|
* 需要区分的调用点自己问 `enabled()`。
|
|
8
8
|
*/
|
|
9
9
|
export function memoryOf(app) {
|
|
10
|
-
|
|
10
|
+
// 🔴 必须走 `reflect.get` —— 直接 `app['sps.memory']` 在**插件的 apply 上下文**里
|
|
11
|
+
// 会抛 `cannot get property "sps.memory" without inject`。
|
|
12
|
+
// (在根 ctx 上读只是返回 undefined,所以只在插件里踩得到:
|
|
13
|
+
// 2026-08-27 实测,单元测试全绿而 agents-builtin 一装就炸。)
|
|
14
|
+
// reflect.get 的原话是 "Read a service from the store without the inject
|
|
15
|
+
// requirement" —— 这正是"可选能力"需要的读法。
|
|
16
|
+
return app.reflect.get('sps.memory') ?? null;
|
|
11
17
|
}
|
|
12
18
|
/** 记忆可用(装了 **且** 后端自己没关)时才做事;否则返回 `undefined`。 */
|
|
13
19
|
export function withMemory(app, fn) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../src/seams/memory/optional.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../src/seams/memory/optional.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAkB;IACzC,qEAAqE;IACrE,2DAA2D;IAC3D,0CAA0C;IAC1C,kDAAkD;IAClD,wEAAwE;IACxE,qCAAqC;IACrC,OAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAA4B,IAAI,IAAI,CAAC;AAC3E,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,UAAU,CAAI,GAAkB,EAAE,EAA0B;IAC1E,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB,EAAE,IAAgB;IAClE,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACrE,CAAC"}
|
package/docs/help/02-commands.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: 命令说明
|
|
3
3
|
generated: true
|
|
4
4
|
source: sps --help
|
|
5
|
-
version: 0.90.
|
|
5
|
+
version: 0.90.1
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# 命令说明
|
|
@@ -11,7 +11,7 @@ version: 0.90.0
|
|
|
11
11
|
> 改命令说明请改命令自己的 help 文本,然后跑 `npm run gen:help`。
|
|
12
12
|
> 门禁 `check:help` 会在两者不一致时报红。
|
|
13
13
|
|
|
14
|
-
当前版本 `0.90.
|
|
14
|
+
当前版本 `0.90.1` 共 **27** 个命令。
|
|
15
15
|
|
|
16
16
|
### `sps agent`
|
|
17
17
|
|
package/docs/help/05-api.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: 开放 API
|
|
3
3
|
generated: true
|
|
4
4
|
source: src/console/routes/*.ts
|
|
5
|
-
version: 0.90.
|
|
5
|
+
version: 0.90.1
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# 开放 API
|
|
@@ -10,7 +10,7 @@ version: 0.90.0
|
|
|
10
10
|
> ⚠️ **本页由 `scripts/gen-help-api.mjs` 从路由代码扫出,不要手改。**
|
|
11
11
|
> 门禁 `check:help` 会在代码与本页不一致时报红。
|
|
12
12
|
|
|
13
|
-
共 **175** 条路由(其中 110 条尚无说明)。版本 `0.90.
|
|
13
|
+
共 **175** 条路由(其中 110 条尚无说明)。版本 `0.90.1`。
|
|
14
14
|
|
|
15
15
|
> ℹ️ 口径:这里**逐条列**(同一路径的不同方法算两条)。门禁 `check:api-docs` 报的是
|
|
16
16
|
> **归一去重后的唯一路径数**,两个数字不相等是正常的 —— 别拿它们互相"对账"。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coralai/sps-cli",
|
|
3
|
-
"version": "0.90.
|
|
3
|
+
"version": "0.90.1",
|
|
4
4
|
"description": "SPS CLI — AI-driven development pipeline orchestrator",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"dependencies": {
|
|
83
83
|
"@anthropic-ai/claude-agent-sdk": "^0.3.196",
|
|
84
84
|
"@colbymchenry/codegraph": "^1.2.0",
|
|
85
|
-
"@coralai/sps-plugin-api": "^0.
|
|
85
|
+
"@coralai/sps-plugin-api": "^0.12.0",
|
|
86
86
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
87
87
|
"@deepseek-ai/cordis-plugin-include": "^1.0.6",
|
|
88
88
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.2",
|