@chorus-aidlc/chorus-openclaw-plugin 0.17.2 → 0.18.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.
package/README.md CHANGED
@@ -191,7 +191,8 @@ Skills are bundled under `skills/` and auto-discovered by OpenClaw. On OpenClaw
191
191
  | `quick-dev` | `/quick-dev` | Skip Idea→Proposal — create tasks directly, execute, and verify |
192
192
  | `review` | `/review` | Approve/reject proposals, verify tasks, and manage project governance |
193
193
  | `yolo` | `/yolo` | Full-auto AI-DLC pipeline — from prompt to done |
194
- | `openspec-aware` | `/openspec-aware` | Opt-in OpenSpec authoring for PM workflows when the local `openspec` CLI is present |
194
+ | `openspec-aware` | `/openspec-aware` | OpenSpec-mode authoring for PM workflows the default whenever OpenSpec is usable (`openspec/` + CLI present, not disabled) |
195
+ | `spec-lite` | `/spec-lite` | Chorus-native lightweight local specs (`.chorus/specs/<slug>/`) — the fallback when OpenSpec isn't usable |
195
196
  | `proposal-reviewer` | `/proposal-reviewer` | Read-only adversarial proposal review; ends with a `VERDICT:` comment |
196
197
  | `task-reviewer` | `/task-reviewer` | Read-only adversarial task verification (read-only bash for tests); ends with a `VERDICT:` comment |
197
198
 
