@intrect/openswarm 0.5.0 → 0.8.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 (226) hide show
  1. package/LICENSE +21 -674
  2. package/README.md +97 -35
  3. package/config.example.yaml +8 -2
  4. package/dist/adapters/agenticLoop.d.ts +15 -1
  5. package/dist/adapters/agenticLoop.d.ts.map +1 -1
  6. package/dist/adapters/agenticLoop.js +62 -4
  7. package/dist/adapters/agenticLoop.js.map +1 -1
  8. package/dist/adapters/chatStream.d.ts +55 -0
  9. package/dist/adapters/chatStream.d.ts.map +1 -0
  10. package/dist/adapters/chatStream.js +116 -0
  11. package/dist/adapters/chatStream.js.map +1 -0
  12. package/dist/adapters/codex.d.ts +6 -0
  13. package/dist/adapters/codex.d.ts.map +1 -1
  14. package/dist/adapters/codex.js +27 -1
  15. package/dist/adapters/codex.js.map +1 -1
  16. package/dist/adapters/codexModels.d.ts +20 -0
  17. package/dist/adapters/codexModels.d.ts.map +1 -0
  18. package/dist/adapters/codexModels.js +195 -0
  19. package/dist/adapters/codexModels.js.map +1 -0
  20. package/dist/adapters/codexResponses.d.ts +97 -0
  21. package/dist/adapters/codexResponses.d.ts.map +1 -0
  22. package/dist/adapters/codexResponses.js +302 -0
  23. package/dist/adapters/codexResponses.js.map +1 -0
  24. package/dist/adapters/gpt.d.ts.map +1 -1
  25. package/dist/adapters/gpt.js +17 -131
  26. package/dist/adapters/gpt.js.map +1 -1
  27. package/dist/adapters/index.d.ts +7 -0
  28. package/dist/adapters/index.d.ts.map +1 -1
  29. package/dist/adapters/index.js +11 -0
  30. package/dist/adapters/index.js.map +1 -1
  31. package/dist/adapters/local.d.ts.map +1 -1
  32. package/dist/adapters/local.js +17 -125
  33. package/dist/adapters/local.js.map +1 -1
  34. package/dist/adapters/openrouter.d.ts +5 -24
  35. package/dist/adapters/openrouter.d.ts.map +1 -1
  36. package/dist/adapters/openrouter.js +20 -121
  37. package/dist/adapters/openrouter.js.map +1 -1
  38. package/dist/adapters/resultParsing.d.ts +6 -0
  39. package/dist/adapters/resultParsing.d.ts.map +1 -0
  40. package/dist/adapters/resultParsing.js +139 -0
  41. package/dist/adapters/resultParsing.js.map +1 -0
  42. package/dist/adapters/tools.d.ts +0 -6
  43. package/dist/adapters/tools.d.ts.map +1 -1
  44. package/dist/adapters/tools.js +57 -3
  45. package/dist/adapters/tools.js.map +1 -1
  46. package/dist/adapters/types.d.ts +21 -1
  47. package/dist/adapters/types.d.ts.map +1 -1
  48. package/dist/adapters/webTools.d.ts +9 -0
  49. package/dist/adapters/webTools.d.ts.map +1 -0
  50. package/dist/adapters/webTools.js +195 -0
  51. package/dist/adapters/webTools.js.map +1 -0
  52. package/dist/agents/pairPipeline.d.ts +26 -1
  53. package/dist/agents/pairPipeline.d.ts.map +1 -1
  54. package/dist/agents/pairPipeline.js +82 -14
  55. package/dist/agents/pairPipeline.js.map +1 -1
  56. package/dist/agents/reflection.d.ts +56 -0
  57. package/dist/agents/reflection.d.ts.map +1 -0
  58. package/dist/agents/reflection.js +120 -0
  59. package/dist/agents/reflection.js.map +1 -0
  60. package/dist/agents/worker.d.ts +2 -0
  61. package/dist/agents/worker.d.ts.map +1 -1
  62. package/dist/agents/worker.js +1 -0
  63. package/dist/agents/worker.js.map +1 -1
  64. package/dist/auth/index.d.ts +1 -0
  65. package/dist/auth/index.d.ts.map +1 -1
  66. package/dist/auth/index.js +1 -0
  67. package/dist/auth/index.js.map +1 -1
  68. package/dist/auth/linearPkce.d.ts +22 -0
  69. package/dist/auth/linearPkce.d.ts.map +1 -0
  70. package/dist/auth/linearPkce.js +208 -0
  71. package/dist/auth/linearPkce.js.map +1 -0
  72. package/dist/auth/oauthPkce.d.ts.map +1 -1
  73. package/dist/auth/oauthPkce.js +18 -5
  74. package/dist/auth/oauthPkce.js.map +1 -1
  75. package/dist/auth/oauthStore.d.ts.map +1 -1
  76. package/dist/auth/oauthStore.js +10 -2
  77. package/dist/auth/oauthStore.js.map +1 -1
  78. package/dist/automation/autonomousRunner.d.ts +6 -6
  79. package/dist/automation/autonomousRunner.d.ts.map +1 -1
  80. package/dist/automation/autonomousRunner.js +15 -13
  81. package/dist/automation/autonomousRunner.js.map +1 -1
  82. package/dist/automation/backlogGrooming.d.ts +21 -0
  83. package/dist/automation/backlogGrooming.d.ts.map +1 -0
  84. package/dist/automation/backlogGrooming.js +80 -0
  85. package/dist/automation/backlogGrooming.js.map +1 -0
  86. package/dist/automation/localCI.d.ts +24 -0
  87. package/dist/automation/localCI.d.ts.map +1 -0
  88. package/dist/automation/localCI.js +84 -0
  89. package/dist/automation/localCI.js.map +1 -0
  90. package/dist/automation/runnerExecution.d.ts +33 -7
  91. package/dist/automation/runnerExecution.d.ts.map +1 -1
  92. package/dist/automation/runnerExecution.js +202 -154
  93. package/dist/automation/runnerExecution.js.map +1 -1
  94. package/dist/automation/runnerTypes.d.ts +5 -1
  95. package/dist/automation/runnerTypes.d.ts.map +1 -1
  96. package/dist/automation/taskSource.d.ts +101 -0
  97. package/dist/automation/taskSource.d.ts.map +1 -0
  98. package/dist/automation/taskSource.js +136 -0
  99. package/dist/automation/taskSource.js.map +1 -0
  100. package/dist/automation/workerAuditLog.d.ts +29 -0
  101. package/dist/automation/workerAuditLog.d.ts.map +1 -0
  102. package/dist/automation/workerAuditLog.js +82 -0
  103. package/dist/automation/workerAuditLog.js.map +1 -0
  104. package/dist/cli/authHandler.d.ts +6 -0
  105. package/dist/cli/authHandler.d.ts.map +1 -1
  106. package/dist/cli/authHandler.js +37 -2
  107. package/dist/cli/authHandler.js.map +1 -1
  108. package/dist/cli/daemon.d.ts +5 -0
  109. package/dist/cli/daemon.d.ts.map +1 -1
  110. package/dist/cli/daemon.js +13 -0
  111. package/dist/cli/daemon.js.map +1 -1
  112. package/dist/cli/doctorHandler.d.ts +2 -0
  113. package/dist/cli/doctorHandler.d.ts.map +1 -0
  114. package/dist/cli/doctorHandler.js +114 -0
  115. package/dist/cli/doctorHandler.js.map +1 -0
  116. package/dist/cli/initWizard.d.ts +13 -0
  117. package/dist/cli/initWizard.d.ts.map +1 -0
  118. package/dist/cli/initWizard.js +334 -0
  119. package/dist/cli/initWizard.js.map +1 -0
  120. package/dist/cli.js +110 -37
  121. package/dist/cli.js.map +1 -1
  122. package/dist/core/config.d.ts +50 -2
  123. package/dist/core/config.d.ts.map +1 -1
  124. package/dist/core/config.js +69 -10
  125. package/dist/core/config.js.map +1 -1
  126. package/dist/core/envFile.d.ts +6 -0
  127. package/dist/core/envFile.d.ts.map +1 -1
  128. package/dist/core/envFile.js +39 -1
  129. package/dist/core/envFile.js.map +1 -1
  130. package/dist/core/providerOverride.d.ts +6 -0
  131. package/dist/core/providerOverride.d.ts.map +1 -0
  132. package/dist/core/providerOverride.js +37 -0
  133. package/dist/core/providerOverride.js.map +1 -0
  134. package/dist/core/service.d.ts.map +1 -1
  135. package/dist/core/service.js +41 -18
  136. package/dist/core/service.js.map +1 -1
  137. package/dist/core/types.d.ts +16 -2
  138. package/dist/core/types.d.ts.map +1 -1
  139. package/dist/discord/discordHandlers.d.ts.map +1 -1
  140. package/dist/discord/discordHandlers.js +15 -12
  141. package/dist/discord/discordHandlers.js.map +1 -1
  142. package/dist/index.js +12 -1
  143. package/dist/index.js.map +1 -1
  144. package/dist/issues/sqliteStore.d.ts.map +1 -1
  145. package/dist/issues/sqliteStore.js +7 -2
  146. package/dist/issues/sqliteStore.js.map +1 -1
  147. package/dist/knowledge/scanner.d.ts.map +1 -1
  148. package/dist/knowledge/scanner.js +5 -0
  149. package/dist/knowledge/scanner.js.map +1 -1
  150. package/dist/linear/linear.d.ts +45 -2
  151. package/dist/linear/linear.d.ts.map +1 -1
  152. package/dist/linear/linear.js +154 -3
  153. package/dist/linear/linear.js.map +1 -1
  154. package/dist/locale/prompts/en.d.ts.map +1 -1
  155. package/dist/locale/prompts/en.js +14 -2
  156. package/dist/locale/prompts/en.js.map +1 -1
  157. package/dist/locale/prompts/ko.d.ts.map +1 -1
  158. package/dist/locale/prompts/ko.js +14 -2
  159. package/dist/locale/prompts/ko.js.map +1 -1
  160. package/dist/mcp/mcpClient.d.ts +27 -0
  161. package/dist/mcp/mcpClient.d.ts.map +1 -0
  162. package/dist/mcp/mcpClient.js +145 -0
  163. package/dist/mcp/mcpClient.js.map +1 -0
  164. package/dist/memory/memoryCore.d.ts.map +1 -1
  165. package/dist/memory/memoryCore.js +8 -2
  166. package/dist/memory/memoryCore.js.map +1 -1
  167. package/dist/notify/notifier.d.ts +26 -0
  168. package/dist/notify/notifier.d.ts.map +1 -0
  169. package/dist/notify/notifier.js +131 -0
  170. package/dist/notify/notifier.js.map +1 -0
  171. package/dist/orchestration/conflictDetector.d.ts +5 -2
  172. package/dist/orchestration/conflictDetector.d.ts.map +1 -1
  173. package/dist/orchestration/conflictDetector.js +35 -6
  174. package/dist/orchestration/conflictDetector.js.map +1 -1
  175. package/dist/orchestration/decisionEngine.d.ts +20 -0
  176. package/dist/orchestration/decisionEngine.d.ts.map +1 -1
  177. package/dist/orchestration/decisionEngine.js +45 -0
  178. package/dist/orchestration/decisionEngine.js.map +1 -1
  179. package/dist/support/banner.d.ts +7 -0
  180. package/dist/support/banner.d.ts.map +1 -0
  181. package/dist/support/banner.js +32 -0
  182. package/dist/support/banner.js.map +1 -0
  183. package/dist/support/chat.js +28 -5
  184. package/dist/support/chat.js.map +1 -1
  185. package/dist/support/chatBackend.d.ts +6 -0
  186. package/dist/support/chatBackend.d.ts.map +1 -1
  187. package/dist/support/chatBackend.js +68 -0
  188. package/dist/support/chatBackend.js.map +1 -1
  189. package/dist/support/chatTui.d.ts.map +1 -1
  190. package/dist/support/chatTui.js +202 -9
  191. package/dist/support/chatTui.js.map +1 -1
  192. package/dist/support/colors.d.ts +15 -0
  193. package/dist/support/colors.d.ts.map +1 -0
  194. package/dist/support/colors.js +23 -0
  195. package/dist/support/colors.js.map +1 -0
  196. package/dist/support/planCommand.d.ts +17 -0
  197. package/dist/support/planCommand.d.ts.map +1 -0
  198. package/dist/support/planCommand.js +114 -0
  199. package/dist/support/planCommand.js.map +1 -0
  200. package/dist/support/planner.d.ts +9 -2
  201. package/dist/support/planner.d.ts.map +1 -1
  202. package/dist/support/planner.js +43 -111
  203. package/dist/support/planner.js.map +1 -1
  204. package/dist/support/promptHelper.d.ts +24 -0
  205. package/dist/support/promptHelper.d.ts.map +1 -0
  206. package/dist/support/promptHelper.js +94 -0
  207. package/dist/support/promptHelper.js.map +1 -0
  208. package/dist/support/rateLimiter.d.ts.map +1 -1
  209. package/dist/support/rateLimiter.js +6 -0
  210. package/dist/support/rateLimiter.js.map +1 -1
  211. package/dist/support/repoMetadata.d.ts +7 -0
  212. package/dist/support/repoMetadata.d.ts.map +1 -1
  213. package/dist/support/repoMetadata.js +13 -1
  214. package/dist/support/repoMetadata.js.map +1 -1
  215. package/dist/support/web.d.ts.map +1 -1
  216. package/dist/support/web.js +143 -65
  217. package/dist/support/web.js.map +1 -1
  218. package/dist/support/worktreeManager.d.ts +6 -1
  219. package/dist/support/worktreeManager.d.ts.map +1 -1
  220. package/dist/support/worktreeManager.js +23 -1
  221. package/dist/support/worktreeManager.js.map +1 -1
  222. package/dist/taskState/store.d.ts +1 -0
  223. package/dist/taskState/store.d.ts.map +1 -1
  224. package/dist/taskState/store.js +22 -1
  225. package/dist/taskState/store.js.map +1 -1
  226. package/package.json +4 -2
