@bradygaster/squad-cli 0.8.25 → 0.9.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 (199) hide show
  1. package/README.md +329 -77
  2. package/dist/cli/commands/aspire.d.ts.map +1 -1
  3. package/dist/cli/commands/aspire.js +3 -0
  4. package/dist/cli/commands/aspire.js.map +1 -1
  5. package/dist/cli/commands/build.js +3 -3
  6. package/dist/cli/commands/build.js.map +1 -1
  7. package/dist/cli/commands/cast.d.ts +13 -0
  8. package/dist/cli/commands/cast.d.ts.map +1 -0
  9. package/dist/cli/commands/cast.js +77 -0
  10. package/dist/cli/commands/cast.js.map +1 -0
  11. package/dist/cli/commands/cost.d.ts +2 -0
  12. package/dist/cli/commands/cost.d.ts.map +1 -0
  13. package/dist/cli/commands/cost.js +170 -0
  14. package/dist/cli/commands/cost.js.map +1 -0
  15. package/dist/cli/commands/cross-squad.d.ts +12 -0
  16. package/dist/cli/commands/cross-squad.d.ts.map +1 -0
  17. package/dist/cli/commands/cross-squad.js +80 -0
  18. package/dist/cli/commands/cross-squad.js.map +1 -0
  19. package/dist/cli/commands/doctor.d.ts +5 -0
  20. package/dist/cli/commands/doctor.d.ts.map +1 -1
  21. package/dist/cli/commands/doctor.js +156 -0
  22. package/dist/cli/commands/doctor.js.map +1 -1
  23. package/dist/cli/commands/economy.d.ts +10 -0
  24. package/dist/cli/commands/economy.d.ts.map +1 -0
  25. package/dist/cli/commands/economy.js +64 -0
  26. package/dist/cli/commands/economy.js.map +1 -0
  27. package/dist/cli/commands/export.d.ts.map +1 -1
  28. package/dist/cli/commands/export.js +11 -4
  29. package/dist/cli/commands/export.js.map +1 -1
  30. package/dist/cli/commands/import.js +2 -2
  31. package/dist/cli/commands/import.js.map +1 -1
  32. package/dist/cli/commands/personal.d.ts +16 -0
  33. package/dist/cli/commands/personal.d.ts.map +1 -0
  34. package/dist/cli/commands/personal.js +213 -0
  35. package/dist/cli/commands/personal.js.map +1 -0
  36. package/dist/cli/commands/roles.d.ts +2 -0
  37. package/dist/cli/commands/roles.d.ts.map +1 -0
  38. package/dist/cli/commands/roles.js +54 -0
  39. package/dist/cli/commands/roles.js.map +1 -0
  40. package/dist/cli/commands/schedule.d.ts +14 -0
  41. package/dist/cli/commands/schedule.d.ts.map +1 -0
  42. package/dist/cli/commands/schedule.js +208 -0
  43. package/dist/cli/commands/schedule.js.map +1 -0
  44. package/dist/cli/commands/watch.d.ts.map +1 -1
  45. package/dist/cli/commands/watch.js +17 -5
  46. package/dist/cli/commands/watch.js.map +1 -1
  47. package/dist/cli/core/cast.d.ts +9 -0
  48. package/dist/cli/core/cast.d.ts.map +1 -1
  49. package/dist/cli/core/cast.js +170 -60
  50. package/dist/cli/core/cast.js.map +1 -1
  51. package/dist/cli/core/detect-squad-dir.d.ts +10 -0
  52. package/dist/cli/core/detect-squad-dir.d.ts.map +1 -1
  53. package/dist/cli/core/detect-squad-dir.js +47 -0
  54. package/dist/cli/core/detect-squad-dir.js.map +1 -1
  55. package/dist/cli/core/init.d.ts +8 -0
  56. package/dist/cli/core/init.d.ts.map +1 -1
  57. package/dist/cli/core/init.js +115 -2
  58. package/dist/cli/core/init.js.map +1 -1
  59. package/dist/cli/core/migrations.d.ts.map +1 -1
  60. package/dist/cli/core/migrations.js +21 -0
  61. package/dist/cli/core/migrations.js.map +1 -1
  62. package/dist/cli/core/team-md.js +34 -34
  63. package/dist/cli/core/templates.d.ts.map +1 -1
  64. package/dist/cli/core/templates.js +8 -1
  65. package/dist/cli/core/templates.js.map +1 -1
  66. package/dist/cli/core/upgrade.d.ts +14 -0
  67. package/dist/cli/core/upgrade.d.ts.map +1 -1
  68. package/dist/cli/core/upgrade.js +182 -48
  69. package/dist/cli/core/upgrade.js.map +1 -1
  70. package/dist/cli/core/version.js +2 -2
  71. package/dist/cli/core/version.js.map +1 -1
  72. package/dist/cli/index.d.ts +2 -0
  73. package/dist/cli/index.d.ts.map +1 -1
  74. package/dist/cli/index.js +2 -0
  75. package/dist/cli/index.js.map +1 -1
  76. package/dist/cli/self-update.d.ts +21 -0
  77. package/dist/cli/self-update.d.ts.map +1 -0
  78. package/dist/cli/self-update.js +113 -0
  79. package/dist/cli/self-update.js.map +1 -0
  80. package/dist/cli/shell/autocomplete.d.ts.map +1 -1
  81. package/dist/cli/shell/autocomplete.js +5 -0
  82. package/dist/cli/shell/autocomplete.js.map +1 -1
  83. package/dist/cli/shell/commands.d.ts.map +1 -1
  84. package/dist/cli/shell/commands.js +55 -24
  85. package/dist/cli/shell/commands.js.map +1 -1
  86. package/dist/cli/shell/components/AgentPanel.d.ts.map +1 -1
  87. package/dist/cli/shell/components/AgentPanel.js +21 -6
  88. package/dist/cli/shell/components/AgentPanel.js.map +1 -1
  89. package/dist/cli/shell/components/App.d.ts.map +1 -1
  90. package/dist/cli/shell/components/App.js +33 -15
  91. package/dist/cli/shell/components/App.js.map +1 -1
  92. package/dist/cli/shell/components/InputPrompt.js +1 -1
  93. package/dist/cli/shell/components/InputPrompt.js.map +1 -1
  94. package/dist/cli/shell/components/MessageStream.d.ts +2 -0
  95. package/dist/cli/shell/components/MessageStream.d.ts.map +1 -1
  96. package/dist/cli/shell/components/MessageStream.js +20 -20
  97. package/dist/cli/shell/components/MessageStream.js.map +1 -1
  98. package/dist/cli/shell/components/ThinkingIndicator.d.ts +4 -0
  99. package/dist/cli/shell/components/ThinkingIndicator.d.ts.map +1 -1
  100. package/dist/cli/shell/components/ThinkingIndicator.js +23 -4
  101. package/dist/cli/shell/components/ThinkingIndicator.js.map +1 -1
  102. package/dist/cli/shell/coordinator.d.ts +7 -0
  103. package/dist/cli/shell/coordinator.d.ts.map +1 -1
  104. package/dist/cli/shell/coordinator.js +206 -88
  105. package/dist/cli/shell/coordinator.js.map +1 -1
  106. package/dist/cli/shell/error-messages.d.ts +14 -0
  107. package/dist/cli/shell/error-messages.d.ts.map +1 -1
  108. package/dist/cli/shell/error-messages.js +65 -1
  109. package/dist/cli/shell/error-messages.js.map +1 -1
  110. package/dist/cli/shell/index.d.ts +1 -1
  111. package/dist/cli/shell/index.d.ts.map +1 -1
  112. package/dist/cli/shell/index.js +83 -12
  113. package/dist/cli/shell/index.js.map +1 -1
  114. package/dist/cli/shell/router.d.ts.map +1 -1
  115. package/dist/cli/shell/router.js +21 -2
  116. package/dist/cli/shell/router.js.map +1 -1
  117. package/dist/cli/shell/stream-bridge.d.ts +2 -0
  118. package/dist/cli/shell/stream-bridge.d.ts.map +1 -1
  119. package/dist/cli/shell/stream-bridge.js +11 -2
  120. package/dist/cli/shell/stream-bridge.js.map +1 -1
  121. package/dist/cli/shell/terminal.d.ts +5 -5
  122. package/dist/cli/shell/terminal.d.ts.map +1 -1
  123. package/dist/cli/shell/terminal.js +35 -26
  124. package/dist/cli/shell/terminal.js.map +1 -1
  125. package/dist/cli-entry.js +124 -42
  126. package/dist/cli-entry.js.map +1 -1
  127. package/package.json +20 -4
  128. package/scripts/patch-esm-imports.mjs +106 -77
  129. package/scripts/patch-ink-rendering.mjs +115 -0
  130. package/templates/casting/Futurama.json +10 -0
  131. package/templates/casting-history.json +4 -4
  132. package/templates/casting-policy.json +37 -35
  133. package/templates/casting-reference.md +104 -0
  134. package/templates/casting-registry.json +3 -3
  135. package/templates/ceremonies.md +41 -41
  136. package/templates/charter.md +53 -53
  137. package/templates/constraint-tracking.md +38 -38
  138. package/templates/cooperative-rate-limiting.md +229 -0
  139. package/templates/copilot-instructions.md +46 -46
  140. package/templates/history.md +10 -10
  141. package/templates/identity/now.md +9 -9
  142. package/templates/identity/wisdom.md +15 -15
  143. package/templates/issue-lifecycle.md +412 -0
  144. package/templates/keda-scaler.md +164 -0
  145. package/templates/machine-capabilities.md +75 -0
  146. package/templates/mcp-config.md +90 -90
  147. package/templates/multi-agent-format.md +28 -28
  148. package/templates/orchestration-log.md +27 -27
  149. package/templates/plugin-marketplace.md +49 -49
  150. package/templates/ralph-circuit-breaker.md +313 -0
  151. package/templates/raw-agent-output.md +37 -37
  152. package/templates/roster.md +60 -60
  153. package/templates/routing.md +39 -54
  154. package/templates/run-output.md +50 -50
  155. package/templates/scribe-charter.md +119 -119
  156. package/templates/skill.md +24 -24
  157. package/templates/skills/agent-collaboration/SKILL.md +42 -0
  158. package/templates/skills/agent-conduct/SKILL.md +24 -0
  159. package/templates/skills/architectural-proposals/SKILL.md +151 -0
  160. package/templates/skills/ci-validation-gates/SKILL.md +84 -0
  161. package/templates/skills/cli-wiring/SKILL.md +47 -0
  162. package/templates/skills/client-compatibility/SKILL.md +89 -0
  163. package/templates/skills/cross-squad/SKILL.md +114 -0
  164. package/templates/skills/distributed-mesh/SKILL.md +287 -0
  165. package/templates/skills/distributed-mesh/mesh.json.example +30 -0
  166. package/templates/skills/distributed-mesh/sync-mesh.ps1 +111 -0
  167. package/templates/skills/distributed-mesh/sync-mesh.sh +104 -0
  168. package/templates/skills/docs-standards/SKILL.md +71 -0
  169. package/templates/skills/economy-mode/SKILL.md +114 -0
  170. package/templates/skills/external-comms/SKILL.md +329 -0
  171. package/templates/skills/gh-auth-isolation/SKILL.md +183 -0
  172. package/templates/skills/git-workflow/SKILL.md +204 -0
  173. package/templates/skills/github-multi-account/SKILL.md +95 -0
  174. package/templates/skills/history-hygiene/SKILL.md +36 -0
  175. package/templates/skills/humanizer/SKILL.md +105 -0
  176. package/templates/skills/init-mode/SKILL.md +102 -0
  177. package/templates/skills/model-selection/SKILL.md +117 -0
  178. package/templates/skills/nap/SKILL.md +24 -0
  179. package/templates/skills/personal-squad/SKILL.md +57 -0
  180. package/templates/skills/release-process/SKILL.md +423 -0
  181. package/templates/skills/reskill/SKILL.md +92 -0
  182. package/templates/skills/reviewer-protocol/SKILL.md +79 -0
  183. package/templates/skills/secret-handling/SKILL.md +200 -0
  184. package/templates/skills/session-recovery/SKILL.md +155 -0
  185. package/templates/skills/squad-conventions/SKILL.md +69 -69
  186. package/templates/skills/test-discipline/SKILL.md +37 -0
  187. package/templates/skills/windows-compatibility/SKILL.md +74 -0
  188. package/templates/squad.agent.md +1287 -1146
  189. package/templates/workflows/squad-ci.yml +24 -24
  190. package/templates/workflows/squad-docs.yml +54 -50
  191. package/templates/workflows/squad-heartbeat.yml +3 -4
  192. package/templates/workflows/squad-insider-release.yml +61 -61
  193. package/templates/workflows/squad-issue-assign.yml +161 -161
  194. package/templates/workflows/squad-label-enforce.yml +181 -181
  195. package/templates/workflows/squad-preview.yml +55 -55
  196. package/templates/workflows/squad-promote.yml +120 -120
  197. package/templates/workflows/squad-release.yml +77 -77
  198. package/templates/workflows/squad-triage.yml +260 -260
  199. package/templates/workflows/sync-squad-labels.yml +169 -169
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState, useEffect, useRef } from 'react';
2
+ import React, { useState, useEffect, useRef, useMemo } from 'react';
3
3
  import { Box, Text } from 'ink';
