@eddyskywalker/dsh-chatgpt-subscription 0.59.0 → 0.60.0

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 (34) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +1 -1
  3. package/lib/client.js +1578 -232
  4. package/lib/client.js.map +1 -1
  5. package/lib/codemode.js +537 -150
  6. package/lib/index.js +177 -183
  7. package/lib/llm-compat-u9mor0uu.js +110 -0
  8. package/lib/types/client/codemode/CodeRunToolView.d.ts +68 -0
  9. package/lib/types/client/codemode/CodeRunToolView.d.ts.map +1 -0
  10. package/lib/types/client/codemode/highlight.d.ts +25 -0
  11. package/lib/types/client/codemode/highlight.d.ts.map +1 -0
  12. package/lib/types/client/codemode/styles.d.ts +11 -0
  13. package/lib/types/client/codemode/styles.d.ts.map +1 -0
  14. package/lib/types/client/codemode/tool-name.d.ts +10 -0
  15. package/lib/types/client/codemode/tool-name.d.ts.map +1 -0
  16. package/lib/types/client/index.d.ts.map +1 -1
  17. package/lib/types/client/locales-ru/hub.d.ts.map +1 -1
  18. package/lib/types/client/locales.d.ts +23 -1
  19. package/lib/types/client/locales.d.ts.map +1 -1
  20. package/lib/types/compat.d.ts +1 -1
  21. package/lib/types/entry-codemode.d.ts.map +1 -1
  22. package/lib/types/host/codemode/executor.d.ts.map +1 -1
  23. package/lib/types/host/codemode/rules.d.ts +16 -6
  24. package/lib/types/host/codemode/rules.d.ts.map +1 -1
  25. package/lib/types/host/codemode/transport.d.ts +82 -41
  26. package/lib/types/host/codemode/transport.d.ts.map +1 -1
  27. package/lib/types/host/command-code/model-catalog.d.ts +14 -14
  28. package/lib/types/host/command-code/model-catalog.d.ts.map +1 -1
  29. package/lib/types/host/command-code/routes.d.ts.map +1 -1
  30. package/lib/types/host/preset-sync.d.ts +19 -4
  31. package/lib/types/host/preset-sync.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/presets/dispatch/README.md +1 -3
  34. package/presets/dispatch/agent.cordis.yml +9 -7
@@ -21,8 +21,8 @@
21
21
  * `deepseek/deepseek-v4.1-flash` and `deepseek/deepseek-v4-flash-vision-exp` take
22
22
  * images, and `z-ai/glm-5.3-flash` takes images while `zai-org/GLM-5.3` does not.
23
23
  *
24
- * THE TABLE BELOW is the registry `command-code@1.88.2` embeds in its CLI
25
- * bundle (`dist/cli.mjs`), transcribed in full: 106 entries, in registry order.
24
+ * THE TABLE BELOW is the registry `command-code@1.88.4` embeds in its CLI
25
+ * bundle (`dist/cli.mjs`), transcribed in full: 109 entries, in registry order.
26
26
  * The redacted snapshot of that registry is checked in under
27
27
  * `test/fixtures/command-code/official-model-catalog.json`, and
28
28
  * `test/command-code-model-catalog.test.ts` compares this table against it
@@ -73,18 +73,18 @@ export declare const COMMAND_CODE_MODELS: readonly CommandCodeModelDef[];
73
73
  /** Registry entry for one model id, or undefined when it describes no such model. */
74
74
  export declare function commandCodeModelDef(modelId: string): CommandCodeModelDef | undefined;
75
75
  /**
76
- * Model ids the 1.88.2 catalog refresh added to the shipped default selection.
76
+ * One catalog refresh's changes to the shipped default selection, newest first.
77
77
  *
78
- * The shipped default is the set of models the settings card offers before the
79
- * user edits it, and a stored selection that still equals it counts as "never
80
- * edited" (see `resolveEnabledModelIds` in `./routes.ts`). A refresh that
81
- * changed the default without saying so would make every untouched selection
82
- * from the previous release look edited, and the models this release adds
83
- * would stay hidden behind a list nobody touched. These two lists carry that
84
- * change: the retired ids are the ones the previous default had and this one
85
- * does not, and the added ids are the ones it gained.
78
+ * Applying these in order reconstructs every earlier unedited selection: remove
79
+ * the ids that refresh added, then restore the ids it retired. Keeping each
80
+ * generation separate matters once two refreshes have shipped; folding their
81
+ * additions into one list would skip the intermediate default entirely.
86
82
  */
