@provos/ironcurtain 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +20 -12
  2. package/dist/cli.js +2 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/config-command.js +12 -3
  5. package/dist/config/config-command.js.map +1 -1
  6. package/dist/config/model-provider.d.ts +8 -2
  7. package/dist/config/model-provider.js +52 -9
  8. package/dist/config/model-provider.js.map +1 -1
  9. package/dist/config/paths.d.ts +6 -0
  10. package/dist/config/paths.js +18 -9
  11. package/dist/config/paths.js.map +1 -1
  12. package/dist/config/user-config.d.ts +9 -0
  13. package/dist/config/user-config.js +26 -5
  14. package/dist/config/user-config.js.map +1 -1
  15. package/dist/cron/compile-task-policy.js +1 -0
  16. package/dist/cron/compile-task-policy.js.map +1 -1
  17. package/dist/docker/adapters/claude-code.d.ts +2 -1
  18. package/dist/docker/adapters/claude-code.js +135 -120
  19. package/dist/docker/adapters/claude-code.js.map +1 -1
  20. package/dist/docker/agent-registry.js +3 -2
  21. package/dist/docker/agent-registry.js.map +1 -1
  22. package/dist/docker/container-lifecycle.d.ts +15 -0
  23. package/dist/docker/container-lifecycle.js +32 -0
  24. package/dist/docker/container-lifecycle.js.map +1 -0
  25. package/dist/docker/docker-agent-session.js +16 -23
  26. package/dist/docker/docker-agent-session.js.map +1 -1
  27. package/dist/docker/docker-infrastructure.d.ts +10 -0
  28. package/dist/docker/docker-infrastructure.js +71 -4
  29. package/dist/docker/docker-infrastructure.js.map +1 -1
  30. package/dist/docker/docker-manager.js +37 -0
  31. package/dist/docker/docker-manager.js.map +1 -1
  32. package/dist/docker/mitm-proxy.d.ts +6 -0
  33. package/dist/docker/mitm-proxy.js +343 -25
  34. package/dist/docker/mitm-proxy.js.map +1 -1
  35. package/dist/docker/oauth-credentials.d.ts +45 -6
  36. package/dist/docker/oauth-credentials.js +151 -24
  37. package/dist/docker/oauth-credentials.js.map +1 -1
  38. package/dist/docker/oauth-token-manager.d.ts +15 -16
  39. package/dist/docker/oauth-token-manager.js +23 -17
  40. package/dist/docker/oauth-token-manager.js.map +1 -1
  41. package/dist/docker/provider-config.d.ts +32 -0
  42. package/dist/docker/provider-config.js +20 -0
  43. package/dist/docker/provider-config.js.map +1 -1
  44. package/dist/docker/pty-session.js +14 -22
  45. package/dist/docker/pty-session.js.map +1 -1
  46. package/dist/docker/types.d.ts +8 -0
  47. package/dist/index.js +8 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/mux/mux-app.d.ts +2 -0
  50. package/dist/mux/mux-app.js +48 -37
  51. package/dist/mux/mux-app.js.map +1 -1
  52. package/dist/mux/mux-command.js +7 -1
  53. package/dist/mux/mux-command.js.map +1 -1
  54. package/dist/mux/mux-input-handler.d.ts +2 -0
  55. package/dist/mux/mux-input-handler.js +6 -4
  56. package/dist/mux/mux-input-handler.js.map +1 -1
  57. package/dist/mux/mux-renderer.js +20 -5
  58. package/dist/mux/mux-renderer.js.map +1 -1
  59. package/dist/mux/pty-bridge.d.ts +2 -0
  60. package/dist/mux/pty-bridge.js +3 -0
  61. package/dist/mux/pty-bridge.js.map +1 -1
  62. package/dist/mux/session-scanner.d.ts +7 -0
  63. package/dist/mux/session-scanner.js +21 -1
  64. package/dist/mux/session-scanner.js.map +1 -1
  65. package/dist/mux/types.d.ts +0 -4
  66. package/dist/mux/types.js.map +1 -1
  67. package/dist/persona/compile-persona-policy.js +1 -0
  68. package/dist/persona/compile-persona-policy.js.map +1 -1
  69. package/dist/pipeline/annotate.d.ts +7 -1
  70. package/dist/pipeline/annotate.js +92 -2
  71. package/dist/pipeline/annotate.js.map +1 -1
  72. package/dist/pipeline/compile.js +2 -0
  73. package/dist/pipeline/compile.js.map +1 -1
  74. package/dist/pipeline/llm-logger.d.ts +1 -0
  75. package/dist/pipeline/llm-logger.js +8 -1
  76. package/dist/pipeline/llm-logger.js.map +1 -1
  77. package/dist/pipeline/parallel-progress.d.ts +59 -0
  78. package/dist/pipeline/parallel-progress.js +263 -0
  79. package/dist/pipeline/parallel-progress.js.map +1 -0
  80. package/dist/pipeline/pipeline-runner.d.ts +49 -8
  81. package/dist/pipeline/pipeline-runner.js +375 -226
  82. package/dist/pipeline/pipeline-runner.js.map +1 -1
  83. package/dist/pipeline/pipeline-shared.d.ts +58 -0
  84. package/dist/pipeline/pipeline-shared.js +124 -1
  85. package/dist/pipeline/pipeline-shared.js.map +1 -1
  86. package/dist/pipeline/server-prefilter.d.ts +31 -0
  87. package/dist/pipeline/server-prefilter.js +115 -0
  88. package/dist/pipeline/server-prefilter.js.map +1 -0
  89. package/dist/pipeline/types.d.ts +5 -0
  90. package/dist/session/preflight.js +15 -16
  91. package/dist/session/preflight.js.map +1 -1
  92. package/dist/trusted-process/sandbox-integration.js +8 -0
  93. package/dist/trusted-process/sandbox-integration.js.map +1 -1
  94. package/docker/Dockerfile.base +3 -1
  95. package/docker/Dockerfile.base.arm64 +8 -1
  96. package/package.json +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mux/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mux/types.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export async function compilePersonaPolicy(name) {
45
45
  protectedPaths: config.protectedPaths,
46
46
  mcpServers,
47
47
  includeHandwrittenScenarios: false,
48
+ prefilterText: constitutionText,
48
49
  });