@@ -0,0 +1,114 @@
1
+ // ============================================
2
+ // OpenSwarm - Shared `/plan` cockpit logic
3
+ // ============================================
4
+ //
5
+ // The TUI's planner cockpit: turn a goal into a previewed decomposition, gate on
6
+ // human approval, then dispatch to the daemon loop. Shared by the readline
7
+ // (chat.ts) and blessed (chatTui.ts) front-ends — each supplies its own I/O via
8
+ // the `PlanIO` interface, so the planning/approval/dispatch logic lives in one
9
+ // place (in keeping with the adapter-parser dedup, INT-1441).
10
+ //
11
+ // The Planner itself (runPlanner) and the dispatch engine (POST /api/plan/dispatch
12
+ // → createSubIssuesWithDependencies / exec pipeline) already exist; this only adds
13
+ // the human-in-the-loop approval surface.
14
+ import { runPlanner } from './planner.js';
15
+ const DAEMON_BASE = 'http://127.0.0.1:3847';
16
+ /**
17
+ * Run the `/plan <goal>` flow: plan → render → approve/edit → dispatch.
18
+ */
19
+ export async function runPlanCommand(goal, io, opts = {}) {
20
+ const trimmed = goal.trim();
21
+ if (!trimmed) {
22
+ io.print('Usage: /plan <goal>');
23
+ return;
24
+ }
25
+ const projectPath = opts.projectPath ?? process.cwd();
26
+ io.print(`🧭 Planning: ${trimmed}`);
27
+ io.print(' (running the Planner — may take up to ~2 min; requires the claude CLI)');
28
+ const result = await runPlanner({
29
+ taskTitle: trimmed,
30
+ taskDescription: trimmed,
31
+ projectPath,
32
+ model: opts.model,
33
+ });
34
+ if (!result.success) {
35
+ io.print(`✖ Planner failed: ${result.error ?? 'unknown error'}`);
36
+ return;
37
+ }
38
+ // No decomposition → dispatch the goal itself as a single task.
39
+ if (!result.needsDecomposition || result.subTasks.length === 0) {
40
+ io.print(`• No decomposition needed — single task (~${result.totalEstimatedMinutes || '?'} min).`);
41
+ const decision = await io.confirm('Dispatch this goal as one task? [y/n]');
42
+ if (decision !== 'yes') {
43
+ io.print('Cancelled.');
44
+ return;
45
+ }
46
+ await dispatch(trimmed, [], projectPath, io);
47
+ return;
48
+ }
49
+ // Render + approval loop. 'edit' drops sub-tasks by number, then re-renders.
50
+ let subTasks = [...result.subTasks];
51
+ for (;;) {
52
+ renderPlan(trimmed, subTasks, io);
53
+ const decision = await io.confirm('Approve & dispatch this plan? [y/n/edit]');
54
+ if (decision === 'no') {
55
+ io.print('Cancelled.');
56
+ return;
57
+ }
58
+ if (decision === 'edit') {
59
+ if (!io.promptText) {
60
+ io.print('Editing is not available on this surface — cancelling.');
61
+ return;
62
+ }
63
+ const raw = await io.promptText('Sub-task numbers to DROP (comma-separated), or blank to keep all:');
64
+ const drop = new Set(raw.split(',').map((s) => parseInt(s.trim(), 10)).filter((n) => !Number.isNaN(n)));
65
+ if (drop.size > 0) {
66
+ subTasks = subTasks.filter((_, i) => !drop.has(i + 1));
67
+ if (subTasks.length === 0) {
68
+ io.print('All sub-tasks dropped — cancelling.');
69
+ return;
70
+ }
71
+ }
72
+ continue;
73
+ }
74
+ // 'yes'
75
+ await dispatch(trimmed, subTasks, projectPath, io);
76
+ return;
77
+ }
78
+ }
79
+ function renderPlan(goal, subTasks, io) {
80
+ const total = subTasks.reduce((sum, t) => sum + (t.estimatedMinutes || 0), 0);
81
+ io.print('');
82
+ io.print(`📋 Plan for: ${goal}`);
83
+ io.print(` ${subTasks.length} sub-task(s), ~${total} min total`);
84
+ subTasks.forEach((st, i) => {
85
+ const deps = st.dependencies?.length ? ` ⮑ after: ${st.dependencies.join(', ')}` : '';
86
+ io.print(` ${i + 1}. [P${st.priority} · ${st.estimatedMinutes}m] ${st.title}${deps}`);
87
+ });
88
+ io.print('');
89
+ }
90
+ async function dispatch(goal, subTasks, projectPath, io) {
91
+ try {
92
+ const res = await fetch(`${DAEMON_BASE}/api/plan/dispatch`, {
93
+ method: 'POST',
94
+ headers: { 'Content-Type': 'application/json' },
95
+ body: JSON.stringify({ goal, projectPath, subTasks }),
96
+ });
97
+ if (!res.ok) {
98
+ const err = (await res.json().catch(() => ({ error: `HTTP ${res.status}` })));
99
+ io.print(`✖ Dispatch failed: ${err.error ?? res.status}`);
100
+ return;
101
+ }
102
+ const data = (await res.json());
103
+ if (data.mode === 'linear') {
104
+ io.print(`✅ Dispatched to Linear (${data.parentIssue?.identifier ?? 'parent issue'}). The daemon will pick it up — watch the Tasks tab.`);
105
+ }
106
+ else {
107
+ io.print(`✅ Dispatched ${data.taskIds?.length ?? 0} task(s) to the exec pipeline — watch the Tasks tab.`);
108
+ }
109
+ }
110
+ catch {
111
+ io.print('✖ Could not reach the daemon at :3847. Start it with `openswarm start`, then retry.');
112
+ }
113
+ }
114
+ //# sourceMappingURL=planCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planCommand.js","sourceRoot":"","sources":["../../src/support/planCommand.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { TaskItem } from '../orchestration/decisionEngine.js';
2
- import { type CostInfo } from './costTracker.js';
2
+ import type { CostInfo } from './costTracker.js';
3
3
  import type { ImpactAnalysis } from '../knowledge/types.js';
