@proletariat/cli 0.3.57 → 0.3.59

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 (219) hide show
  1. package/dist/commands/{spec/view.d.ts → dashboard/index.d.ts} +4 -6
  2. package/dist/commands/dashboard/index.js +117 -0
  3. package/dist/commands/dashboard/index.js.map +1 -0
  4. package/dist/commands/execution/config.js +5 -4
  5. package/dist/commands/execution/config.js.map +1 -1
  6. package/dist/commands/execution/stop.js +4 -2
  7. package/dist/commands/execution/stop.js.map +1 -1
  8. package/dist/commands/execution/view.js +3 -0
  9. package/dist/commands/execution/view.js.map +1 -1
  10. package/dist/commands/init.d.ts +1 -0
  11. package/dist/commands/init.js +40 -3
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/mcp-server.js +1 -2
  14. package/dist/commands/mcp-server.js.map +1 -1
  15. package/dist/commands/media/add.d.ts +19 -0
  16. package/dist/commands/media/add.js +94 -0
  17. package/dist/commands/media/add.js.map +1 -0
  18. package/dist/commands/{spec → media}/index.d.ts +1 -1
  19. package/dist/commands/media/index.js +85 -0
  20. package/dist/commands/media/index.js.map +1 -0
  21. package/dist/commands/{spec/link/remove.d.ts → media/list.d.ts} +3 -6
  22. package/dist/commands/media/list.js +89 -0
  23. package/dist/commands/media/list.js.map +1 -0
  24. package/dist/commands/media/preprocess.d.ts +19 -0
  25. package/dist/commands/media/preprocess.js +91 -0
  26. package/dist/commands/media/preprocess.js.map +1 -0
  27. package/dist/commands/{spec/delete.d.ts → media/remove.d.ts} +2 -2
  28. package/dist/commands/media/remove.js +101 -0
  29. package/dist/commands/media/remove.js.map +1 -0
  30. package/dist/commands/{spec/link/index.d.ts → media/show.d.ts} +3 -3
  31. package/dist/commands/media/show.js +122 -0
  32. package/dist/commands/media/show.js.map +1 -0
  33. package/dist/commands/orchestrator/start.js +5 -0
  34. package/dist/commands/orchestrator/start.js.map +1 -1
  35. package/dist/commands/session/exec.d.ts +19 -0
  36. package/dist/commands/session/exec.js +205 -0
  37. package/dist/commands/session/exec.js.map +1 -0
  38. package/dist/commands/session/index.js +12 -0
  39. package/dist/commands/session/index.js.map +1 -1
  40. package/dist/commands/{spec/link/depends.d.ts → session/inspect.d.ts} +4 -4
  41. package/dist/commands/session/inspect.js +316 -0
  42. package/dist/commands/session/inspect.js.map +1 -0
  43. package/dist/commands/session/peek.d.ts +15 -0
  44. package/dist/commands/session/peek.js +141 -8
  45. package/dist/commands/session/peek.js.map +1 -1
  46. package/dist/commands/session/poke.d.ts +4 -1
  47. package/dist/commands/session/poke.js +175 -20
  48. package/dist/commands/session/poke.js.map +1 -1
  49. package/dist/commands/session/restart.d.ts +20 -0
  50. package/dist/commands/session/restart.js +320 -0
  51. package/dist/commands/session/restart.js.map +1 -0
  52. package/dist/commands/tools/add.d.ts +20 -0
  53. package/dist/commands/tools/add.js +129 -0
  54. package/dist/commands/tools/add.js.map +1 -0
  55. package/dist/commands/tools/check.d.ts +10 -0
  56. package/dist/commands/tools/check.js +75 -0
  57. package/dist/commands/tools/check.js.map +1 -0
  58. package/dist/commands/tools/detect.d.ts +11 -0
  59. package/dist/commands/tools/detect.js +107 -0
  60. package/dist/commands/tools/detect.js.map +1 -0
  61. package/dist/commands/tools/index.d.ts +11 -0
  62. package/dist/commands/tools/index.js +87 -0
  63. package/dist/commands/tools/index.js.map +1 -0
  64. package/dist/commands/tools/remove.d.ts +13 -0
  65. package/dist/commands/tools/remove.js +55 -0
  66. package/dist/commands/tools/remove.js.map +1 -0
  67. package/dist/commands/trello/configure.d.ts +16 -0
  68. package/dist/commands/trello/configure.js +259 -0
  69. package/dist/commands/trello/configure.js.map +1 -0
  70. package/dist/commands/{spec/plan.d.ts → trello/import.d.ts} +3 -5
  71. package/dist/commands/trello/import.js +241 -0
  72. package/dist/commands/trello/import.js.map +1 -0
  73. package/dist/commands/{spec/ticket.d.ts → trello/sync.d.ts} +5 -6
  74. package/dist/commands/trello/sync.js +190 -0
  75. package/dist/commands/trello/sync.js.map +1 -0
  76. package/dist/commands/work/start.d.ts +2 -0
  77. package/dist/commands/work/start.js +27 -41
  78. package/dist/commands/work/start.js.map +1 -1
  79. package/dist/lib/dashboard/data.d.ts +64 -0
  80. package/dist/lib/dashboard/data.js +259 -0
  81. package/dist/lib/dashboard/data.js.map +1 -0
  82. package/dist/lib/dashboard/html.d.ts +7 -0
  83. package/dist/lib/dashboard/html.js +682 -0
  84. package/dist/lib/dashboard/html.js.map +1 -0
  85. package/dist/lib/dashboard/server.d.ts +20 -0
  86. package/dist/lib/dashboard/server.js +114 -0
  87. package/dist/lib/dashboard/server.js.map +1 -0
  88. package/dist/lib/database/index.d.ts +49 -1
  89. package/dist/lib/database/index.js +127 -0
  90. package/dist/lib/database/index.js.map +1 -1
  91. package/dist/lib/execution/config.d.ts +8 -0
  92. package/dist/lib/execution/config.js +83 -4
  93. package/dist/lib/execution/config.js.map +1 -1
  94. package/dist/lib/execution/runners.d.ts +60 -4
  95. package/dist/lib/execution/runners.js +398 -79
  96. package/dist/lib/execution/runners.js.map +1 -1
  97. package/dist/lib/execution/spawner.d.ts +4 -2
  98. package/dist/lib/execution/spawner.js +54 -47
  99. package/dist/lib/execution/spawner.js.map +1 -1
  100. package/dist/lib/execution/types.d.ts +27 -5
  101. package/dist/lib/execution/types.js +24 -0
  102. package/dist/lib/execution/types.js.map +1 -1
  103. package/dist/lib/external-issues/adapters.d.ts +17 -0
  104. package/dist/lib/external-issues/adapters.js +88 -0
  105. package/dist/lib/external-issues/adapters.js.map +1 -1
  106. package/dist/lib/external-issues/mapping-store.js +1 -1
  107. package/dist/lib/external-issues/shortcut.js +2 -1
  108. package/dist/lib/external-issues/shortcut.js.map +1 -1
  109. package/dist/lib/external-issues/trello.d.ts +80 -0
  110. package/dist/lib/external-issues/trello.js +266 -0
  111. package/dist/lib/external-issues/trello.js.map +1 -0
  112. package/dist/lib/external-issues/types.d.ts +3 -3
  113. package/dist/lib/external-issues/types.js +1 -1
  114. package/dist/lib/external-issues/types.js.map +1 -1
  115. package/dist/lib/linear/client.d.ts +4 -3
  116. package/dist/lib/linear/client.js +185 -122
  117. package/dist/lib/linear/client.js.map +1 -1
  118. package/dist/lib/mcp/tools/cli-passthrough.js +77 -0
  119. package/dist/lib/mcp/tools/cli-passthrough.js.map +1 -1
  120. package/dist/lib/mcp/tools/index.d.ts +0 -1
  121. package/dist/lib/mcp/tools/index.js +0 -1
  122. package/dist/lib/mcp/tools/index.js.map +1 -1
  123. package/dist/lib/media/index.d.ts +91 -0
  124. package/dist/lib/media/index.js +475 -0
  125. package/dist/lib/media/index.js.map +1 -0
  126. package/dist/lib/onboarding/detect-tools.d.ts +15 -0
  127. package/dist/lib/onboarding/detect-tools.js +44 -0
  128. package/dist/lib/onboarding/detect-tools.js.map +1 -0
  129. package/dist/lib/onboarding/index.d.ts +2 -0
  130. package/dist/lib/onboarding/index.js +3 -0
  131. package/dist/lib/onboarding/index.js.map +1 -0
  132. package/dist/lib/onboarding/wizard.d.ts +25 -0
  133. package/dist/lib/onboarding/wizard.js +156 -0
  134. package/dist/lib/onboarding/wizard.js.map +1 -0
  135. package/dist/lib/pmo/schema.d.ts +2 -1
  136. package/dist/lib/pmo/schema.js +3 -1
  137. package/dist/lib/pmo/schema.js.map +1 -1
  138. package/dist/lib/runners/claude-code-runner.js +6 -0
  139. package/dist/lib/runners/claude-code-runner.js.map +1 -1
  140. package/dist/lib/tool-registry/detect.d.ts +20 -0
  141. package/dist/lib/tool-registry/detect.js +95 -0
  142. package/dist/lib/tool-registry/detect.js.map +1 -0
  143. package/dist/lib/tool-registry/index.d.ts +10 -0
  144. package/dist/lib/tool-registry/index.js +13 -0
  145. package/dist/lib/tool-registry/index.js.map +1 -0
  146. package/dist/lib/tool-registry/policy.d.ts +32 -0
  147. package/dist/lib/tool-registry/policy.js +97 -0
  148. package/dist/lib/tool-registry/policy.js.map +1 -0
  149. package/dist/lib/tool-registry/registry.d.ts +42 -0
  150. package/dist/lib/tool-registry/registry.js +120 -0
  151. package/dist/lib/tool-registry/registry.js.map +1 -0
  152. package/dist/lib/tool-registry/spawn.d.ts +50 -0
  153. package/dist/lib/tool-registry/spawn.js +103 -0
  154. package/dist/lib/tool-registry/spawn.js.map +1 -0
  155. package/dist/lib/tool-registry/types.d.ts +56 -0
  156. package/dist/lib/tool-registry/types.js +109 -0
  157. package/dist/lib/tool-registry/types.js.map +1 -0
  158. package/dist/lib/trello/client.d.ts +23 -0
  159. package/dist/lib/trello/client.js +114 -0
  160. package/dist/lib/trello/client.js.map +1 -0
  161. package/dist/lib/trello/config.d.ts +55 -0
  162. package/dist/lib/trello/config.js +127 -0
  163. package/dist/lib/trello/config.js.map +1 -0
  164. package/dist/lib/trello/index.d.ts +5 -0
  165. package/dist/lib/trello/index.js +5 -0
  166. package/dist/lib/trello/index.js.map +1 -0
  167. package/dist/lib/trello/mapper.d.ts +13 -0
  168. package/dist/lib/trello/mapper.js +71 -0
  169. package/dist/lib/trello/mapper.js.map +1 -0
  170. package/dist/lib/trello/sync.d.ts +13 -0
  171. package/dist/lib/trello/sync.js +38 -0
  172. package/dist/lib/trello/sync.js.map +1 -0
  173. package/dist/lib/trello/types.d.ts +53 -0
  174. package/dist/lib/trello/types.js +2 -0
  175. package/dist/lib/trello/types.js.map +1 -0
  176. package/dist/lib/work-source/client.js +17 -0
  177. package/dist/lib/work-source/client.js.map +1 -1
  178. package/dist/lib/work-source/config.d.ts +6 -1
  179. package/dist/lib/work-source/config.js +30 -1
  180. package/dist/lib/work-source/config.js.map +1 -1
  181. package/dist/lib/work-source/index.d.ts +1 -1
  182. package/dist/lib/work-source/index.js +1 -1
  183. package/dist/lib/work-source/index.js.map +1 -1
  184. package/oclif.manifest.json +6524 -6171
  185. package/package.json +6 -2
  186. package/dist/commands/spec/create.d.ts +0 -20
  187. package/dist/commands/spec/create.js +0 -171
  188. package/dist/commands/spec/create.js.map +0 -1
  189. package/dist/commands/spec/delete.js +0 -112
  190. package/dist/commands/spec/delete.js.map +0 -1
  191. package/dist/commands/spec/edit.d.ts +0 -23
  192. package/dist/commands/spec/edit.js +0 -262
  193. package/dist/commands/spec/edit.js.map +0 -1
  194. package/dist/commands/spec/index.js +0 -88
  195. package/dist/commands/spec/index.js.map +0 -1
  196. package/dist/commands/spec/link/depends.js +0 -87
  197. package/dist/commands/spec/link/depends.js.map +0 -1
  198. package/dist/commands/spec/link/index.js +0 -93
  199. package/dist/commands/spec/link/index.js.map +0 -1
  200. package/dist/commands/spec/link/remove.js +0 -91
  201. package/dist/commands/spec/link/remove.js.map +0 -1
  202. package/dist/commands/spec/list.d.ts +0 -14
  203. package/dist/commands/spec/list.js +0 -101
  204. package/dist/commands/spec/list.js.map +0 -1
  205. package/dist/commands/spec/plan.js +0 -102
  206. package/dist/commands/spec/plan.js.map +0 -1
  207. package/dist/commands/spec/ticket.js +0 -144
  208. package/dist/commands/spec/ticket.js.map +0 -1
  209. package/dist/commands/spec/view.js +0 -202
  210. package/dist/commands/spec/view.js.map +0 -1
  211. package/dist/lib/mcp/tools/spec.d.ts +0 -6
  212. package/dist/lib/mcp/tools/spec.js +0 -197
  213. package/dist/lib/mcp/tools/spec.js.map +0 -1
  214. package/dist/lib/pmo/spec-parser.d.ts +0 -25
  215. package/dist/lib/pmo/spec-parser.js +0 -206
  216. package/dist/lib/pmo/spec-parser.js.map +0 -1
  217. package/dist/lib/pmo/spec-types.d.ts +0 -43
  218. package/dist/lib/pmo/spec-types.js +0 -8
  219. package/dist/lib/pmo/spec-types.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { type DetectedTool } from './detect-tools.js';
