@bradygaster/squad-sdk 0.8.0 → 0.8.2-1.4

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 (240) hide show
  1. package/README.md +296 -296
  2. package/dist/adapter/client.d.ts +25 -4
  3. package/dist/adapter/client.d.ts.map +1 -1
  4. package/dist/adapter/client.js +377 -75
  5. package/dist/adapter/client.js.map +1 -1
  6. package/dist/adapter/errors.js.map +1 -1
  7. package/dist/adapter/types.d.ts +38 -0
  8. package/dist/adapter/types.d.ts.map +1 -1
  9. package/dist/agents/charter-compiler.d.ts +4 -0
  10. package/dist/agents/charter-compiler.d.ts.map +1 -1
  11. package/dist/agents/charter-compiler.js +8 -0
  12. package/dist/agents/charter-compiler.js.map +1 -1
  13. package/dist/agents/history-shadow.js +30 -30
  14. package/dist/agents/history-shadow.js.map +1 -1
  15. package/dist/agents/index.d.ts +6 -3
  16. package/dist/agents/index.d.ts.map +1 -1
  17. package/dist/agents/index.js +132 -23
  18. package/dist/agents/index.js.map +1 -1
  19. package/dist/agents/lifecycle.d.ts.map +1 -1
  20. package/dist/agents/lifecycle.js +28 -2
  21. package/dist/agents/lifecycle.js.map +1 -1
  22. package/dist/agents/model-selector.d.ts.map +1 -1
  23. package/dist/agents/model-selector.js +10 -37
  24. package/dist/agents/model-selector.js.map +1 -1
  25. package/dist/agents/onboarding.js +12 -12
  26. package/dist/agents/onboarding.js.map +1 -1
  27. package/dist/build/ci-pipeline.js.map +1 -1
  28. package/dist/build/github-dist.d.ts +2 -2
  29. package/dist/build/github-dist.js +45 -45
  30. package/dist/build/github-dist.js.map +1 -1
  31. package/dist/build/install-migration.js +2 -2
  32. package/dist/build/install-migration.js.map +1 -1
  33. package/dist/build/release.js.map +1 -1
  34. package/dist/build/versioning.js.map +1 -1
  35. package/dist/builders/index.d.ts +156 -0
  36. package/dist/builders/index.d.ts.map +1 -0
  37. package/dist/builders/index.js +404 -0
  38. package/dist/builders/index.js.map +1 -0
  39. package/dist/builders/types.d.ts +187 -0
  40. package/dist/builders/types.d.ts.map +1 -0
  41. package/dist/builders/types.js +12 -0
  42. package/dist/builders/types.js.map +1 -0
  43. package/dist/casting/index.d.ts.map +1 -1
  44. package/dist/casting/index.js +10 -2
  45. package/dist/casting/index.js.map +1 -1
  46. package/dist/client/event-bus.d.ts.map +1 -1
  47. package/dist/client/event-bus.js +0 -1
  48. package/dist/client/event-bus.js.map +1 -1
  49. package/dist/client/index.d.ts +7 -4
  50. package/dist/client/index.d.ts.map +1 -1
  51. package/dist/client/index.js +22 -10
  52. package/dist/client/index.js.map +1 -1
  53. package/dist/config/agent-doc.js.map +1 -1
  54. package/dist/config/agent-source.js.map +1 -1
  55. package/dist/config/doc-sync.js.map +1 -1
  56. package/dist/config/init.d.ts +38 -13
  57. package/dist/config/init.d.ts.map +1 -1
  58. package/dist/config/init.js +615 -177
  59. package/dist/config/init.js.map +1 -1
  60. package/dist/config/legacy-fallback.js.map +1 -1
  61. package/dist/config/markdown-migration.js.map +1 -1
  62. package/dist/config/migration.js.map +1 -1
  63. package/dist/config/routing.js.map +1 -1
  64. package/dist/coordinator/coordinator.d.ts.map +1 -1
  65. package/dist/coordinator/coordinator.js +73 -55
  66. package/dist/coordinator/coordinator.js.map +1 -1
  67. package/dist/coordinator/fan-out.js.map +1 -1
  68. package/dist/coordinator/index.d.ts +19 -4
  69. package/dist/coordinator/index.d.ts.map +1 -1
  70. package/dist/coordinator/index.js +144 -21
  71. package/dist/coordinator/index.js.map +1 -1
  72. package/dist/index.d.ts +15 -2
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +16 -2
  75. package/dist/index.js.map +1 -1
  76. package/dist/multi-squad.d.ts +89 -0
  77. package/dist/multi-squad.d.ts.map +1 -0
  78. package/dist/multi-squad.js +233 -0
  79. package/dist/multi-squad.js.map +1 -0
  80. package/dist/ralph/index.d.ts +3 -1
  81. package/dist/ralph/index.d.ts.map +1 -1
  82. package/dist/ralph/index.js +83 -16
  83. package/dist/ralph/index.js.map +1 -1
  84. package/dist/ralph/triage.d.ts +48 -0
  85. package/dist/ralph/triage.d.ts.map +1 -0
  86. package/dist/ralph/triage.js +310 -0
  87. package/dist/ralph/triage.js.map +1 -0
  88. package/dist/remote/bridge.d.ts +79 -0
  89. package/dist/remote/bridge.d.ts.map +1 -0
  90. package/dist/remote/bridge.js +583 -0
  91. package/dist/remote/bridge.js.map +1 -0
  92. package/dist/remote/index.d.ts +7 -0
  93. package/dist/remote/index.d.ts.map +1 -0
  94. package/dist/remote/index.js +6 -0
  95. package/dist/remote/index.js.map +1 -0
  96. package/dist/remote/protocol.d.ts +130 -0
  97. package/dist/remote/protocol.d.ts.map +1 -0
  98. package/dist/remote/protocol.js +25 -0
  99. package/dist/remote/protocol.js.map +1 -0
  100. package/dist/remote/types.d.ts +34 -0
  101. package/dist/remote/types.d.ts.map +1 -0
  102. package/dist/remote/types.js +5 -0
  103. package/dist/remote/types.js.map +1 -0
  104. package/dist/resolution.d.ts +72 -0
  105. package/dist/resolution.d.ts.map +1 -1
  106. package/dist/resolution.js +153 -0
  107. package/dist/resolution.js.map +1 -1
  108. package/dist/runtime/benchmarks.js.map +1 -1
  109. package/dist/runtime/config.d.ts +3 -2
  110. package/dist/runtime/config.d.ts.map +1 -1
  111. package/dist/runtime/config.js +7 -6
  112. package/dist/runtime/config.js.map +1 -1
  113. package/dist/runtime/constants.d.ts +37 -0
  114. package/dist/runtime/constants.d.ts.map +1 -0
  115. package/dist/runtime/constants.js +60 -0
  116. package/dist/runtime/constants.js.map +1 -0
  117. package/dist/runtime/event-bus-ws-bridge.d.ts +35 -0
  118. package/dist/runtime/event-bus-ws-bridge.d.ts.map +1 -0
  119. package/dist/runtime/event-bus-ws-bridge.js +55 -0
  120. package/dist/runtime/event-bus-ws-bridge.js.map +1 -0
  121. package/dist/runtime/event-payloads.d.ts +108 -0
  122. package/dist/runtime/event-payloads.d.ts.map +1 -0
  123. package/dist/runtime/event-payloads.js +28 -0
  124. package/dist/runtime/event-payloads.js.map +1 -0
  125. package/dist/runtime/health.d.ts.map +1 -1
  126. package/dist/runtime/health.js +2 -1
  127. package/dist/runtime/health.js.map +1 -1
  128. package/dist/runtime/otel-api.d.ts +38 -0
  129. package/dist/runtime/otel-api.d.ts.map +1 -0
  130. package/dist/runtime/otel-api.js +94 -0
  131. package/dist/runtime/otel-api.js.map +1 -0
  132. package/dist/runtime/otel-bridge.d.ts +52 -0
  133. package/dist/runtime/otel-bridge.d.ts.map +1 -0
  134. package/dist/runtime/otel-bridge.js +132 -0
  135. package/dist/runtime/otel-bridge.js.map +1 -0
  136. package/dist/runtime/otel-init.d.ts +84 -0
  137. package/dist/runtime/otel-init.d.ts.map +1 -0
  138. package/dist/runtime/otel-init.js +86 -0
  139. package/dist/runtime/otel-init.js.map +1 -0
  140. package/dist/runtime/otel-metrics.d.ts +42 -0
  141. package/dist/runtime/otel-metrics.d.ts.map +1 -0
  142. package/dist/runtime/otel-metrics.js +196 -0
  143. package/dist/runtime/otel-metrics.js.map +1 -0
  144. package/dist/runtime/otel.d.ts +55 -0
  145. package/dist/runtime/otel.d.ts.map +1 -0
  146. package/dist/runtime/otel.js +165 -0
  147. package/dist/runtime/otel.js.map +1 -0
  148. package/dist/runtime/squad-observer.d.ts +75 -0
  149. package/dist/runtime/squad-observer.d.ts.map +1 -0
  150. package/dist/runtime/squad-observer.js +190 -0
  151. package/dist/runtime/squad-observer.js.map +1 -0
  152. package/dist/runtime/streaming.d.ts +9 -0
  153. package/dist/runtime/streaming.d.ts.map +1 -1
  154. package/dist/runtime/streaming.js +37 -1
  155. package/dist/runtime/streaming.js.map +1 -1
  156. package/dist/sharing/conflicts.js +7 -5
  157. package/dist/sharing/conflicts.js.map +1 -1
  158. package/dist/sharing/consult.d.ts +226 -0
  159. package/dist/sharing/consult.d.ts.map +1 -0
  160. package/dist/sharing/consult.js +818 -0
  161. package/dist/sharing/consult.js.map +1 -0
  162. package/dist/sharing/export.js.map +1 -1
  163. package/dist/sharing/import.js.map +1 -1
  164. package/dist/sharing/index.d.ts +2 -1
  165. package/dist/sharing/index.d.ts.map +1 -1
  166. package/dist/sharing/index.js +2 -1
  167. package/dist/sharing/index.js.map +1 -1
  168. package/dist/skills/skill-loader.js.map +1 -1
  169. package/dist/streams/filter.d.ts +33 -0
  170. package/dist/streams/filter.d.ts.map +1 -0
  171. package/dist/streams/filter.js +29 -0
  172. package/dist/streams/filter.js.map +1 -0
  173. package/dist/streams/index.d.ts +9 -0
  174. package/dist/streams/index.d.ts.map +1 -0
  175. package/dist/streams/index.js +9 -0
  176. package/dist/streams/index.js.map +1 -0
  177. package/dist/streams/resolver.d.ts +40 -0
  178. package/dist/streams/resolver.d.ts.map +1 -0
  179. package/dist/streams/resolver.js +162 -0
  180. package/dist/streams/resolver.js.map +1 -0
  181. package/dist/streams/types.d.ts +44 -0
  182. package/dist/streams/types.d.ts.map +1 -0
  183. package/dist/streams/types.js +10 -0
  184. package/dist/streams/types.js.map +1 -0
  185. package/dist/tools/index.d.ts +8 -0
  186. package/dist/tools/index.d.ts.map +1 -1
  187. package/dist/tools/index.js +57 -1
  188. package/dist/tools/index.js.map +1 -1
  189. package/dist/types.d.ts +23 -0
  190. package/dist/types.d.ts.map +1 -1
  191. package/dist/upstream/index.d.ts +8 -0
  192. package/dist/upstream/index.d.ts.map +1 -0
  193. package/dist/upstream/index.js +7 -0
  194. package/dist/upstream/index.js.map +1 -0
  195. package/dist/upstream/resolver.d.ts +37 -0
  196. package/dist/upstream/resolver.d.ts.map +1 -0
  197. package/dist/upstream/resolver.js +234 -0
  198. package/dist/upstream/resolver.js.map +1 -0
  199. package/dist/upstream/types.d.ts +55 -0
  200. package/dist/upstream/types.d.ts.map +1 -0
  201. package/dist/upstream/types.js +11 -0
  202. package/dist/upstream/types.js.map +1 -0
  203. package/dist/utils/safe-timestamp.d.ts +6 -0
  204. package/dist/utils/safe-timestamp.d.ts.map +1 -0
  205. package/dist/utils/safe-timestamp.js +8 -0
  206. package/dist/utils/safe-timestamp.js.map +1 -0
  207. package/package.json +208 -115
  208. package/templates/casting-history.json +4 -0
  209. package/templates/casting-policy.json +35 -0
  210. package/templates/casting-registry.json +3 -0
  211. package/templates/ceremonies.md +41 -0
  212. package/templates/charter.md +53 -0
  213. package/templates/constraint-tracking.md +38 -0
  214. package/templates/copilot-instructions.md +46 -0
  215. package/templates/history.md +10 -0
  216. package/templates/identity/now.md +9 -0
  217. package/templates/identity/wisdom.md +15 -0
  218. package/templates/mcp-config.md +98 -0
  219. package/templates/multi-agent-format.md +28 -0
  220. package/templates/orchestration-log.md +27 -0
  221. package/templates/plugin-marketplace.md +49 -0
  222. package/templates/raw-agent-output.md +37 -0
  223. package/templates/roster.md +60 -0
  224. package/templates/routing.md +54 -0
  225. package/templates/run-output.md +50 -0
  226. package/templates/scribe-charter.md +119 -0
  227. package/templates/skill.md +24 -0
  228. package/templates/skills/project-conventions/SKILL.md +56 -0
  229. package/templates/squad.agent.md +1146 -0
  230. package/templates/workflows/squad-ci.yml +24 -0
  231. package/templates/workflows/squad-docs.yml +50 -0
  232. package/templates/workflows/squad-heartbeat.yml +316 -0
  233. package/templates/workflows/squad-insider-release.yml +61 -0
  234. package/templates/workflows/squad-issue-assign.yml +161 -0
  235. package/templates/workflows/squad-label-enforce.yml +181 -0
  236. package/templates/workflows/squad-preview.yml +55 -0
  237. package/templates/workflows/squad-promote.yml +120 -0
  238. package/templates/workflows/squad-release.yml +77 -0
  239. package/templates/workflows/squad-triage.yml +260 -0
  240. package/templates/workflows/sync-squad-labels.yml +169 -0