49
50
  }
50
51
  //# sourceMappingURL=compile-persona-policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile-persona-policy.js","sourceRoot":"","sources":["../../src/persona/compile-persona-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIrH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAiB;IAC1D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,mBAAmB,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IAE1C,sDAAsD;IACtD,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,UAAU,GAAG,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,iBAAiB,EAAE,gBAAgB;QACnC,gBAAgB,EAAE,cAAc;QAChC,SAAS;QACT,kBAAkB,EAAE,cAAc;QAClC,0BAA0B,EAAE,sBAAsB,EAAE;QACpD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,UAAU;QACV,2BAA2B,EAAE,KAAK;KACnC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"compile-persona-policy.js","sourceRoot":"","sources":["../../src/persona/compile-persona-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIrH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAiB;IAC1D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,mBAAmB,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IAE1C,sDAAsD;IACtD,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,UAAU,GAAG,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,iBAAiB,EAAE,gBAAgB;QACnC,gBAAgB,EAAE,cAAc;QAChC,SAAS;QACT,kBAAkB,EAAE,cAAc;QAClC,0BAA0B,EAAE,sBAAsB,EAAE;QACpD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,UAAU;QACV,2BAA2B,EAAE,KAAK;QAClC,aAAa,EAAE,gBAAgB;KAChC,CAAC,CAAC;AACL,CAAC"}
@@ -6,4 +6,10 @@
6
6
  * needs to run when MCP servers, their tools, or the argument role
7
7
  * registry change.
8
8
  */