4
+ import type { AdapterName } from '../adapters/types.js';
4
5
  export interface PlannerOptions {
5
6
  taskTitle: string;
6
7
  taskDescription: string;
@@ -8,6 +9,8 @@ export interface PlannerOptions {
8
9
  projectName?: string;
9
10
  timeoutMs?: number;
10
11
  model?: string;
12
+ adapterName?: AdapterName;
13
+ maxTurns?: number;
11
14
  targetMinutes?: number;
12
15
  onLog?: (line: string) => void;
13
16
  impactAnalysis?: ImpactAnalysis;
@@ -26,6 +29,7 @@ export interface SubTask {
26
29
  estimatedMinutes: number;
27
30
  priority: number;
28
31
  dependencies?: string[];
32
+ fileScope?: string[];
29
33
  }
30
34
  export interface PlannerResult {
31
35
  success: boolean;
@@ -38,7 +42,10 @@ export interface PlannerResult {
38
42
  costInfo?: CostInfo;
39
43
  }
40
44
  /**
41
- * Run Planner agent
45
+ * Run the Planner through the OpenSwarm agentic loop (the same path as the
46
+ * Worker), read-only and multi-turn. Replaces the former `claude -p --max-turns 1`
47
+ * shell-out — removes the claude-binary dependency and lets the planner read the
48
+ * code before decomposing. The `PlannerResult` contract is unchanged.
42
49
  */
43
50
  export declare function runPlanner(options: PlannerOptions): Promise<PlannerResult>;
44
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/support/planner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,KAAK,QAAQ,EAAyC,MAAM,kBAAkB,CAAC;AAExF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,sCAAsC;IACtC,aAAa,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAiBD;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA6BhF;AA6RD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAWrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAwB3D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,GAAE,MAAW,EAAE,cAAc,GAAE,OAAe,GAAG,OAAO,CAOpH;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA6BjE"}
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/support/planner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,sCAAsC;IACtC,aAAa,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AA6BD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA4ChF;AA8KD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAWrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAwB3D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,GAAE,MAAW,EAAE,cAAc,GAAE,OAAe,GAAG,OAAO,CAOpH;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA6BjE"}
@@ -2,11 +2,9 @@
2
2
  // OpenSwarm - Planner Agent
3
3
  // Decompose large issues into 30-min sub-tasks
4
4
  // ============================================
5
- import { spawn } from 'node:child_process';
6
- import { writeFileSync, unlinkSync } from 'node:fs';
7
- import { extractCostFromStreamJson, formatCost } from './costTracker.js';
8
5
  import { t, getPrompts } from '../locale/index.js';
9
- import { buildWorkerEnv } from '../adapters/envPath.js';
6
+ import { getAdapter, spawnCli } from '../adapters/index.js';
7
+ import { expandPath } from '../core/config.js';
10
8
  // Prompts
11
9
  function buildPlannerPrompt(options) {
12
10
  return getPrompts().buildPlannerPrompt({
@@ -20,20 +18,51 @@ function buildPlannerPrompt(options) {
20
18
  }
21
19
  // Planner Execution
22
20
  /**
23
- * Run Planner agent
21
+ * Read-only guard appended to the planner prompt. The planner runs through the
22
+ * same agentic loop as the worker (no built-in read-only mode), so the prompt
23
+ * keeps it from mutating the repo — it should explore (read_file/search_files)
24
+ * and emit the JSON plan, nothing else.
25
+ */
26
+ const READ_ONLY_GUARD = '\n\n---\n' +
27
+ 'IMPORTANT — you are PLANNING ONLY. Do NOT edit, write, or create any files. ' +
28
+ 'Use read_file and search_files to understand the codebase first, then output your ' +
29
+ 'decomposition as the required JSON (in a ```json block) as your final message.';
30
+ /**
31
+ * Run the Planner through the OpenSwarm agentic loop (the same path as the
32
+ * Worker), read-only and multi-turn. Replaces the former `claude -p --max-turns 1`
33
+ * shell-out — removes the claude-binary dependency and lets the planner read the
34
+ * code before decomposing. The `PlannerResult` contract is unchanged.
24
35
  */
25
36
  export async function runPlanner(options) {
26
- const prompt = buildPlannerPrompt(options);
37
+ const prompt = buildPlannerPrompt(options) + READ_ONLY_GUARD;
27
38
  try {
28
- const output = await runClaudeCli(prompt, options.timeoutMs ?? 120000, // 2 min timeout
29
- options.model, options.onLog);
30
- const costInfo = extractCostFromStreamJson(output);
31
- if (costInfo) {
32
- console.log(`[Planner] Cost: ${formatCost(costInfo)}`);
39
+ const adapter = getAdapter(options.adapterName);
40
+ const cwd = expandPath(options.projectPath);
41
+ // Drop Claude-CLI-style model ids (e.g. `claude-opus-4-7`) — they are not
42
+ // valid on the openrouter/local adapters; fall back to the adapter default.
43
+ // OpenRouter Claude ids carry an org prefix (`anthropic/claude-...`) and pass.
44
+ const model = options.model && !options.model.startsWith('claude-') ? options.model : undefined;
45
+ const raw = await spawnCli(adapter, {
46
+ prompt,
47
+ cwd,
48
+ timeoutMs: options.timeoutMs ?? 600_000,
49
+ model,
50
+ maxTurns: options.maxTurns ?? 15,
51
+ onLog: options.onLog ? (line) => options.onLog(humanizePlannerOutput(line)) : undefined,
52
+ systemPrompt: getPrompts().systemPrompt,
53
+ // Planner is a judgment role — keep reasoning ON (unlike the worker).
54
+ });
55
+ if (raw.exitCode !== 0 && !raw.stdout.trim()) {
56
+ return {
57
+ success: false,
58
+ originalIssue: options.taskTitle,
59
+ needsDecomposition: false,
60
+ subTasks: [],
61
+ totalEstimatedMinutes: 0,
62
+ error: raw.stderr.slice(0, 500) || `Planner adapter exited with code ${raw.exitCode}`,
63
+ };
33
64
  }
34
- const result = parsePlannerOutput(output, options.taskTitle);
35
- result.costInfo = costInfo;
36
- return result;
65
+ return parsePlannerOutput(raw.stdout, options.taskTitle);
37
66
  }
38
67
  catch (error) {
39
68
  return {
@@ -73,103 +102,6 @@ function humanizePlannerOutput(text) {
73
102
  return '';
74
103
  return trimmed;
75
104
  }
76
- /**
77
- * Run Claude CLI from /tmp to avoid project-specific MCP servers and hooks.
78
- * STONKS has session-start.sh + playwright/pykis/linear MCP servers that
79
- * cause >10min startup when claude runs from the project directory.
80
- */
81
- async function runClaudeCli(prompt, timeoutMs, model, onLog) {
82
- const tmpFile = `/tmp/planner-prompt-${Date.now()}.txt`;
83
- writeFileSync(tmpFile, prompt);
84
- const args = ['--output-format', 'stream-json', '--verbose', '--max-turns', '1'];
85
- if (model) {
86
- args.push('--model', model);
87
- }
88
- args.push('-p', prompt);
89
- return new Promise((resolve, reject) => {
90
- const proc = spawn('claude', args, {
91
- shell: false,
92
- cwd: '/tmp', // Neutral dir — no project .claude/ settings loaded
93
- env: buildWorkerEnv(process.env),
94
- stdio: ['ignore', 'pipe', 'pipe'],
95
- });
96
- let output = '';
97
- let stderrOutput = '';
98
- proc.stdout?.on('data', (chunk) => {
99
- const text = chunk.toString();
100
- output += text;
101
- if (onLog) {
102
- // Stream assistant text lines to dashboard
103
- for (const line of text.split('\n').filter((l) => l.trim())) {
104
- try {
105
- const event = JSON.parse(line);
106
- if (event.type === 'assistant' && event.message?.content) {
107
- for (const block of event.message.content) {
108
- if (block.type === 'text') {
109
- // Convert planner JSON result to human-readable summary
110
- const humanized = humanizePlannerOutput(block.text);
111
- onLog(humanized);
112
- }
113
- }
114
- }
115
- }
116
- catch {
117
- // Not a JSON line — skip raw stream noise (tool calls, etc)
118
- if (!line.startsWith('{') && !line.startsWith('[')) {
119
- onLog(line);
120
- }
121
- }
122
- }
123
- }
124
- });
125
- proc.stderr?.on('data', (chunk) => {
126
- const text = chunk.toString();
127
- stderrOutput += text;
128
- // Log stderr in real-time for debugging
129
- console.error('[Planner stderr]', text.slice(0, 500));
130
- });
131
- const timer = setTimeout(() => {
132
- proc.kill('SIGTERM');
133
- reject(new Error(`Planner timeout after ${timeoutMs}ms`));
134
- }, timeoutMs);
135
- proc.on('close', (code) => {
136
- clearTimeout(timer);
137
- try {
138
- unlinkSync(tmpFile);
139
- }
140
- catch { /* ignore */ }
141
- // Success: exit code 0, or non-zero but we got parseable output
142
- if (code === 0) {
143
- resolve(output);
144
- return;
145
- }
146
- // Non-zero exit: check if we got usable output anyway
147
- if (output.trim()) {
148
- console.warn(`[Planner] Non-zero exit (${code}) but got output, attempting to parse`);
149
- if (stderrOutput.trim()) {
150
- console.warn('[Planner] stderr:', stderrOutput.slice(0, 500));
151
- }
152
- resolve(output);
153
- return;
154
- }
155
- // Complete failure: no output and non-zero exit
156
- const errorMsg = stderrOutput.trim() || 'No error output captured';
157
- const truncatedStderr = errorMsg.length > 1000 ? errorMsg.slice(0, 1000) + '... (truncated)' : errorMsg;
158
- console.error('[Planner] Process exited with code', code);
159
- console.error('[Planner] Full stderr:', errorMsg);
160
- console.error('[Planner] stdout length:', output.length);
161
- reject(new Error(`Claude CLI exited with code ${code}. stderr: ${truncatedStderr}`));
162
- });
163
- proc.on('error', (err) => {
164
- clearTimeout(timer);
165
- try {
166
- unlinkSync(tmpFile);
167
- }
168
- catch { /* ignore */ }
169
- reject(err);
170
- });
171
- });
172
- }
173
105
  /**
174
106
  * Parse Planner output (plain text or stream-json fallback)
175
107
  */
@@ -1 +1 @@
1
- {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/support/planner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/support/planner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Readable, Writable } from 'node:stream';
2
+ export interface ChoiceOption<T> {
3
+ label: string;
4
+ value: T;
5
+ hint?: string;
6
+ }
7
+ /**
8
+ * Resolve a raw answer against numbered options. Accepts a 1-based index or an
9
+ * exact label (case-insensitive). Returns null when nothing matches.
10
+ */
11
+ export declare function resolveChoice<T>(raw: string, options: ChoiceOption<T>[]): ChoiceOption<T> | null;
12
+ /** Resolve a yes/no answer; an empty answer returns the default. */
13
+ export declare function resolveConfirm(raw: string, def: boolean): boolean;
14
+ export interface Prompter {
15
+ /** Free-text question; returns the trimmed answer or `def` if blank. */
16
+ ask(question: string, def?: string): Promise<string>;
17
+ /** Numbered menu; re-prompts until a valid option is chosen. */
18
+ choose<T>(question: string, options: ChoiceOption<T>[]): Promise<T>;
19
+ /** Yes/no; blank answer takes `def`. */
20
+ confirm(question: string, def?: boolean): Promise<boolean>;
21
+ close(): void;
22
+ }
23
+ export declare function createPrompter(input?: Readable, output?: Writable): Prompter;
24
+ //# sourceMappingURL=promptHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptHelper.d.ts","sourceRoot":"","sources":["../../src/support/promptHelper.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAOhG;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAMjE;AAED,MAAM,WAAW,QAAQ;IACvB,wEAAwE;IACxE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gEAAgE;IAChE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACpE,wCAAwC;IACxC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,KAAK,GAAE,QAAuB,EAAE,MAAM,GAAE,QAAwB,GAAG,QAAQ,CAuDzG"}
@@ -0,0 +1,94 @@
1
+ // ============================================
2
+ // OpenSwarm - Interactive prompt helper
3
+ // ============================================
4
+ //
5
+ // Minimal ask/choose/confirm on node:readline/promises for the first-run wizard
6
+ // (INT-1578). The resolve* functions are pure so the parsing is unit-testable
7
+ // without a live TTY.
8
+ import { createInterface } from 'node:readline';
9
+ import { stdin as processStdin, stdout as processStdout } from 'node:process';
10
+ /**
11
+ * Resolve a raw answer against numbered options. Accepts a 1-based index or an
12
+ * exact label (case-insensitive). Returns null when nothing matches.
13
+ */
14
+ export function resolveChoice(raw, options) {
15
+ const t = raw.trim();
16
+ if (!t)
17
+ return null;
18
+ const n = Number(t);
19
+ if (Number.isInteger(n) && n >= 1 && n <= options.length)
20
+ return options[n - 1];
21
+ const lower = t.toLowerCase();
22
+ return options.find((o) => o.label.toLowerCase() === lower) ?? null;
23
+ }
24
+ /** Resolve a yes/no answer; an empty answer returns the default. */
25
+ export function resolveConfirm(raw, def) {
26
+ const t = raw.trim().toLowerCase();
27
+ if (!t)
28
+ return def;
29
+ if (t === 'y' || t === 'yes' || t === 'true')
30
+ return true;
31
+ if (t === 'n' || t === 'no' || t === 'false')
32
+ return false;
33
+ return def;
34
+ }
35
+ export function createPrompter(input = processStdin, output = processStdout) {
36
+ // Drain readline's `line` events into a queue and hand them out one at a time.
37
+ // rl.question (both callback and promises forms) drops lines when a pipe
38
+ // delivers several at once and then EOFs; queueing the line events is robust
39
+ // for both piped stdin and a live TTY.
40
+ const rl = createInterface({ input, output });
41
+ const lineQueue = [];
42
+ const waiters = [];
43
+ let closed = false;
44
+ rl.on('line', (line) => {
45
+ const w = waiters.shift();
46
+ if (w)
47
+ w.resolve(line);
48
+ else
49
+ lineQueue.push(line);
50
+ });
51
+ rl.on('close', () => {
52
+ closed = true;
53
+ while (waiters.length)
54
+ waiters.shift().reject(new Error('input stream closed before all answers were given'));
55
+ });
56
+ const nextLine = () => {
57
+ if (lineQueue.length)
58
+ return Promise.resolve(lineQueue.shift());
59
+ if (closed)
60
+ return Promise.reject(new Error('input stream closed before all answers were given'));
61
+ return new Promise((resolve, reject) => waiters.push({ resolve, reject }));
62
+ };
63
+ const question = (prompt) => {
64
+ output.write(prompt);
65
+ return nextLine();
66
+ };
67
+ return {
68
+ async ask(q, def) {
69
+ const suffix = def ? ` [${def}]` : '';
70
+ const ans = (await question(`${q}${suffix}: `)).trim();
71
+ return ans || def || '';
72
+ },
73
+ async choose(q, options) {
74
+ output.write(`${q}\n`);
75
+ options.forEach((o, i) => output.write(` ${i + 1}) ${o.label}${o.hint ? ` — ${o.hint}` : ''}\n`));
76
+ for (;;) {
77
+ const raw = await question('> ');
78
+ const picked = resolveChoice(raw, options);
79
+ if (picked)
80
+ return picked.value;
81
+ output.write('Please enter a valid number or label.\n');
82
+ }
83
+ },
84
+ async confirm(q, def = true) {
85
+ const hint = def ? '[Y/n]' : '[y/N]';
86
+ const raw = await question(`${q} ${hint}: `);
87
+ return resolveConfirm(raw, def);
88
+ },
89
+ close() {
90
+ rl.close();
91
+ },
92
+ };
93
+ }
94
+ //# sourceMappingURL=promptHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptHelper.js","sourceRoot":"","sources":["../../src/support/promptHelper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimiter.d.ts","sourceRoot":"","sources":["../../src/support/rateLimiter.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,UAAU,iBAAiB;IACzB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAQD,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,cAAM,WAAW;IAQb,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAiB;gBAGpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,iBAAiB;IAmB5C;;OAEG;IACH,OAAO,CAAC,MAAM;IAUd;;OAEG;IACH,OAAO,CAAC,YAAY;IA0BpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B;;OAEG;IACH,UAAU,IAAI,kBAAkB;IAKhC;;OAEG;IACH,YAAY,IAAI,IAAI;IAMpB;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CA2BvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAMnF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAM1E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EACvC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAGZ"}
1
+ {"version":3,"file":"rateLimiter.d.ts","sourceRoot":"","sources":["../../src/support/rateLimiter.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,UAAU,iBAAiB;IACzB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAQD,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,cAAM,WAAW;IAQb,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAiB;gBAGpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,iBAAiB;IAmB5C;;OAEG;IACH,OAAO,CAAC,MAAM;IAUd;;OAEG;IACH,OAAO,CAAC,YAAY;IA0BpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B;;OAEG;IACH,UAAU,IAAI,kBAAkB;IAKhC;;OAEG;IACH,YAAY,IAAI,IAAI;IAMpB;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CA2BvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAMnF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAM1E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EACvC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CASZ"}
@@ -213,6 +213,12 @@ export function destroyRateLimiters() {
213
213
  * @returns Result of the operation
214
214
  */
215
215
  export async function withRateLimit(service, operation) {
216
+ // Limiters are set up by the daemon (initRateLimiters). One-off CLI commands
217
+ // (init, auth) never call that, so fall back to running the operation directly
218
+ // instead of throwing "No limiter configured".
219
+ if (!limiters.has(service)) {
220
+ return operation();
221
+ }
216
222
  await acquireRateLimit(service);
217
223
  return operation();
218
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../src/support/rateLimiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../src/support/rateLimiter.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,13 @@ export declare const REPO_METADATA_FILENAME = "openswarm.json";
36
36
  * already had.
37
37
  */
38
38
  export declare function loadRepoMetadata(repoPath: string): Promise<RepoMetadata | null>;
39
+ /**
40
+ * Write `${repoPath}/openswarm.json`. Validates against the schema first so we
41
+ * never persist a malformed mapping. Returns the written file path.
42
+ * Used by `openswarm init` to record the repo ↔ Linear team/project mapping the
43
+ * user picked, so the daemon resolves this repo without fuzzy name matching.
44
+ */
45
+ export declare function saveRepoMetadata(repoPath: string, meta: RepoMetadata): Promise<string>;
39
46
  export declare class RepoMetadataError extends Error {
40
47
  readonly filePath: string;
41
48
  constructor(message: string, filePath: string);
@@ -1 +1 @@
1
- {"version":3,"file":"repoMetadata.d.ts","sourceRoot":"","sources":["../../src/support/repoMetadata.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,mBAAmB;;;;;iBAKvB,CAAC;AAMH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;iBAStB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgCrF;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aACG,QAAQ,EAAE,MAAM;gBAAjD,OAAO,EAAE,MAAM,EAAkB,QAAQ,EAAE,MAAM;CAI9D"}
1
+ {"version":3,"file":"repoMetadata.d.ts","sourceRoot":"","sources":["../../src/support/repoMetadata.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,mBAAmB;;;;;iBAKvB,CAAC;AAMH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;iBAStB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgCrF;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAK5F;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aACG,QAAQ,EAAE,MAAM;gBAAjD,OAAO,EAAE,MAAM,EAAkB,QAAQ,EAAE,MAAM;CAI9D"}