@@ -11,7 +11,10 @@ export { SquadCoordinator, } from './coordinator.js';
11
11
  export { DirectResponseHandler, } from './direct-response.js';
12
12
  // --- M1-10 Fan-Out ---
13
13
  export { spawnParallel, aggregateSessionEvents, } from './fan-out.js';
14
- // --- Coordinator ---
14
+ // --- M3-4 Response Tiers ---
15
+ export { selectResponseTier, getTier, } from './response-tiers.js';
16
+ import { trace, SpanStatusCode } from '../runtime/otel-api.js';
17
+ const tracer = trace.getTracer('squad-sdk');
15
18
  export class Coordinator {
16
19
  client = null;
17
20
  eventBus = null;
@@ -19,36 +22,156 @@ export class Coordinator {
19
22
  hookPipeline = null;
20
23
  toolRegistry = null;
21
24
  config;
22
- constructor(config) {
25
+ initialized = false;
26
+ unsubscribers = [];
27
+ constructor(config, deps) {
23
28
  this.config = config;
24
- // TODO: PRD 5 — Accept injected dependencies (client, eventBus, agentManager, hooks, tools)
29
+ if (deps) {
30
+ this.client = deps.client ?? null;
31
+ this.eventBus = deps.eventBus ?? null;
32
+ this.agentManager = deps.agentManager ?? null;
33
+ this.hookPipeline = deps.hookPipeline ?? null;
34
+ this.toolRegistry = deps.toolRegistry ?? null;
35
+ }
25
36
  }
26
- /** Initialize the coordinator: connect client, load team, register hooks */
37
+ /** Initialize the coordinator: wire up event subscriptions and mark ready */
27
38
  async initialize() {
28
- // TODO: PRD 5 — Initialize SquadClient and connect
29
- // TODO: PRD 5 — Load all agent charters via CharterCompiler
30
- // TODO: PRD 5 — Register custom tools via ToolRegistry
31
- // TODO: PRD 5 — Set up hook pipeline
32
- // TODO: PRD 5 — Subscribe to EventBus for agent lifecycle events
33
- // TODO: PRD 5 — Create coordinator's own session for routing logic
39
+ const span = tracer.startSpan('squad.coordinator.initialize');
40
+ try {
41
+ if (this.eventBus) {
42
+ this.unsubscribers.push(this.eventBus.subscribe('session:created', (event) => {
43
+ const s = tracer.startSpan('squad.coordinator.session.created');
44
+ s.setAttribute('session.id', event.sessionId ?? 'unknown');
45
+ s.end();
46
+ }));
47
+ this.unsubscribers.push(this.eventBus.subscribe('session:error', (event) => {
48
+ const s = tracer.startSpan('squad.coordinator.session.error');
49
+ s.setAttribute('session.id', event.sessionId ?? 'unknown');
50
+ s.end();
51
+ }));
52
+ this.unsubscribers.push(this.eventBus.subscribe('session:destroyed', (event) => {
53
+ const s = tracer.startSpan('squad.coordinator.session.destroyed');
54
+ s.setAttribute('session.id', event.sessionId ?? 'unknown');
55
+ s.end();
56
+ }));
57
+ }
58
+ this.initialized = true;
59
+ }
60
+ catch (err) {
61
+ span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });
62
+ span.recordException(err instanceof Error ? err : new Error(String(err)));
63
+ throw err;
64
+ }
65
+ finally {
66
+ span.end();
67
+ }
34
68
  }
35
69
  /** Route an incoming user message to the appropriate agent(s) */
36
70
  async route(message) {
37
- // TODO: PRD 5 — Determine response tier (direct/lightweight/standard/full)
38
- // TODO: PRD 5 — Select target agent(s) based on message content and team roster
39
- // TODO: PRD 5 — Handle parallel fan-out for multi-agent tasks
40
- throw new Error('Not implemented');
71
+ const span = tracer.startSpan('squad.coordinator.route');
72
+ span.setAttribute('message.length', message.length);
73
+ try {
74
+ const lower = message.toLowerCase().trim();
75
+ let decision;
76
+ // Direct response: status queries, factual questions
77
+ if (/^(status|help|what is|who is|how many|show|list)\b/.test(lower)) {
78
+ decision = {
79
+ tier: 'direct',
80
+ agents: [],
81
+ parallel: false,
82
+ rationale: `Direct response for informational query: "${message}"`,
83
+ };
84
+ }
85
+ else {
86
+ // Agent name mention — route to that specific agent
87
+ const agentMention = lower.match(/@(\w+)/);
88
+ if (agentMention) {
89
+ decision = {
90
+ tier: 'standard',
91
+ agents: [agentMention[1]],
92
+ parallel: false,
93
+ rationale: `Routed to mentioned agent: ${agentMention[1]}`,
94
+ };
95
+ }
96
+ else if (/\bteam\b/.test(lower)) {
97
+ // Team-wide task — fan-out to all agents
98
+ decision = {
99
+ tier: 'full',
100
+ agents: ['all'],
101
+ parallel: true,
102
+ rationale: 'Team-wide task detected — fan-out to all agents',
103
+ };
104
+ }
105
+ else {
106
+ // Default: route to lead agent (Keaton)
107
+ decision = {
108
+ tier: 'standard',
109
+ agents: ['lead'],
110
+ parallel: false,
111
+ rationale: 'Default routing to lead agent (Keaton)',
112
+ };
113
+ }
114
+ }
115
+ span.setAttribute('routing.tier', decision.tier);
116
+ span.setAttribute('target.agents', decision.agents.join(','));
117
+ span.setAttribute('routing.reason', decision.rationale);
118
+ return decision;
119
+ }
120
+ catch (err) {
121
+ span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });
122
+ span.recordException(err instanceof Error ? err : new Error(String(err)));
123
+ throw err;
124
+ }
125
+ finally {
126
+ span.end();
127
+ }
41
128
  }