4
4
  import { getRoleEmoji } from '../lifecycle.js';
5
5
  import { isNoColor, useTerminalWidth, useLayoutTier } from '../terminal.js';
@@ -167,40 +167,40 @@ export function wrapTableContent(content, maxWidth, tier) {
167
167
  }
168
168
  return result.join('\n');
169
169
  }
170
- export const MessageStream = ({ messages, agents, streamingContent, processing = false, activityHint, agentActivities, thinkingPhase, maxVisible = 50, }) => {
170
+ export const MessageStream = ({ messages, agents, streamingContent, processing = false, activityHint, agentActivities, thinkingPhase, maxVisible = 50, hasConversation = false, }) => {
171
171
  const visible = messages.slice(-maxVisible);
172
- const roleMap = new Map((agents ?? []).map(a => [a.name, a.role]));
172
+ const visibleOffset = Math.max(0, messages.length - maxVisible);
173
+ const roleMap = useMemo(() => new Map((agents ?? []).map(a => [a.name, a.role])), [agents]);
173
174
  // Message fade-in: new messages start dim for 200ms
174
175
  const fadingCount = useMessageFade(messages.length);
175
- // Elapsed time tracking for the ThinkingIndicator
176
+ // Elapsed time tracking for the ThinkingIndicator.
177
+ // Only update state when the rounded seconds value changes to avoid
178
+ // unnecessary re-renders that cause terminal scroll flicker.
176
179
  const [elapsedMs, setElapsedMs] = useState(0);
177
180
  const processingStartRef = useRef(Date.now());
181
+ const lastElapsedSecRef = useRef(0);
178
182
  useEffect(() => {
179
183
  if (processing) {
180
184
  processingStartRef.current = Date.now();
185
+ lastElapsedSecRef.current = 0;
181
186
  setElapsedMs(0);
182
- // Update once per second — reduces re-renders that cause flicker (#206)
183
187
  const timer = setInterval(() => {
184
- setElapsedMs(Date.now() - processingStartRef.current);
188
+ const now = Date.now() - processingStartRef.current;
189
+ const sec = Math.floor(now / 1000);
190
+ if (sec !== lastElapsedSecRef.current) {
191
+ lastElapsedSecRef.current = sec;
192
+ setElapsedMs(now);
193
+ }
185
194
  }, 1000);
186
195
  return () => clearInterval(timer);
187
196
  }
188
197
  else {
189
198
  setElapsedMs(0);
199
+ lastElapsedSecRef.current = 0;
190
200
  }
191
201
  }, [processing]);
192
- // Build activity hint: prefer explicit hint, then infer from agent @mention
193
- const resolvedHint = (() => {
194
- if (activityHint)
195
- return activityHint;
196
- const lastUser = [...messages].reverse().find(m => m.role === 'user');
197
- if (lastUser) {
198
- const atMatch = lastUser.content.match(/^@(\w+)/);
199
- if (atMatch?.[1])
200
- return `${atMatch[1]} is thinking...`;
201
- }
202
- return undefined;
203
- })();
202
+ // Activity hint comes from the parent (App.tsx derives @mention hints
203
+ // via `mentionHint` and passes them through `activityHint`).
204
204
  // Compute response duration: time from previous user message to this agent message
205
205
  const getResponseDuration = (index) => {
206
206
  const msg = visible[index];
@@ -224,9 +224,9 @@ export const MessageStream = ({ messages, agents, streamingContent, processing =
224
224
  const emoji = agentRole ? getRoleEmoji(agentRole) : '';
225
225
  const duration = getResponseDuration(i);
226
226
  const isFading = fadingCount > 0 && i >= visible.length - fadingCount;
227
- return (_jsxs(React.Fragment, { children: [isNewTurn && _jsx(Separator, { marginTop: 1 }), _jsx(Box, { gap: 1, children: msg.role === 'user' ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: noColor ? undefined : 'cyan', bold: true, dimColor: isFading, children: "\u276F" }), _jsx(Text, { color: noColor ? undefined : 'cyan', wrap: "wrap", dimColor: isFading, children: msg.content })] })) : msg.role === 'system' ? (_jsx(_Fragment, { children: _jsx(Text, { color: "gray", wrap: "wrap", children: msg.content }) })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { color: noColor ? undefined : 'green', bold: true, dimColor: isFading, children: [emoji ? `${emoji} ` : '', (msg.agentName === 'coordinator' ? 'Squad' : msg.agentName) ?? 'agent', ":"] }), _jsx(Text, { wrap: "wrap", dimColor: isFading, children: renderMarkdownInline(wrapTableContent(msg.content, contentWidth, tier)) }), duration && _jsxs(Text, { color: "gray", children: ["(", duration, ")"] })] })) })] }, i));
227
+ return (_jsxs(React.Fragment, { children: [isNewTurn && _jsx(Separator, { marginTop: 1 }), msg.role === 'system' ? (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: _jsx(Text, { color: "gray", wrap: "wrap", children: msg.content }) })) : (_jsx(Box, { gap: 1, paddingLeft: msg.role === 'user' ? 0 : 2, children: msg.role === 'user' ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: noColor ? undefined : 'cyan', bold: true, dimColor: isFading, children: "\u276F" }), _jsx(Text, { color: noColor ? undefined : 'cyan', wrap: "wrap", dimColor: isFading, children: msg.content })] })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { color: noColor ? undefined : 'green', bold: true, dimColor: isFading, children: [emoji ? `${emoji} ` : '', (msg.agentName === 'coordinator' ? 'Squad' : msg.agentName) ?? 'agent', ":"] }), _jsx(Text, { wrap: "wrap", dimColor: isFading, children: renderMarkdownInline(wrapTableContent(msg.content, contentWidth, tier)) }), duration && _jsxs(Text, { color: "gray", children: ["(", duration, ")"] })] })) }))] }, `msg-${visibleOffset + i}`));
228
228
  }), streamingContent && streamingContent.size > 0 && (_jsx(_Fragment, { children: Array.from(streamingContent.entries()).map(([agentName, content]) => (content ? (_jsxs(Box, { gap: 1, children: [_jsxs(Text, { color: noColor ? undefined : 'green', bold: true, children: [roleMap.has(agentName)
229
229
  ? `${getRoleEmoji(roleMap.get(agentName))} `
230
- : '', agentName === 'coordinator' ? 'Squad' : agentName, ":"] }), _jsx(Text, { wrap: "wrap", children: renderMarkdownInline(wrapTableContent(content, contentWidth, tier)) }), _jsx(Text, { color: noColor ? undefined : 'cyan', children: "\u258C" })] }, agentName)) : null)) })), agentActivities && agentActivities.size > 0 && (_jsx(Box, { flexDirection: "column", children: Array.from(agentActivities.entries()).map(([name, activity]) => (_jsxs(Text, { color: "gray", children: ["\u25B8 ", name, " is ", activity] }, name))) })), processing && (!streamingContent || streamingContent.size === 0) && (_jsx(ThinkingIndicator, { isThinking: true, elapsedMs: elapsedMs, activityHint: resolvedHint, phase: thinkingPhase })), processing && streamingContent && streamingContent.size > 0 && (_jsx(ThinkingIndicator, { isThinking: true, elapsedMs: elapsedMs, activityHint: `${Array.from(streamingContent.keys()).join(', ')} streaming` }))] }));
230
+ : '', agentName === 'coordinator' ? 'Squad' : agentName, ":"] }), _jsx(Text, { wrap: "wrap", children: renderMarkdownInline(wrapTableContent(content, contentWidth, tier)) }), _jsx(Text, { color: noColor ? undefined : 'cyan', children: "\u258C" })] }, agentName)) : null)) })), agentActivities && agentActivities.size > 0 && (_jsx(Box, { flexDirection: "column", children: Array.from(agentActivities.entries()).map(([name, activity]) => (_jsxs(Text, { color: "gray", children: ["\u25B8 ", name, " is ", activity] }, name))) })), processing && (!streamingContent || streamingContent.size === 0) && (_jsx(ThinkingIndicator, { isThinking: true, elapsedMs: elapsedMs, activityHint: activityHint, phase: thinkingPhase, hasConversation: hasConversation })), processing && streamingContent && streamingContent.size > 0 && (_jsx(ThinkingIndicator, { isThinking: true, elapsedMs: elapsedMs, activityHint: `${Array.from(streamingContent.keys()).join(', ')} streaming` }))] }));
231
231
  };