@@ -205,7 +206,7 @@ They are meant to run inside a **spawned sub-agent**: the orchestrating skill (`
205
206
 
206
207
  | Skill | Description |
207
208
  |-------|-------------|
208
- | `/proposal-reviewer` | Reviews submitted proposals — document completeness, task granularity, AC alignment, cross-task dependencies. No Bash. |
209
+ | `/proposal-reviewer` | Reviews submitted proposals — document completeness, task granularity, AC alignment, cross-task dependencies. Read-only Bash allowed for inspection only (`cat`/`grep`/`ls`/`find`, `git ls-files`/`log`/`show`/`diff`) — no file writes, git write ops, installs, or test/build runs. |
209
210
  | `/task-reviewer` | Verifies submitted tasks against the AC and proposal documents. Read-only Bash allowed for verification only (tests/build, `cat`/`grep`/`ls`, `git diff`/`log`/`show`). |
210
211
 
211
212
  ---
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env bash
2
+ # resolve-spec-mode.sh — resolve the active Chorus spec mode for a repo.
3
+ #
4
+ # Pure (env + filesystem only; no network). Sourced by on-session-start.sh and
5
+ # driven directly by tests/test-spec-mode-resolution.sh. Bash 3.2 compatible.
6
+ #
7
+ # Inputs (env):
8
+ # CHORUS_SPEC_MODE explicit override: lite | openspec | off (else unset)
9
+ # CHORUS_OPENSPEC_MODE legacy opt-out: "off" disables OpenSpec
10
+ # CLAUDE_PLUGIN_OPTION_ENABLEOPENSPEC plugin toggle: "false" disables OpenSpec (default "true")
11
+ # PROJECT_ROOT repo root to probe for openspec/ (defaults to $PWD)
12
+ # command -v openspec OpenSpec CLI presence on PATH
13
+ #
14
+ # Outputs (vars set in the caller's shell when sourced):
15
+ # SPEC_MODE lite | openspec | off (value surfaced to Claude)
16
+ # SPEC_REASON human-readable one-liner
17
+ # SPEC_FAIL non-empty => stage skill MUST halt (unsatisfiable explicit openspec)
18
+ # OPENSPEC_USABLE 1 | 0
19
+ # OPENSPEC_USABLE_REASON human-readable
20
+ # OPENSPEC_HINT install hint when OpenSpec is merely missing (else empty)
21
+ # CHORUS_OPENSPEC_ACTIVE 1 only when the resolved mode is a USABLE openspec
22
+ #
23
+ # Resolution (per owner): an explicit CHORUS_SPEC_MODE wins; when UNSET, OpenSpec
24
+ # stays the default whenever it is usable (openspec/ dir + CLI, not disabled), and
25
+ # lite is the fallback only when OpenSpec is absent or disabled.
26
+
27
+ : "${PROJECT_ROOT:=$PWD}"
28
+
29
+ # --- Is OpenSpec usable? (needs openspec/ dir + CLI on PATH + not disabled) ---
30
+ OPENSPEC_DISABLED=0
31
+ OPENSPEC_DISABLED_REASON=""
32
+ if [ "${CLAUDE_PLUGIN_OPTION_ENABLEOPENSPEC:-true}" != "true" ]; then
33
+ OPENSPEC_DISABLED=1
34
+ OPENSPEC_DISABLED_REASON="enableOpenSpec userConfig=false (plugin-level opt-out)"
35
+ elif [ "${CHORUS_OPENSPEC_MODE:-}" = "off" ]; then
36
+ OPENSPEC_DISABLED=1
37
+ OPENSPEC_DISABLED_REASON="CHORUS_OPENSPEC_MODE=off (legacy opt-out)"
38
+ fi
39
+
40
+ OPENSPEC_USABLE=0
41
+ OPENSPEC_USABLE_REASON=""
42
+ OPENSPEC_HINT=""
43
+ if [ "$OPENSPEC_DISABLED" = "1" ]; then
44
+ OPENSPEC_USABLE_REASON="$OPENSPEC_DISABLED_REASON"
45
+ elif [ ! -d "${PROJECT_ROOT}/openspec" ]; then
46
+ OPENSPEC_USABLE_REASON="no openspec/ directory at ${PROJECT_ROOT}/openspec"
47
+ OPENSPEC_HINT="npm i -g @fission-ai/openspec && openspec init"
48
+ elif ! command -v openspec >/dev/null 2>&1; then
49
+ OPENSPEC_USABLE_REASON="openspec/ directory present but \`openspec\` CLI not on PATH"
50
+ OPENSPEC_HINT="npm i -g @fission-ai/openspec"
51
+ else
52
+ OPENSPEC_USABLE=1
53
+ OPENSPEC_USABLE_REASON="openspec/ directory + openspec CLI both present"
54
+ fi
55
+
56
+ # --- Resolve CHORUS_SPEC_MODE ---
57
+ SPEC_FAIL=""
58
+ case "${CHORUS_SPEC_MODE:-}" in
59
+ lite)
60
+ SPEC_MODE="lite"
61
+ SPEC_REASON="explicit — Chorus-native lightweight specs in .chorus/specs/<slug>/"
62
+ ;;
63
+ off)
64
+ SPEC_MODE="off"
65
+ SPEC_REASON="explicit — free-form, no spec artifact"
66
+ ;;
67
+ openspec)
68
+ SPEC_MODE="openspec"
69
+ if [ "$OPENSPEC_USABLE" = "1" ]; then
70
+ SPEC_REASON="explicit; ${OPENSPEC_USABLE_REASON}"
71
+ elif [ "$OPENSPEC_DISABLED" = "1" ]; then
72
+ SPEC_REASON="explicit, but OpenSpec is disabled: ${OPENSPEC_USABLE_REASON}"
73
+ SPEC_FAIL="config conflict — CHORUS_SPEC_MODE=openspec vs OpenSpec disabled (${OPENSPEC_USABLE_REASON}); re-enable OpenSpec or set CHORUS_SPEC_MODE=lite"
74
+ else
75
+ SPEC_REASON="explicit, but OpenSpec is not installed: ${OPENSPEC_USABLE_REASON}"
76
+ SPEC_FAIL="OpenSpec not usable (${OPENSPEC_USABLE_REASON})"
77
+ fi
78
+ ;;
79
+ "")
80
+ # Unset: OpenSpec is the default when usable; lite is the fallback otherwise.
81
+ if [ "$OPENSPEC_USABLE" = "1" ]; then
82
+ SPEC_MODE="openspec"
83
+ SPEC_REASON="default — ${OPENSPEC_USABLE_REASON}; set CHORUS_SPEC_MODE=lite for Chorus-native specs, =off to disable"
84
+ else
85
+ SPEC_MODE="lite"
86
+ SPEC_REASON="default — OpenSpec not usable (${OPENSPEC_USABLE_REASON}); using Chorus-native lightweight specs in .chorus/specs/<slug>/"
87
+ fi
88
+ ;;
89
+ *)
90
+ # Unrecognized value: treat like unset (OpenSpec-if-usable, else lite).
91
+ if [ "$OPENSPEC_USABLE" = "1" ]; then
92
+ SPEC_MODE="openspec"
93
+ SPEC_REASON="CHORUS_SPEC_MODE='${CHORUS_SPEC_MODE}' unrecognized; falling back to default (${OPENSPEC_USABLE_REASON})"
94
+ else
95
+ SPEC_MODE="lite"
96
+ SPEC_REASON="CHORUS_SPEC_MODE='${CHORUS_SPEC_MODE}' unrecognized; OpenSpec not usable, defaulting to lite"
97
+ fi
98
+ ;;
99
+ esac
100
+
101
+ # Back-compat flag for the openspec-aware skill: active only when the resolved
102
+ # mode is a USABLE openspec.
103
+ if [ "$SPEC_MODE" = "openspec" ] && [ -z "$SPEC_FAIL" ]; then
104
+ CHORUS_OPENSPEC_ACTIVE=1
105
+ else
106
+ CHORUS_OPENSPEC_ACTIVE=0
107
+ fi
@@ -1,5 +1,6 @@
1
1
  import type { ChorusMcpClient } from "./mcp-client.js";
2
+ import { type SpecModeResult } from "./spec-mode.js";
2
3
  export declare function registerChorusCommands(api: {
3
4
  registerCommand: (command: unknown) => void;
4
- }, mcpClient: ChorusMcpClient, getStatus: () => string): void;
5
+ }, mcpClient: ChorusMcpClient, getStatus: () => string, resolveSpec?: () => SpecModeResult): void;
5
6
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA6KvD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE;IAAE,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,EACpD,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,MAAM,MAAM,GACtB,IAAI,CAqDN"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAyN7E,wBAAgB,sBAAsB,CACpC,GAAG,EAAE;IAAE,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,EACpD,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,MAAM,MAAM,EACvB,WAAW,GAAE,MAAM,cAAmC,GACrD,IAAI,CA0DN"}
package/dist/commands.js CHANGED
@@ -1,6 +1,7 @@
1
+ import { resolveSpecModeFromEnv } from "./spec-mode.js";
1
2
  // ===== Skill catalog =====
2
3
  //
3
- // All 9 skills bundled with the Chorus OpenClaw plugin
4
+ // All 11 skills bundled with the Chorus OpenClaw plugin
4
5
  // (packages/openclaw-plugin/skills/*/SKILL.md). The `name` here matches each
5
6
  // skill's SKILL.md frontmatter `name`, which is exactly the slash command
6
7
  // OpenClaw exposes (see invocation hint below).
@@ -13,7 +14,8 @@ const PLUGIN_SKILLS = [
13
14
  { name: "quick-dev", description: "Skip Idea→Proposal — create tasks directly, execute, verify" },
14
15
  { name: "review", description: "Approve/reject proposals, verify tasks, project governance" },
15
16
  { name: "yolo", description: "Full-auto AI-DLC pipeline — from prompt to done" },
16
- { name: "openspec-aware", description: "Opt-in OpenSpec authoring for PM workflows when the openspec CLI is present" },
17
+ { name: "openspec-aware", description: "OpenSpec-mode authoring for PM workflows (the default when openspec/ + CLI present)" },
18
+ { name: "spec-lite", description: "Chorus-native lightweight local specs (.chorus/specs/<slug>/) — the fallback when OpenSpec isn't usable" },
17
19
  { name: "chorus-cli", description: "Install, configure agents (chorus agents add|remove|list), env vars, and chorus mcp operations" },
18
20
  ];
19
21
  // ===== Formatting helpers =====
@@ -35,7 +37,23 @@ function formatSkillsList() {
35
37
  "Invoke a skill with its slash command, e.g. /develop or /idea.",
36
38
  ].join("\n");
37
39
  }
38
- function formatStatus(checkin, connectionStatus) {
40
+ // Spec-mode lines for the status block. Since OpenClaw has no SessionStart hook
41
+ // to precompute the mode, `/chorus` is the resolver's real runtime caller and the
42
+ // user-visible surface: it prints `CHORUS_SPEC_MODE=<mode> (<reason>)`, the
43
+ // `CHORUS_OPENSPEC_ACTIVE=1` line only for a usable OpenSpec, and a halt warning
44
+ // when an explicit `=openspec` cannot be honored. The stage skills resolve the
45
+ // SAME contract inline (see src/spec-mode.ts — the single source of truth).
46
+ function specModeLines(spec) {
47
+ const lines = [`CHORUS_SPEC_MODE=${spec.specMode} (${spec.specReason})`];
48
+ if (spec.chorusOpenspecActive) {
49
+ lines.push(`CHORUS_OPENSPEC_ACTIVE=1 (${spec.openspecUsableReason})`);
50
+ }
51
+ if (spec.specFail) {
52
+ lines.push(`WARNING: spec-mode halt — ${spec.specFail}`);
53
+ }
54
+ return lines;
55
+ }
56
+ function formatStatus(checkin, connectionStatus, spec) {
39
57
  const projects = Object.values(checkin?.activeProjects ?? {});
40
58
  const activeIdeaTotal = projects.reduce((total, p) => total + (p.activeIdeaCount ?? 0), 0);
41
59
  const lines = [
@@ -44,10 +62,24 @@ function formatStatus(checkin, connectionStatus) {
44
62
  `Active projects: ${projects.length} (${activeIdeaTotal} active idea(s))`,
45
63
  ...projects.map((p) => ` - ${p.name ?? "(unnamed)"}: ${p.activeIdeaCount ?? 0}`),
46
64
  `Notifications: ${checkin?.notifications?.unread ?? 0} unread`,
65
+ ...specModeLines(spec),
47
66
  `Skills: ${PLUGIN_SKILLS.map((s) => s.name).join(", ")}`,
48
67
  ];
49
68
  return lines.join("\n");
50
69
  }
70
+ // Detailed spec-mode view for `/chorus spec` — the mode + reason, the openspec
71
+ // usability breakdown, and the install hint when OpenSpec is merely missing.
72
+ function formatSpec(spec) {
73
+ const lines = [
74
+ "Spec mode (resolved inline — OpenClaw has no SessionStart hook):",
75
+ ...specModeLines(spec).map((l) => ` ${l}`),
76
+ ` OpenSpec usable: ${spec.openspecUsable ? "yes" : "no"} (${spec.openspecUsableReason})`,
77
+ ];
78
+ if (spec.openspecHint) {
79
+ lines.push(` Enable OpenSpec: ${spec.openspecHint}`);
80
+ }
81
+ return lines.join("\n");
82
+ }
51
83
  function formatTaskList(taskTracker) {
52
84
  const lines = [];
53
85
  let total = 0;
@@ -83,6 +115,7 @@ const HELP_TEXT = [
83
115
  "Chorus commands:",
84
116
  " /chorus Show connection status and summary",
85
117
  " /chorus status Same as above",
118
+ " /chorus spec Show the resolved spec mode (OpenSpec / spec-lite / off)",
86
119
  " /chorus tasks List assigned tasks",
87
120
  " /chorus ideas List assigned ideas",
88
121
  " /chorus skills List available Chorus skills",
@@ -92,23 +125,32 @@ function errorText(prefix, err) {
92
125
  return `${prefix}: ${detail}`;
93
126
  }
94
127
  // ===== Registration =====
95
- export function registerChorusCommands(api, mcpClient, getStatus) {
128
+ // Default spec-mode resolver: wires the real env + cwd. Injectable so the
129
+ // command test can pass a deterministic result without touching the disk/PATH.
130
+ function defaultResolveSpec() {
131
+ return resolveSpecModeFromEnv(process.env, process.cwd());
132
+ }
133
+ export function registerChorusCommands(api, mcpClient, getStatus, resolveSpec = defaultResolveSpec) {
96
134
  api.registerCommand({
97
135
  name: "chorus",
98
- description: "Chorus plugin commands: status, tasks, ideas, skills",
136
+ description: "Chorus plugin commands: status, spec, tasks, ideas, skills",
99
137
  acceptsArgs: true,
100
138
  async handler(ctx) {
101
139
  const sub = (ctx.args ?? "").trim().toLowerCase();
102
- // /chorus or /chorus status — connection + checkin summary via slim client.
140
+ // /chorus or /chorus status — connection + checkin + spec-mode summary.
103
141
  if (!sub || sub === "status") {
104
142
  try {
105
143
  const checkin = (await mcpClient.callTool("chorus_checkin", {}));
106
- return { text: formatStatus(checkin, getStatus()) };
144
+ return { text: formatStatus(checkin, getStatus(), resolveSpec()) };
107
145
  }
108
146
  catch (err) {
109
147
  return { text: errorText("Failed to check in", err), isError: true };
110
148
  }
111
149
  }
150
+ // /chorus spec — the resolved spec mode (the resolver's user-visible surface).
151
+ if (sub === "spec") {
152
+ return { text: formatSpec(resolveSpec()) };
153
+ }
112
154
  // /chorus tasks — assigned tasks via chorus_get_my_assignments.
113
155
  if (sub === "tasks") {
114
156
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -75,11 +75,22 @@ export declare class ChorusEventRouter {
75
75
  */
76
76
  private buildOrchestratorGuidance;
77
77
  /**
78
- * Append orchestrator-handoff guidance (when the resource has an agent orchestrator)
79
- * to a wake message and dispatch it. Every handler routes its wake through this so the
80
- * handback instruction rides EVERY action parity with the daemon, which appends
81
- * orchestratorGuidance once in buildPrompt (cli/prompts.mjs). No orchestrator the
82
- * message is dispatched unchanged.
78
+ * Waker-session advisory for a wake — the OpenClaw twin of the daemon's
79
+ * wakerSessionGuidance in cli/prompts.mjs. KEEP THE TWO WORDINGS IN SYNC. Returns null
80
+ * unless the notification carries a `wakerSession` anchor (surfaced by the server only when
81
+ * the waking agent has a live, ONLINE-origin session for this resource's idea). It tells the
82
+ * woken peer that replying on this resource reaches the waker's existing live session — an
83
+ * ADVISORY only, not an enforced server route. A SIBLING of buildOrchestratorGuidance:
84
+ * independent, so either/both/neither may render on one wake.
85
+ */
86
+ private buildWakerSessionGuidance;
87
+ /**
88
+ * Append orchestrator-handoff guidance (when the resource has an agent orchestrator) and the
89
+ * waker-session advisory (when the wake carries an online waker anchor) to a wake message and
90
+ * dispatch it. Every handler routes its wake through this so both instructions ride EVERY
91
+ * action — parity with the daemon, which appends orchestratorGuidance + wakerSessionGuidance
92
+ * in buildPrompt (cli/prompts.mjs). The two blocks are independent: either, both, or neither
93
+ * may append; with neither the message is dispatched unchanged.
83
94
  */
84
95
  private wakeWithHandoff;
85
96
  private handleTaskAssigned;
@@ -1 +1 @@
1
- {"version":3,"file":"event-router.d.ts","sourceRoot":"","sources":["../src/event-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,eAAe,KAC1B,IAAI,CAAC;AAEV,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,eAAe,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,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;AA2BD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAEhD,IAAI,EAAE,wBAAwB;IAO1C;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAgC3C;;;;OAIG;IACH,OAAO,CAAC,aAAa;YAIP,aAAa;IA8F3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,sBAAsB;IAc9B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,yBAAyB;IAgBjC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;CAgB5B"}
1
+ {"version":3,"file":"event-router.d.ts","sourceRoot":"","sources":["../src/event-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,eAAe,KAC1B,IAAI,CAAC;AAEV,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,eAAe,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,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;AAqCD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAEhD,IAAI,EAAE,wBAAwB;IAO1C;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAgC3C;;;;OAIG;IACH,OAAO,CAAC,aAAa;YAIP,aAAa;IA8F3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;IAajC;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,sBAAsB;IAc9B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,yBAAyB;IAgBjC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;CAgB5B"}
@@ -164,15 +164,42 @@ export class ChorusEventRouter {
164
164
  `orchestrator for ordinary internal progress.`);
165
165
  }
166
166
  /**
167
- * Append orchestrator-handoff guidance (when the resource has an agent orchestrator)
168
- * to a wake message and dispatch it. Every handler routes its wake through this so the
169
- * handback instruction rides EVERY action parity with the daemon, which appends
170
- * orchestratorGuidance once in buildPrompt (cli/prompts.mjs). No orchestrator the
171
- * message is dispatched unchanged.
167
+ * Waker-session advisory for a wake — the OpenClaw twin of the daemon's
168
+ * wakerSessionGuidance in cli/prompts.mjs. KEEP THE TWO WORDINGS IN SYNC. Returns null
169
+ * unless the notification carries a `wakerSession` anchor (surfaced by the server only when
170
+ * the waking agent has a live, ONLINE-origin session for this resource's idea). It tells the
171
+ * woken peer that replying on this resource reaches the waker's existing live session — an
172
+ * ADVISORY only, not an enforced server route. A SIBLING of buildOrchestratorGuidance:
173
+ * independent, so either/both/neither may render on one wake.
174
+ */
175
+ buildWakerSessionGuidance(n) {
176
+ if (!n.wakerSession)
177
+ return null;
178
+ const { agentName, agentUuid } = n.wakerSession;
179
+ return (`@[${agentName}](agent:${agentUuid}) woke you and has a live session open on this ` +
180
+ `resource. If you reply by commenting on this same resource, your reply reaches that ` +
181
+ `agent's live session, keeping the exchange on one thread. This is advisory, not an ` +
182
+ `enforced server route — there is no automatic subscription and nothing is force-delivered; ` +
183
+ `replying here is simply where a reply lands via the normal return path. Prefer replying ` +
184
+ `on this resource over opening a new session.`);
185
+ }
186
+ /**
187
+ * Append orchestrator-handoff guidance (when the resource has an agent orchestrator) and the
188
+ * waker-session advisory (when the wake carries an online waker anchor) to a wake message and
189
+ * dispatch it. Every handler routes its wake through this so both instructions ride EVERY
190
+ * action — parity with the daemon, which appends orchestratorGuidance + wakerSessionGuidance
191
+ * in buildPrompt (cli/prompts.mjs). The two blocks are independent: either, both, or neither
192
+ * may append; with neither the message is dispatched unchanged.
172
193
  */