87
- export declare const SHIPPED_DEFAULT_ADDED_MODEL_IDS: readonly string[];
88
- /** Model ids the 1.88.2 catalog refresh dropped from the shipped default selection. */
89
- export declare const SHIPPED_DEFAULT_RETIRED_MODEL_IDS: readonly string[];
83
+ export interface ShippedDefaultMigration {
84
+ version: string;
85
+ added: readonly string[];
86
+ retired: readonly string[];
87
+ }
88
+ /** Default-selection deltas recognized by `resolveEnabledModelIds` in `./routes.ts`. */
89
+ export declare const SHIPPED_DEFAULT_MIGRATIONS: readonly ShippedDefaultMigration[];
90
90
  //# sourceMappingURL=model-catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../../../src/host/command-code/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;AAE3D,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,0EAA0E;IAC1E,eAAe,EAAE,mBAAmB,EAAE,CAAA;IACtC,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,kEAAkE;IAClE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,2FAA2F;IAC3F,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,wEAAwE;IACxE,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,EAAE,SAAS,mBAAmB,EA27B7D,CAAA;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAEpF;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,+BAA+B,EAAE,SAAS,MAAM,EAe5D,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,iCAAiC,EAAE,SAAS,MAAM,EAM9D,CAAA"}
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../../../src/host/command-code/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;AAE3D,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,0EAA0E;IAC1E,eAAe,EAAE,mBAAmB,EAAE,CAAA;IACtC,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,kEAAkE;IAClE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,2FAA2F;IAC3F,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,wEAAwE;IACxE,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,EAAE,SAAS,mBAAmB,EAs9B7D,CAAA;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAEpF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3B;AAED,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,EAAE,SAAS,uBAAuB,EAmCxE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/command-code/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,EAAmB,WAAW,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAA;AAG3G,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,uBAAuB,EAE5B,KAAK,0BAA0B,EAChC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAKL,gBAAgB,EAQjB,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAqDrG;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,SAAS,uBAAuB,EAAE,EAC3C,OAAO,UAAO,GACb,MAAM,EAAE,CAOV;AAsBD,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAMD,mFAAmF;AACnF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,0BAA0B,EACxC,OAAO,GAAE,wBAA6B,EACtC,WAAW,GAAE,sBAAsB,GAAG,SAA+B,GACpE,OAAO,CAAC,oBAAoB,CAAC,CA+E/B;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,0BAA0B,EACxC,OAAO,GAAE,wBAA6B,EACtC,WAAW,GAAE,sBAAsB,GAAG,SAA+B,GACpE,MAAM,IAAI,CAkPZ;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/command-code/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,EAAmB,WAAW,EAAE,aAAa,EAAqC,MAAM,YAAY,CAAA;AAG3G,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,uBAAuB,EAE5B,KAAK,0BAA0B,EAChC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAKL,gBAAgB,EAQjB,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAqDrG;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,SAAS,uBAAuB,EAAE,EAC3C,OAAO,UAAO,GACb,MAAM,EAAE,CAOV;AA0BD,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAMD,mFAAmF;AACnF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,0BAA0B,EACxC,OAAO,GAAE,wBAA6B,EACtC,WAAW,GAAE,sBAAsB,GAAG,SAA+B,GACpE,OAAO,CAAC,oBAAoB,CAAC,CA+E/B;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,0BAA0B,EACxC,OAAO,GAAE,wBAA6B,EACtC,WAAW,GAAE,sBAAsB,GAAG,SAA+B,GACpE,MAAM,IAAI,CAkPZ;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -45,13 +45,27 @@ export declare function candidatePackageRoots(entryScript?: string | undefined):
45
45
  /**
46
46
  * Whether a package or exported subpath is installed in any candidate node_modules tree.
47
47
  * A subpath needs its own exact `exports` key; the package root alone is not enough.
48
+ *
49
+ * The nearest manifest on each Node resolution chain is authoritative. Looking
50
+ * farther out after that manifest rejects a subpath would let an unrelated old
51
+ * installation resurrect an export the running package deliberately removed.
48
52
  */