232
232
  //# sourceMappingURL=MessageStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageStream.js","sourceRoot":"","sources":["../../../../src/cli/shell/components/MessageStream.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageStream.js","sourceRoot":"","sources":["../../../../src/cli/shell/components/MessageStream.tsx"],"names":[],"mappings":"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"}
@@ -14,8 +14,12 @@ export interface ThinkingIndicatorProps {
14
14
  elapsedMs: number;
15
15
  activityHint?: string;
16
16
  phase?: ThinkingPhase;
17
+ /** When true, cycles conversation-aware phrases instead of generic ones. */
18
+ hasConversation?: boolean;
17
19
  }
18
20
  /** Rotating thinking phrases — cycled every few seconds to keep the UI alive. */
19
21
  export declare const THINKING_PHRASES: string[];
22
+ /** Context-aware phrases shown when conversation history exists. */
23
+ export declare const CONVERSATION_PHRASES: string[];
20
24
  export declare const ThinkingIndicator: React.FC<ThinkingIndicatorProps>;
21
25
  //# sourceMappingURL=ThinkingIndicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThinkingIndicator.d.ts","sourceRoot":"","sources":["../../../../src/cli/shell/components/ThinkingIndicator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,UAgB5B,CAAC;AA6BF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAgE9D,CAAC"}