42
- /** Execute a routing decision: spawn/resume agents and deliver work */
129
+ /** Execute a routing decision: emit routing event on EventBus */
43
130
  async execute(decision, message) {
44
- // TODO: PRD 5 — Spawn or resume agent sessions per decision
45
- // TODO: PRD 5 — Deliver message via sendAndWait()
46
- // TODO: PRD 5 — Monitor progress via event subscriptions
131
+ const span = tracer.startSpan('squad.coordinator.execute');
132
+ span.setAttribute('routing.tier', decision.tier);
133
+ span.setAttribute('target.agents', decision.agents.join(','));
134
+ try {
135
+ if (this.eventBus) {
136
+ await this.eventBus.emit({
137
+ type: 'coordinator:routing',
138
+ payload: { decision, message },
139
+ timestamp: new Date(),
140
+ });
141
+ }
142
+ }
143
+ catch (err) {
144
+ span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });
145
+ span.recordException(err instanceof Error ? err : new Error(String(err)));
146
+ throw err;
147
+ }
148
+ finally {
149
+ span.end();
150
+ }
47
151
  }
48
- /** Graceful shutdown */
152
+ /** Graceful shutdown: unsubscribe from events and release references */
49
153
  async shutdown() {
50
- // TODO: PRD 5 — Destroy all agent sessions
51
- // TODO: PRD 5 — Disconnect client
154
+ const span = tracer.startSpan('squad.coordinator.shutdown');
155
+ try {
156
+ for (const unsub of this.unsubscribers) {
157
+ unsub();
158
+ }
159
+ this.unsubscribers = [];
160
+ this.initialized = false;
161
+ this.client = null;
162
+ this.eventBus = null;
163
+ this.agentManager = null;
164
+ this.hookPipeline = null;
165
+ this.toolRegistry = null;
166
+ }
167
+ catch (err) {
168
+ span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });
169
+ span.recordException(err instanceof Error ? err : new Error(String(err)));
170
+ throw err;
171
+ }
172
+ finally {
173
+ span.end();
174
+ }
52
175
  }
