@coralai/sps-cli 0.65.29 → 0.65.31

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.
Files changed (35) hide show
  1. package/dist/console/index.d.ts.map +1 -1
  2. package/dist/console/index.js +2 -0
  3. package/dist/console/index.js.map +1 -1
  4. package/dist/console/routes/chat.d.ts.map +1 -1
  5. package/dist/console/routes/chat.js +10 -5
  6. package/dist/console/routes/chat.js.map +1 -1
  7. package/dist/console/routes/mcpTools.d.ts +9 -0
  8. package/dist/console/routes/mcpTools.d.ts.map +1 -0
  9. package/dist/console/routes/mcpTools.js +14 -0
  10. package/dist/console/routes/mcpTools.js.map +1 -0
  11. package/dist/console-assets/assets/{ShowcasePage-r_b2tHWD.js → ShowcasePage-GF_0kvZG.js} +1 -1
  12. package/dist/console-assets/assets/index-cxN7rD-p.css +1 -0
  13. package/dist/console-assets/assets/index-lgFYFfCi.js +855 -0
  14. package/dist/console-assets/index.html +2 -2
  15. package/dist/core/mcpToolCatalog.d.ts +24 -0
  16. package/dist/core/mcpToolCatalog.d.ts.map +1 -0
  17. package/dist/core/mcpToolCatalog.js +74 -0
  18. package/dist/core/mcpToolCatalog.js.map +1 -0
  19. package/dist/openai-agent/mcp/managedMcp.d.ts.map +1 -1
  20. package/dist/openai-agent/mcp/managedMcp.js +1 -4
  21. package/dist/openai-agent/mcp/managedMcp.js.map +1 -1
  22. package/dist/openai-agent/providerCapabilities.d.ts.map +1 -1
  23. package/dist/openai-agent/providerCapabilities.js +3 -2
  24. package/dist/openai-agent/providerCapabilities.js.map +1 -1
  25. package/dist/providers/llm/codexAuth.d.ts +1 -1
  26. package/dist/providers/llm/codexAuth.d.ts.map +1 -1
  27. package/dist/providers/llm/codexAuth.js +55 -10
  28. package/dist/providers/llm/codexAuth.js.map +1 -1
  29. package/dist/providers/mcp/interactionTools.d.ts +12 -0
  30. package/dist/providers/mcp/interactionTools.d.ts.map +1 -0
  31. package/dist/providers/mcp/interactionTools.js +15 -0
  32. package/dist/providers/mcp/interactionTools.js.map +1 -0
  33. package/package.json +1 -1
  34. package/dist/console-assets/assets/index-5SxV_3Ku.css +0 -1
  35. package/dist/console-assets/assets/index-DC_jSU5P.js +0 -855
@@ -8,8 +8,8 @@
8
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
10
  <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
11
- <script type="module" crossorigin src="/assets/index-DC_jSU5P.js"></script>
12
- <link rel="stylesheet" crossorigin href="/assets/index-5SxV_3Ku.css">
11
+ <script type="module" crossorigin src="/assets/index-lgFYFfCi.js"></script>
12
+ <link rel="stylesheet" crossorigin href="/assets/index-cxN7rD-p.css">
13
13
  </head>
14
14
  <body>
15
15
  <div id="root"></div>
