@chorus-aidlc/chorus-openclaw-plugin 0.10.0 → 0.11.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 (61) hide show
  1. package/dist/connection-state.d.ts +35 -0
  2. package/dist/connection-state.d.ts.map +1 -0
  3. package/dist/connection-state.js +52 -0
  4. package/dist/connection-state.js.map +1 -0
  5. package/dist/control-handler.d.ts +73 -0
  6. package/dist/control-handler.d.ts.map +1 -0
  7. package/dist/control-handler.js +135 -0
  8. package/dist/control-handler.js.map +1 -0
  9. package/dist/daemon-client.d.ts +203 -0
  10. package/dist/daemon-client.d.ts.map +1 -0
  11. package/dist/daemon-client.js +469 -0
  12. package/dist/daemon-client.js.map +1 -0
  13. package/dist/daemon-rest-client.d.ts +86 -0
  14. package/dist/daemon-rest-client.d.ts.map +1 -0
  15. package/dist/daemon-rest-client.js +196 -0
  16. package/dist/daemon-rest-client.js.map +1 -0
  17. package/dist/event-router.d.ts +31 -6
  18. package/dist/event-router.d.ts.map +1 -1
  19. package/dist/event-router.js +58 -27
  20. package/dist/event-router.js.map +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +106 -7
  23. package/dist/index.js.map +1 -1
  24. package/dist/lineage.d.ts +44 -0
  25. package/dist/lineage.d.ts.map +1 -0
  26. package/dist/lineage.js +116 -0
  27. package/dist/lineage.js.map +1 -0
  28. package/dist/mcp-registration.d.ts.map +1 -1
  29. package/dist/mcp-registration.js +5 -4
  30. package/dist/mcp-registration.js.map +1 -1
  31. package/dist/sse-listener.d.ts +34 -0
  32. package/dist/sse-listener.d.ts.map +1 -1
  33. package/dist/sse-listener.js +78 -4
  34. package/dist/sse-listener.js.map +1 -1
  35. package/dist/wake.d.ts +20 -0
  36. package/dist/wake.d.ts.map +1 -1
  37. package/dist/wake.js +56 -0
  38. package/dist/wake.js.map +1 -1
  39. package/package.json +1 -1
  40. package/skills/brainstorm/SKILL.md +1 -1
  41. package/skills/chorus/SKILL.md +36 -5
  42. package/skills/develop/SKILL.md +1 -1
  43. package/skills/idea/SKILL.md +1 -1
  44. package/skills/openspec-aware/SKILL.md +1 -1
  45. package/skills/proposal/SKILL.md +1 -1
  46. package/skills/proposal-reviewer/SKILL.md +1 -1
  47. package/skills/quick-dev/SKILL.md +1 -1
  48. package/skills/review/SKILL.md +1 -1
  49. package/skills/task-reviewer/SKILL.md +1 -1
  50. package/skills/yolo/SKILL.md +1 -1
  51. package/src/connection-state.ts +66 -0
  52. package/src/control-handler.ts +219 -0
  53. package/src/daemon-client.ts +622 -0
  54. package/src/daemon-rest-client.ts +312 -0
  55. package/src/event-router.ts +103 -33
  56. package/src/index.ts +113 -8
  57. package/src/lineage.ts +157 -0
  58. package/src/mcp-registration.ts +6 -19
  59. package/src/openclaw-sdk.d.ts +232 -1
  60. package/src/sse-listener.ts +117 -5
  61. package/src/wake.ts +69 -26
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAA6B,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAoB,MAAM,oBAAoB,CAAC;AAG5E;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qDAAqD;SACnE;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8BAA8B;SAC5C;KACF;CACO,CAAC;AAEX,eAAe,iBAAiB,CAAC;IAC/B,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,0EAA0E;IAC5E,YAAY,EAAE;QACZ,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;KACzC;IAED,QAAQ,CAAC,GAAsB;QAC7B,0EAA0E;QAC1E,oEAAoE;QACpE,wEAAwE;QACxE,IAAI,GAAG,CAAC,gBAAgB,KAAK,MAAM;YAAE,OAAO;QAE5C,yEAAyE;QACzE,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAU,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAO,CAAC;QAE9B,MAAM,CAAC,IAAI,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAEzD,2EAA2E;QAC3E,6EAA6E;QAC7E,KAAK,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACpD,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAChD,CAAC;QAEF,sEAAsE;QACtE,4CAA4C;QAC5C,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAErE,iFAAiF;QACjF,2EAA2E;QAC3E,4EAA4E;QAC5E,8EAA8E;QAC9E,4EAA4E;QAC5E,oDAAoD;QACpD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE9C,iFAAiF;QACjF,wEAAwE;QACxE,+EAA+E;QAC/E,MAAM,UAAU,GAAG,sBAAsB,CAAC;YACxC,GAAG,EAAE,SAAS;YACd,MAAM;YACN,iBAAiB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE;YAC5D,MAAM;SACP,CAAC,CAAC;QAEH,kFAAkF;QAClF,+EAA+E;QAC/E,gFAAgF;QAChF,oDAAoD;QACpD,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAExE,+EAA+E;QAC/E,2EAA2E;QAC3E,+EAA+E;QAC/E,gFAAgF;QAChF,iFAAiF;QACjF,+EAA+E;QAC/E,kFAAkF;QAClF,IAAI,YAAkC,CAAC;QACvC,MAAM,UAAU,GAAG,CAAC,GAAgB,EAAQ,EAAE;YAC5C,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,QAAQ,GAAG,GAAG,CAAC;gBACnB,8EAA8E;gBAC9E,8EAA8E;gBAC9E,0EAA0E;gBAC1E,IAAI,GAAG,CAAC,cAAc,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnE,IAAI,CAAC;wBACH,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;4BAC7D,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;yBAC3B,CAAC,CAAC;wBACH,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;oBACtD,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,IAAI,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;gBACD,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CAAC;QACF,YAAY,GAAG,IAAI,oBAAoB,CAAC;YACtC,UAAU;YACV,iBAAiB,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC;YAC3D,UAAU;YACV,8EAA8E;YAC9E,+EAA+E;YAC/E,eAAe,EAAE,CAAC,IAAuB,EAAE,EAAE,CAC3C,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;gBACvC,CAAC,CAAC,qEAAqE,IAAI,CAAC,UAAU,EAAE;gBACxF,CAAC,CAAC,6EAA6E,IAAI,CAAC,SAAS,4CAA4C;YAC7I,MAAM;SACP,CAAC,CAAC;QAEH,kFAAkF;QAClF,8EAA8E;QAC9E,iEAAiE;QACjE,MAAM,YAAY,GAAyB,YAAY,CAAC,YAAY,CAAC;QACrE,MAAM,SAAS,GAAG,oBAAoB,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzF,gFAAgF;QAChF,+EAA+E;QAC/E,4EAA4E;QAC5E,iFAAiF;QACjF,2EAA2E;QAC3E,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,UAAkB,EAAE,WAA6B,EAAQ,EAAE;YAC1F,KAAK,YAAY,CAAC,OAAO,CAAC;gBACxB,MAAM,EAAE,OAAO;gBACf,UAAU;gBACV,UAAU,EAAE,WAAW,EAAE,UAAU;gBACnC,UAAU,EAAE,WAAW,EAAE,UAAU;gBACnC,cAAc,EAAE,WAAW,EAAE,cAAc;gBAC3C,YAAY,EAAE,WAAW,EAAE,YAAY;aACxC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC;YACxC,SAAS;YACT,MAAM;YACN,OAAO;YACP,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QAEH,6EAA6E;QAC7E,mEAAmE;QACnE,IAAI,WAAW,GAA6B,IAAI,CAAC;QACjD,GAAG,CAAC,eAAe,CAAC;YAClB,EAAE,EAAE,YAAY;YAChB,KAAK,CAAC,KAAK;gBACT,WAAW,GAAG,IAAI,iBAAiB,CAAC;oBAClC,SAAS;oBACT,MAAM;oBACN,MAAM;oBACN,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC/C,uEAAuE;oBACvE,sEAAsE;oBACtE,cAAc,EAAE,CAAC,cAAc,EAAE,EAAE;wBACjC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;wBAClD,MAAM,CAAC,IAAI,CAAC,4CAA4C,cAAc,EAAE,CAAC,CAAC;oBAC5E,CAAC;oBACD,wEAAwE;oBACxE,+CAA+C;oBAC/C,SAAS;oBACT,WAAW,EAAE,KAAK,IAAI,EAAE;wBACtB,yEAAyE;wBACzE,yEAAyE;wBACzE,wEAAwE;wBACxE,0EAA0E;wBAC1E,uEAAuE;wBACvE,2EAA2E;wBAC3E,6CAA6C;wBAC7C,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE;gCACnE,MAAM,EAAE,QAAQ;gCAChB,YAAY,EAAE,KAAK;6BACpB,CAAC,CAAuD,CAAC;4BAC1D,MAAM,KAAK,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC;4BACjD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gCACd,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,kCAAkC,CAAC,CAAC;4BACzE,CAAC;wBACH,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,CAAC,IAAI,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;wBAC3D,CAAC;wBACD,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;oBACnC,CAAC;iBACF,CAAC,CAAC;gBACH,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;YAC9B,CAAC;YACD,KAAK,CAAC,IAAI;gBACR,WAAW,EAAE,UAAU,EAAE,CAAC;gBAC1B,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;YAC/B,CAAC;SACF,CAAC,CAAC;QAEH,wDAAwD;QACxD,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,cAAc,CAAC,CAAC;IACtF,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ export interface LineageLogger {
2
+ info: (msg: string) => void;
3
+ warn: (msg: string) => void;
4
+ error: (msg: string) => void;
5
+ }
6
+ /** The idea attribution of an entity. Both null when there's no idea ancestor. */
7
+ export interface LineageAttribution {
8
+ rootIdeaUuid: string | null;
9
+ directIdeaUuid: string | null;
10
+ }
11
+ export interface LineageResolverOptions {
12
+ /** Chorus base URL. */
13
+ url: string;
14
+ /** `cho_` agent API key. */
15
+ apiKey: string;
16
+ logger?: LineageLogger;
17
+ /** Injectable for tests (defaults to global fetch). */
18
+ fetchImpl?: typeof fetch;
19
+ }
20
+ export declare class LineageResolver {
21
+ private readonly url;
22
+ private readonly apiKey;
23
+ private readonly logger;
24
+ private readonly fetchImpl;
25
+ /** Per-run cache keyed by `${type}:${uuid}` so repeats single-flight. */
26
+ private readonly cache;
27
+ constructor(opts: LineageResolverOptions);
28
+ /**
29
+ * Resolve an entity to its idea attribution `{ rootIdeaUuid, directIdeaUuid }`.
30
+ * One REST call per entity; the cache single-flights repeats. On any failure both
31
+ * ids are null (caller falls back to a per-entity key). Never throws.
32
+ */
33
+ resolve(event: {
34
+ entityType?: string;
35
+ entityUuid?: string;
36
+ }): Promise<LineageAttribution>;
37
+ /**
38
+ * Call GET /api/entities/{type}/{uuid}/root-idea and return
39
+ * `{ rootIdeaUuid, directIdeaUuid }` (each string | null). Returns both null on any
40
+ * error so the caller degrades to a per-entity session key — never throws.
41
+ */
42
+ private resolveViaServer;
43
+ }
44
+ //# sourceMappingURL=lineage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../src/lineage.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAID,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAID,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;gBAEnD,IAAI,EAAE,sBAAsB;IAOxC;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwB/B;;;;OAIG;YACW,gBAAgB;CA2D/B"}
@@ -0,0 +1,116 @@
1
+ // packages/openclaw-plugin/src/lineage.ts
2
+ // Resolves any inbound Chorus notification/entity to its idea attribution, so the
3
+ // OpenClaw daemon client can anchor ONE embedded-agent session per DIRECT idea (the
4
+ // in-process analog of `claude --resume <directIdeaUuid>`) while reporting the ROOT
5
+ // idea in its execution snapshot for observability.
6
+ //
7
+ // TS mirror of `cli/lineage.mjs` (`LineageResolver`) — same single-source-of-truth
8
+ // REST contract, re-stated in TS because the plugin publishes standalone (it cannot
9
+ // import a file under `cli/`; see daemon-rest-client.ts for the same rationale).
10
+ //
11
+ // Resolution is fully SERVER-SIDE: every entity is resolved by a single call to the
12
+ // standalone REST endpoint
13
+ // GET /api/entities/{type}/{uuid}/root-idea (Bearer <cho_ agent key>)
14
+ // which returns BOTH `rootIdeaUuid` (topmost ancestor) and `directIdeaUuid` (the
15
+ // first idea node on the lineage). There is intentionally NO client-side lineage
16
+ // walk. On any failure (unreachable server, non-2xx, malformed body) it returns both
17
+ // ids as null so the caller falls back to a per-entity session key — "no idea
18
+ // ancestor" is a normal, non-fatal outcome. Uses global fetch (Node 18+) → no new dep.
19
+ const NOOP_LOGGER = { info() { }, warn() { }, error() { } };
20
+ const NONE = { rootIdeaUuid: null, directIdeaUuid: null };
21
+ export class LineageResolver {
22
+ url;
23
+ apiKey;
24
+ logger;
25
+ fetchImpl;
26
+ /** Per-run cache keyed by `${type}:${uuid}` so repeats single-flight. */
27
+ cache = new Map();
28
+ constructor(opts) {
29
+ this.url = opts.url.replace(/\/$/, "");
30
+ this.apiKey = opts.apiKey;
31
+ this.logger = opts.logger ?? NOOP_LOGGER;
32
+ this.fetchImpl = opts.fetchImpl ?? globalThis.fetch;
33
+ }
34
+ /**
35
+ * Resolve an entity to its idea attribution `{ rootIdeaUuid, directIdeaUuid }`.
36
+ * One REST call per entity; the cache single-flights repeats. On any failure both
37
+ * ids are null (caller falls back to a per-entity key). Never throws.
38
+ */
39
+ async resolve(event) {
40
+ const entityType = event?.entityType;
41
+ const entityUuid = event?.entityUuid;
42
+ if (!entityType || !entityUuid) {
43
+ this.logger.warn("[Chorus] lineage: event missing entityType/entityUuid");
44
+ return NONE;
45
+ }
46
+ // An ad-hoc conversation (`daemon_session`) has NO idea ancestor by definition,
47
+ // and the root-idea endpoint does not accept it (it would 400). Short-circuit to
48
+ // the null attribution the caller would fall back to anyway — avoiding a
49
+ // guaranteed-failing round-trip + a spurious warn on every ad-hoc resume. The
50
+ // caller then anchors the session on the entity uuid (= the ad-hoc sessionId).
51
+ if (entityType === "daemon_session") {
52
+ return NONE;
53
+ }
54
+ const cacheKey = `${entityType}:${entityUuid}`;
55
+ const cached = this.cache.get(cacheKey);
56
+ if (cached)
57
+ return cached;
58
+ const result = await this.resolveViaServer(entityType, entityUuid);
59
+ this.cache.set(cacheKey, result);
60
+ return result;
61
+ }
62
+ /**
63
+ * Call GET /api/entities/{type}/{uuid}/root-idea and return
64
+ * `{ rootIdeaUuid, directIdeaUuid }` (each string | null). Returns both null on any
65
+ * error so the caller degrades to a per-entity session key — never throws.
66
+ */
67
+ async resolveViaServer(entityType, entityUuid) {
68
+ const endpoint = `${this.url}/api/entities/${encodeURIComponent(entityType)}/` +
69
+ `${encodeURIComponent(entityUuid)}/root-idea`;
70
+ let response;
71
+ try {
72
+ response = await this.fetchImpl(endpoint, {
73
+ headers: { Authorization: `Bearer ${this.apiKey}`, Accept: "application/json" },
74
+ });
75
+ }
76
+ catch (err) {
77
+ this.logger.warn(`[Chorus] lineage: request failed for ${entityType}:${entityUuid}: ${err}`);
78
+ return NONE;
79
+ }
80
+ if (!response.ok) {
81
+ this.logger.warn(`[Chorus] lineage: server returned ${response.status} for ${entityType}:${entityUuid}`);
82
+ return NONE;
83
+ }
84
+ let body;
85
+ try {
86
+ body = await response.json();
87
+ }
88
+ catch (err) {
89
+ this.logger.warn(`[Chorus] lineage: bad JSON for ${entityType}:${entityUuid}: ${err}`);
90
+ return NONE;
91
+ }
92
+ // API envelope: { success: true, data: { rootIdeaUuid, directIdeaUuid, ... } }.
93
+ const data = body && typeof body === "object" ? body.data : undefined;
94
+ if (!data || typeof data !== "object" || !("rootIdeaUuid" in data)) {
95
+ this.logger.warn(`[Chorus] lineage: unexpected response shape for ${entityType}:${entityUuid}`);
96
+ return NONE;
97
+ }
98
+ const root = data.rootIdeaUuid;
99
+ if (root !== null && typeof root !== "string") {
100
+ this.logger.warn(`[Chorus] lineage: non-string rootIdeaUuid for ${entityType}:${entityUuid}`);
101
+ return NONE;
102
+ }
103
+ // directIdeaUuid is the session anchor. Older servers may omit it: treat a
104
+ // missing/non-string value as null so the caller falls back to a per-entity key.
105
+ const directRaw = data.directIdeaUuid;
106
+ const direct = typeof directRaw === "string" ? directRaw : null;
107
+ if (directRaw !== undefined && directRaw !== null && typeof directRaw !== "string") {
108
+ this.logger.warn(`[Chorus] lineage: non-string directIdeaUuid for ${entityType}:${entityUuid}`);
109
+ }
110
+ const resolvedVia = data.resolvedVia;
111
+ this.logger.info(`[Chorus] lineage: ${entityType}:${entityUuid} → root ${root ?? "none"}, direct ${direct ?? "none"}` +
112
+ (typeof resolvedVia === "string" ? ` (${resolvedVia})` : ""));
113
+ return { rootIdeaUuid: root, directIdeaUuid: direct };
114
+ }
115
+ }
116
+ //# sourceMappingURL=lineage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage.js","sourceRoot":"","sources":["../src/lineage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-registration.d.ts","sourceRoot":"","sources":["../src/mcp-registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA8CtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,IAAI,CAAC,CAsEf"}
1
+ {"version":3,"file":"mcp-registration.d.ts","sourceRoot":"","sources":["../src/mcp-registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA8CtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,IAAI,CAAC,CAyDf"}
@@ -57,10 +57,11 @@ export async function ensureChorusMcpServer(api, cfg) {
57
57
  }
58
58
  const desired = buildDesiredEntry(cfg.chorusUrl, cfg.apiKey);
59
59
  try {
60
- // `api.runtime` is permissively typed via the SDK shim; narrow to the
61
- // config surface we use (current() + mutateConfigFile). At runtime the host
62
- // provides the real `PluginRuntimeCore.config` API
63
- // (../openclaw/src/plugins/runtime/types-core.ts:145).
60
+ // `api.runtime` is now typed (`OpenClawPluginRuntime`) via the SDK shim; its
61
+ // `config` slice mirrors the real `PluginRuntimeCore.config` API
62
+ // (../openclaw/src/plugins/runtime/types-core.ts:145) `current()` reads the
63
+ // live snapshot, `mutateConfigFile(...)` writes the `mcp.servers.chorus`
64
+ // entry. No `unknown` cast needed.
64
65
  const runtimeConfig = api.runtime?.config;
65
66
  if (!runtimeConfig?.mutateConfigFile) {
66
67
  logger.error("[Chorus] MCP server registration failed — runtime.config.mutateConfigFile is unavailable on this host");
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-registration.js","sourceRoot":"","sources":["../src/mcp-registration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-registration.js","sourceRoot":"","sources":["../src/mcp-registration.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,41 @@ export interface SseNotificationEvent {
6
6
  unreadCount?: number;
7
7
  [key: string]: unknown;
8
8
  }
9
+ /**
10
+ * The server's post-handshake `connection_registered` data event (carrying the
11
+ * DaemonConnection uuid this stream registered as). Forked to `onConnectionId`,
12
+ * NEVER to the wake path. See api/events/notifications/route.ts.
13
+ */
14
+ export interface SseControlEvent {
15
+ type: string;
16
+ command?: string;
17
+ connectionUuid?: string;
18
+ targetConnectionUuid?: string;
19
+ entityType?: string;
20
+ entityUuid?: string;
21
+ turnUuid?: string;
22
+ [key: string]: unknown;
23
+ }
9
24
  export interface ChorusSseListenerOptions {
10
25
  chorusUrl: string;
11
26
  apiKey: string;
12
27
  onEvent: (event: SseNotificationEvent) => void;
28
+ /**
29
+ * Called once the server reports which DaemonConnection this stream registered
30
+ * as (the `connection_registered` data event). Stored as the connection
31
+ * identity (connection-state) and refreshed on every reconnect. This event is
32
+ * NOT a wake — it is forked here BEFORE `onEvent`, so the router never sees it.
33
+ */
34
+ onConnectionId?: (connectionUuid: string) => void;
35
+ /**
36
+ * Called for a `type:"control"` data event (the reverse control channel). This
37
+ * is NOT a wake: the control event is forked here BEFORE `onEvent`, so the
38
+ * router / wake path never sees it and it can never spawn a new embedded-agent
39
+ * run for the control event itself. The handler verifies the target connection
40
+ * (+ entity, for interrupt) and routes to the behavior hooks — see
41
+ * control-handler.ts.
42
+ */
43
+ onControl?: (event: SseControlEvent) => void;
13
44
  onReconnect: () => Promise<void>;
14
45
  logger: {
15
46
  info: (msg: string) => void;
@@ -19,6 +50,9 @@ export interface ChorusSseListenerOptions {
19
50
  }
20
51
  export declare class ChorusSseListener {
21
52
  private readonly opts;
53
+ private readonly onConnectionId;
54
+ private readonly onControl;
55
+ private readonly endpoint;
22
56
  private _status;
23
57
  private abortController;
24
58
  private reconnectTimer;
@@ -1 +1 @@
1
- {"version":3,"file":"sse-listener.d.ts","sourceRoot":"","sources":["../src/sse-listener.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;AAE9E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACpG;AAKD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,cAAc,CAAoB;gBAE9B,IAAI,EAAE,wBAAwB;IAI1C,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED,wGAAwG;IAClG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuD9B,2CAA2C;IAC3C,UAAU,IAAI,IAAI;YAcJ,aAAa;IAsC3B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,mBAAmB;CAM5B"}
1
+ {"version":3,"file":"sse-listener.d.ts","sourceRoot":"","sources":["../src/sse-listener.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;AAE9E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACpG;AA+BD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,cAAc,CAAoB;gBAE9B,IAAI,EAAE,wBAAwB;IAqB1C,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED,wGAAwG;IAClG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqD9B,2CAA2C;IAC3C,UAAU,IAAI,IAAI;YAcJ,aAAa;IAsC3B,OAAO,CAAC,cAAc;IAiDtB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,mBAAmB;CAM5B"}
@@ -1,13 +1,58 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { hostname } from "node:os";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
1
5
  const INITIAL_DELAY_MS = 1_000;
2
6
  const MAX_DELAY_MS = 30_000;
7
+ // Plugin version — read from this package's own package.json so the value the
8
+ // server's DaemonConnection registry records always matches the installed
9
+ // plugin rather than a hardcoded literal. The compiled output lives in dist/
10
+ // and the source in src/; both are one level under the package root, so
11
+ // "../package.json" resolves to the package manifest in either case. Defensive:
12
+ // fall back to "0.0.0" if the manifest is unreadable — a missing version must
13
+ // never block the listener from connecting.
14
+ function readPluginVersion() {
15
+ try {
16
+ const here = dirname(fileURLToPath(import.meta.url));
17
+ const pkg = JSON.parse(readFileSync(join(here, "..", "package.json"), "utf8"));
18
+ return typeof pkg.version === "string" && pkg.version ? pkg.version : "0.0.0";
19
+ }
20
+ catch {
21
+ return "0.0.0";
22
+ }
23
+ }
24
+ const PLUGIN_VERSION = readPluginVersion();
25
+ // Plugin process start time, captured once at module load. Reconnects re-send
26
+ // this original start (recomputed to ISO-8601 at URL-construction time), not the
27
+ // reconnect moment.
28
+ const PROCESS_STARTED_AT = new Date();
3
29
  export class ChorusSseListener {
4
30
  opts;
31
+ onConnectionId;
32
+ onControl;
33
+ endpoint;
5
34
  _status = "disconnected";
6
35
  abortController = null;
7
36
  reconnectTimer = null;
8
37
  reconnectDelay = INITIAL_DELAY_MS;
9
38
  constructor(opts) {
10
39
  this.opts = opts;
40
+ // Default the optional bidirectional callbacks to no-ops so a caller that
41
+ // only wants the wake path (no daemon reporting) still works unchanged.
42
+ this.onConnectionId = opts.onConnectionId ?? (() => { });
43
+ this.onControl = opts.onControl ?? (() => { });
44
+ // Build the self-reporting endpoint URL once and reuse it across every
45
+ // (re)connect, so the reconnect path always re-sends the same params. The
46
+ // CLI reports clientType=openclaw so the server's connection registry can
47
+ // distinguish an OpenClaw daemon from a chorus CLI (claude_code) daemon.
48
+ // These params are display-only metadata; auth remains the Bearer header.
49
+ const params = new URLSearchParams({
50
+ clientType: "openclaw",
51
+ clientVersion: PLUGIN_VERSION,
52
+ host: hostname(),
53
+ startedAt: PROCESS_STARTED_AT.toISOString(),
54
+ });
55
+ this.endpoint = `${this.opts.chorusUrl.replace(/\/$/, "")}/api/events/notifications?${params.toString()}`;
11
56
  }
12
57
  get status() {
13
58
  return this._status;
@@ -17,10 +62,9 @@ export class ChorusSseListener {
17
62
  this.clearReconnectTimer();
18
63
  const abortController = new AbortController();
19
64
  this.abortController = abortController;
20
- const url = `${this.opts.chorusUrl.replace(/\/$/, "")}/api/events/notifications`;
21
65
  let response;
22
66
  try {
23
- response = await fetch(url, {
67
+ response = await fetch(this.endpoint, {
24
68
  headers: {
25
69
  Authorization: `Bearer ${this.opts.apiKey}`,
26
70
  Accept: "text/event-stream",
@@ -121,13 +165,43 @@ export class ChorusSseListener {
121
165
  // Data lines
122
166
  if (line.startsWith("data: ")) {
123
167
  const jsonStr = line.slice(6);
168
+ let event;
124
169
  try {
125
- const event = JSON.parse(jsonStr);
126
- this.opts.onEvent(event);
170
+ event = JSON.parse(jsonStr);
127
171
  }
128
172
  catch (err) {
129
173
  this.opts.logger.warn(`SSE JSON parse error: ${err} — raw: ${jsonStr}`);
174
+ continue;
175
+ }
176
+ // The server's post-handshake `connection_registered` data event tells us
177
+ // which DaemonConnection this stream registered as. Capture it (the
178
+ // connection identity used to attribute reports + double-check control
179
+ // commands) and do NOT forward it to the wake path — it isn't a
180
+ // notification. Forked here so the router never logs it as ignored.
181
+ if (event.type === "connection_registered" && typeof event.connectionUuid === "string") {
182
+ try {
183
+ this.onConnectionId(event.connectionUuid);
184
+ }
185
+ catch (err) {
186
+ this.opts.logger.warn(`onConnectionId callback error: ${err}`);
187
+ }
188
+ continue;
189
+ }
190
+ // Reverse control channel: a `type:"control"` event is NOT a wake. Fork it
191
+ // to onControl and `continue` — it MUST NEVER fall through to onEvent (the
192
+ // router / wake path), or a control command could be mistaken for a wake and
193
+ // spawn a new embedded-agent run. This is the structural guarantee the spec
194
+ // requires.
195
+ if (event.type === "control") {
196
+ try {
197
+ this.onControl(event);
198
+ }
199
+ catch (err) {
200
+ this.opts.logger.warn(`onControl callback error: ${err}`);
201
+ }
202
+ continue;
130
203
  }
204
+ this.opts.onEvent(event);
131
205
  }
132
206
  }
133
207
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sse-listener.js","sourceRoot":"","sources":["../src/sse-listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse-listener.js","sourceRoot":"","sources":["../src/sse-listener.ts"],"names":[],"mappings":"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"}
package/dist/wake.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-entry";
2
+ import type { WakeRunContext } from "./daemon-client.js";
2
3
  /**
3
4
  * Resolve the main agent session key from the host config.
4
5
  *
@@ -42,6 +43,25 @@ export declare function resolveModelRef(api: OpenClawPluginApi): {
42
43
  provider: string;
43
44
  model: string;
44
45
  } | null;
46
+ /**
47
+ * Resolve the host run context the daemon client needs to run a wake via
48
+ * `runEmbeddedAgent` — the main-agent session key + agent id + workspace/timeout +
49
+ * model override + the typed `runtime.agent` surface. Returns null when the wake must
50
+ * be DROPPED (no resolvable session key, or the host does not expose the agent
51
+ * runtime / a required session helper). This is the SINGLE place that reaches into
52
+ * `api.config` / `api.runtime`, so the daemon client stays host-API-agnostic and
53
+ * unit-testable with a plain context object.
54
+ *
55
+ * NOTE: this resolves only the host-derived knobs (the agent's main-session lane,
56
+ * workspace, model). The per-wake session ANCHOR (the Chorus business key →
57
+ * deterministic sessionKey → getSessionEntry) is owned by the daemon client, so a
58
+ * resume continues the same session regardless of when the context was resolved.
59
+ */
60
+ export declare function resolveWakeRunContext(api: OpenClawPluginApi, logger: {
61
+ info: (m: string) => void;
62
+ warn: (m: string) => void;
63
+ error: (m: string) => void;
64
+ }): WakeRunContext | null;
45
65
  /**
46
66
  * Build a `wake(message, contextKey)` callback bound to the host runtime.
47
67
  *
@@ -1 +1 @@
1
- {"version":3,"file":"wake.d.ts","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAwD1E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAoBvE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAO7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,iBAAiB,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe5C;AAoDD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACjG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAgG/C"}
1
+ {"version":3,"file":"wake.d.ts","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAwDzD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAoBvE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAO7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,iBAAiB,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe5C;AAuCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC3F,cAAc,GAAG,IAAI,CAiCvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACjG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAgG/C"}
package/dist/wake.js CHANGED
@@ -120,10 +120,21 @@ export function resolveModelRef(api) {
120
120
  }
121
121
  return { provider: ref.slice(0, slash), model: ref.slice(slash + 1) };
122
122
  }
123
+ /**
124
+ * Resolve the `api.runtime.agent` surface we use to run a turn, returning null
125
+ * when the host does not expose it (narrow registration modes / older hosts).
126
+ *
127
+ * `api.runtime` is now typed (`OpenClawPluginRuntime`) via the SDK shim — the
128
+ * `agent` slice mirrors `PluginRuntimeCore.agent` (types-core.ts:180-221). We
129
+ * still runtime-check each function we call (the declared type is a structural
130
+ * promise the host fulfills; a real host that drops a member must degrade
131
+ * gracefully, not throw).
132
+ */
123
133
  function getRuntimeAgent(api) {
124
134
  const agent = api.runtime?.agent;
125
135
  if (!agent ||
126
136
  typeof agent.runEmbeddedAgent !== "function" ||
137
+ typeof agent.resolveAgentDir !== "function" ||
127
138
  typeof agent.resolveAgentWorkspaceDir !== "function" ||
128
139
  typeof agent.resolveAgentTimeoutMs !== "function" ||
129
140
  typeof agent.session?.getSessionEntry !== "function" ||
@@ -142,6 +153,51 @@ function nextRunId(contextKey) {
142
153
  wakeCounter += 1;
143
154
  return `chorus-wake-${wakeCounter}-${contextKey}`;
144
155
  }
156
+ /**
157
+ * Resolve the host run context the daemon client needs to run a wake via
158
+ * `runEmbeddedAgent` — the main-agent session key + agent id + workspace/timeout +
159
+ * model override + the typed `runtime.agent` surface. Returns null when the wake must
160
+ * be DROPPED (no resolvable session key, or the host does not expose the agent
161
+ * runtime / a required session helper). This is the SINGLE place that reaches into
162
+ * `api.config` / `api.runtime`, so the daemon client stays host-API-agnostic and
163
+ * unit-testable with a plain context object.
164
+ *
165
+ * NOTE: this resolves only the host-derived knobs (the agent's main-session lane,
166
+ * workspace, model). The per-wake session ANCHOR (the Chorus business key →
167
+ * deterministic sessionKey → getSessionEntry) is owned by the daemon client, so a
168
+ * resume continues the same session regardless of when the context was resolved.
169
+ */
170
+ export function resolveWakeRunContext(api, logger) {
171
+ const sessionKey = resolveSessionKey(api);
172
+ if (!sessionKey) {
173
+ logger.warn("[Chorus] Wake run-context unavailable — could not resolve a main agent session key.");
174
+ return null;
175
+ }
176
+ const agent = getRuntimeAgent(api);
177
+ if (!agent) {
178
+ logger.warn("[Chorus] Wake run-context unavailable — api.runtime.agent.runEmbeddedAgent (or a required session helper) is not exposed on this host.");
179
+ return null;
180
+ }
181
+ const cfg = api.config;
182
+ const agentId = resolveAgentId(api);
183
+ let workspaceDir;
184
+ let agentDir;
185
+ let timeoutMs;
186
+ try {
187
+ workspaceDir = agent.resolveAgentWorkspaceDir(cfg, agentId);
188
+ agentDir = agent.resolveAgentDir(cfg, agentId);
189
+ timeoutMs = agent.resolveAgentTimeoutMs({ cfg });
190
+ }
191
+ catch (err) {
192
+ logger.warn(`[Chorus] Wake run-context unavailable — workspace/timeout resolution failed: ${err}`);
193
+ return null;
194
+ }
195
+ const modelRef = resolveModelRef(api);
196
+ if (!modelRef) {
197
+ logger.warn("[Chorus] No agents.defaults.model configured — wake turns will use the host default model, which may be unavailable.");
198
+ }
199
+ return { agent, sessionKey, agentId, config: cfg, workspaceDir, agentDir, timeoutMs, modelRef };
200
+ }
145
201
  /**
146
202
  * Build a `wake(message, contextKey)` callback bound to the host runtime.
147
203
  *
package/dist/wake.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chorus-aidlc/chorus-openclaw-plugin",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "OpenClaw plugin for Chorus AI-DLC collaboration platform — native MCP + SSE real-time events",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -4,7 +4,7 @@ description: Optional divergent-then-convergent dialogue for fuzzy ideas. Invoke
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.10.0"
7
+ version: "0.11.0"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---