53
176
  }
54
177
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordinator/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,GAKjB,MAAM,kBAAkB,CAAC;AAE1B,+BAA+B;AAC/B,OAAO,EACL,qBAAqB,GAItB,MAAM,sBAAsB,CAAC;AAE9B,wBAAwB;AACxB,OAAO,EACL,aAAa,EACb,sBAAsB,GAIvB,MAAM,cAAc,CAAC;AAkCtB,sBAAsB;AAEtB,MAAM,OAAO,WAAW;IACd,MAAM,GAAuB,IAAI,CAAC;IAClC,QAAQ,GAAoB,IAAI,CAAC;IACjC,YAAY,GAA+B,IAAI,CAAC;IAChD,YAAY,GAAwB,IAAI,CAAC;IACzC,YAAY,GAAwB,IAAI,CAAC;IACzC,MAAM,CAAoB;IAElC,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,4FAA4F;IAC9F,CAAC;IAED,4EAA4E;IAC5E,KAAK,CAAC,UAAU;QACd,mDAAmD;QACnD,4DAA4D;QAC5D,uDAAuD;QACvD,qCAAqC;QACrC,iEAAiE;QACjE,mEAAmE;IACrE,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,KAAK,CAAC,OAAe;QACzB,2EAA2E;QAC3E,gFAAgF;QAChF,8DAA8D;QAC9D,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,OAAO,CAAC,QAAyB,EAAE,OAAe;QACtD,4DAA4D;QAC5D,kDAAkD;QAClD,yDAAyD;IAC3D,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,QAAQ;QACZ,2CAA2C;QAC3C,kCAAkC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordinator/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,8 +3,9 @@
3
3
  * This module has ZERO side effects. Safe to import as a library.