@@ -0,0 +1,24 @@
1
+ export type McpToolGroup = 'skill' | 'asset' | 'project' | 'interaction' | 'memory' | 'agent' | 'other';
2
+ export interface McpToolParam {
3
+ name: string;
4
+ type: string;
5
+ required: boolean;
6
+ description?: string;
7
+ }
8
+ export interface McpToolInfo {
9
+ /** 注册名(如 generate_asset)。 */
10
+ name: string;
11
+ /** agent 侧看到的完整名(两后端一致的命名约定)。 */
12
+ qualifiedName: string;
13
+ description: string;
14
+ group: McpToolGroup;
15
+ params: McpToolParam[];
16
+ /**
17
+ * openai worker 是否经 MCP 拿到本工具。false = 被挡在 MCP 外、由 broker 原生实现
18
+ * (交互类工具要往返 chat UI,见 providers/mcp/interactionTools)。claude 恒为原生 MCP。
19
+ */
20
+ viaMcpOnOpenai: boolean;
21
+ }
22
+ /** 按 MCP 协议实际问 server 要工具清单(不读源码、不手抄)。 */
23
+ export declare function listSpsMcpTools(cwd?: string): Promise<McpToolInfo[]>;
24
+ //# sourceMappingURL=mcpToolCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpToolCatalog.d.ts","sourceRoot":"","sources":["../../src/core/mcpToolCatalog.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAExG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AA4CD,0CAA0C;AAC1C,wBAAsB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAsBzF"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @module core/mcpToolCatalog
3
+ * @description sps MCP 工具目录(控制台"插件/工具"页的数据源)。
4
+ *
5
+ * 🔴 零漂:不手抄清单 —— 起一个 in-memory MCP client 连上 createSpsMcpServer,按协议
6
+ * listTools 取真实注册结果(名字/描述/入参 schema)。新增工具自动出现在页面上。
7
+ * 分组只是展示用的归类表;新增工具若没归类会落到 'other',mcpToolCatalog.test 会失败提醒。
8
+ */
9
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
10
+ import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';
11
+ import { createSpsMcpServer } from '../providers/mcp/spsMcpServer.js';
12
+ import { INTERACTION_TOOL_NAMES } from '../providers/mcp/interactionTools.js';
13
+ const GROUPS = {
14
+ list_skills: 'skill',
15
+ search_skills: 'skill',
16
+ match_skill: 'skill',
17
+ enrich_skill: 'skill',
18
+ load_skill: 'skill',
19
+ run_subagent: 'agent',
20
+ generate_asset: 'asset',
21
+ add_card: 'project',
22
+ start_pipeline: 'project',
23
+ pipeline_status: 'project',
24
+ create_project: 'project',
25
+ present_choices: 'interaction',
26
+ present_form: 'interaction',
27
+ handoff_back: 'interaction',
28
+ memory_recall: 'memory',
29
+ memory_read: 'memory',
30
+ memory_save: 'memory',
31
+ memory_profile: 'memory',
32
+ memory_graph: 'memory',
33
+ memory_relations: 'memory',
34
+ memory_patterns: 'memory',
35
+ };
36
+ function readParams(schema) {
37
+ const s = schema;
38
+ const props = s?.properties;
39
+ if (!props)
40
+ return [];
41
+ const required = new Set(Array.isArray(s?.required) ? s.required : []);
42
+ return Object.entries(props).map(([name, def]) => ({
43
+ name,
44
+ type: typeof def?.type === 'string' ? def.type : 'any',
45
+ required: required.has(name),
46
+ ...(typeof def?.description === 'string' ? { description: def.description } : {}),
47
+ }));
48
+ }
49
+ /** 按 MCP 协议实际问 server 要工具清单(不读源码、不手抄)。 */
50
+ export async function listSpsMcpTools(cwd = process.cwd()) {
51
+ const server = createSpsMcpServer({ cwd });
52
+ const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
53
+ const client = new Client({ name: 'sps-console', version: '1' });
54
+ try {
55
+ await server.connect(serverTransport);
56
+ await client.connect(clientTransport);
57
+ const { tools } = await client.listTools();
58
+ return tools
59
+ .map((tool) => ({
60
+ name: tool.name,
61
+ qualifiedName: `mcp__sps__${tool.name}`,
62
+ description: tool.description ?? '',
63
+ group: GROUPS[tool.name] ?? 'other',
64
+ params: readParams(tool.inputSchema),
65
+ viaMcpOnOpenai: !INTERACTION_TOOL_NAMES.has(tool.name),
66
+ }))
67
+ .sort((a, b) => a.name.localeCompare(b.name));
68
+ }
69
+ finally {
70
+ await client.close().catch(() => { });
71
+ await server.close().catch(() => { });
72
+ }
73
+ }
74
+ //# sourceMappingURL=mcpToolCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpToolCatalog.js","sourceRoot":"","sources":["../../src/core/mcpToolCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AA0B9E,MAAM,MAAM,GAAiC;IAC3C,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,OAAO;IACtB,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,OAAO;IACrB,cAAc,EAAE,OAAO;IACvB,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,aAAa;IAC9B,YAAY,EAAE,aAAa;IAC3B,YAAY,EAAE,aAAa;IAC3B,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,QAAQ;IACxB,YAAY,EAAE,QAAQ;IACtB,gBAAgB,EAAE,QAAQ;IAC1B,eAAe,EAAE,QAAQ;CAC1B,CAAC;AAOF,SAAS,UAAU,CAAC,MAAe;IACjC,MAAM,CAAC,GAAG,MAAoC,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI;QACJ,IAAI,EAAE,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QACtD,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,GAAG,CAAC,OAAO,GAAG,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC/D,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;IAChF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACtC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,aAAa,IAAI,CAAC,IAAI,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO;YACnC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YACpC,cAAc,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SACvD,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"managedMcp.d.ts","sourceRoot":"","sources":["../../../src/openai-agent/mcp/managedMcp.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAQhC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,MAAM,EAAE,CAAC;KAC5B,KAAK,SAAS,CAAC;CACjB;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,kBAAkB;gBAEnB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,0BAA0B,EACjC,YAAY,GAAE,sBAA2B,GACxC,OAAO,CAAC,gBAAgB,CAAC,CAyF3B"}
1
+ {"version":3,"file":"managedMcp.d.ts","sourceRoot":"","sources":["../../../src/openai-agent/mcp/managedMcp.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAIhC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,MAAM,EAAE,CAAC;KAC5B,KAAK,SAAS,CAAC;CACjB;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,kBAAkB;gBAEnB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,0BAA0B,EACjC,YAAY,GAAE,sBAA2B,GACxC,OAAO,CAAC,gBAAgB,CAAC,CAyF3B"}
@@ -1,10 +1,7 @@
1
1
  import { basename } from 'node:path';
2
2
  import { MCPServerStdio, mcpToFunctionTool, } from '@openai/agents';
3
3
  import { spsMcpStdioConfig } from '../../providers/mcp/spsMcpStdioConfig.js';
4
- const INTERACTION_TOOL_NAMES = new Set([
5
- 'present_choices',
6
- 'present_form',
7
- ]);
4
+ import { INTERACTION_TOOL_NAMES } from '../../providers/mcp/interactionTools.js';
8
5
  export class UnsupportedMcpReferenceError extends Error {
9
6
  code = 'missing_tool';
10
7
  constructor(message) {
@@ -1 +1 @@
1
- {"version":3,"file":"managedMcp.js","sourceRoot":"","sources":["../../../src/openai-agent/mcp/managedMcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managedMcp.js","sourceRoot":"","sources":["../../../src/openai-agent/mcp/managedMcp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"providerCapabilities.d.ts","sourceRoot":"","sources":["../../src/openai-agent/providerCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,qBAAa,kCAAmC,SAAQ,KAAK;IAC3D,QAAQ,CAAC,IAAI,gCAAgC;gBAEjC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,0BAA0B,GAChC,sBAAsB,CA+CxB"}
1
+ {"version":3,"file":"providerCapabilities.d.ts","sourceRoot":"","sources":["../../src/openai-agent/providerCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,qBAAa,kCAAmC,SAAQ,KAAK;IAC3D,QAAQ,CAAC,IAAI,gCAAgC;gBAEjC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,0BAA0B,GAChC,sBAAsB,CAiDxB"}
@@ -26,8 +26,9 @@ export function negotiateProviderCapabilities(start) {
26
26
  recoverable: true,
27
27
  });
28
28
  }
29
- // codex 端点不支持 hosted apply_patch;降级到 shell 改文件。
30
- const hostedApplyPatch = responsesLike && start.provider.transport !== 'codex';
29
+ // codex 端点不支持 hosted apply_patch;自定义 responses provider(如平台网关中转的
30
+ // codex 订阅)后端形态未知,同样保守关闭 —— 只有官方 official 确认支持。降级到 shell 改文件。
31
+ const hostedApplyPatch = responsesLike && start.provider.transport !== 'codex' && start.provider.providerId === 'official';
31
32
  if (responsesLike && !hostedApplyPatch) {
32
33
  warnings.push({
33
34
  code: 'provider_capability_degraded',
@@ -1 +1 @@
1
- {"version":3,"file":"providerCapabilities.js","sourceRoot":"","sources":["../../src/openai-agent/providerCapabilities.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,kCAAmC,SAAQ,KAAK;IAClD,IAAI,GAAG,4BAA4B,CAAC;IAE7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IACnD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAiC;IAEjC,MAAM,aAAa,GACjB,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,WAAW;QACxC,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC;IACvC,MAAM,kBAAkB,GACtB,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,kBAAkB,CAAC;IAEnE,IACE,KAAK,CAAC,iBAAiB,CAAC,IAAI,KAAK,eAAe;QAChD,CAAC,kBAAkB,EACnB,CAAC;QACD,MAAM,IAAI,kCAAkC,CAC1C,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,2DAA2D,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAuC,EAAE,CAAC;IACxD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,8BAA8B;YACpC,OAAO,EACL,oHAAoH;YACtH,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,gDAAgD;IAChD,MAAM,gBAAgB,GAAG,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC;IAC/E,IAAI,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,8BAA8B;YACpC,OAAO,EACL,mGAAmG;YACrG,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,kBAAkB,EAAE,IAAI;QACxB,WAAW,EAAE,aAAa;QAC1B,gBAAgB;QAChB,gBAAgB,EAAE,aAAa;QAC/B,kBAAkB;QAClB,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,IAAI;QACf,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"providerCapabilities.js","sourceRoot":"","sources":["../../src/openai-agent/providerCapabilities.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,kCAAmC,SAAQ,KAAK;IAClD,IAAI,GAAG,4BAA4B,CAAC;IAE7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IACnD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAiC;IAEjC,MAAM,aAAa,GACjB,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,WAAW;QACxC,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC;IACvC,MAAM,kBAAkB,GACtB,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,kBAAkB,CAAC;IAEnE,IACE,KAAK,CAAC,iBAAiB,CAAC,IAAI,KAAK,eAAe;QAChD,CAAC,kBAAkB,EACnB,CAAC;QACD,MAAM,IAAI,kCAAkC,CAC1C,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,2DAA2D,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAuC,EAAE,CAAC;IACxD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,8BAA8B;YACpC,OAAO,EACL,oHAAoH;YACtH,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IACjE,8DAA8D;IAC9D,MAAM,gBAAgB,GACpB,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC;IACpG,IAAI,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,8BAA8B;YACpC,OAAO,EACL,mGAAmG;YACrG,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,kBAAkB,EAAE,IAAI;QACxB,WAAW,EAAE,aAAa;QAC1B,gBAAgB;QAChB,gBAAgB,EAAE,aAAa;QAC/B,kBAAkB;QAClB,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,IAAI;QACf,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -8,6 +8,6 @@ export interface CodexCredentialOptions {
8
8
  fetchImpl?: typeof fetch;
9
9
  now?: () => number;
10
10
  }
11
- /** 取可用的 Codex 凭据;access_token 过期(留 2 分钟余量)则刷新并写回 auth.json。 */
11
+ /** 取可用的 Codex 凭据:多候选取过期最晚的一份;全部过期才兜底刷新并写回来源文件。 */
12
12
  export declare function getCodexCreds(options?: CodexCredentialOptions): Promise<CodexCreds>;
13
13
  //# sourceMappingURL=codexAuth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codexAuth.d.ts","sourceRoot":"","sources":["../../../src/providers/llm/codexAuth.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB,0CAA0C,CAAC;AAG5E,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAWD,+DAA+D;AAC/D,wBAAsB,aAAa,CACjC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,UAAU,CAAC,CAyBrB"}
1
+ {"version":3,"file":"codexAuth.d.ts","sourceRoot":"","sources":["../../../src/providers/llm/codexAuth.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB,0CAA0C,CAAC;AAG5E,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAwDD,kDAAkD;AAClD,wBAAsB,aAAa,CACjC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,UAAU,CAAC,CA+BrB"}
@@ -23,17 +23,62 @@ function jwtExpMs(jwt) {
23
23
  return 0;
24
24
  }
25
25
  }
26
- /** 取可用的 Codex 凭据;access_token 过期(留 2 分钟余量)则刷新并写回 auth.json。 */
26
+ /**
27
+ * 凭据候选位(按新鲜度择优读取):
28
+ * ~/.codex/auth.json codex CLI(嵌套 tokens.*)
29
+ * ~/.config/claude-code-proxy/codex/auth.json claude-code-proxy(扁平 access/refresh/expires)
30
+ *
31
+ * 🔴 **同一 OpenAI 账号的 refresh token 是一次性的** —— 谁刷新谁作废其他持有者手里那份
32
+ * (线上事故:refresh_token_reused 401 → 生图中断)。本机常有多个持有者(codex CLI /
33
+ * claude-code-proxy / 本进程),故这里**优先读最新的一份**、尽量不自己刷新,把刷新权
34
+ * 留给活跃的服务(通常是 claude-code-proxy)。仅当所有候选都过期时才兜底刷新。
35
+ */
36
+ function codexAuthCandidates(explicit) {
37
+ if (explicit)
38
+ return [explicit];
39
+ if (process.env.CODEX_AUTH_FILE)
40
+ return [process.env.CODEX_AUTH_FILE];
41
+ return [
42
+ join(homedir(), '.codex', 'auth.json'),
43
+ join(homedir(), '.config', 'claude-code-proxy', 'codex', 'auth.json'),
44
+ ];
45
+ }
46
+ /** 两种文件格式归一;accountId 缺失时从 JWT 的 chatgpt_account_id 取。 */
47
+ function parseCodexAuthFile(path) {
48
+ let raw;
49
+ try {
50
+ raw = JSON.parse(readFileSync(path, 'utf-8'));
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ const access = raw.tokens?.access_token ?? raw.access;
56
+ const refresh = raw.tokens?.refresh_token ?? raw.refresh;
57
+ let accountId = raw.tokens?.account_id ?? raw.accountId;
58
+ if (!accountId && access) {
59
+ try {
60
+ const payload = JSON.parse(Buffer.from(access.split('.')[1] ?? '', 'base64url').toString());
61
+ accountId = payload['https://api.openai.com/auth']?.chatgpt_account_id;
62
+ }
63
+ catch {
64
+ /* 取不到就当缺失 */
65
+ }
66
+ }
67
+ return access && refresh && accountId ? { access, refresh, accountId } : null;
68
+ }
69
+ /** 取可用的 Codex 凭据:多候选取过期最晚的一份;全部过期才兜底刷新并写回来源文件。 */
27
70
  export async function getCodexCreds(options = {}) {
28
- const authPath = options.authPath ??
29
- process.env.CODEX_AUTH_FILE ??
30
- join(homedir(), '.codex', 'auth.json');
31
- const raw = readCodexAuth(authPath);
32
- const access = raw.tokens?.access_token;
33
- const refresh = raw.tokens?.refresh_token;
34
- const accountId = raw.tokens?.account_id;
35
- if (!access || !refresh || !accountId)
36
- throw new Error(`${authPath} 缺 token/account_id(请先用 codex 登录)`);
71
+ const candidates = codexAuthCandidates(options.authPath);
72
+ const parsed = candidates
73
+ .map((p) => ({ path: p, creds: parseCodexAuthFile(p) }))
74
+ .filter((x) => x.creds !== null)
75
+ .sort((a, b) => jwtExpMs(b.creds.access) - jwtExpMs(a.creds.access));
76
+ if (parsed.length === 0) {
77
+ throw new Error(`未找到可用的 codex 凭据(查找位置:${candidates.join(', ')};请先用 codex 登录)`);
78
+ }
79
+ const best = parsed[0];
80
+ const authPath = best.path;
81
+ const { access, accountId } = best.creds;
37
82
  if ((options.now ?? Date.now)() <= jwtExpMs(access) - 120_000) {
38
83
  return { accessToken: access, accountId };
39
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codexAuth.js","sourceRoot":"","sources":["../../../src/providers/llm/codexAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codexAuth.js","sourceRoot":"","sources":["../../../src/providers/llm/codexAuth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @module providers/mcp/interactionTools
3
+ * @description 需要"往返 chat UI"的 MCP 工具名(发交互事件 → 挂起回合 → 等前端回答)。
4
+ * 这类往返依赖 worker 自身的 protocolWriter/回合状态,MCP 子进程里够不着,
5
+ * 所以 openai worker 把它们挡在 MCP 之外、由 broker 原生实现(见
6
+ * openai-agent/mcp/managedMcp.ts 与 openai-agent/interactions/broker.ts);
7
+ * claude 走原生 MCP 直接用。工具目录页据此标注"两后端实现方式不同"。
8
+ * @layer provider
9
+ * @boundedContext agents
10
+ */
11
+ export declare const INTERACTION_TOOL_NAMES: ReadonlySet<string>;
12
+ //# sourceMappingURL=interactionTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactionTools.d.ts","sourceRoot":"","sources":["../../../src/providers/mcp/interactionTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAGrD,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @module providers/mcp/interactionTools
3
+ * @description 需要"往返 chat UI"的 MCP 工具名(发交互事件 → 挂起回合 → 等前端回答)。
4
+ * 这类往返依赖 worker 自身的 protocolWriter/回合状态,MCP 子进程里够不着,
5
+ * 所以 openai worker 把它们挡在 MCP 之外、由 broker 原生实现(见
6
+ * openai-agent/mcp/managedMcp.ts 与 openai-agent/interactions/broker.ts);
7
+ * claude 走原生 MCP 直接用。工具目录页据此标注"两后端实现方式不同"。
8
+ * @layer provider
9
+ * @boundedContext agents
10
+ */
11
+ export const INTERACTION_TOOL_NAMES = new Set([
12
+ 'present_choices',
13
+ 'present_form',
14
+ ]);
15
+ //# sourceMappingURL=interactionTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactionTools.js","sourceRoot":"","sources":["../../../src/providers/mcp/interactionTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,iBAAiB;IACjB,cAAc;CACf,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coralai/sps-cli",
3
- "version": "0.65.29",
3
+ "version": "0.65.31",
4
4
  "description": "SPS CLI — AI-driven development pipeline orchestrator",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",