9
- export declare function main(): Promise<void>;
9
+ export interface AnnotateToolsCliArgs {
10
+ server?: string;
11
+ all: boolean;
12
+ help: boolean;
13
+ }
14
+ export declare function parseAnnotateArgs(argv?: string[]): AnnotateToolsCliArgs;
15
+ export declare function main(argv?: string[]): Promise<void>;
@@ -8,13 +8,49 @@
8
8
  */
9
9
  import { resolve } from 'node:path';
10
10
  import { fileURLToPath } from 'node:url';
11
+ import { parseArgs } from 'node:util';
11
12
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
12
13
  import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
13
14
  import { permissiveJsonSchemaValidator } from '../trusted-process/permissive-output-validator.js';
14
15
  import chalk from 'chalk';
16
+ import { checkHelp, printHelp } from '../cli-help.js';
15
17
  import { computeHash, createPipelineLlm, loadExistingArtifact, loadPipelineConfig, showCached, writeArtifact, withSpinner, } from './pipeline-shared.js';
16
18
  import { annotateTools, buildAnnotationPrompt } from './tool-annotator.js';
17
19
  import { VERSION } from '../version.js';
20
+ // ---------------------------------------------------------------------------
21
+ // CLI Argument Parsing
22
+ // ---------------------------------------------------------------------------
23
+ const ANNOTATE_HELP = {
24
+ name: 'ironcurtain annotate-tools',
25
+ description: 'Classify MCP tool arguments via LLM',
26
+ usage: ['ironcurtain annotate-tools --server <name>', 'ironcurtain annotate-tools --all'],
27
+ options: [
28
+ { flag: 'server', description: 'Annotate only this MCP server (required unless --all)', placeholder: '<name>' },
29
+ { flag: 'all', description: 'Annotate all MCP servers' },
30
+ { flag: 'help', short: 'h', description: 'Show this help message' },
31
+ ],
32
+ examples: [
33
+ 'ironcurtain annotate-tools --server filesystem',
34
+ 'ironcurtain annotate-tools --server github',
35
+ 'ironcurtain annotate-tools --all',
36
+ ],
37
+ };
38
+ export function parseAnnotateArgs(argv = process.argv.slice(2)) {
39
+ const { values } = parseArgs({
40
+ args: argv,
41
+ options: {
42
+ server: { type: 'string' },
43
+ all: { type: 'boolean' },
44
+ help: { type: 'boolean', short: 'h' },
45
+ },
46
+ strict: true,
47
+ });
48
+ return {
49
+ server: typeof values.server === 'string' ? values.server : undefined,
50
+ all: values.all === true,
51
+ help: values.help === true,
52
+ };
53
+ }
18
54
  async function connectAndDiscoverTools(mcpServers) {
19
55
  const { result } = await withSpinner('[1/2] Connecting to MCP servers', async (spinner) => {
20
56
  const connections = new Map();
@@ -110,13 +146,41 @@ async function disconnectAll(connections) {
110
146
  // ---------------------------------------------------------------------------
111
147
  // Main
112
148
  // ---------------------------------------------------------------------------
113
- export async function main() {
149
+ export async function main(argv) {
150
+ let cliArgs;
151
+ try {
152
+ cliArgs = parseAnnotateArgs(argv);
153
+ }
154
+ catch (err) {
155
+ console.error(chalk.red(err instanceof Error ? err.message : String(err)));
156
+ console.error('');
157
+ printHelp(ANNOTATE_HELP);
158
+ process.exit(1);
159
+ }
160
+ if (checkHelp(cliArgs, ANNOTATE_HELP))
161
+ return;
162
+ if (cliArgs.server && cliArgs.all) {
163
+ console.error(chalk.red('Error: --server and --all cannot be used together.'));
164
+ process.exit(1);
165
+ }
166
+ if (!cliArgs.server && !cliArgs.all) {
167
+ console.error(chalk.red('Error: specify --server <name> or --all.'));
168
+ console.error('');
169
+ printHelp(ANNOTATE_HELP);
170
+ process.exit(1);
171
+ }
114
172
  // The pipeline only lists tools — it never reads/writes through MCP servers.
115
173
  // Set a valid ALLOWED_DIRECTORY so the filesystem server can start.
116
174
  if (!process.env.ALLOWED_DIRECTORY) {
117
175
  process.env.ALLOWED_DIRECTORY = process.cwd();
118
176
  }
119
177
  const config = loadPipelineConfig();
178
+ if (cliArgs.server && !Object.hasOwn(config.mcpServers, cliArgs.server)) {
179
+ const available = Object.keys(config.mcpServers).join(', ');
180
+ console.error(chalk.red(`Error: unknown server '${cliArgs.server}'.`));
181
+ console.error(`Available servers: ${available}`);
182
+ process.exit(1);
183
+ }
120
184
  console.error(chalk.bold('Tool Annotation Pipeline'));
121
185
  console.error(chalk.bold('========================'));
122
186
  console.error('');
@@ -124,10 +188,20 @@ export async function main() {
124
188
  console.error(chalk.yellow(' This is a developer tool and should not be run lightly. All annotation'));
125
189
  console.error(chalk.yellow(' output must be manually reviewed for correctness before use in production.'));
126
190
  console.error('');
191
+ if (cliArgs.server) {
192
+ console.error(`Server: ${chalk.bold(cliArgs.server)}`);
193
+ }
127
194
  console.error(`Output: ${chalk.dim(config.generatedDir + '/')}`);
128
195
  console.error('');
129
196
  const { model: llm, logContext, logPath } = await createPipelineLlm(config.generatedDir, 'annotate');
130
- const connections = await connectAndDiscoverTools(config.mcpServers);
197
+ const serversToAnnotate = cliArgs.server
198
+ ? { [cliArgs.server]: config.mcpServers[cliArgs.server] }
199
+ : config.mcpServers;
200
+ const connections = await connectAndDiscoverTools(serversToAnnotate);
201
+ if (cliArgs.server && !connections.has(cliArgs.server)) {
202
+ console.error(chalk.red(`Error: failed to connect to server '${cliArgs.server}'.`));
203
+ process.exit(1);
204
+ }
131
205
  try {
132
206
  const existingAnnotations = loadExistingArtifact(config.generatedDir, 'tool-annotations.json', config.packageGeneratedDir);
133
207
  const annotationResults = new Map();
@@ -137,6 +211,22 @@ export async function main() {
137
211
  annotationResults.set(serverName, result);
138
212
  }
139
213
  const toolAnnotationsFile = buildAnnotationsArtifact(annotationResults);
214
+ if (existingAnnotations) {
215
+ for (const [name, data] of Object.entries(existingAnnotations.servers)) {
216
+ if (Object.hasOwn(toolAnnotationsFile.servers, name))
217
+ continue;
218
+ if (cliArgs.server) {
219
+ // Single-server mode: preserve all other servers
220
+ toolAnnotationsFile.servers[name] = data;
221
+ }
222
+ else if (Object.hasOwn(serversToAnnotate, name)) {
223
+ // --all mode: preserve annotations for servers that were requested
224
+ // but failed to connect (don't drop them silently)
225
+ toolAnnotationsFile.servers[name] = data;
226
+ }
227
+ // --all mode: servers not in config are intentionally dropped
228
+ }
229
+ }
140
230
  writeArtifact(config.generatedDir, 'tool-annotations.json', toolAnnotationsFile);
141
231
  const totalTools = [...annotationResults.values()].reduce((sum, r) => sum + r.annotations.length, 0);
142
232
  console.error('');
@@ -1 +1 @@
1
- {"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/pipeline/annotate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/pipeline/annotate.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { resolve } from 'node:path';
15
15
  import { fileURLToPath } from 'node:url';
16
16
  import { parseArgs } from 'node:util';
17
17
  import chalk from 'chalk';
18
+ import { loadUserConstitutionText } from '../config/paths.js';
18
19
  import { loadPipelineConfig, loadStoredToolAnnotationsFile } from './pipeline-shared.js';
19
20
  import { PipelineRunner, createPipelineModels } from './pipeline-runner.js';
20
21
  // Re-export utilities that test files import from this file.
@@ -84,6 +85,7 @@ export async function main() {
84
85
  llmLogPath: models.logPath,
85
86
  preloadedStoredAnnotations: storedAnnotationsFile,
86
87
  serverFilter: cliArgs.server ? [cliArgs.server] : undefined,
88
+ prefilterText: cliArgs.constitution ? config.constitutionText : loadUserConstitutionText(),
87
89
  });
88
90
  }
89
91
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/pipeline/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/pipeline/compile.ts"],"names":[],"mappings":"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"}
@@ -47,4 +47,5 @@ export interface LlmLogContext {
47
47
  */
48
48
  export declare function createLlmLoggingMiddleware(logPath: string, context: LlmLogContext, options?: {
49
49
  deltaLogging?: boolean;
50
+ appendOnly?: boolean;
50
51
  }): LanguageModelMiddleware;
@@ -25,7 +25,14 @@ import { dirname } from 'node:path';
25
25
  * pipeline where each step starts a fresh conversation). Defaults to false.
26
26
  */
27
27
  export function createLlmLoggingMiddleware(logPath, context, options) {
28
- initLogFile(logPath);
28
+ if (options?.appendOnly) {
29
+ // Ensure the directory exists without truncating the file.
30
+ // Used by per-server models whose log file is already initialized.
31
+ mkdirSync(dirname(logPath), { recursive: true });
32
+ }
33
+ else {
34
+ initLogFile(logPath);
35
+ }
29
36
  const deltaLogging = options?.deltaLogging ?? false;
30
37
  // Track how many prompt items were logged so far to enable delta logging.
31
38
  let previousPromptLength = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"llm-logger.js","sourceRoot":"","sources":["../../src/pipeline/llm-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-logger.js","sourceRoot":"","sources":["../../src/pipeline/llm-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Parallel compilation progress display.
3
+ *
4
+ * Provides a multi-line status table for TTY output and a line-based
5
+ * fallback for non-TTY (CI, piped output). Each server gets a fixed
6
+ * line showing its current phase, elapsed time, and detail.
7
+ *
8
+ * Warnings and errors are buffered per-server and flushed after the
9
+ * table is torn down, so the multi-line display is never corrupted.
10
+ */
11
+ import type { CompilationPhase, ServerProgressReporter } from './pipeline-shared.js';
12
+ /**
13
+ * Multi-line TTY progress display for parallel server compilation.
14
+ * Allocates one line per server and updates in place using ANSI escapes.
15
+ * Falls back to line-based logging on non-TTY stderr.
16
+ */
17
+ export declare class ParallelProgressDisplay {
18
+ private readonly serverNames;
19
+ private readonly states;
20
+ private readonly isTTY;
21
+ private readonly maxNameLength;
22
+ private linesWritten;
23
+ private finished;
24
+ private refreshTimer;
25
+ constructor(serverNames: string[]);
26
+ updateServer(name: string, phase: CompilationPhase | 'FAILED', detail?: string): void;
27
+ bufferWarning(name: string, message: string): void;
28
+ captureError(name: string, error: Error): void;
29
+ setDone(name: string, summary: string): void;
30
+ /**
31
+ * Tears down the multi-line table, prints the summary table,
32
+ * and flushes per-server warnings/errors.
33
+ */
34
+ finish(): void;
35
+ /** Gets the state for a server. All names were set in the constructor. */
36
+ private getState;
37
+ private drawInitialTable;
38
+ private redrawServer;
39
+ private stopRefreshTimer;
40
+ /** Redraws all servers that are still in an active (non-terminal) phase. */
41
+ private redrawAllActive;
42
+ private formatServerLine;
43
+ private logLineBasedUpdate;
44
+ private flushDiagnostics;
45
+ }
46
+ /**
47
+ * Progress reporter for a single server, backed by ParallelProgressDisplay.
48
+ * Buffers warnings and routes phase transitions to the display.
49
+ */
50
+ export declare class ParallelProgressReporter implements ServerProgressReporter {
51
+ private readonly display;
52
+ private readonly serverName;
53
+ constructor(display: ParallelProgressDisplay, serverName: string);
54
+ update(phase: CompilationPhase, detail?: string): void;
55
+ complete(phase: CompilationPhase, summary: string, elapsed: number): void;
56
+ warn(message: string): void;
57
+ fail(phase: CompilationPhase, error: Error): void;
58
+ done(summary: string): void;
59
+ }
@@ -0,0 +1,263 @@
1
+ /**
2
+ * Parallel compilation progress display.
3
+ *
4
+ * Provides a multi-line status table for TTY output and a line-based
5
+ * fallback for non-TTY (CI, piped output). Each server gets a fixed
6
+ * line showing its current phase, elapsed time, and detail.
7
+ *
8
+ * Warnings and errors are buffered per-server and flushed after the
9
+ * table is torn down, so the multi-line display is never corrupted.
10
+ */
11
+ import chalk from 'chalk';
12
+ // ---------------------------------------------------------------------------
13
+ // ParallelProgressDisplay
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * Multi-line TTY progress display for parallel server compilation.
17
+ * Allocates one line per server and updates in place using ANSI escapes.
18
+ * Falls back to line-based logging on non-TTY stderr.
19
+ */
20
+ export class ParallelProgressDisplay {
21
+ serverNames;
22
+ states;
23
+ isTTY;
24
+ maxNameLength;
25
+ linesWritten = 0;
26
+ finished = false;
27
+ refreshTimer;
28
+ constructor(serverNames) {
29
+ this.serverNames = serverNames;
30
+ this.isTTY = process.stderr.isTTY;
31
+ this.maxNameLength = serverNames.length > 0 ? Math.max(...serverNames.map((n) => n.length)) : 0;
32
+ this.states = new Map();
33
+ const now = Date.now();
34
+ for (const name of serverNames) {
35
+ this.states.set(name, {
36
+ phase: 'pending',
37
+ startTime: now,
38
+ phaseStartTime: now,
39
+ warnings: [],
40
+ });
41
+ }
42
+ if (this.isTTY && serverNames.length > 0) {
43
+ this.drawInitialTable();
44
+ this.refreshTimer = setInterval(() => this.redrawAllActive(), 1000);
45
+ }
46
+ }
47
+ updateServer(name, phase, detail) {
48
+ const state = this.states.get(name);
49
+ if (!state || this.finished)
50
+ return;
51
+ const phaseChanged = state.phase !== phase;
52
+ state.phase = phase;
53
+ state.detail = detail;
54
+ if (phaseChanged) {
55
+ state.phaseStartTime = Date.now();
56
+ }
57
+ if (this.isTTY) {
58
+ this.redrawServer(name);
59
+ }
60
+ else if (phaseChanged) {
61
+ this.logLineBasedUpdate(name, state);
62
+ }
63
+ }
64
+ bufferWarning(name, message) {
65
+ const state = this.states.get(name);
66
+ if (state) {
67
+ state.warnings.push(message);
68
+ }
69
+ }
70
+ captureError(name, error) {
71
+ const state = this.states.get(name);
72
+ if (state) {
73
+ state.error = error;
74
+ state.phase = 'FAILED';
75
+ }
76
+ if (this.isTTY) {
77
+ this.redrawServer(name);
78
+ }
79
+ else {
80
+ process.stderr.write(` ${name.padEnd(this.maxNameLength)} [FAILED] ${error.message}\n`);
81
+ }
82
+ }
83
+ setDone(name, summary) {
84
+ const state = this.states.get(name);
85
+ if (!state)
86
+ return;
87
+ state.phase = 'done';
88
+ state.summary = summary;
89
+ if (this.isTTY) {
90
+ this.redrawServer(name);
91
+ }
92
+ else {
93
+ process.stderr.write(` ${name.padEnd(this.maxNameLength)} [done] ${summary}\n`);
94
+ }
95
+ }
96
+ /**
97
+ * Tears down the multi-line table, prints the summary table,
98
+ * and flushes per-server warnings/errors.
99
+ */
100
+ finish() {
101
+ this.finished = true;
102
+ this.stopRefreshTimer();
103
+ if (this.isTTY) {
104
+ // Do a final redraw so elapsed times are current in the table
105
+ this.redrawAllActive();
106
+ }
107
+ // Print summary table
108
+ process.stderr.write('\n');
109
+ for (const name of this.serverNames) {
110
+ const state = this.getState(name);
111
+ const totalElapsed = ((Date.now() - state.startTime) / 1000).toFixed(1);
112
+ if (state.phase === 'FAILED') {
113
+ process.stderr.write(` ${chalk.red(name.padEnd(this.maxNameLength))} FAILED (${totalElapsed}s)\n`);
114
+ }
115
+ else if (state.phase === 'done') {
116
+ process.stderr.write(` ${chalk.green(name.padEnd(this.maxNameLength))} ${state.summary ?? 'done'} (${totalElapsed}s)\n`);
117
+ }
118
+ else if (state.phase === 'cached') {
119
+ process.stderr.write(` ${chalk.green(name.padEnd(this.maxNameLength))} cached (${totalElapsed}s)\n`);
120
+ }
121
+ else {
122
+ process.stderr.write(` ${chalk.yellow(name.padEnd(this.maxNameLength))} ${state.phase} (${totalElapsed}s)\n`);
123
+ }
124
+ }
125
+ // Flush per-server warnings and errors
126
+ this.flushDiagnostics();
127
+ }
128
+ /** Gets the state for a server. All names were set in the constructor. */
129
+ getState(name) {
130
+ const state = this.states.get(name);
131
+ if (!state)
132
+ throw new Error(`Unknown server: ${name}`);
133
+ return state;
134
+ }
135
+ // -------------------------------------------------------------------------
136
+ // TTY rendering
137
+ // -------------------------------------------------------------------------
138
+ drawInitialTable() {
139
+ process.stderr.write('\n');
140
+ for (const name of this.serverNames) {
141
+ process.stderr.write(this.formatServerLine(name) + '\n');
142
+ }
143
+ this.linesWritten = this.serverNames.length;
144
+ }
145
+ redrawServer(name) {
146
+ const index = this.serverNames.indexOf(name);
147
+ if (index === -1)
148
+ return;
149
+ // Calculate how many lines up from the current cursor position
150
+ const linesUp = this.linesWritten - index;
151
+ // Move cursor up, clear line, write, then move back down
152
+ process.stderr.write(`\x1B[${linesUp}A\x1B[2K${this.formatServerLine(name)}\x1B[${linesUp}B\x1B[0G`);
153
+ }
154
+ stopRefreshTimer() {
155
+ if (this.refreshTimer) {
156
+ clearInterval(this.refreshTimer);
157
+ this.refreshTimer = undefined;
158
+ }
159
+ }
160
+ /** Redraws all servers that are still in an active (non-terminal) phase. */
161
+ redrawAllActive() {
162
+ for (const name of this.serverNames) {
163
+ const state = this.states.get(name);
164
+ if (state && state.phase !== 'done' && state.phase !== 'FAILED' && state.phase !== 'cached') {
165
+ this.redrawServer(name);
166
+ }
167
+ }
168
+ }
169
+ formatServerLine(name) {
170
+ const state = this.getState(name);
171
+ const paddedName = name.padEnd(this.maxNameLength);
172
+ const elapsed = ((Date.now() - state.phaseStartTime) / 1000).toFixed(0);
173
+ const phaseText = formatPhaseTag(state.phase);
174
+ const detail = state.detail ? ` ${chalk.dim(state.detail)}` : '';
175
+ if (state.phase === 'done') {
176
+ return ` ${chalk.green(paddedName)} ${phaseText} ${chalk.dim(state.summary ?? '')}`;
177
+ }
178
+ if (state.phase === 'FAILED') {
179
+ return ` ${chalk.red(paddedName)} ${phaseText} ${chalk.dim(state.error?.message ?? '')}`;
180
+ }
181
+ if (state.phase === 'cached') {
182
+ return ` ${chalk.green(paddedName)} ${phaseText}`;
183
+ }
184
+ return ` ${paddedName} ${phaseText} ${chalk.dim(`(${elapsed}s)`)}${detail}`;
185
+ }
186
+ // -------------------------------------------------------------------------
187
+ // Non-TTY fallback
188
+ // -------------------------------------------------------------------------
189
+ logLineBasedUpdate(name, state) {
190
+ const elapsed = ((Date.now() - state.startTime) / 1000).toFixed(1);
191
+ process.stderr.write(` ${name.padEnd(this.maxNameLength)} [${state.phase}] (${elapsed}s)\n`);
192
+ }
193
+ // -------------------------------------------------------------------------
194
+ // Diagnostics flush
195
+ // -------------------------------------------------------------------------
196
+ flushDiagnostics() {
197
+ for (const name of this.serverNames) {
198
+ const state = this.getState(name);
199
+ const hasOutput = state.warnings.length > 0 || state.error;
200
+ if (!hasOutput)
201
+ continue;
202
+ const statusLabel = state.phase === 'FAILED' ? 'FAILED' : `${state.warnings.length} warning(s)`;
203
+ process.stderr.write(`\n--- ${name} (${statusLabel}) ---\n`);
204
+ for (const warning of state.warnings) {
205
+ process.stderr.write(`${warning}\n`);
206
+ }
207
+ if (state.error) {
208
+ process.stderr.write(` ${chalk.red(state.error.message)}\n`);
209
+ }
210
+ }
211
+ }
212
+ }
213
+ // ---------------------------------------------------------------------------
214
+ // ParallelProgressReporter
215
+ // ---------------------------------------------------------------------------
216
+ /**
217
+ * Progress reporter for a single server, backed by ParallelProgressDisplay.
218
+ * Buffers warnings and routes phase transitions to the display.
219
+ */
220
+ export class ParallelProgressReporter {
221
+ display;
222
+ serverName;
223
+ constructor(display, serverName) {
224
+ this.display = display;
225
+ this.serverName = serverName;
226
+ }
227
+ update(phase, detail) {
228
+ this.display.updateServer(this.serverName, phase, detail);
229
+ }
230
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars -- interface conformance
231
+ complete(phase, summary, elapsed) {
232
+ // For parallel mode, we update the phase display rather than
233
+ // printing a completion message. The summary is shown in finish().
234
+ this.display.updateServer(this.serverName, phase);
235
+ }
236
+ warn(message) {
237
+ this.display.bufferWarning(this.serverName, message);
238
+ }
239
+ fail(phase, error) {
240
+ this.display.captureError(this.serverName, error);
241
+ }
242
+ done(summary) {
243
+ this.display.setDone(this.serverName, summary);
244
+ }
245
+ }
246
+ // ---------------------------------------------------------------------------
247
+ // Helpers
248
+ // ---------------------------------------------------------------------------
249
+ function formatPhaseTag(phase) {
250
+ switch (phase) {
251
+ case 'cached':
252
+ return chalk.green('[cached]');
253
+ case 'done':
254
+ return chalk.green('[done]');
255
+ case 'FAILED':
256
+ return chalk.red('[FAILED]');
257
+ case 'pending':
258
+ return chalk.dim('[pending]');
259
+ default:
260
+ return chalk.cyan(`[${phase}]`);
261
+ }
262
+ }
263
+ //# sourceMappingURL=parallel-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallel-progress.js","sourceRoot":"","sources":["../../src/pipeline/parallel-progress.ts"],"names":[],"mappings":"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"}