4
4
  * CLI entry point lives in src/cli-entry.ts.
5
5
  */
6
- export declare const VERSION = "0.8.0";
7
- export { resolveSquad, resolveGlobalSquadPath, ensureSquadPath } from './resolution.js';
6
+ export declare const VERSION: string;
7
+ export { resolveSquad, resolveGlobalSquadPath, ensureSquadPath, loadDirConfig, isConsultMode } from './resolution.js';
8
+ export type { SquadDirConfig, ResolvedSquadPaths } from './resolution.js';
8
9
  export * from './config/index.js';
9
10
  export * from './agents/onboarding.js';
10
11
  export * from './casting/index.js';
@@ -13,13 +14,25 @@ export { selectResponseTier, getTier } from './coordinator/response-tiers.js';
13
14
  export type { ResponseTier, TierName, TierContext, ModelTierSuggestion } from './coordinator/response-tiers.js';
14
15
  export { loadConfig, loadConfigSync } from './runtime/config.js';
15
16
  export type { ConfigLoadResult, ConfigValidationError } from './runtime/config.js';
17
+ export { MODELS, TIMEOUTS, AGENT_ROLES } from './runtime/constants.js';
18
+ export type { AgentRole } from './runtime/constants.js';
16
19
  export * from './runtime/streaming.js';
17
20
  export * from './runtime/cost-tracker.js';
18
21
  export * from './runtime/telemetry.js';
19
22
  export * from './runtime/offline.js';
20
23
  export * from './runtime/i18n.js';
21
24
  export * from './runtime/benchmarks.js';
25
+ export * from './runtime/otel-init.js';
26
+ export * from './runtime/otel-metrics.js';
27
+ export { getMeter, getTracer } from './runtime/otel.js';
28
+ export { safeTimestamp } from './utils/safe-timestamp.js';
29
+ export { EventBus as RuntimeEventBus } from './runtime/event-bus.js';
22
30
  export * from './marketplace/index.js';
23
31
  export * from './build/index.js';
24
32
  export * from './sharing/index.js';