49
53
  export declare function packageInstalled(specifier: string, roots?: readonly string[]): boolean;
54
+ /** One module-resolution attempt, injectable so stale-tree cases are testable. */
55
+ type ModuleResolver = (specifier: string) => unknown;
56
+ /**
57
+ * Resolve against the installation that will actually mount the preset.
58
+ *
59
+ * `import.meta.resolve` is based at this plugin, while the harness mounts
60
+ * runtime-declared preset rows from its own context. A successful plugin-side
61
+ * resolution is therefore not sufficient for a harness package: an old copy in
62
+ * the profile tree must not override the running harness's missing export.
63
+ * Plugin-owned rows and the plugin-borne native executor are the deliberate
64
+ * exceptions. With no harness entry, retain the legacy local probe behavior.
65
+ */
66
+ export declare function resolvesFromInstallation(specifier: string, entryScript: string | undefined, resolveFromPlugin: ModuleResolver | undefined): boolean;
50
67
  /**
51
- * Whether a bare specifier resolves from this module in the running
52
- * installation. A harness whose Node build exposes no `import.meta.resolve`
53
- * or whose plugin is executed from outside the profile tree falls through to
54
- * checking candidate `node_modules` trees across the running harness home.
68
+ * Whether a bare specifier resolves in the installation that mounts presets.
55
69
  * @param specifier - bare package specifier.
56
70
  * @returns whether the specifier resolves.
57
71
  */
