@eddyskywalker/dsh-chatgpt-subscription 0.50.0 → 0.51.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/lib/client.js +43 -0
  3. package/lib/client.js.map +1 -1
  4. package/lib/{entry-progress-updates-CkGJr_fe.js → entry-progress-updates-BEkdyDZU.js} +152 -8
  5. package/lib/index.js +4853 -1821
  6. package/lib/progress-updates.js +1 -1
  7. package/lib/types/client/locales-ru/progress-updates.d.ts.map +1 -1
  8. package/lib/types/client/progress-updates/locales.d.ts +8 -2
  9. package/lib/types/client/progress-updates/locales.d.ts.map +1 -1
  10. package/lib/types/client/progress-updates/settings-binding.d.ts +9 -1
  11. package/lib/types/client/progress-updates/settings-binding.d.ts.map +1 -1
  12. package/lib/types/client/progress-updates/settings-section.d.ts.map +1 -1
  13. package/lib/types/compat.d.ts +1 -1
  14. package/lib/types/host/agent-preset.d.ts.map +1 -1
  15. package/lib/types/host/dispatch-execution-guard.d.ts +151 -0
  16. package/lib/types/host/dispatch-execution-guard.d.ts.map +1 -0
  17. package/lib/types/host/dispatch-ledger/binding.d.ts +118 -0
  18. package/lib/types/host/dispatch-ledger/binding.d.ts.map +1 -0
  19. package/lib/types/host/dispatch-ledger/guard.d.ts +271 -0
  20. package/lib/types/host/dispatch-ledger/guard.d.ts.map +1 -0
  21. package/lib/types/host/dispatch-ledger/header.d.ts +169 -0
  22. package/lib/types/host/dispatch-ledger/header.d.ts.map +1 -0
  23. package/lib/types/host/dispatch-ledger/index.d.ts +56 -0
  24. package/lib/types/host/dispatch-ledger/index.d.ts.map +1 -0
  25. package/lib/types/host/dispatch-ledger/ledger.d.ts +531 -0
  26. package/lib/types/host/dispatch-ledger/ledger.d.ts.map +1 -0
  27. package/lib/types/host/dispatch-ledger/policy.d.ts +99 -0
  28. package/lib/types/host/dispatch-ledger/policy.d.ts.map +1 -0
  29. package/lib/types/host/dispatch-ledger/protocol.d.ts +25 -0
  30. package/lib/types/host/dispatch-ledger/protocol.d.ts.map +1 -0
  31. package/lib/types/host/dispatch-ledger/tool.d.ts +151 -0
  32. package/lib/types/host/dispatch-ledger/tool.d.ts.map +1 -0
  33. package/lib/types/host/kimi-code/adapter.d.ts.map +1 -1
  34. package/lib/types/host/kimi-code/mapper.d.ts.map +1 -1
  35. package/lib/types/host/kimi-code/model-catalog.d.ts.map +1 -1
  36. package/lib/types/host/progress-updates/index.d.ts.map +1 -1
  37. package/lib/types/host/progress-updates/prompt.d.ts +86 -21
  38. package/lib/types/host/progress-updates/prompt.d.ts.map +1 -1
  39. package/lib/types/host/ptc-sdk-cache-guard.d.ts +12 -2
  40. package/lib/types/host/ptc-sdk-cache-guard.d.ts.map +1 -1
  41. package/lib/types/host/qoder/adapter.d.ts +13 -2
  42. package/lib/types/host/qoder/adapter.d.ts.map +1 -1
  43. package/lib/types/host/qoder/mapper.d.ts +27 -11
  44. package/lib/types/host/qoder/mapper.d.ts.map +1 -1
  45. package/lib/types/index.d.ts +15 -0
  46. package/lib/types/index.d.ts.map +1 -1
  47. package/package.json +1 -1
  48. package/presets/dispatch/README.md +51 -9
  49. package/presets/dispatch/agent.cordis.yml +68 -122
@@ -1,2 +1,2 @@
1
- import { i as name, n as attachProgressSettings, r as inject, t as apply } from "./entry-progress-updates-CkGJr_fe.js";
1
+ import { i as name, n as attachProgressSettings, r as inject, t as apply } from "./entry-progress-updates-BEkdyDZU.js";
2
2
  export { apply, attachProgressSettings, inject, name };