33
+ export * from './upstream/index.js';
34
+ export * from './remote/index.js';
35
+ export * from './streams/index.js';
36
+ export { defineTeam, defineAgent, defineRouting, defineCeremony, defineHooks, defineCasting, defineTelemetry, defineDefaults, defineSkill, defineSquad, BuilderValidationError, } from './builders/index.js';
37
+ export type { AgentRef, ScheduleExpression, BuilderModelId, ModelPreference, DefaultsDefinition, TeamDefinition, AgentCapability, AgentDefinition, RoutingRule as BuilderRoutingRule, RoutingDefinition, CeremonyDefinition, HooksDefinition, CastingDefinition, TelemetryDefinition, SkillDefinition as BuilderSkillDefinition, SkillTool as BuilderSkillTool, SquadSDKConfig, } from './builders/index.js';
25
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxF,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC9E,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAChH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACnF,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAExC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,eAAO,MAAM,OAAO,EAAE,MAAoB,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtH,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC9E,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAChH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAErE,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,WAAW,IAAI,kBAAkB,EACjC,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,IAAI,sBAAsB,EACzC,SAAS,IAAI,gBAAgB,EAC7B,cAAc,GACf,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -3,22 +3,36 @@
3
3
  * This module has ZERO side effects. Safe to import as a library.
4
4
  * CLI entry point lives in src/cli-entry.ts.
5
5
  */
6
- export const VERSION = '0.8.0';
6
+ import { createRequire } from 'module';
7
+ const require = createRequire(import.meta.url);
8
+ const pkg = require('../package.json');
9
+ export const VERSION = pkg.version;
7
10
  // Export public API
8
- export { resolveSquad, resolveGlobalSquadPath, ensureSquadPath } from './resolution.js';
11
+ export { resolveSquad, resolveGlobalSquadPath, ensureSquadPath, loadDirConfig, isConsultMode } from './resolution.js';
9
12
  export * from './config/index.js';
10
13
  export * from './agents/onboarding.js';
11
14
  export * from './casting/index.js';
12
15
  export * from './skills/index.js';
13
16
  export { selectResponseTier, getTier } from './coordinator/response-tiers.js';
14
17
  export { loadConfig, loadConfigSync } from './runtime/config.js';
18
+ export { MODELS, TIMEOUTS, AGENT_ROLES } from './runtime/constants.js';
15
19
  export * from './runtime/streaming.js';
16
20
  export * from './runtime/cost-tracker.js';
17
21
  export * from './runtime/telemetry.js';
18
22
  export * from './runtime/offline.js';
19
23
  export * from './runtime/i18n.js';
20
24
  export * from './runtime/benchmarks.js';
25
+ export * from './runtime/otel-init.js';
26
+ export * from './runtime/otel-metrics.js';
27
+ export { getMeter, getTracer } from './runtime/otel.js';
28
+ export { safeTimestamp } from './utils/safe-timestamp.js';
29
+ export { EventBus as RuntimeEventBus } from './runtime/event-bus.js';
21
30
  export * from './marketplace/index.js';
22
31
  export * from './build/index.js';
23
32
  export * from './sharing/index.js';