2
+ export interface OnboardingResult {
3
+ /** How the user chose to set up: 'ai' or 'manual' */
4
+ method: 'ai' | 'manual';
5
+ /** Which AI tool was selected (if method is 'ai') */
6
+ tool?: DetectedTool;
7
+ /** Whether the AI setup was spawned successfully */
8
+ spawned?: boolean;
9
+ }
10
+ /**
11
+ * Run the onboarding wizard in interactive (human) mode.
12
+ * Detects AI tools and lets the user choose how to set up.
13
+ *
14
+ * @returns The onboarding result, or null if user chose manual (caller should continue with normal init)
15
+ */
16
+ export declare function runOnboardingWizard(): Promise<OnboardingResult>;
17
+ /**
18
+ * Handle onboarding in JSON/agent mode.
19
+ * Outputs tool detection results and setup choices as JSON.
20
+ */
21
+ export declare function runOnboardingJsonMode(flags: Record<string, unknown>): void;
22
+ /**
23
+ * Check if onboarding should run (first-time user with no HQs).
24
+ */
25
+ export declare function isFirstTimeUser(headquartersCount: number, currentHQ: string | null): boolean;
@@ -0,0 +1,156 @@
1
+ import chalk from 'chalk';
2
+ import inquirer from 'inquirer';
3
+ import { spawn } from 'node:child_process';
4
+ import { detectAITools } from './detect-tools.js';
5
+ import { outputPromptAsJson, outputSuccessAsJson, buildPromptConfig, createMetadata, } from '../prompt-json.js';
6
+ /**
7
+ * Build the setup choices based on detected AI tools.
8
+ */
9
+ function buildSetupChoices(detection) {
10
+ const choices = [];
11
+ if (detection.hasClaudeCode) {
12
+ const tool = detection.tools.find(t => t.name === 'claude-code');
13
+ choices.push({
14
+ name: `Let Claude Code set it up (${tool.path})`,
15
+ value: 'claude-code',
16
+ });
17
+ }
18
+ if (detection.hasCodex) {
19
+ const tool = detection.tools.find(t => t.name === 'codex');
20
+ choices.push({
21
+ name: `Let Codex set it up (${tool.path})`,
22
+ value: 'codex',
23
+ });
24
+ }
25
+ choices.push({
26
+ name: 'Set up manually (guided walkthrough)',
27
+ value: 'manual',
28
+ });
29
+ return choices;
30
+ }
31
+ const SETUP_PROMPT = `You are helping a user set up Proletariat HQ for the first time.
32
+ Run the following commands to create their headquarters:
33
+
34
+ 1. Run: prlt new
35
+ 2. Follow the interactive prompts to configure the HQ name, agents, repos, and PMO.
36
+ 3. When done, show them how to create their first ticket: prlt ticket create
37
+ 4. Show them how to spawn their first agent: prlt work spawn
38
+
39
+ Be helpful and guide them through each step. If any step fails, explain what went wrong and how to fix it.`;
40
+ /**
41
+ * Spawn an AI tool to handle the setup automatically.
42
+ * Runs interactively so the user can see and interact with the AI.
43
+ */
44
+ function spawnAISetup(tool) {
45
+ return new Promise((resolve) => {
46
+ console.log(chalk.blue(`\nLaunching ${tool.displayName} to set up your HQ...\n`));
47
+ console.log(chalk.gray('─'.repeat(60)));
48
+ console.log('');
49
+ const child = spawn(tool.command, ['--print', SETUP_PROMPT], {
50
+ stdio: 'inherit',
51
+ env: { ...process.env },
52
+ });
53
+ child.on('close', (code) => {
54
+ console.log('');
55
+ console.log(chalk.gray('─'.repeat(60)));
56
+ if (code === 0) {
57
+ console.log(chalk.green('\nAI-assisted setup complete!\n'));
58
+ resolve(true);
59
+ }
60
+ else {
61
+ console.log(chalk.yellow('\nAI setup exited. You can run `prlt new` to set up manually.\n'));
62
+ resolve(false);
63
+ }
64
+ });
65
+ child.on('error', (err) => {
66
+ console.log(chalk.red(`\nFailed to launch ${tool.displayName}: ${err.message}`));
67
+ console.log(chalk.yellow('You can run `prlt new` to set up manually.\n'));
68
+ resolve(false);
69
+ });
70
+ });
71
+ }
72
+ /**
73
+ * Run the onboarding wizard in interactive (human) mode.
74
+ * Detects AI tools and lets the user choose how to set up.
75
+ *
76
+ * @returns The onboarding result, or null if user chose manual (caller should continue with normal init)
77
+ */
78
+ export async function runOnboardingWizard() {
79
+ console.log(chalk.blue('Welcome to Proletariat!\n'));
80
+ console.log(chalk.gray(' Proletariat helps you manage AI coding agents across your projects.\n'));
81
+ // Detect installed AI tools
82
+ console.log(chalk.gray(' Detecting AI tools...\n'));
83
+ const detection = detectAITools();
84
+ if (detection.tools.length > 0) {
85
+ const toolNames = detection.tools.map(t => t.displayName).join(', ');
86
+ console.log(chalk.green(` Found: ${toolNames}\n`));
87
+ }
88
+ else {
89
+ console.log(chalk.gray(' No AI tools detected. Proceeding with manual setup.\n'));
90
+ return { method: 'manual' };
91
+ }
92
+ // Build choices and prompt
93
+ const choices = buildSetupChoices(detection);
94
+ const message = 'How would you like to set up your headquarters?';
95
+ const { setupMethod } = await inquirer.prompt([{
96
+ type: 'list',
97
+ name: 'setupMethod',
98
+ message,
99
+ choices: choices.map(c => ({ name: c.name, value: c.value })),
100
+ }]);
101
+ if (setupMethod === 'manual') {
102
+ return { method: 'manual' };
103
+ }
104
+ // AI-assisted setup
105
+ const selectedTool = detection.tools.find(t => t.name === setupMethod);
106
+ const spawned = await spawnAISetup(selectedTool);
107
+ return {
108
+ method: 'ai',
109
+ tool: selectedTool,
110
+ spawned,
111
+ };
112
+ }
113
+ /**
114
+ * Handle onboarding in JSON/agent mode.
115
+ * Outputs tool detection results and setup choices as JSON.
116
+ */
117
+ export function runOnboardingJsonMode(flags) {
118
+ const detection = detectAITools();
119
+ const choices = buildSetupChoices(detection);
120
+ const metadata = createMetadata('init', flags);
121
+ // If a setup method is provided via flag, report success with detection results
122
+ if (flags.setup) {
123
+ const method = flags.setup;
124
+ if (method === 'manual') {
125
+ // Don't exit — let caller continue with normal init agent mode
126
+ return;
127
+ }
128
+ const tool = detection.tools.find(t => t.name === method);
129
+ if (!tool) {
130
+ outputPromptAsJson(buildPromptConfig('list', 'setup', 'How would you like to set up your headquarters?', choices), metadata);
131
+ // never reaches here — outputPromptAsJson exits
132
+ }
133
+ outputSuccessAsJson({
134
+ method: 'ai',
135
+ tool: tool.name,
136
+ toolCommand: tool.command,
137
+ setupPrompt: SETUP_PROMPT,
138
+ detectedTools: detection.tools.map(t => ({
139
+ name: t.name,
140
+ command: t.command,
141
+ displayName: t.displayName,
142
+ })),
143
+ }, metadata);
144
+ // never reaches here — outputSuccessAsJson exits
145
+ }
146
+ // No setup method provided — output a prompt with available choices
147
+ outputPromptAsJson(buildPromptConfig('list', 'setup', 'How would you like to set up your headquarters?', choices), metadata);
148
+ // never reaches here — outputPromptAsJson exits
149
+ }
150
+ /**
151
+ * Check if onboarding should run (first-time user with no HQs).
152
+ */
153
+ export function isFirstTimeUser(headquartersCount, currentHQ) {
154
+ return headquartersCount === 0 && currentHQ === null;
155
+ }
156
+ //# sourceMappingURL=wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/lib/onboarding/wizard.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ export declare const PMO_TABLES: {
44
44
  readonly external_execution_prs: "pmo_external_execution_prs";