@@ -1 +1 @@
1
- {"version":3,"file":"progress-updates.d.ts","sourceRoot":"","sources":["../../../../src/client/locales-ru/progress-updates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE9E,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAwC/D,CAAA"}
1
+ {"version":3,"file":"progress-updates.d.ts","sourceRoot":"","sources":["../../../../src/client/locales-ru/progress-updates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE9E,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CA0C/D,CAAA"}
@@ -44,6 +44,8 @@ export declare const zh: {
44
44
  readonly settingsRetrievalNote: "Kimi Code 专用:导航任务中投影文件、网页与搜索,编辑审查保留原文;非 Kimi 线路开关无影响";
45
45
  readonly settingsPlanModePipelineName: "计划模式管线";
46
46
  readonly settingsPlanModePipelineNote: "澄清访谈收敛后自动进入计划模式出计划,再交审批(仅调度模式生效);关闭后该模式会请用户手动输入 /plan";
47
+ readonly settingsDispatchExecutionGuardName: "调度执行守卫";
48
+ readonly settingsDispatchExecutionGuardNote: "执行期拦截子代理越权调用主控工具及等待子代理时的纯 sleep 空等;不改工具声明面,零损耗保护 Kimi 缓存";
47
49
  readonly settingsThresholdName: "催促阈值";
48
50
  readonly settingsThresholdNote: "连续这么多轮没有进展时,提醒 agent 汇报一次";
49
51
  readonly settingsLanguageName: "输出语言";
@@ -91,6 +93,8 @@ export declare const dictionaries: {
91
93
  readonly settingsRetrievalNote: "Kimi Code 专用:导航任务中投影文件、网页与搜索,编辑审查保留原文;非 Kimi 线路开关无影响";
92
94
  readonly settingsPlanModePipelineName: "计划模式管线";
93
95
  readonly settingsPlanModePipelineNote: "澄清访谈收敛后自动进入计划模式出计划,再交审批(仅调度模式生效);关闭后该模式会请用户手动输入 /plan";
96
+ readonly settingsDispatchExecutionGuardName: "调度执行守卫";
97
+ readonly settingsDispatchExecutionGuardNote: "执行期拦截子代理越权调用主控工具及等待子代理时的纯 sleep 空等;不改工具声明面,零损耗保护 Kimi 缓存";
94
98
  readonly settingsThresholdName: "催促阈值";
95
99
  readonly settingsThresholdNote: "连续这么多轮没有进展时,提醒 agent 汇报一次";
96
100
  readonly settingsLanguageName: "输出语言";
@@ -134,6 +138,8 @@ export declare const dictionaries: {
134
138
  readonly settingsRetrievalNote: "Kimi Code 专用:导航任务中投影文件、网页与搜索,编辑审查保留原文;非 Kimi 线路开关无影响";
135
139
  readonly settingsPlanModePipelineName: "计划模式管线";
136
140
  readonly settingsPlanModePipelineNote: "澄清访谈收敛后自动进入计划模式出计划,再交审批(仅调度模式生效);关闭后该模式会请用户手动输入 /plan";
141
+ readonly settingsDispatchExecutionGuardName: "调度执行守卫";
142
+ readonly settingsDispatchExecutionGuardNote: "执行期拦截子代理越权调用主控工具及等待子代理时的纯 sleep 空等;不改工具声明面,零损耗保护 Kimi 缓存";
137
143
  readonly settingsThresholdName: "催促阈值";
138
144
  readonly settingsThresholdNote: "连续这么多轮没有进展时,提醒 agent 汇报一次";
139
145
  readonly settingsLanguageName: "输出语言";
@@ -146,8 +152,8 @@ export declare const dictionaries: {
146
152
  readonly settingsUnavailable: "这项设置当前不可修改(宿主没有开放配置表单)";
147
153
  readonly settingsSaveFailed: "保存失败,请稍后再试";
148
154
  };
149
- en: Record<"navTitle" | "progressTitle" | "progressGuideNote" | "markdownCopy" | "markdownCopied" | "markdownFootnotes" | "progressLatest" | "progressCount" | "progressExpand" | "progressCollapse" | "progressEmptyTitle" | "progressEmptyHint" | "rowPending" | "rowRunning" | "rowDone" | "rowError" | "rowExpand" | "rowCollapse" | "settingsHint" | "settingsOpen" | "settingsEnabledName" | "settingsEnabledNote" | "settingsCacheWarmupName" | "settingsCacheWarmupNote" | "settingsRetrievalName" | "settingsRetrievalNote" | "settingsPlanModePipelineName" | "settingsPlanModePipelineNote" | "settingsThresholdName" | "settingsThresholdNote" | "settingsLanguageName" | "settingsLanguageNote" | "settingsLanguageAuto" | "settingsLanguageZh" | "settingsLanguageEn" | "settingsPanelName" | "settingsPanelNote" | "settingsUnavailable" | "settingsSaveFailed", string>;
150
- 'en-US': Record<"navTitle" | "progressTitle" | "progressGuideNote" | "markdownCopy" | "markdownCopied" | "markdownFootnotes" | "progressLatest" | "progressCount" | "progressExpand" | "progressCollapse" | "progressEmptyTitle" | "progressEmptyHint" | "rowPending" | "rowRunning" | "rowDone" | "rowError" | "rowExpand" | "rowCollapse" | "settingsHint" | "settingsOpen" | "settingsEnabledName" | "settingsEnabledNote" | "settingsCacheWarmupName" | "settingsCacheWarmupNote" | "settingsRetrievalName" | "settingsRetrievalNote" | "settingsPlanModePipelineName" | "settingsPlanModePipelineNote" | "settingsThresholdName" | "settingsThresholdNote" | "settingsLanguageName" | "settingsLanguageNote" | "settingsLanguageAuto" | "settingsLanguageZh" | "settingsLanguageEn" | "settingsPanelName" | "settingsPanelNote" | "settingsUnavailable" | "settingsSaveFailed", string>;
155
+ en: Record<"navTitle" | "progressTitle" | "progressGuideNote" | "markdownCopy" | "markdownCopied" | "markdownFootnotes" | "progressLatest" | "progressCount" | "progressExpand" | "progressCollapse" | "progressEmptyTitle" | "progressEmptyHint" | "rowPending" | "rowRunning" | "rowDone" | "rowError" | "rowExpand" | "rowCollapse" | "settingsHint" | "settingsOpen" | "settingsEnabledName" | "settingsEnabledNote" | "settingsCacheWarmupName" | "settingsCacheWarmupNote" | "settingsRetrievalName" | "settingsRetrievalNote" | "settingsPlanModePipelineName" | "settingsPlanModePipelineNote" | "settingsDispatchExecutionGuardName" | "settingsDispatchExecutionGuardNote" | "settingsThresholdName" | "settingsThresholdNote" | "settingsLanguageName" | "settingsLanguageNote" | "settingsLanguageAuto" | "settingsLanguageZh" | "settingsLanguageEn" | "settingsPanelName" | "settingsPanelNote" | "settingsUnavailable" | "settingsSaveFailed", string>;
156
+ 'en-US': Record<"navTitle" | "progressTitle" | "progressGuideNote" | "markdownCopy" | "markdownCopied" | "markdownFootnotes" | "progressLatest" | "progressCount" | "progressExpand" | "progressCollapse" | "progressEmptyTitle" | "progressEmptyHint" | "rowPending" | "rowRunning" | "rowDone" | "rowError" | "rowExpand" | "rowCollapse" | "settingsHint" | "settingsOpen" | "settingsEnabledName" | "settingsEnabledNote" | "settingsCacheWarmupName" | "settingsCacheWarmupNote" | "settingsRetrievalName" | "settingsRetrievalNote" | "settingsPlanModePipelineName" | "settingsPlanModePipelineNote" | "settingsDispatchExecutionGuardName" | "settingsDispatchExecutionGuardNote" | "settingsThresholdName" | "settingsThresholdNote" | "settingsLanguageName" | "settingsLanguageNote" | "settingsLanguageAuto" | "settingsLanguageZh" | "settingsLanguageEn" | "settingsPanelName" | "settingsPanelNote" | "settingsUnavailable" | "settingsSaveFailed", string>;
151
157
  };
152
158
  /** 本命名空间的字典键联合,供类型化 `t` 座位使用。 */
153
159
  export type ProgressUpdatesLocaleKey = keyof typeof zh;
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/locales.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAG,sBAA+B,CAAA;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,EAAE;IACb,4BAA4B;;;IAG5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCpB,CAAA;AAEV,wBAAwB;AACxB,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAwCvD,CAAA;AAED,qCAAqC;AACrC,eAAO,MAAM,YAAY;;QAvFvB,4BAA4B;;;QAG5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAH5B,4BAA4B;;;QAG5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyF7B,CAAA;AAED,iCAAiC;AACjC,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,EAAE,CAAA;AAEtD,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,mBAAmB;QACnB,sBAAsB,EAAE,wBAAwB,CAAA;KACjD;CACF"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/locales.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAG,sBAA+B,CAAA;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,EAAE;IACb,4BAA4B;;;IAG5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCpB,CAAA;AAEV,wBAAwB;AACxB,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CA0CvD,CAAA;AAED,qCAAqC;AACrC,eAAO,MAAM,YAAY;;QA3FvB,4BAA4B;;;QAG5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAH5B,4BAA4B;;;QAG5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6F7B,CAAA;AAED,iCAAiC;AACjC,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,EAAE,CAAA;AAEtD,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,mBAAmB;QACnB,sBAAsB,EAAE,wBAAwB,CAAA;KACjD;CACF"}
@@ -62,11 +62,19 @@ export interface ProgressUpdatesSettingsValues {
62
62
  * 否则「设置里显示关着」与「实际是开着的」会同时成立。
63
63
  */
64
64
  planModePipeline?: boolean;
65
+ /**
66
+ * 调度执行守卫开关(缺键 = 开)。
67
+ *
68
+ * 与宿主 src/index.ts 的 Config 同一个对象里的字段、名字逐字一致;宿主那边是
69
+ * default(true),所以老配置没有这个键时界面必须同样读成开,否则「设置里显示
70
+ * 关着」与「实际是开着的」会同时成立。
71
+ */
72
+ dispatchExecutionGuard?: boolean;
65
73
  }
66
74
  /** 输出语言的三种取值,供界面侧声明变量类型。 */
67
75
  export type ProgressUpdatesLanguage = NonNullable<ProgressUpdatesSettingsValues['progressUpdatesLanguage']>;
68
76
  /** 表单可写的那三个字段名(联合类型,写错名字编译期就报)。 */
69
- export type ProgressUpdatesField = 'progressUpdates' | 'progressUpdatesNudgeThreshold' | 'progressUpdatesLanguage' | 'cacheWarmup' | 'cacheWarmupRetrieval' | 'planModePipeline';
77
+ export type ProgressUpdatesField = 'progressUpdates' | 'progressUpdatesNudgeThreshold' | 'progressUpdatesLanguage' | 'cacheWarmup' | 'cacheWarmupRetrieval' | 'planModePipeline' | 'dispatchExecutionGuard';
70
78
  /**
71
79
  * 候选条目 id,按可能性从高到低。
72
80
  *
@@ -1 +1 @@
1
- {"version":3,"file":"settings-binding.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/settings-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,aAAa,CAAA;IAC3C,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAQD;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,WAAW;IACX,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,0BAA0B;IAC1B,6BAA6B,CAAC,EAAE,MAAM,CAAA;IACtC;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC9C,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yBAAyB;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,4BAA4B;AAC5B,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAE3G,mCAAmC;AACnC,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,+BAA+B,GAC/B,yBAAyB,GACzB,aAAa,GACb,sBAAsB,GACtB,kBAAkB,CAAA;AAEtB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAIxD,CAAA;AAED,6BAA6B;AAC7B,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,WAAW,IAAI,kBAAkB,CAAC,6BAA6B,CAAC,CAAA;IAChE,cAAc;IACd,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IAC3C,uBAAuB;IACvB,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACpF,8BAA8B;IAC9B,OAAO,IAAI,IAAI,CAAA;CAChB;AAoED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,oBAAoB,GAAG,SAAS,CA4FhH"}
1
+ {"version":3,"file":"settings-binding.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/settings-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,aAAa,CAAA;IAC3C,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAQD;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,WAAW;IACX,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,0BAA0B;IAC1B,6BAA6B,CAAC,EAAE,MAAM,CAAA;IACtC;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC9C,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yBAAyB;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,4BAA4B;AAC5B,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAE3G,mCAAmC;AACnC,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,+BAA+B,GAC/B,yBAAyB,GACzB,aAAa,GACb,sBAAsB,GACtB,kBAAkB,GAClB,wBAAwB,CAAA;AAE5B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAIxD,CAAA;AAED,6BAA6B;AAC7B,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,WAAW,IAAI,kBAAkB,CAAC,6BAA6B,CAAC,CAAA;IAChE,cAAc;IACd,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IAC3C,uBAAuB;IACvB,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACpF,8BAA8B;IAC9B,OAAO,IAAI,IAAI,CAAA;CAChB;AAoED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,oBAAoB,GAAG,SAAS,CA4FhH"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-section.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/settings-section.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjF,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAEV,oBAAoB,EAIrB,MAAM,uBAAuB,CAAA;AAE9B,iCAAiC;AACjC,MAAM,WAAW,+BAA+B;IAC9C,iCAAiC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC;AAED,6BAA6B;AAC7B,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,6CAA6C;AAC7C,MAAM,MAAM,4BAA4B,GAAG,+BAA+B,GAAG,kBAAkB,GAAG,QAAQ,CAAA;AAE1G,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,YAAY;AACZ,eAAO,MAAM,mBAAmB,KAAK,CAAA;AACrC,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAqJxC;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,4BAA4B,GAAG,SAAS,CA8P7F"}
1
+ {"version":3,"file":"settings-section.d.ts","sourceRoot":"","sources":["../../../../src/client/progress-updates/settings-section.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjF,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAEV,oBAAoB,EAIrB,MAAM,uBAAuB,CAAA;AAE9B,iCAAiC;AACjC,MAAM,WAAW,+BAA+B;IAC9C,iCAAiC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC;AAED,6BAA6B;AAC7B,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,6CAA6C;AAC7C,MAAM,MAAM,4BAA4B,GAAG,+BAA+B,GAAG,kBAAkB,GAAG,QAAQ,CAAA;AAE1G,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,YAAY;AACZ,eAAO,MAAM,mBAAmB,KAAK,CAAA;AACrC,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,IAAI,CAAA;AA+JxC;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,4BAA4B,GAAG,SAAS,CAsR7F"}
@@ -71,7 +71,7 @@ export declare const ROUTE_PREFIX: "/api/dsh-chatgpt-subscription";
71
71
  * `test/responses-client.test.ts` asserts the two agree, so a release that
72
72
  * forgets this constant fails the suite instead of shipping quietly.
73
73
  */
74
- export declare const PLUGIN_VERSION: "0.50.0";
74
+ export declare const PLUGIN_VERSION: "0.51.1";
75
75
  export declare const CODEX_CHATGPT_PROVIDER_ID: "codex-chatgpt";
76
76
  export { MINIMAX_CODE_PROVIDER_ID, MINIMAX_CODE_ROUTE_PREFIX } from './shared/minimax-code-contracts.ts';
77
77
  export declare const CODEX_API_BASE: "https://chatgpt.com/backend-api/codex";
@@ -1 +1 @@
1
- {"version":3,"file":"agent-preset.d.ts","sourceRoot":"","sources":["../../../src/host/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,kCAAkC,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,uCAAuC,CAAA;AAE7E,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,aAAa,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAA;IACV,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAA;CACxC;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;CACvC;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CACrE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5E,yBAAyB;IACzB,MAAM,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAE9D,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAA;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,gBA8V7B,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,iBAAoC,GAAG,gBAAgB,CAkBtG;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,iBAAoC,GAC7C,aAAa,CAuBf"}
1
+ {"version":3,"file":"agent-preset.d.ts","sourceRoot":"","sources":["../../../src/host/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,kCAAkC,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,uCAAuC,CAAA;AAE7E,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,aAAa,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAA;IACV,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAA;CACxC;AAED,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;CACvC;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CACrE;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,2EAA2E;IAC3E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5E,yBAAyB;IACzB,MAAM,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAE9D,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAA;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,gBAmS7B,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,iBAAoC,GAAG,gBAAgB,CAkBtG;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,iBAAoC,GAC7C,aAAa,CAuBf"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * 「调度执行守卫」——在**执行期**拦住两类越界调用。
3
+ *
4
+ * ## 为什么需要它
5
+ *
6
+ * 调度模式(dispatch preset)里主控与子代理跑在同一进程、同一套工具注册面上,
7
+ * 于是有两件事会悄悄坏掉:
8
+ *
9
+ * 1. **子代理越权调用主控专用工具**。`ask_user_question`、`exit_plan_mode`、
10
+ * `create_goal` 这些是**主控的**决定口:让子代理自己问用户、自己进/出计划模式、
11
+ * 自己建目标,都会把「一个决定」拆成两个决定——子代理问完,用户答了,主控却
12
+ * 不知道问过什么。子代理本来就该把未决问题**带回**主控,而不是自己去问。
13
+ * 2. **等待子代理期间空等**。子代理还在跑的时候,主控用 `sleep` 空转,既烧 token
14
+ * 又错过通知到达的那一刻。正确做法是**结束这一轮**,让内置的子代理完成通知把
15
+ * 它叫醒(R-W)。
16
+ *
17
+ * ## 零 Kimi Code 缓存漂移
18
+ *
19
+ * 守卫**只**用 `ctx.tools.guard(exec => …)` 这一条执行期接缝:
20
+ *
21
+ * - 不包 `tools.definitions`,不包 `tools.register`,不听
22
+ * `system-prompt/assemble`——工具声明面(`tools:sdk` 段与顶层工具 schema)
23
+ * 保持逐字节恒定,Kimi Code 的前缀缓存不会因为这个守卫重建一次。
24
+ * - 拦截发生在**调用执行时**,模型看到的工具表完全没变,所以「看得见」与
25
+ * 「叫得动」仍然被拆开:工具照常出现在表里,只是越界的调用被拒。
26
+ *
27
+ * ## 判定从哪来
28
+ *
29
+ * 两条判定都走**结构探测**,不 import 任何 harness 代次专属的类型:
30
+ *
31
+ * - 「你是不是子代理」:先看**持久会话血缘**(`session.header.origin ===
32
+ * 'subagent'`),再看宿主活着的**存活根**(`agents.roots()`)。两条都是
33
+ * 读得着的既有事实,不新增任何状态。
34
+ * - 「你还有没有在跑的子代理」:依次问 `subagents.list` 与 `agents.list`,
35
+ * 看有没有 `status === 'running'` 的直接子代。
36
+ *
37
+ * @module @eddyskywalker/dsh-chatgpt-subscription/host/dispatch-execution-guard
38
+ */
39
+ /**
40
+ * 子代理**不得**直接调用的主控专用工具。
41
+ *
42
+ * 这七个都是「决定口」或「交付口」,不是「干活口」:
43
+ *
44
+ * - `ask_user_question` / `exit_plan_mode` / `enter_plan_mode` /
45
+ * `leave_plan_mode`:计划与提问的决定权在主控;
46
+ * - `create_goal` / `update_goal`:目标由主控持有;
47
+ * - `present`:交付口由主控掌握。
48
+ *
49
+ * 子代理遇到需要决定的地方,正确动作是**把问题带回主控**,让主控去调这些工具。
50
+ */
51
+ export declare const DEFAULT_DELEGATED_BLOCKED_TOOLS: readonly ["ask_user_question", "exit_plan_mode", "enter_plan_mode", "leave_plan_mode", "create_goal", "update_goal", "present"];
52
+ /**
53
+ * 承载「等待」语义的 shell 工具。
54
+ *
55
+ * 这三个是本包与宿主都会用到的 shell 入口:它们的 `command` 参数里可能藏着
56
+ * `sleep`。空等只在**确实有在跑的子代理**时才是问题(有子代理时应当结束这一
57
+ * 轮等通知),没有子代理时 `sleep 1` 只是普通命令,不该拦。
58
+ */
59
+ export declare const DEFAULT_SHELL_TOOLS: readonly ["bash", "pwsh", "win_bash"];
60
+ /** 守卫选项。 */
61
+ export interface DispatchExecutionGuardOptions {
62
+ /**
63
+ * 当前是否启用拦截。**每次执行都重读**,所以设置保存后下一步就生效,
64
+ * 不需要重挂任何一行。
65
+ */
66
+ readonly enabled?: () => boolean;
67
+ /**
68
+ * 「这个调用方还有没有在跑的子代理」的**直接注入口**。
69
+ *
70
+ * 宿主探测(`subagents.list` / `agents.list`)在测试里不好复现,而这条
71
+ * 判定决定了一条 sleep 命令会不会被拒——它必须能被单独测。给了这个回调就以
72
+ * 它为准,不再走宿主探测。
73
+ */
74
+ readonly hasRunningChildren?: (agent: unknown) => boolean;
75
+ }
76
+ /**
77
+ * 这个调用方是不是**子代理**。
78
+ *
79
+ * 判定分两级,先看能独立成立的持久事实,再看宿主当前活着的存活根:
80
+ *
81
+ * 1. **持久会话血缘**:`session.header.origin === 'subagent'`。这是子代理会话
82
+ * 创建时就写下的血缘,跨宿主代次都在,不依赖任何服务是否挂载。
83
+ * 2. **存活根判定**:宿主提供 `agents.roots()` 时,一个**不在**存活根集合里的
84
+ * agent 就是别人的孩子。先核对**存活**(`agents.get(id) === agent`):不是
85
+ * 那个 id 当前登记的存活 agent,说明这个调用方已经过期或已被顶替——判它是不是
86
+ * 子代理没有意义,放行。
87
+ *
88
+ * 宿主没有 `agents` 服务(或老代没有 `roots`)时,判不了就**放行**:把一个
89
+ * 读不出来的身份当成子代理去拦,会拦掉主控自己的正常调用。
90
+ *
91
+ * @param agent - 调用方 agent。
92
+ * @param ctx - 宿主上下文(可选;用于读 `agents` 服务)。
93
+ * @returns 是子代理时为 true。
94
+ */
95
+ export declare function isDelegatedCaller(agent: unknown, ctx?: unknown): boolean;
96
+ /**
97
+ * 判断一条命令是不是**纯等待**。
98
+ *
99
+ * 判据:整条命令**按分隔符切开后**,至少有一条是 sleep/wait,而**每一条**都是
100
+ * sleep/wait 或者无害的空转(回显、真、冒号、注释)。只要有一条在做真事
101
+ * (`sleep 1 && npm test`、`git status`、`node …`),整条命令就不是纯等待——
102
+ * 这类命令**必须放行**,否则守卫会拦掉正当的后台工作。
103
+ *
104
+ * @param command - 候选命令。
105
+ * @returns 是纯等待时为 true。
106
+ */
107
+ export declare function isPureSleepCommand(command: unknown): boolean;
108
+ /**
109
+ * 这个调用方当前**还有没有在跑的子代理**。
110
+ *
111
+ * 两条宿主探测,任何一条给出答案就算数:
112
+ *
113
+ * 1. `subagents.list(agent, 'children')`(老代退化成 `subagents.list(agent)`):
114
+ * 直接子代里有没有 `status === 'running'` 的。
115
+ * 2. `agents.list()`:活着且 `status === 'running'`、并且 `parent` 就是这个
116
+ * 调用方的那些 agent。
117
+ *
118
+ * 宿主提供 `hasRunningChildren` 回调时以它为准(直接注入口,见
119
+ * {@link DispatchExecutionGuardOptions.hasRunningChildren})。
120
+ *
121
+ * @param agent - 调用方 agent。
122
+ * @param ctx - 宿主上下文(可选;用于读 `subagents` / `agents` 服务)。
123
+ * @returns 有在跑的子代理时为 true。
124
+ */
125
+ export declare function hasRunningChildSubagent(agent: unknown, ctx?: unknown): boolean;
126
+ /**
127
+ * 解析「调度执行守卫」当前是否启用。
128
+ *
129
+ * 沿 volatile 活引用取当前值,所以设置保存后立刻生效。缺省、非法值、读取抛错都
130
+ * 按**开启**处理:守卫是保护,不是功能开关,读失败不该把保护关掉。
131
+ *
132
+ * @param config - 插件配置(活引用或普通值)。
133
+ * @returns 是否启用。
134
+ */
135
+ export declare function resolveDispatchExecutionGuardEnabled(config?: {
136
+ dispatchExecutionGuard?: {
137
+ get(): boolean | undefined;
138
+ } | boolean;
139
+ }): boolean;
140
+ /**
141
+ * 装一台「调度执行守卫」。
142
+ *
143
+ * 只用 `ctx.tools.guard()` 这一条执行期接缝:工具声明面(`tools:sdk` 段与顶层
144
+ * 工具 schema)一个字节都不改,Kimi Code 的前缀缓存不会因为这个守卫重建。
145
+ *
146
+ * @param ctx - 宿主上下文。
147
+ * @param options - 守卫选项。
148
+ * @returns 注销守卫的函数;宿主没有 `guard` 接缝时是一个空操作。
149
+ */
150
+ export declare function installDispatchExecutionGuard(ctx: unknown, options?: DispatchExecutionGuardOptions): () => void;
151
+ //# sourceMappingURL=dispatch-execution-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-execution-guard.d.ts","sourceRoot":"","sources":["../../../src/host/dispatch-execution-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,+BAA+B,iIAQjC,CAAA;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,uCAIrB,CAAA;AAEX,YAAY;AACZ,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAA;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAC1D;AA8HD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CA2BxE;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAkB5D;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAkC9E;AA+DD;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAClD,MAAM,CAAC,EAAE;IAAE,sBAAsB,CAAC,EAAE;QAAE,GAAG,IAAI,OAAO,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAA;CAAE,GAC7E,OAAO,CAWT;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,6BAAkC,GAC1C,MAAM,IAAI,CAoCZ"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * 从**持久会话日志**里读出 Mandate 的地方。
3
+ *
4
+ * ## 为什么需要单独一层
5
+ *
6
+ * 头部散落在三类持久事实里,而它们各自的形状不同:
7
+ *
8
+ * - **子会话的首条 `user/message`**:内容是 `[...提示词块, "Your parent agent
9
+ * id is …" 指引块]`,头部在提示词块里(第一个块);
10
+ * - **收件方的 `agent/inbox/spliced`**:内容是 `["Agent <id> sent a message: ",
11
+ * ...原文]`,头部在**第二个**块里;
12
+ * - **`tool/call` / `tool/ptc-dispatch*` 的 arguments**:一次派发尝试的原文。
13
+ *
14
+ * 所以解析器**必须扫描全部 text block**,取第一个以围栏开头的——固定取第 0
15
+ * 块会在"第二个块"这条路径上读不到头部。
16
+ *
17
+ * ## 这里只读,不判定
18
+ *
19
+ * 本模块只回答"这份日志里有没有 Mandate、是哪一份"。**授权判定**(持有、
20
+ * 血缘、版本、扩权)属于守卫与工具的后续实现;账本只负责折叠事实。
21
+ *
22
+ * @module dsh-chatgpt-subscription/host/dispatch-ledger/binding
23
+ */
24
+ import { type MandateHeader, type MandateParseResult } from './header.ts';
25
+ /** 一条会话事件(结构化;真实类型是 `SessionEvent` 的可判空子集)。 */
26
+ export interface SessionEventLike {
27
+ /** 事件类型判别值。 */
28
+ readonly type?: unknown;
29
+ /** 事件在会话日志里的序号。 */
30
+ readonly seq?: unknown;
31
+ /** 事件时刻(Unix 毫秒)。 */
32
+ readonly time?: unknown;
33
+ /** 事件载荷。 */
34
+ readonly data?: unknown;
35
+ }
36
+ /** 本模块读到的最小会话视图。 */
37
+ export interface SessionLike {
38
+ /** 会话 id。 */
39
+ readonly id?: unknown;
40
+ /** 会话头:血缘与角色。 */
41
+ readonly header?: {
42
+ /** 直接父会话 id。 */
43
+ readonly parentSession?: unknown;
44
+ /** 会话来源分类。 */
45
+ readonly origin?: unknown;
46
+ };
47
+ /** 事件日志(轻量夹具可直接给)。 */
48
+ readonly events?: readonly SessionEventLike[];
49
+ /** 真实 Session 的读取器。 */
50
+ snapshotEvents?(): readonly SessionEventLike[];
51
+ }
52
+ /**
53
+ * 读一个会话的有序日志。
54
+ * @param session - 会话。
55
+ * @returns 事件数组;读不到时是空数组。
56
+ */
57
+ export declare function eventsOf(session: SessionLike): readonly SessionEventLike[];
58
+ /**
59
+ * 取出一个内容数组里的全部 text 块文本。
60
+ *
61
+ * 块形状是 `{ type: 'text', text: string }`;其它形状(图片、工具块)跳过。
62
+ * @param content - 内容数组。
63
+ * @returns 文本数组。
64
+ */
65
+ export declare function textBlocksOf(content: unknown): string[];
66
+ /**
67
+ * 从一组文本块里找出 Mandate 头部。
68
+ *
69
+ * 扫描**全部**块,返回第一个成功解析的头部;没有成功但有损坏的块时返回损坏
70
+ * 结果;否则返回"没有头部"。
71
+ * @param blocks - 内容块数组。
72
+ * @returns 解析结果。
73
+ */
74
+ export declare function mandateFromTextBlocks(blocks: readonly unknown[]): MandateParseResult;
75
+ /**
76
+ * 从一段消息内容里找出 Mandate 头部。
77
+ * @param content - 消息的 content 数组。
78
+ * @returns 解析结果。
79
+ */
80
+ export declare function mandateFromContent(content: unknown): MandateParseResult;
81
+ /**
82
+ * 列出��个会话日志里持有的全部 Mandate。
83
+ *
84
+ * 覆盖两条持久路径:子会话自己收到的提示词(`user/message`)与被投递进来的
85
+ * 消息(`agent/inbox/spliced`)。按命名空间去重。
86
+ * @param session - 会话。
87
+ * @returns 持有的头部列表。
88
+ */
89
+ export declare function heldMandatesOfSession(session: SessionLike): MandateHeader[];
90
+ /**
91
+ * 读一个会话的直接父会话 id。
92
+ * @param session - 会话。
93
+ * @returns 父会话 id;没有时 undefined。
94
+ */
95
+ export declare function parentSessionIdOfSession(session: SessionLike): string | undefined;
96
+ /**
97
+ * 读一个会话的 id。
98
+ * @param session - 会话。
99
+ * @returns 会话 id;没有时 undefined。
100
+ */
101
+ export declare function sessionIdOf(session: SessionLike): string | undefined;
102
+ /** 父会话目录里的一条子代理记录。 */
103
+ export interface CatalogChild {
104
+ /** 子会话 id。 */
105
+ readonly childId: string;
106
+ /** 展示标签。 */
107
+ readonly label?: string;
108
+ }
109
+ /**
110
+ * 读一个会话记录下来的直接子代理。
111
+ *
112
+ * 只读 `subagent/catalog` 事件:这是**父会话自己**写的、唯一一处"我知道我
113
+ * 派了哪些子代理"的持久事实。
114
+ * @param session - 会话。
115
+ * @returns 子代理列表。
116
+ */
117
+ export declare function catalogChildrenOfSession(session: SessionLike): CatalogChild[];
118
+ //# sourceMappingURL=binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../../../src/host/dispatch-ledger/binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAA;AAEpB,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB;IACnB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB,qBAAqB;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY;IACZ,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,aAAa;IACb,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAA;IACrB,iBAAiB;IACjB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,gBAAgB;QAChB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;QAChC,cAAc;QACd,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;IACD,sBAAsB;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC7C,uBAAuB;IACvB,cAAc,CAAC,IAAI,SAAS,gBAAgB,EAAE,CAAA;CAC/C;AAoBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,gBAAgB,EAAE,CAW1E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAUvD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,kBAAkB,CAYpF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,EAAE,CAwB3E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAKjF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAGpE;AAED,sBAAsB;AACtB,MAAM,WAAW,YAAY;IAC3B,cAAc;IACd,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,YAAY;IACZ,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,EAAE,CAc7E"}