33
+ export * from './upstream/index.js';
34
+ export * from './remote/index.js';
35
+ export * from './streams/index.js';
36
+ // Builder functions (SDK-First Squad Mode)
37
+ export { defineTeam, defineAgent, defineRouting, defineCeremony, defineHooks, defineCasting, defineTelemetry, defineDefaults, defineSkill, defineSquad, BuilderValidationError, } from './builders/index.js';
24
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxF,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEjE,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAExC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC;AAE3C,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEtH,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEvE,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAErE,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,2CAA2C;AAC3C,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Multi-squad resolution, configuration, and migration.
3
+ *
4
+ * Supports multiple personal squads via a global config directory:
5
+ * - Windows: %APPDATA%/squad/
6
+ * - macOS: ~/Library/Application Support/squad/
7
+ * - Linux: $XDG_CONFIG_HOME/squad/ (default ~/.config/squad/)
8
+ *
9
+ * Each squad is registered in squads.json and has its own directory
10
+ * under squads/{name}/ in the global config root.
11
+ *
12
+ * Resolution chain for resolveSquadPath():
13
+ * explicit name → SQUAD_NAME env var → active in squads.json → "default" → legacy fallback
14
+ *
15
+ * @module multi-squad
16
+ */
17
+ /** A single squad entry in squads.json. */
18
+ export interface SquadEntry {
19
+ /** Human-readable squad name (kebab-case recommended). */
20
+ name: string;
21
+ /** Absolute path to the squad's .squad/ state directory. */
22
+ path: string;
23
+ /** ISO-8601 timestamp when this squad was created. */
24
+ created_at: string;
25
+ }
26
+ /** Schema for the global squads.json config file. */
27
+ export interface MultiSquadConfig {
28
+ /** All registered squads. */
29
+ squads: SquadEntry[];
30
+ /** Name of the currently active squad. */
31
+ active: string;
32
+ }
33
+ /** Information returned by listSquads(). */
34
+ export interface SquadInfo {
35
+ name: string;
36
+ path: string;
37
+ active: boolean;
38
+ }
39
+ /**
40
+ * Returns the platform-appropriate global config directory for squads.
41
+ * Delegates to resolveGlobalSquadPath() which handles Windows/macOS/Linux.
42
+ */
43
+ export declare function getSquadRoot(): string;
44
+ /**
45
+ * Resolve the filesystem path for a named squad's state directory.
46
+ *
47
+ * Resolution chain:
48
+ * 1. Explicit `name` parameter
49
+ * 2. SQUAD_NAME environment variable
50
+ * 3. `active` field in squads.json
51
+ * 4. "default"
52
+ * 5. Legacy ~/.squad fallback (if no squads.json exists)
53
+ *
54
+ * Triggers auto-migration on first call if a legacy layout is detected.
55
+ */
56
+ export declare function resolveSquadPath(name?: string): string;
57
+ /**
58
+ * List all registered squads with their active status.
59
+ */
60
+ export declare function listSquads(): SquadInfo[];
61
+ /**
62
+ * Create a new squad directory and register it in squads.json.
63
+ * Returns the absolute path to the new squad's state directory.
64
+ *
65
+ * @throws If a squad with the given name already exists.
66
+ */
67
+ export declare function createSquad(name: string): string;
68
+ /**
69
+ * Delete a squad by name. Removes its directory and unregisters it.
70
+ *
71
+ * @throws If the squad is the currently active one, or if it doesn't exist.
72
+ */
73
+ export declare function deleteSquad(name: string): void;
74
+ /**
75
+ * Set the active squad in squads.json.
76
+ *
77
+ * @throws If the named squad is not registered.
78
+ */
79
+ export declare function switchSquad(name: string): void;
80
+ /**
81
+ * Detect legacy ~/.squad layout and register it as "default" in squads.json.
82
+ *
83
+ * Migration is **non-destructive**: files are NOT moved. The existing path
84
+ * is simply registered in squads.json so the new resolution chain finds it.
85
+ *
86
+ * @returns `true` if migration was performed, `false` if not needed.
87
+ */
88
+ export declare function migrateIfNeeded(): boolean;
89
+ //# sourceMappingURL=multi-squad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-squad.d.ts","sourceRoot":"","sources":["../src/multi-squad.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AA8DD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAuBtD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,SAAS,EAAE,CAUxC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyBhD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAwB9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAc9C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAoCzC"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Multi-squad resolution, configuration, and migration.
3
+ *
4
+ * Supports multiple personal squads via a global config directory:
5
+ * - Windows: %APPDATA%/squad/
6
+ * - macOS: ~/Library/Application Support/squad/
7
+ * - Linux: $XDG_CONFIG_HOME/squad/ (default ~/.config/squad/)
8
+ *
9
+ * Each squad is registered in squads.json and has its own directory
10
+ * under squads/{name}/ in the global config root.
11
+ *
12
+ * Resolution chain for resolveSquadPath():
13
+ * explicit name → SQUAD_NAME env var → active in squads.json → "default" → legacy fallback
14
+ *
15
+ * @module multi-squad
16
+ */
17
+ import fs from 'node:fs';
18
+ import path from 'node:path';
19
+ import { resolveGlobalSquadPath } from './resolution.js';
20
+ // ============================================================================
21
+ // Constants
22
+ // ============================================================================
23
+ const SQUADS_JSON = 'squads.json';
24
+ const SQUADS_DIR = 'squads';
25
+ const DEFAULT_SQUAD = 'default';
26
+ const LEGACY_DIR = '.squad';
27
+ // ============================================================================
28
+ // Internal helpers
29
+ // ============================================================================
30
+ /** Path to squads.json inside the global config root. */
31
+ function squadsJsonPath() {
32
+ return path.join(resolveGlobalSquadPath(), SQUADS_JSON);
33
+ }
34
+ /** Read and parse squads.json, returning null if missing or malformed. */
35
+ function loadSquadsConfig() {
36
+ const configPath = squadsJsonPath();
37
+ if (!fs.existsSync(configPath)) {
38
+ return null;
39
+ }
40
+ try {
41
+ const raw = fs.readFileSync(configPath, 'utf-8');
42
+ const parsed = JSON.parse(raw);
43
+ if (parsed !== null &&
44
+ typeof parsed === 'object' &&
45
+ 'squads' in parsed &&
46
+ Array.isArray(parsed.squads) &&
47
+ 'active' in parsed &&
48
+ typeof parsed.active === 'string') {
49
+ return parsed;
50
+ }
51
+ return null;
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ /** Write squads.json atomically. */
58
+ function saveSquadsConfig(config) {
59
+ const configPath = squadsJsonPath();
60
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
61
+ }
62
+ /** Validate a squad name: non-empty, no slashes, no dots-only. */
63
+ function validateName(name) {
64
+ if (!name || /[/\\]/.test(name) || /^\.+$/.test(name)) {
65
+ throw new Error(`Invalid squad name: "${name}". Names must be non-empty and cannot contain slashes.`);
66
+ }
67
+ }
68
+ // ============================================================================
69
+ // Public API
70
+ // ============================================================================
71
+ /**
72
+ * Returns the platform-appropriate global config directory for squads.
73
+ * Delegates to resolveGlobalSquadPath() which handles Windows/macOS/Linux.
74
+ */
75
+ export function getSquadRoot() {
76
+ return resolveGlobalSquadPath();
77
+ }
78
+ /**
79
+ * Resolve the filesystem path for a named squad's state directory.
80
+ *
81
+ * Resolution chain:
82
+ * 1. Explicit `name` parameter
83
+ * 2. SQUAD_NAME environment variable
84
+ * 3. `active` field in squads.json
85
+ * 4. "default"
86
+ * 5. Legacy ~/.squad fallback (if no squads.json exists)
87
+ *
88
+ * Triggers auto-migration on first call if a legacy layout is detected.
89
+ */
90
+ export function resolveSquadPath(name) {
91
+ // Auto-migrate legacy layout if needed
92
+ migrateIfNeeded();
93
+ const resolved = name ??
94
+ process.env['SQUAD_NAME'] ??
95
+ loadSquadsConfig()?.active ??
96
+ DEFAULT_SQUAD;
97
+ const config = loadSquadsConfig();
98
+ // Look up registered path
99
+ if (config) {
100
+ const entry = config.squads.find((s) => s.name === resolved);
101
+ if (entry) {
102
+ return entry.path;
103
+ }
104
+ }
105
+ // Fallback: derive path inside global config dir
106
+ const root = getSquadRoot();
107
+ return path.join(root, SQUADS_DIR, resolved);
108
+ }
109
+ /**
110
+ * List all registered squads with their active status.
111
+ */
112
+ export function listSquads() {
113
+ const config = loadSquadsConfig();
114
+ if (!config) {
115
+ return [];
116
+ }
117
+ return config.squads.map((s) => ({
118
+ name: s.name,
119
+ path: s.path,
120
+ active: s.name === config.active,
121
+ }));
122
+ }
123
+ /**
124
+ * Create a new squad directory and register it in squads.json.
125
+ * Returns the absolute path to the new squad's state directory.
126
+ *
127
+ * @throws If a squad with the given name already exists.
128
+ */
129
+ export function createSquad(name) {
130
+ validateName(name);
131
+ // Ensure squads.json exists (migrate or bootstrap)
132
+ migrateIfNeeded();
133
+ let config = loadSquadsConfig();
134
+ if (!config) {
135
+ config = { squads: [], active: DEFAULT_SQUAD };
136
+ }
137
+ if (config.squads.some((s) => s.name === name)) {
138
+ throw new Error(`Squad "${name}" already exists.`);
139
+ }
140
+ const squadDir = path.join(getSquadRoot(), SQUADS_DIR, name);
141
+ fs.mkdirSync(squadDir, { recursive: true });
142
+ config.squads.push({
143
+ name,
144
+ path: squadDir,
145
+ created_at: new Date().toISOString(),
146
+ });
147
+ saveSquadsConfig(config);
148
+ return squadDir;
149
+ }
150
+ /**
151
+ * Delete a squad by name. Removes its directory and unregisters it.
152
+ *
153
+ * @throws If the squad is the currently active one, or if it doesn't exist.
154
+ */
155
+ export function deleteSquad(name) {
156
+ validateName(name);
157
+ const config = loadSquadsConfig();
158
+ if (!config) {
159
+ throw new Error(`Squad "${name}" not found.`);
160
+ }
161
+ if (config.active === name) {
162
+ throw new Error(`Cannot delete the active squad "${name}". Switch to another squad first.`);
163
+ }
164
+ const idx = config.squads.findIndex((s) => s.name === name);
165
+ if (idx === -1) {
166
+ throw new Error(`Squad "${name}" not found.`);
167
+ }
168
+ const entry = config.squads[idx];
169
+ if (entry && fs.existsSync(entry.path)) {
170
+ fs.rmSync(entry.path, { recursive: true, force: true });
171
+ }
172
+ config.squads.splice(idx, 1);
173
+ saveSquadsConfig(config);
174
+ }
175
+ /**
176
+ * Set the active squad in squads.json.
177
+ *
178
+ * @throws If the named squad is not registered.
179
+ */
180
+ export function switchSquad(name) {
181
+ validateName(name);
182
+ const config = loadSquadsConfig();
183
+ if (!config) {
184
+ throw new Error(`No squads configured. Cannot switch to "${name}".`);
185
+ }
186
+ if (!config.squads.some((s) => s.name === name)) {
187
+ throw new Error(`Squad "${name}" not found. Register it first with createSquad().`);
188
+ }
189
+ config.active = name;
190
+ saveSquadsConfig(config);
191
+ }
192
+ /**
193
+ * Detect legacy ~/.squad layout and register it as "default" in squads.json.
194
+ *
195
+ * Migration is **non-destructive**: files are NOT moved. The existing path
196
+ * is simply registered in squads.json so the new resolution chain finds it.
197
+ *
198
+ * @returns `true` if migration was performed, `false` if not needed.
199
+ */
200
+ export function migrateIfNeeded() {
201
+ const root = getSquadRoot();
202
+ const configPath = path.join(root, SQUADS_JSON);
203
+ // If squads.json already exists, no migration needed
204
+ if (fs.existsSync(configPath)) {
205
+ return false;
206
+ }
207
+ // Check for legacy ~/.squad directory
208
+ const home = process.env['HOME'] ?? process.env['USERPROFILE'] ?? '';
209
+ const legacyDir = path.join(home, LEGACY_DIR);
210
+ if (!home || !fs.existsSync(legacyDir) || !fs.statSync(legacyDir).isDirectory()) {
211
+ // No legacy layout — bootstrap empty config
212
+ const config = {
213
+ squads: [],
214
+ active: DEFAULT_SQUAD,
215
+ };
216
+ saveSquadsConfig(config);
217
+ return false;
218
+ }
219
+ // Legacy layout detected — register it as "default" without moving files
220
+ const config = {
221
+ squads: [
222
+ {
223
+ name: DEFAULT_SQUAD,
224
+ path: legacyDir,
225
+ created_at: new Date().toISOString(),
226
+ },
227
+ ],
228
+ active: DEFAULT_SQUAD,
229
+ };
230
+ saveSquadsConfig(config);
231
+ return true;
232
+ }
233
+ //# sourceMappingURL=multi-squad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-squad.js","sourceRoot":"","sources":["../src/multi-squad.ts"],"names":[],"mappings":"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"}