1
+ {"version":3,"file":"ThinkingIndicator.d.ts","sourceRoot":"","sources":["../../../../src/cli/shell/components/ThinkingIndicator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,UAgB5B,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,UAgBhC,CAAC;AA6BF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAmE9D,CAAC"}
@@ -29,6 +29,24 @@ export const THINKING_PHRASES = [
29
29
  'Connecting the dots',
30
30
  'Exploring possibilities',
31
31
  ];
32
+ /** Context-aware phrases shown when conversation history exists. */
33
+ export const CONVERSATION_PHRASES = [
34
+ 'Reviewing conversation context',
35
+ 'Connecting to previous work',
36
+ 'Analyzing how this relates',
37
+ 'Checking conversation thread',
38
+ 'Considering prior context',
39
+ 'Building on earlier discussion',
40
+ 'Mapping to your session',
41
+ 'Evaluating options',
42
+ 'Consulting the team',
43
+ 'Synthesizing a response',
44
+ 'Weighing trade-offs',
45
+ 'Gathering context',
46
+ 'Crafting a plan',
47
+ 'Connecting the dots',
48
+ 'Reading the codebase',
49
+ ];
32
50
  /** Map phase to its default label. */
33
51
  function phaseLabel(phase) {
34
52
  switch (phase) {
@@ -54,7 +72,7 @@ function formatElapsed(ms) {
54
72
  }
55
73
  /** Static dots for NO_COLOR mode (no animation). */
56
74
  const STATIC_SPINNER = '...';
57
- export const ThinkingIndicator = ({ isThinking, elapsedMs, activityHint, phase = 'routing', }) => {
75
+ export const ThinkingIndicator = ({ isThinking, elapsedMs, activityHint, phase = 'routing', hasConversation = false, }) => {
58
76
  const noColor = isNoColor();
59
77
  const [frame, setFrame] = useState(0);
60
78
  const [phraseIndex, setPhraseIndex] = useState(0);
@@ -67,6 +85,7 @@ export const ThinkingIndicator = ({ isThinking, elapsedMs, activityHint, phase =
67
85
  }, 120);
68
86
  return () => clearInterval(timer);
69
87
  }, [isThinking, noColor]);
88
+ const phrases = hasConversation ? CONVERSATION_PHRASES : THINKING_PHRASES;
70
89
  // Rotate thinking phrases every 3 seconds
71
90
  useEffect(() => {
72
91
  if (!isThinking) {
@@ -74,10 +93,10 @@ export const ThinkingIndicator = ({ isThinking, elapsedMs, activityHint, phase =
74
93
  return;
75
94
  }
76
95
  const timer = setInterval(() => {
77
- setPhraseIndex(i => (i + 1) % THINKING_PHRASES.length);
96
+ setPhraseIndex(i => (i + 1) % phrases.length);
78
97
  }, 3000);
79
98
  return () => clearInterval(timer);
80
- }, [isThinking]);
99
+ }, [isThinking, phrases]);
81
100
  // Reset frame when thinking starts
82
101
  useEffect(() => {
83
102
  if (isThinking) {
@@ -91,7 +110,7 @@ export const ThinkingIndicator = ({ isThinking, elapsedMs, activityHint, phase =
91
110
  const elapsedStr = formatElapsed(elapsedMs);
92
111
  const spinnerChar = noColor ? STATIC_SPINNER : (SPINNER_FRAMES[frame] ?? '⠋');
93
112
  // Resolve the display label: activity hint > rotating phrase > phase label
94
- const displayLabel = activityHint ?? (phase === 'connecting' ? phaseLabel(phase) : `${THINKING_PHRASES[phraseIndex]}...`);
113
+ const displayLabel = activityHint ?? (phase === 'connecting' ? phaseLabel(phase) : `${phrases[phraseIndex]}...`);
95
114
  // NO_COLOR: no color props, use text labels
96
115
  if (noColor) {
97
116
  return (_jsxs(Box, { gap: 1, children: [_jsx(Text, { children: spinnerChar }), _jsx(Text, { children: displayLabel }), elapsedStr ? _jsxs(Text, { children: ["(", elapsedStr, ")"] }) : null] }));
@@ -1 +1 @@
1
- {"version":3,"file":"ThinkingIndicator.js","sourceRoot":"","sources":["../../../../src/cli/shell/components/ThinkingIndicator.tsx"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;AAEH,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAW3C,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,wBAAwB;IACxB,2BAA2B;IAC3B,qBAAqB;IACrB,oBAAoB;IACpB,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,wBAAwB;IACxB,sBAAsB;IACtB,4BAA4B;IAC5B,qBAAqB;IACrB,iBAAiB;IACjB,qBAAqB;IACrB,yBAAyB;CAC1B,CAAC;AAEF,sCAAsC;AACtC,SAAS,UAAU,CAAC,KAAoB;IACtC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,YAAY,CAAC,CAAC,OAAO,iCAAiC,CAAC;QAC5D,KAAK,SAAS,CAAC,CAAC,OAAO,qBAAqB,CAAC;QAC7C,KAAK,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC;IACxC,CAAC;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,yDAAyD;AACzD,SAAS,cAAc,CAAC,UAAkB;IACxC,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,UAAU,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IACrC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,EAAU;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAClC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC;AAED,oDAAoD;AACpD,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,UAAU,EACV,SAAS,EACT,YAAY,EACZ,KAAK,GAAG,SAAS,GAClB,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAElD,kEAAkE;IAClE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,OAAO;YAAE,OAAO;QACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,0CAA0C;IAC1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,EAAE,CAAC;YAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,mCAAmC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,EAAE,CAAC;YAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACrD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAE9E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,YAAY,IAAI,CACnC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CACnF,CAAC;IAEF,4CAA4C;IAC5C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,cAAE,WAAW,GAAQ,EAC1B,KAAC,IAAI,cAAE,YAAY,GAAQ,EAC1B,UAAU,CAAC,CAAC,CAAC,MAAC,IAAI,oBAAG,UAAU,SAAS,CAAC,CAAC,CAAC,IAAI,IAC5C,CACP,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAEzC,OAAO,CACL,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YAAG,WAAW,GAAQ,EACxC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAE,YAAY,GAAQ,EAC/C,UAAU,CAAC,CAAC,CAAC,MAAC,IAAI,IAAC,QAAQ,wBAAG,UAAU,SAAS,CAAC,CAAC,CAAC,IAAI,IACrD,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ThinkingIndicator.js","sourceRoot":"","sources":["../../../../src/cli/shell/components/ThinkingIndicator.tsx"],"names":[],"mappings":"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"}
@@ -10,10 +10,17 @@ export interface CoordinatorConfig {
10
10
  routingPath?: string;
11
11
  /** Path to team.md */
12
12
  teamPath?: string;
13
+ /** When true, include the base roles catalog in the init prompt. Default: false (fictional universe casting). */
14
+ useBaseRoles?: boolean;
13
15
  }
14
16
  /**
15
17
  * Build an Init Mode system prompt for team casting.
16
18
  * Used when team.md exists but has no roster entries.
19
+ *
20
+ * When `config.useBaseRoles` is true (opt-in via `--roles`), the prompt
21
+ * includes the built-in base roles catalog so the LLM maps agents to
22
+ * curated role IDs. Otherwise (default), the LLM casts from a fictional
23
+ * universe with free-form role names — the beloved casting experience.
17
24
  */
18
25
  export declare function buildInitModePrompt(config: CoordinatorConfig): string;
19
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/cli/shell/coordinator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAS/C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAW7D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4CrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAyExE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CA8C1E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EAAE,EACxB,WAAW,GAAE,MAAW,GACvB,MAAM,CAQR"}
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/cli/shell/coordinator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAS/C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAW7D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iHAAiH;IACjH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAKrE;AA+JD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAyExE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CA8C1E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EAAE,EACxB,WAAW,GAAE,MAAW,GACvB,MAAM,CAQR"}
@@ -1,5 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
+ import { listRoles, searchRoles } from '@bradygaster/squad-sdk';
3
4
  /** Debug logger — writes to stderr only when SQUAD_DEBUG=1. */
4
5
  function debugLog(...args) {
5
6
  if (process.env['SQUAD_DEBUG'] === '1') {
@@ -26,50 +27,167 @@ export function hasRosterEntries(teamContent) {
26
27
  /**
27
28
  * Build an Init Mode system prompt for team casting.
28
29
  * Used when team.md exists but has no roster entries.
30
+ *
31
+ * When `config.useBaseRoles` is true (opt-in via `--roles`), the prompt
32
+ * includes the built-in base roles catalog so the LLM maps agents to
33
+ * curated role IDs. Otherwise (default), the LLM casts from a fictional
34
+ * universe with free-form role names — the beloved casting experience.
29
35
  */
30
36
  export function buildInitModePrompt(config) {
31
- return `You are the Squad Coordinator in Init Mode.
32
-
33
- This project has a Squad scaffold (.squad/ directory) but no team has been cast yet.
34
- The user's message describes what they want to build or work on.
35
-
36
- Your job: Propose a team of 4-5 AI agents based on what the user wants to do.
37
-
38
- ## Rules
39
- 1. Analyze the user's message to understand the project (language, stack, scope)
40
- 2. Pick a fictional universe for character names (e.g., Alien, The Usual Suspects, Blade Runner, The Matrix, Heat, Star Wars). Pick ONE universe and use it consistently.
41
- 3. Propose 4-5 agents with roles that match the project needs
42
- 4. Scribe and Ralph are always included automatically do NOT include them in your proposal
43
-
44
- ## Response Format — you MUST use this EXACT format:
45
-
46
- INIT_TEAM:
47
- - {Name} | {Role} | {scope: 2-4 words describing expertise}
48
- - {Name} | {Role} | {scope}
49
- - {Name} | {Role} | {scope}
50
- - {Name} | {Role} | {scope}
51
- UNIVERSE: {universe name}
52
- PROJECT: {1-sentence project description}
53
-
54
- ## Example
55
-
56
- If user says "Build a React app with a Node backend":
57
-
58
- INIT_TEAM:
59
- - Ripley | Lead | Architecture, code review, decisions
60
- - Dallas | Frontend Dev | React, components, styling
61
- - Kane | Backend Dev | Node.js, APIs, database
62
- - Lambert | Tester | Tests, quality, edge cases
63
- UNIVERSE: Alien
64
- PROJECT: A React and Node.js web application
65
-
66
- ## Important
67
- - Use character names that feel natural, not forced
68
- - Roles should match project needs (don't always use the same 4 roles)
69
- - For CLI projects: maybe skip Frontend, add DevOps or SDK Expert
70
- - For data projects: add Data Engineer, skip Frontend
71
- - Keep scope descriptions short (2-4 words each)
72
- - Respond ONLY with the INIT_TEAM block no other text
37
+ if (config.useBaseRoles) {
38
+ return buildBaseRolesInitPrompt();
39
+ }
40
+ return buildUniverseCastingInitPrompt();
41
+ }
42
+ /**
43
+ * Default init prompt — fictional universe casting (no base roles catalog).
44
+ */
45
+ function buildUniverseCastingInitPrompt() {
46
+ return `You are the Squad Coordinator in Init Mode.
47
+
48
+ This project has a Squad scaffold (.squad/ directory) but no team has been cast yet.
49
+ The user's message describes what they want to build or work on.
50
+
51
+ Your job: Propose a team of 4-5 AI agents based on what the user wants to do.
52
+
53
+ ## Rules
54
+ 1. Analyze the user's message to understand the project (language, stack, scope)
55
+ 2. Pick a fictional universe for character names. **Strongly prefer:**
56
+ - **The Usual Suspects** (8 characters: Keyser, McManus, Fenster, Verbal, Hockney, Redfoot, Edie, Kobayashi)
57
+ - **Ocean's Eleven** (10 characters: Danny, Rusty, Linus, Basher, Livingston, Saul, Yen, Virgil, Turk, Reuben)
58
+
59
+ You may also choose other film universes (Alien, The Matrix, Heat, Star Wars, Blade Runner, etc.) but the two above are preferred.
60
+ 3. Propose 4-5 agents with roles that match the project needs
61
+ 4. Scribe and Ralph are always included automatically — do NOT include them in your proposal
62
+
63
+ ## Response Format — you MUST use this EXACT format:
64
+
65
+ INIT_TEAM:
66
+ - {Name} | {Role} | {scope: 2-4 words describing expertise}
67
+ - {Name} | {Role} | {scope}
68
+ - {Name} | {Role} | {scope}
69
+ - {Name} | {Role} | {scope}
70
+ UNIVERSE: {universe name}
71
+ PROJECT: {1-sentence project description}
72
+
73
+ ## Example
74
+
75
+ If user says "Build a React app with a Node backend":
76
+
77
+ INIT_TEAM:
78
+ - Ripley | Lead | Architecture, code review, decisions
79
+ - Dallas | Frontend Dev | React, components, styling
80
+ - Kane | Backend Dev | Node.js, APIs, database
81
+ - Lambert | Tester | Tests, quality, edge cases
82
+ UNIVERSE: Alien
83
+ PROJECT: A React and Node.js web application
84
+
85
+ ## Important
86
+ - Use character names that feel natural, not forced
87
+ - Roles should match project needs (don't always use the same 4 roles)
88
+ - For CLI projects: maybe skip Frontend, add DevOps or SDK Expert
89
+ - For data projects: add Data Engineer, skip Frontend
90
+ - Keep scope descriptions short (2-4 words each)
91
+ - Respond ONLY with the INIT_TEAM block — no other text
92
+ `;
93
+ }
94
+ /**
95
+ * Opt-in base roles init prompt — includes the curated role catalog.
96
+ * Activated by `squad init --roles` or `/init --roles`.
97
+ */
98
+ function buildBaseRolesInitPrompt() {
99
+ const catalog = new Map(listRoles().map((role) => [role.id, role]));
100
+ const resolveRole = (id) => catalog.get(id) ?? searchRoles(id)[0];
101
+ const formatRole = (id, label) => {
102
+ const role = resolveRole(id);
103
+ const title = role?.title ?? label;
104
+ return ` ${id.padEnd(22, ' ')} — ${title}`;
105
+ };
106
+ const softwareRoles = [
107
+ ['lead', 'Lead / Architect'],
108
+ ['frontend', 'Frontend Developer'],
109
+ ['backend', 'Backend Developer'],
110
+ ['fullstack', 'Full-Stack Developer'],
111
+ ['reviewer', 'Code Reviewer'],
112
+ ['tester', 'Test Engineer'],
113
+ ['devops', 'DevOps Engineer'],
114
+ ['security', 'Security Engineer'],
115
+ ['data', 'Data Engineer'],
116
+ ['docs', 'Technical Writer'],
117
+ ['ai', 'AI / ML Engineer'],
118
+ ['designer', 'UI/UX Designer'],
119
+ ];
120
+ const businessRoles = [
121
+ ['marketing-strategist', 'Marketing Strategist'],
122
+ ['sales-strategist', 'Sales Strategist'],
123
+ ['product-manager', 'Product Manager'],
124
+ ['project-manager', 'Project Manager'],
125
+ ['support-specialist', 'Support Specialist'],
126
+ ['game-developer', 'Game Developer'],
127
+ ['media-buyer', 'Media Buyer'],
128
+ ['compliance-legal', 'Compliance & Legal'],
129
+ ];
130
+ const softwareRoleLines = softwareRoles.map(([id, label]) => formatRole(id, label)).join('\n');
131
+ const businessRoleLines = businessRoles.map(([id, label]) => formatRole(id, label)).join('\n');
132
+ return `You are the Squad Coordinator in Init Mode.
133
+
134
+ This project has a Squad scaffold (.squad/ directory) but no team has been cast yet.
135
+ The user's message describes what they want to build or work on.
136
+
137
+ Your job: Propose a team of 4-5 AI agents based on what the user wants to do.
138
+
139
+ ## Rules
140
+ 1. Analyze the user's message to understand the project (language, stack, scope)
141
+ 2. Pick a fictional universe for character names (e.g., Alien, The Usual Suspects, Blade Runner, The Matrix, Heat, Star Wars). Pick ONE universe and use it consistently.
142
+ 3. Propose 4-5 agents with roles that match the project needs
143
+ 4. Scribe and Ralph are always included automatically — do NOT include them in your proposal
144
+
145
+ ## Built-in Base Roles (use these as starting points)
146
+
147
+ The following base roles are available. Prefer these over inventing new roles — they have deep, curated charter content.
148
+ When proposing a team, match the user's project needs to these roles first.
149
+ Only propose a custom role if none of the base roles fit.
150
+
151
+ Software Development:
152
+ ${softwareRoleLines}
153
+
154
+ Business & Operations:
155
+ ${businessRoleLines}
156
+
157
+ When proposing a team member, use the role ID from above in the Role field.
158
+ Example: "- Ripley | lead | Architecture, code review, decisions"
159
+ This tells the system to use the pre-built Lead/Architect charter content.
160
+ If you use a role not in this list, the system will generate a generic charter instead.
161
+
162
+ ## Response Format — you MUST use this EXACT format:
163
+
164
+ INIT_TEAM:
165
+ - {Name} | {Role} | {scope: 2-4 words describing expertise}
166
+ - {Name} | {Role} | {scope}
167
+ - {Name} | {Role} | {scope}
168
+ - {Name} | {Role} | {scope}
169
+ UNIVERSE: {universe name}
170
+ PROJECT: {1-sentence project description}
171
+
172
+ ## Example
173
+
174
+ If user says "Build a React app with a Node backend":
175
+
176
+ INIT_TEAM:
177
+ - Ripley | lead | Architecture, code review, decisions
178
+ - Dallas | frontend | React, components, styling
179
+ - Kane | backend | Node.js, APIs, database
180
+ - Lambert | tester | Tests, quality, edge cases
181
+ UNIVERSE: Alien
182
+ PROJECT: A React and Node.js web application
183
+
184
+ ## Important
185
+ - Use character names that feel natural, not forced
186
+ - Roles should match project needs (don't always use the same 4 roles)
187
+ - For CLI projects: maybe skip Frontend, add DevOps or SDK Expert
188
+ - For data projects: add Data Engineer, skip Frontend
189
+ - Keep scope descriptions short (2-4 words each)
190
+ - Respond ONLY with the INIT_TEAM block — no other text
73
191
  `;
74
192
  }
75
193
  /**
@@ -84,29 +202,29 @@ export function buildCoordinatorPrompt(config) {
84
202
  try {
85
203
  teamContent = readFileSync(teamPath, 'utf-8');
86
204
  if (!hasRosterEntries(teamContent)) {
87
- teamContent = `⚠️ NO TEAM CONFIGURED
88
-
89
- This project doesn't have a Squad team yet.
90
-
91
- **You MUST NOT do any project work.** Instead, tell the user:
92
- 1. "This project doesn't have a Squad team yet."
93
- 2. Suggest running \`squad init\` or the \`/init\` command to set one up.
94
- 3. Politely refuse any work requests until init is done.
95
-
205
+ teamContent = `⚠️ NO TEAM CONFIGURED
206
+
207
+ This project doesn't have a Squad team yet.
208
+
209
+ **You MUST NOT do any project work.** Instead, tell the user:
210
+ 1. "This project doesn't have a Squad team yet."
211
+ 2. Suggest running \`squad init\` or the \`/init\` command to set one up.
212
+ 3. Politely refuse any work requests until init is done.
213
+
96
214
  Do not answer coding questions, route to agents, or perform any project tasks.`;
97
215
  }
98
216
  }
99
217
  catch (err) {
100
218
  debugLog('buildCoordinatorPrompt: failed to read team.md at', teamPath, err);
101
- teamContent = `⚠️ NO TEAM CONFIGURED
102
-
103
- This project doesn't have a Squad team yet.
104
-
105
- **You MUST NOT do any project work.** Instead, tell the user:
106
- 1. "This project doesn't have a Squad team yet."
107
- 2. Suggest running \`squad init\` or the \`/init\` command to set one up.
108
- 3. Politely refuse any work requests until init is done.
109
-
219
+ teamContent = `⚠️ NO TEAM CONFIGURED
220
+
221
+ This project doesn't have a Squad team yet.
222
+
223
+ **You MUST NOT do any project work.** Instead, tell the user:
224
+ 1. "This project doesn't have a Squad team yet."
225
+ 2. Suggest running \`squad init\` or the \`/init\` command to set one up.
226
+ 3. Politely refuse any work requests until init is done.
227
+
110
228
  Do not answer coding questions, route to agents, or perform any project tasks.`;
111
229
  }
112
230
  // Load routing.md for routing rules
@@ -119,34 +237,34 @@ Do not answer coding questions, route to agents, or perform any project tasks.`;
119
237
  debugLog('buildCoordinatorPrompt: failed to read routing.md at', routingPath, err);
120
238
  routingContent = '(No routing.md found — run `squad init` to create one)';
121
239
  }
122
- return `You are the Squad Coordinator — you route work to the right agent.
123
-
124
- ## Team Roster
125
- ${teamContent}
126
-
127
- ## Routing Rules
128
- ${routingContent}
129
-
130
- ## Your Job
131
- 1. Read the user's message
132
- 2. Decide which agent(s) should handle it based on routing rules
133
- 3. If naming a specific agent ("Fenster, fix the bug"), route directly
134
- 4. If ambiguous, pick the best match and explain your choice
135
- 5. For status/factual questions, answer directly without spawning
136
-
137
- ## Response Format
138
- When routing to an agent, respond with:
139
- ROUTE: {agent_name}
140
- TASK: {what the agent should do}
141
- CONTEXT: {any relevant context}
142
-
143
- When answering directly:
144
- DIRECT: {your answer}
145
-
146
- When routing to multiple agents:
147
- MULTI:
148
- - {agent1}: {task1}
149
- - {agent2}: {task2}
240
+ return `You are the Squad Coordinator — you route work to the right agent.
241
+
242
+ ## Team Roster
243
+ ${teamContent}
244
+
245
+ ## Routing Rules
246
+ ${routingContent}
247
+
248
+ ## Your Job
249
+ 1. Read the user's message
250
+ 2. Decide which agent(s) should handle it based on routing rules
251
+ 3. If naming a specific agent ("Fenster, fix the bug"), route directly
252
+ 4. If ambiguous, pick the best match and explain your choice
253
+ 5. For status/factual questions, answer directly without spawning
254
+
255
+ ## Response Format
256
+ When routing to an agent, respond with:
257
+ ROUTE: {agent_name}
258
+ TASK: {what the agent should do}
259
+ CONTEXT: {any relevant context}
260
+
261
+ When answering directly:
262
+ DIRECT: {your answer}
263
+
264
+ When routing to multiple agents:
265
+ MULTI:
266
+ - {agent1}: {task1}
267
+ - {agent2}: {task2}
150
268
  `;
151
269
  }
152
270
  export function parseCoordinatorResponse(response) {
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/cli/shell/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/cli/shell/coordinator.ts"],"names":[],"mappings":"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"}