173
194
  wakeWithHandoff(message, contextKey, n, attr) {
174
195
  const handoff = this.buildOrchestratorGuidance(n);
175
- this.wake(handoff ? `${message}\n\n${handoff}` : message, contextKey, attr);
196
+ const anchor = this.buildWakerSessionGuidance(n);
197
+ let msg = message;
198
+ if (handoff)
199
+ msg += `\n\n${handoff}`;
200
+ if (anchor)
201
+ msg += `\n\n${anchor}`;
202
+ this.wake(msg, contextKey, attr);
176
203
  }
177
204
  handleTaskAssigned(n, attr) {
178
205
  const mentionGuidance = this.buildMentionGuidance(n, "task");
@@ -1 +1 @@
1
- {"version":3,"file":"event-router.js","sourceRoot":"","sources":["../src/event-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-router.js","sourceRoot":"","sources":["../src/event-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Spec-mode resolver for the Chorus OpenClaw plugin.
3
+ *
4
+ * This is the TypeScript reimplementation of the canonical bash resolver
5
+ * `public/chorus-plugin/bin/resolve-spec-mode.sh` (which the bash ports copy
6
+ * byte-identically; the TS ports reimplement + ship a same-contract test). It
7
+ * mirrors the chorus-pi port's `resolveSpecMode` in
8
+ * `packages/chorus-pi/lib/lib.ts` and is the **single source of truth** for the
9
+ * spec mode on OpenClaw.
10
+ *
11
+ * OpenClaw has no SessionStart hook and no per-session context-injection
12
+ * channel, so nothing precomputes the mode into the agent's context. Instead:
13
+ * - the `/chorus` command calls `resolveSpecModeFromEnv` so the resolved mode
14
+ * is a user-visible surface (its one real runtime caller), and
15
+ * - the stage skills (proposal / develop / yolo / openspec-aware) resolve the
16
+ * SAME contract inline, pointing back at this file as the authoritative rule.
17
+ *
18
+ * `resolveSpecMode` itself is pure given injectable fs + execSync, so it can be
19
+ * unit-tested without touching the disk or PATH.
20
+ */
21
+ /** Minimal fs surface needed by the resolver (injectable for tests). */
22
+ export interface FsLike {
23
+ existsSync(p: string): boolean;
24
+ }
25
+ /** Minimal execSync surface — used only to probe `command -v openspec`. */
26
+ export type ExecSync = (cmd: string, opts: {
27
+ stdio: "ignore";
28
+ }) => void;
29
+ /**
30
+ * The resolved spec mode surfaced to the agent. `openspec` = the OpenSpec
31
+ * (openspec-aware) path; `lite` = Chorus-native lightweight specs
32
+ * (`.chorus/specs/<slug>/`); `off` = free-form, no spec artifact.
33
+ */
34
+ export type SpecMode = "lite" | "openspec" | "off";
35
+ /**
36
+ * Inputs to the spec-mode resolver (env values + repo root). Mirrors the
37
+ * canonical bash resolver `public/chorus-plugin/bin/resolve-spec-mode.sh`.
38
+ */
39
+ export interface SpecModeInputs {
40
+ /** CHORUS_SPEC_MODE — explicit override: "lite" | "openspec" | "off" (else unset/""). */
41
+ specMode?: string;
42
+ /** CHORUS_OPENSPEC_MODE — legacy opt-out: "off" disables OpenSpec. */
43
+ openspecMode?: string;
44
+ /** CLAUDE_PLUGIN_OPTION_ENABLEOPENSPEC — plugin toggle: "false" disables OpenSpec (default "true"). */
45
+ enableOpenSpec?: string;
46
+ /** Repo root to probe for openspec/. */
47
+ projectRoot: string;
48
+ }
49
+ /**
50
+ * Resolved spec mode for a repo — the TS mirror of the bash resolver's output
51
+ * vars. `specFail` non-empty ⇒ a stage skill MUST halt (an explicit
52
+ * `CHORUS_SPEC_MODE=openspec` that cannot be honored); `chorusOpenspecActive`
53
+ * is true only when the resolved mode is a USABLE openspec.
54
+ */
55
+ export interface SpecModeResult {
56
+ specMode: SpecMode;
57
+ specReason: string;
58
+ specFail: string;
59
+ openspecUsable: boolean;
60
+ openspecUsableReason: string;
61
+ openspecHint: string;
62
+ chorusOpenspecActive: boolean;
63
+ }
64
+ /**
65
+ * Resolve the active Chorus spec mode for a repo. Pure given injectable fs +
66
+ * execSync.
67
+ *
68
+ * Rule (per owner): an explicit `CHORUS_SPEC_MODE` wins; when unset, OpenSpec
69
+ * stays the default whenever it is usable (openspec/ dir + CLI, not disabled),
70
+ * and lite is the fallback only when OpenSpec is absent or disabled. An explicit
71
+ * `=openspec` that isn't usable fails fast (`specFail`).
72
+ */
73
+ export declare function resolveSpecMode(inputs: SpecModeInputs, fs: FsLike, execSync: ExecSync): SpecModeResult;
74
+ /**
75
+ * Convenience wrapper that wires the real Node `fs.existsSync` + `child_process.execSync`
76
+ * and reads the spec-mode env vars off a process-env-shaped bag. This is the
77
+ * `/chorus` command's real runtime caller. Kept out of `resolveSpecMode` so the
78
+ * core stays pure/injectable for tests.
79
+ */
80
+ export declare function resolveSpecModeFromEnv(env: NodeJS.ProcessEnv, projectRoot: string): SpecModeResult;
81
+ //# sourceMappingURL=spec-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-mode.d.ts","sourceRoot":"","sources":["../src/spec-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,wEAAwE;AACxE,MAAM,WAAW,MAAM;IACrB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED,2EAA2E;AAC3E,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,KAAK,IAAI,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uGAAuG;IACvG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,QAAQ,GACjB,cAAc,CAyFhB;AAWD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,MAAM,GAClB,cAAc,CAehB"}