45
45
  readonly monday_item_map: "pmo_monday_item_map";
46
46
  readonly asana_task_map: "pmo_asana_task_map";
47
+ readonly trello_card_map: "pmo_trello_card_map";
47
48
  readonly columns: "pmo_columns";
48
49
  readonly board_tickets: "pmo_board_tickets";
49
50
  readonly statuses: "pmo_statuses";
@@ -86,7 +87,7 @@ export declare const PMO_TABLE_SCHEMAS: {
86
87
  readonly roadmaps: "\n CREATE TABLE IF NOT EXISTS pmo_roadmaps (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL UNIQUE,\n description TEXT,\n is_default INTEGER NOT NULL DEFAULT 0,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n )";
87
88
  readonly roadmap_projects: "\n CREATE TABLE IF NOT EXISTS pmo_roadmap_projects (\n roadmap_id TEXT NOT NULL REFERENCES pmo_roadmaps(id) ON DELETE CASCADE,\n project_id TEXT NOT NULL REFERENCES pmo_projects(id) ON DELETE CASCADE,\n position INTEGER NOT NULL DEFAULT 0,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (roadmap_id, project_id)\n )";
88
89
  readonly linear_issue_map: "\n CREATE TABLE IF NOT EXISTS pmo_linear_issue_map (\n pmo_ticket_id TEXT NOT NULL REFERENCES pmo_tickets(id) ON DELETE CASCADE,\n linear_issue_id TEXT NOT NULL,\n linear_identifier TEXT NOT NULL,\n linear_team_key TEXT NOT NULL,\n linear_url TEXT NOT NULL,\n sync_direction TEXT NOT NULL DEFAULT 'inbound',\n last_synced_at TIMESTAMP,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (pmo_ticket_id),\n UNIQUE (linear_issue_id)\n )";
89
- readonly external_execution_map: "\n CREATE TABLE IF NOT EXISTS pmo_external_execution_map (\n provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'asana', 'monday', 'pmo')),\n external_id TEXT NOT NULL,\n external_key TEXT,\n canonical_url TEXT,\n latest_state_snapshot TEXT,\n last_synced_at TIMESTAMP,\n last_spawned_at TIMESTAMP,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (provider, external_id)\n )";
90
+ readonly external_execution_map: "\n CREATE TABLE IF NOT EXISTS pmo_external_execution_map (\n provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'shortcut', 'asana', 'trello', 'monday', 'pmo')),\n external_id TEXT NOT NULL,\n external_key TEXT,\n canonical_url TEXT,\n latest_state_snapshot TEXT,\n last_synced_at TIMESTAMP,\n last_spawned_at TIMESTAMP,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (provider, external_id)\n )";
90
91
  readonly external_execution_links: "\n CREATE TABLE IF NOT EXISTS pmo_external_execution_links (\n provider TEXT NOT NULL,\n external_id TEXT NOT NULL,\n execution_id TEXT NOT NULL,\n linked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (provider, external_id, execution_id),\n FOREIGN KEY (provider, external_id)\n REFERENCES pmo_external_execution_map(provider, external_id)\n ON DELETE CASCADE\n )";
91
92
  readonly external_execution_prs: "\n CREATE TABLE IF NOT EXISTS pmo_external_execution_prs (\n provider TEXT NOT NULL,\n external_id TEXT NOT NULL,\n pr_url TEXT NOT NULL,\n linked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (provider, external_id, pr_url),\n FOREIGN KEY (provider, external_id)\n REFERENCES pmo_external_execution_map(provider, external_id)\n ON DELETE CASCADE\n )";
92
93
  readonly monday_item_map: "\n CREATE TABLE IF NOT EXISTS pmo_monday_item_map (\n pmo_ticket_id TEXT NOT NULL REFERENCES pmo_tickets(id) ON DELETE CASCADE,\n monday_board_id TEXT NOT NULL,\n monday_item_id TEXT NOT NULL,\n monday_item_name TEXT NOT NULL,\n monday_item_url TEXT,\n sync_direction TEXT NOT NULL DEFAULT 'outbound',\n last_synced_at TIMESTAMP,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (pmo_ticket_id),\n UNIQUE (monday_item_id)\n )";
@@ -55,6 +55,8 @@ export const PMO_TABLES = {
55
55
  monday_item_map: 'pmo_monday_item_map', // Monday item ↔ PMO ticket mapping
56
56
  // Asana integration tables
57
57
  asana_task_map: 'pmo_asana_task_map', // Asana task ↔ PMO ticket mapping
58
+ // Trello integration tables
59
+ trello_card_map: 'pmo_trello_card_map', // Trello card ↔ PMO ticket mapping
58
60
  // Legacy tables (deprecated, kept for migration)
59
61
  columns: 'pmo_columns', // DEPRECATED: use workflow_statuses
60
62
  board_tickets: 'pmo_board_tickets', // DEPRECATED: tickets now use status_id directly
@@ -513,7 +515,7 @@ export const PMO_TABLE_SCHEMAS = {
513
515
  // Provider-agnostic external issue ↔ execution mapping
514
516
  external_execution_map: `
515
517
  CREATE TABLE IF NOT EXISTS ${PMO_TABLES.external_execution_map} (
516
- provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'asana', 'monday', 'pmo')),
518
+ provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'shortcut', 'asana', 'trello', 'monday', 'pmo')),
517
519
  external_id TEXT NOT NULL,
518
520
  external_key TEXT,
519
521
  canonical_url TEXT,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/lib/pmo/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/lib/pmo/schema.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,12 @@ export class ClaudeCodeRunner {
61
61
  }
62
62
  async poke(session, message) {
63
63
  try {
64
+ // Send Escape first to clear any buffered input in the prompt —
65
+ // without this, text already typed by the agent concatenates with
66
+ // our message, producing garbage.
67
+ execSync(`tmux send-keys -t "${session.sessionName}" Escape`, { stdio: 'pipe' });
68
+ // Wait for Escape to take effect before sending new text
69
+ await new Promise(resolve => setTimeout(resolve, 200));
64
70
  // Send the message as keystrokes followed by Enter
65
71
  execSync(`tmux send-keys -t "${session.sessionName}" ${JSON.stringify(message)} Enter`, { stdio: 'pipe' });
66
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../../src/lib/runners/claude-code-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../../src/lib/runners/claude-code-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EACL,OAAO,GAER,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,aAAa,CAAA;IAE7B,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAEzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,OAAO,EACP,aAAa,EACb,eAAe,EACf,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAC9C,CAAA;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,qCAAqC,CAAC,CAAA;QACxE,CAAC;QAED,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,SAAS,IAAI,WAAW;YACnC,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,SAAS,IAAI,WAAW;YAC5C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,SAAS;SAClB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAqB;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CACrB,wBAAwB,OAAO,CAAC,WAAW,gCAAgC,EAC3E,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CACrC,CAAC,IAAI,EAAE,CAAA;YAER,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;YAChE,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB,EAAE,QAAgB,EAAE;QAClD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QAC1D,OAAO,MAAM,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB,EAAE,OAAe;QAC/C,IAAI,CAAC;YACH,gEAAgE;YAChE,kEAAkE;YAClE,kCAAkC;YAClC,QAAQ,CACN,sBAAsB,OAAO,CAAC,WAAW,UAAU,EACnD,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAA;YACD,yDAAyD;YACzD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YACtD,mDAAmD;YACnD,QAAQ,CACN,sBAAsB,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC7E,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,sCAAsC,OAAO,CAAC,WAAW,MACvD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAC3C,EAAE,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB;QAC9B,IAAI,CAAC;YACH,6DAA6D;YAC7D,QAAQ,CAAC,sBAAsB,OAAO,CAAC,WAAW,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAC7E,mDAAmD;YACnD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YACtD,wBAAwB;YACxB,QAAQ,CAAC,yBAAyB,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9E,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,MAAmB;QAC1C,sFAAsF;QACtF,iEAAiE;QACjE,OAAO,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IAC/B,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAAC,MAAmB,EAAE,WAAmB;QACpE,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACrC,iBAAiB,EAAE,MAAM,CAAC,IAAI;YAC9B,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM;YAClB,YAAY,EAAE,MAAM,CAAC,IAAI;SAC1B,CAAA;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAmB;QAC9C,OAAO;YACL,GAAG,wBAAwB;YAC3B,cAAc,EAAE,QAAQ;SACzB,CAAA;IACH,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAyB,EACzB,SAA0B,wBAAwB,EAClD,cAAwD,UAAU;IAElE,OAAO,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;AAC7D,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Tool Detection and Health Checking
3
+ *
4
+ * Detects available CLI tools and verifies MCP server connectivity.
5
+ */
6
+ import type { ToolRegistry, CliToolConfig, ToolCheckResult } from './types.js';
7
+ /**
8
+ * Check if a CLI tool is available on the system.
9
+ */
10
+ export declare function isCliToolAvailable(tool: CliToolConfig): boolean;
11
+ /**
12
+ * Auto-detect common CLI tools available on the system.
13
+ * Returns tools that are detected and not already in the registry.
14
+ */
15
+ export declare function detectAvailableTools(registry: ToolRegistry): CliToolConfig[];
16
+ /**
17
+ * Check health of all registered tools.
18
+ * Returns status for each tool (available or not).
19
+ */
20
+ export declare function checkAllTools(registry: ToolRegistry): ToolCheckResult[];
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Tool Detection and Health Checking
3
+ *
4
+ * Detects available CLI tools and verifies MCP server connectivity.
5
+ */
6
+ import { execSync } from 'node:child_process';
7
+ import { COMMON_CLI_TOOLS } from './types.js';
8
+ import { getMcpServers, getCliTools } from './registry.js';
9
+ /**
10
+ * Check if a CLI tool is available on the system.
11
+ */
12
+ export function isCliToolAvailable(tool) {
13
+ const detectCmd = tool.detect || `which ${tool.command}`;
14
+ try {
15
+ execSync(detectCmd, { stdio: 'pipe' });
16
+ return true;
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ }
22
+ /**
23
+ * Auto-detect common CLI tools available on the system.
24
+ * Returns tools that are detected and not already in the registry.
25
+ */
26
+ export function detectAvailableTools(registry) {
27
+ const existingNames = new Set(Object.keys(registry['cli-tools']));
28
+ const detected = [];
29
+ for (const tool of COMMON_CLI_TOOLS) {
30
+ if (existingNames.has(tool.name))
31
+ continue;
32
+ if (isCliToolAvailable(tool)) {
33
+ detected.push(tool);
34
+ }
35
+ }
36
+ return detected;
37
+ }
38
+ /**
39
+ * Check health of all registered tools.
40
+ * Returns status for each tool (available or not).
41
+ */
42
+ export function checkAllTools(registry) {
43
+ const results = [];
44
+ // Check MCP servers
45
+ for (const server of getMcpServers(registry)) {
46
+ results.push(checkMcpServer(server));
47
+ }
48
+ // Check CLI tools
49
+ for (const tool of getCliTools(registry)) {
50
+ results.push(checkCliTool(tool));
51
+ }
52
+ return results;
53
+ }
54
+ function checkMcpServer(server) {
55
+ // For URL-based servers, check if the auth env var is set
56
+ if (server.url && server.auth) {
57
+ const envVar = server.auth.replace(/^\$\{(.+)\}$/, '$1');
58
+ const hasAuth = !!process.env[envVar];
59
+ return {
60
+ name: server.name,
61
+ type: 'mcp',
62
+ available: hasAuth,
63
+ error: hasAuth ? undefined : `Missing environment variable: ${envVar}`,
64
+ };
65
+ }
66
+ // For command-based servers, check if the command exists
67
+ if (server.command) {
68
+ const cmd = server.command.split(' ')[0];
69
+ try {
70
+ execSync(`which ${cmd}`, { stdio: 'pipe' });
71
+ return { name: server.name, type: 'mcp', available: true };
72
+ }
73
+ catch {
74
+ return {
75
+ name: server.name,
76
+ type: 'mcp',
77
+ available: false,
78
+ error: `Command not found: ${cmd}`,
79
+ };
80
+ }
81
+ }
82
+ // URL-based without auth — assume available
83
+ return { name: server.name, type: 'mcp', available: true };
84
+ }
85
+ function checkCliTool(tool) {
86
+ const available = isCliToolAvailable(tool);
87
+ return {
88
+ name: tool.name,
89
+ type: 'cli',
90
+ available,
91
+ error: available ? undefined : `Command not found: ${tool.command}`,
92
+ installHint: available ? undefined : tool.install,
93
+ };
94
+ }
95
+ //# sourceMappingURL=detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/lib/tool-registry/detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tool Registry — Public API
3
+ */
4
+ export type { McpServerConfig, CliToolConfig, ToolRegistry, ToolPolicy, ToolCheckResult, } from './types.js';
5
+ export { COMMON_CLI_TOOLS, BUILTIN_PRLT_TOOL } from './types.js';
6
+ export { getToolsConfigPath, loadToolRegistry, saveToolRegistry, getMcpServers, getCliTools, addMcpServer, addCliTool, removeTool, } from './registry.js';
7
+ export { isCliToolAvailable, detectAvailableTools, checkAllTools, } from './detect.js';
8
+ export { getPoliciesDir, loadToolPolicy, saveToolPolicy, listPolicies, filterByPolicy, } from './policy.js';
9
+ export { generateMcpConfig, writeMcpConfigFile, buildToolsPromptSection, resolveToolsForSpawn, } from './spawn.js';
10
+ export type { SpawnToolsResult } from './spawn.js';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tool Registry — Public API
3
+ */
4
+ export { COMMON_CLI_TOOLS, BUILTIN_PRLT_TOOL } from './types.js';
5
+ // Registry operations
6
+ export { getToolsConfigPath, loadToolRegistry, saveToolRegistry, getMcpServers, getCliTools, addMcpServer, addCliTool, removeTool, } from './registry.js';
7
+ // Detection and health
8
+ export { isCliToolAvailable, detectAvailableTools, checkAllTools, } from './detect.js';
9
+ // Policy
10
+ export { getPoliciesDir, loadToolPolicy, saveToolPolicy, listPolicies, filterByPolicy, } from './policy.js';
11
+ // Spawn-time integration
12
+ export { generateMcpConfig, writeMcpConfigFile, buildToolsPromptSection, resolveToolsForSpawn, } from './spawn.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/tool-registry/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEhE,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,uBAAuB;AACvB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,GACd,MAAM,aAAa,CAAA;AAEpB,SAAS;AACT,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAA;AAEpB,yBAAyB;AACzB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Tool Policy — Per-agent access control for tools
3
+ *
4
+ * Policy profiles are defined in YAML files under .proletariat/policies/.
5
+ * Each profile specifies which MCP servers and CLI tools an agent can access.
6
+ */
7
+ import type { ToolRegistry, ToolPolicy, McpServerConfig, CliToolConfig } from './types.js';
8
+ /**
9
+ * Get path to the policies directory.
10
+ */
11
+ export declare function getPoliciesDir(hqPath: string): string;
12
+ /**
13
+ * Load a tool policy by name.
14
+ * Looks in .proletariat/policies/{name}.yaml
15
+ */
16
+ export declare function loadToolPolicy(hqPath: string, policyName: string): ToolPolicy | null;
17
+ /**
18
+ * Save a tool policy.
19
+ */
20
+ export declare function saveToolPolicy(hqPath: string, policyName: string, policy: ToolPolicy): void;
21
+ /**
22
+ * List all available policy profiles.
23
+ */
24
+ export declare function listPolicies(hqPath: string): string[];
25
+ /**
26
+ * Filter registry by policy — returns only the tools the agent is allowed to use.
27
+ * If no policy is provided, returns all registered tools.
28
+ */
29
+ export declare function filterByPolicy(registry: ToolRegistry, policy: ToolPolicy | null): {
30
+ mcpServers: McpServerConfig[];
31
+ cliTools: CliToolConfig[];
32
+ };
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Tool Policy — Per-agent access control for tools
3
+ *
4
+ * Policy profiles are defined in YAML files under .proletariat/policies/.
5
+ * Each profile specifies which MCP servers and CLI tools an agent can access.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import yaml from 'js-yaml';
10
+ import { BUILTIN_PRLT_TOOL } from './types.js';
11
+ const POLICIES_DIR = 'policies';
12
+ /**
13
+ * Get path to the policies directory.
14
+ */
15
+ export function getPoliciesDir(hqPath) {
16
+ return path.join(hqPath, '.proletariat', POLICIES_DIR);
17
+ }
18
+ /**
19
+ * Load a tool policy by name.
20
+ * Looks in .proletariat/policies/{name}.yaml
21
+ */
22
+ export function loadToolPolicy(hqPath, policyName) {
23
+ const policyPath = path.join(getPoliciesDir(hqPath), `${policyName}.yaml`);
24
+ if (!fs.existsSync(policyPath)) {
25
+ return null;
26
+ }
27
+ try {
28
+ const content = fs.readFileSync(policyPath, 'utf-8');
29
+ const parsed = yaml.load(content);
30
+ return parsed?.tools ?? null;
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ /**
37
+ * Save a tool policy.
38
+ */
39
+ export function saveToolPolicy(hqPath, policyName, policy) {
40
+ const policiesDir = getPoliciesDir(hqPath);
41
+ fs.mkdirSync(policiesDir, { recursive: true });
42
+ const policyPath = path.join(policiesDir, `${policyName}.yaml`);
43
+ const content = yaml.dump({ tools: policy }, {
44
+ indent: 2,
45
+ lineWidth: 120,
46
+ noRefs: true,
47
+ });
48
+ fs.writeFileSync(policyPath, content, 'utf-8');
49
+ }
50
+ /**
51
+ * List all available policy profiles.
52
+ */
53
+ export function listPolicies(hqPath) {
54
+ const policiesDir = getPoliciesDir(hqPath);
55
+ if (!fs.existsSync(policiesDir))
56
+ return [];
57
+ return fs.readdirSync(policiesDir)
58
+ .filter(f => f.endsWith('.yaml') || f.endsWith('.yml'))
59
+ .map(f => f.replace(/\.(yaml|yml)$/, ''));
60
+ }
61
+ /**
62
+ * Filter registry by policy — returns only the tools the agent is allowed to use.
63
+ * If no policy is provided, returns all registered tools.
64
+ */
65
+ export function filterByPolicy(registry, policy) {
66
+ const allMcp = Object.entries(registry['mcp-servers']);
67
+ const allCli = Object.entries(registry['cli-tools']);
68
+ // No policy = full access
69
+ if (!policy) {
70
+ return {
71
+ mcpServers: allMcp.map(([name, config]) => ({ name, ...config })),
72
+ cliTools: [
73
+ ...allCli.map(([name, config]) => ({ name, ...config })),
74
+ // Always include prlt
75
+ ...(allCli.some(([name]) => name === 'prlt') ? [] : [BUILTIN_PRLT_TOOL]),
76
+ ],
77
+ };
78
+ }
79
+ // Filter MCP servers
80
+ const allowedMcp = new Set(policy.mcp || []);
81
+ const mcpServers = allMcp
82
+ .filter(([name]) => allowedMcp.has(name))
83
+ .map(([name, config]) => ({ name, ...config }));
84
+ // Filter CLI tools
85
+ const allowedCli = new Set(policy.cli || []);
86
+ // Always allow prlt
87
+ allowedCli.add('prlt');
88
+ const cliTools = allCli
89
+ .filter(([name]) => allowedCli.has(name))
90
+ .map(([name, config]) => ({ name, ...config }));
91
+ // Ensure prlt is always present
92
+ if (!cliTools.some(t => t.name === 'prlt')) {
93
+ cliTools.push(BUILTIN_PRLT_TOOL);
94
+ }
95
+ return { mcpServers, cliTools };
96
+ }
97
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/lib/tool-registry/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Tool Registry — Load, save, and manage tools.yaml config
3
+ *
4
+ * The tools.yaml file lives at .proletariat/tools.yaml in the HQ root.
5
+ * It registers MCP servers and CLI tools that agents can use.
6
+ */
7
+ import type { ToolRegistry, McpServerConfig, CliToolConfig } from './types.js';
8
+ /**
9
+ * Get the path to the tools.yaml file for a given HQ root.
10
+ */
11
+ export declare function getToolsConfigPath(hqPath: string): string;
12
+ /**
13
+ * Load the tool registry from .proletariat/tools.yaml.
14
+ * Returns an empty registry if the file doesn't exist.
15
+ */
16
+ export declare function loadToolRegistry(hqPath: string): ToolRegistry;
17
+ /**
18
+ * Save the tool registry to .proletariat/tools.yaml.
19
+ */
20
+ export declare function saveToolRegistry(hqPath: string, registry: ToolRegistry): void;
21
+ /**
22
+ * Get all MCP servers from the registry, hydrated with their names.
23
+ */
24
+ export declare function getMcpServers(registry: ToolRegistry): McpServerConfig[];
25
+ /**
26
+ * Get all CLI tools from the registry, hydrated with their names.
27
+ * Always includes the built-in prlt tool.
28
+ */
29
+ export declare function getCliTools(registry: ToolRegistry): CliToolConfig[];
30
+ /**
31
+ * Add an MCP server to the registry.
32
+ */
33
+ export declare function addMcpServer(hqPath: string, name: string, config: Omit<McpServerConfig, 'name'>): void;
34
+ /**
35
+ * Add a CLI tool to the registry.
36
+ */
37
+ export declare function addCliTool(hqPath: string, name: string, config: Omit<CliToolConfig, 'name'>): void;
38
+ /**
39
+ * Remove a tool (MCP or CLI) from the registry.
40
+ * Returns true if the tool was found and removed.
41
+ */
42
+ export declare function removeTool(hqPath: string, name: string): boolean;