@@ -143,4 +157,5 @@ export declare function syncPresetTrees(sourceRoot: string, targetRoot: string,
143
157
  * @returns the effect body's disposer, for `ctx.effect`.
144
158
  */
145
159
  export declare function installBundledPresets(host: PresetHost, install: PresetInstall): () => void;
160
+ export {};
146
161
  //# sourceMappingURL=preset-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preset-sync.d.ts","sourceRoot":"","sources":["../../../src/host/preset-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAElE,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAiB,CAAA;AAqFjE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,GAAE,MAAM,GAAG,SAA2B,GAAG,MAAM,EAAE,CAyBjG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,SAAS,MAAM,EAA4B,GACjD,OAAO,CAsBT;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAW3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAUvG;AA6CD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAEjG;AAED,sEAAsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;AAEjF,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,EAAE,iBACY,CAAA;AAE5C,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,mDAAmD;IACnD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,iEAAiE;IACjE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AA0FD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GAChD,QAAQ,GAAG,SAAS,CA+CtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,SAAS,MAAM,EAAO,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAiClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,IAAI,CAiB1F"}
1
+ {"version":3,"file":"preset-sync.d.ts","sourceRoot":"","sources":["../../../src/host/preset-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAElE,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAiB,CAAA;AAwFjE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,GAAE,MAAM,GAAG,SAA2B,GAAG,MAAM,EAAE,CAyBjG;AAOD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,SAAS,MAAM,EAA4B,GACjD,OAAO,CAsBT;AA2CD,kFAAkF;AAClF,KAAK,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAEpD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,iBAAiB,EAAE,cAAc,GAAG,SAAS,GAC5C,OAAO,CAqBT;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAUvG;AA6CD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAEjG;AAED,sEAAsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;AAEjF,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,EAAE,iBACY,CAAA;AAE5C,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,mDAAmD;IACnD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,iEAAiE;IACjE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AA0FD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GAChD,QAAQ,GAAG,SAAS,CA+CtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,SAAS,MAAM,EAAO,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAiClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,IAAI,CAiB1F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eddyskywalker/dsh-chatgpt-subscription",
3
- "version": "0.59.0",
3
+ "version": "0.60.0",
4
4
  "description": "DSH provider plugin for Codex access through a ChatGPT subscription.",
5
5
  "icon": "./icon.svg",
6
6
  "author": {
@@ -97,9 +97,7 @@ R6 验收与 R-W 等待;R0.5 只靠 `spawn_teammate` 判代,**不能**用 `w
97
97
  claim/complete。任务 ready 不等于开工,也不许用 `reassign` 把任务挪走以绕开 R6 验收。R0.5 在缺席判据
98
98
  下会先写一行 `Orchestration ready: subagent`,把当前模式打在第一行。
99
99
 
100
- **缓存侧的两个注意点**:Kimi / MiniMax 的 PTC `tools:sdk` 是冻结的**未过滤**声明
101
- (`ptc-sdk-cache-guard`),所以 `team_task_*` 在 SDK 里**常驻可见**、与开关无关——可见不等于可调用,
102
- 要以 `team_task_list` 能否调通为准。反过来,开关本身会让 `team:policy` 段从空串变成整段文本,
100
+ **缓存侧的两个注意点**:Code Mode 下 `team_task_*` 属于全局层工具,只存在于 `code_run` 程序清单里(旧代回退 PTC 时则在冻结的 `tools:sdk` 里常驻可见)——无论哪种呈现,在清单里存在都不等于开关已打开,要以在 `code_run` 内调用 `team_task_list` 能否调通为准。反过来,开关本身会让 `team:policy` 段从空串变成整段文本,
103
101
  system prompt 因此改写一次;这与计划模式当初刻意用"尾部用户消息"规避的是同一类重建,只是这段文本
104
102
  由 harness 拥有。建议在**首个回合之前**决定 team 开关:开会话时就是目标状态则零成本,中途切换付一次前缀重建。
105
103
  插件默认开启的 `teamPolicyCacheGuard` 让这唯一一次重建也消失:守卫把 `team:policy` 段从装配里
@@ -1,7 +1,9 @@
1
- # The `dispatch` (调度模式) agent preset: PTC mode presented for an ORCHESTRATOR.
1
+ # The `dispatch` (调度模式) agent preset: Code Mode presented for an ORCHESTRATOR.
2
2
  #
3
- # Derived from the builtin `ptc` preset; the tool surface is unchanged. What
4
- # this file changes is identity and planning discipline:
3
+ # Built on Code Mode (`./codemode`): this preset's own tools stay natively
4
+ # callable while MCP and external plugin tools stay reachable inside `code_run`
5
+ # (falling back to PTC `run_code` on older harnesses). What this file changes is
6
+ # identity and planning discipline:
5
7
  #
6
8
  # 1. persona — the agent is a dispatcher. It triages task complexity first
7
9
  # (L0/L1/L2), interviews the user to settle requirements before planning an
@@ -64,8 +66,8 @@
64
66
 
65
67
  ## R0.5 · Compatibility Gate (Once per New Session, Before R0)
66
68
  A legacy Agent Teams runtime (pre-#7519) registers spawn_teammate and replaces send_message / list_agents / interrupt_agent with team-scoped variants, leaving spawned subagents unreachable. The current runtime only adds a shared task board (team_task_create and its list/get/update siblings) and reuses this mode's tools.
67
- Criterion: whether spawn_teammate exists (PTC: tools.spawn_teammate). Never gate on wait_agent, send_message, list_agents, or interrupt_agent: this mode mounts those itself.
68
- - Absent -> Write "Orchestration ready: subagent" and proceed to R0. The board tools stay visible in the PTC SDK whether or not the board is on - frozen declaration, not availability - so confirm with team_task_list before relying on it. When the board is on it is bookkeeping, not a second dispatcher: the dispatch ledger stays the dispatch authority and R5 briefs stay the task contract; publish cross-agent dependencies (blocked_by) and write scopes on one team task per brief, claimed and completed by the child that owns it; never start work because a task is ready, and never reassign a task to skip R6.
69
+ Criterion: whether spawn_teammate exists (check via code_run). Never gate on wait_agent, send_message, list_agents, or interrupt_agent: this mode mounts those itself.
70
+ - Absent -> Write "Orchestration ready: subagent" and proceed to R0. The board tools stay declared whether or not the board is on - frozen declaration, not availability - so confirm with team_task_list before relying on it. When the board is on it is bookkeeping, not a second dispatcher: the dispatch ledger stays the dispatch authority and R5 briefs stay the task contract; publish cross-agent dependencies (blocked_by) and write scopes on one team task per brief, claimed and completed by the child that owns it; never start work because a task is ready, and never reassign a task to skip R6.
69
71
  - Present -> This session runs the legacy runtime and is **not orchestratable**. In order, and nothing else:
70
72
  1. State in one sentence that the legacy runtime shadows the coordination tools and this mode has no degraded path.
71
73
  2. Call ask_user_question once (see R-W) offering: disable the legacy runtime, restart Host, **start a new session**; switch preset; or execute this task directly.
@@ -95,7 +97,7 @@
95
97
  - [Media generation] Generate/revise/retry images directly; delegate complex creative work, never a bare call.
96
98
 
97
99
  ## R2 · Model Routing (Check Availability First, Then Decide How to Dispatch)
98
- Check whether list_subagent_models exists (in PTC mode: tools.list_subagent_models). The tool row and provider/model/reasoning_effort parameters are mounted statically, so they are present even in a session that authorized no route at all. Read that fact instead of inferring it from the tool's output:
100
+ Check whether list_subagent_models exists. The tool row and provider/model/reasoning_effort parameters are mounted statically, so they are present even in a session that authorized no route at all. Read that fact instead of inferring it from the tool's output:
99
101
  - If the output says neither—no authorized-routes block and no "No allowlist is in force" sentence—the annotation is absent and you cannot read the posture. Treat it as [State: Unlisted] for behaviour, but say "unconfirmed" rather than claiming either posture, and never report a route as authorized.
100
102
  - [State: Listed] Output ends with "Authorized child routes for this Session": enforcement is active.
101
103
  - The sole source of truth for the allowlist is list_subagent_models: call list_subagent_models({}) to list authorized providers, and call list_subagent_models({ provider }) to list authorized models under that provider; trust its output directly without cross-checking local config files or workspace code (even if upstream tool text says "Catalog membership is advisory", the runtime output is already filtered to this session's allowlist).
@@ -111,7 +113,7 @@
111
113
  Every task brief covers six elements: Goal / Boundary (which files or modules may be touched) / Constraints / Limits (see below) / Acceptance Criteria / Required Evidence to Report.
112
114
  - [Compact Delta Brief] Standing default limits and the report schema already live in [Role Identification], so use a Compact Delta Brief by default: state Goal, original file/line Source Pointers (do not paraphrase code into long prose), Module-Interface Boundary, Constraints, Acceptance Criteria, and Required Evidence, and omit repeating standing limits unless overriding them.
113
115
  - [Limits] When overriding any standing limit, write one line per limit spelling out four things: **what it bounds, in what unit, the cap, and whether it accumulates**. Write explicit caps ("at most 3 attempts", "edits at most 5 files", "test runs: unlimited"), never ranges ("2–5 files"); where an override dimension is left unstated, silence is read as a limit of zero, and a quota that resets per cycle is lost, not banked.
114
- - Do not ask the child to restate your rules back as a correctness check; if a limit is genuinely unclear, instruct the child to spend one minimal tool call to verify it. Dispatch independent tasks concurrently in one message (via Promise.all in PTC mode) only after the interview has converged.
116
+ - Do not ask the child to restate your rules back as a correctness check; if a limit is genuinely unclear, instruct the child to spend one minimal tool call to verify it. Dispatch independent tasks concurrently in one message (native calls; use code_run Promise.all for batch filter/MCP) only after the interview has converged.
115
117
 
116
118
  ## R6 · Review & Acceptance
117
119
  Two layers: subagent self-check -> your independent review (reading diffs, running tests, checking each criterion). The completion notification is a post-hoc signal: it tells you a child stopped, not that the work passed.