@paradigma-inc/flywheel 0.1.95 → 0.1.99

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 (30) hide show
  1. package/README.md +22 -4
  2. package/package.json +2 -1
  3. package/skills/flywheel-llm-proof-paper/SKILL.md +156 -0
  4. package/skills/flywheel-llm-proof-paper/agents/openai.yaml +4 -0
  5. package/skills/flywheel-llm-proof-paper/references/checks.md +60 -0
  6. package/skills/flywheel-llm-proof-paper/scripts/__pycache__/check_paper.cpython-311.pyc +0 -0
  7. package/skills/flywheel-llm-proof-paper/scripts/check_paper.py +1065 -0
  8. package/src/cli.mjs +27 -3
  9. package/src/public-command-metadata.mjs +44 -0
  10. package/src/runtime/vendor/flywheel-cli-dist/commands/_wait-polling.d.ts +21 -0
  11. package/src/runtime/vendor/flywheel-cli-dist/commands/_wait-polling.js +68 -2
  12. package/src/runtime/vendor/flywheel-cli-dist/commands/_wait-polling.js.map +1 -1
  13. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-acquire.js +2 -8
  14. package/src/runtime/vendor/flywheel-cli-dist/commands/compute-acquire.js.map +1 -1
  15. package/src/runtime/vendor/flywheel-cli-dist/commands/feedback-create.js +4 -0
  16. package/src/runtime/vendor/flywheel-cli-dist/commands/feedback-create.js.map +1 -1
  17. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/compute.js +1 -1
  18. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/compute.js.map +1 -1
  19. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/resources.js +16 -0
  20. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/resources.js.map +1 -1
  21. package/src/runtime/vendor/manifest.json +1 -1
  22. package/src/setup/shared/prior-mode-detect.mjs +76 -9
  23. package/src/unified-cli.mjs +54 -16
  24. package/src/update/cache.mjs +124 -0
  25. package/src/update/command.mjs +438 -0
  26. package/src/update/install-state.mjs +135 -0
  27. package/src/update/refresh.mjs +393 -0
  28. package/src/update/registry.mjs +35 -0
  29. package/src/update/version.mjs +59 -0
  30. package/src/update/warning.mjs +109 -0
package/src/cli.mjs CHANGED
@@ -1193,8 +1193,11 @@ async function runUninstallCommand(options) {
1193
1193
  log.blank();
1194
1194
  }
1195
1195
 
1196
- function buildProgram() {
1196
+ function buildProgram({ exitOverride = false } = {}) {
1197
1197
  const program = new Command();
1198
+ if (exitOverride) {
1199
+ program.exitOverride();
1200
+ }
1198
1201
  program
1199
1202
  .name("flywheel")
1200
1203
  .description("Flywheel setup CLI")
@@ -1250,6 +1253,10 @@ Examples:
1250
1253
  )
1251
1254
  .action(async (shell, options) => {
1252
1255
  if (!shell) {
1256
+ if (exitOverride) {
1257
+ completionCommand.outputHelp();
1258
+ return;
1259
+ }
1253
1260
  completionCommand.help();
1254
1261
  return;
1255
1262
  }
@@ -1445,18 +1452,35 @@ Next steps:
1445
1452
  return program;
1446
1453
  }
1447
1454
 
1448
- export async function runCli(argv = process.argv) {
1455
+ export async function runCli(argv = process.argv, { exitOverride = false } = {}) {
1449
1456
  try {
1450
- const program = buildProgram();
1457
+ const program = buildProgram({ exitOverride });
1451
1458
  await program.parseAsync(argv);
1459
+ return process.exitCode ?? 0;
1452
1460
  } catch (error) {
1453
1461
  if (error instanceof Error && error.name === "ExitPromptError") {
1462
+ if (exitOverride) {
1463
+ return 0;
1464
+ }
1454
1465
  process.exit(0);
1455
1466
  }
1456
1467
  if (error instanceof Error && /cancelled/i.test(error.message)) {
1457
1468
  log.warn(error.message);
1469
+ if (exitOverride) {
1470
+ return 0;
1471
+ }
1458
1472
  process.exit(0);
1459
1473
  }
1474
+ if (
1475
+ exitOverride &&
1476
+ error &&
1477
+ typeof error === "object" &&
1478
+ typeof error.code === "string" &&
1479
+ error.code.startsWith("commander.") &&
1480
+ Number.isInteger(error.exitCode)
1481
+ ) {
1482
+ return error.exitCode;
1483
+ }
1460
1484
  throw error;
1461
1485
  }
1462
1486
  }
@@ -58,6 +58,11 @@ export const HELP_EXTRAS = [
58
58
  name: "setup",
59
59
  summary: "Install Flywheel CLI + MCP + skills.",
60
60
  },
61
+ {
62
+ group: "setup-admin",
63
+ name: "update",
64
+ summary: "Update Flywheel CLI and refresh local setup artifacts.",
65
+ },
61
66
  {
62
67
  group: "setup-admin",
63
68
  name: "uninstall",
@@ -332,6 +337,45 @@ export const USAGE_EXTRAS = [
332
337
  ],
333
338
  related: ["uninstall"],
334
339
  },
340
+ {
341
+ group: "setup-admin",
342
+ name: "update",
343
+ summary: "Update the local Flywheel CLI package and setup artifacts",
344
+ endpoints: [],
345
+ required: [],
346
+ optional: [
347
+ {
348
+ name: "check",
349
+ type: "boolean",
350
+ description: "Print installed/latest status without changing files",
351
+ },
352
+ {
353
+ name: "dry-run",
354
+ type: "boolean",
355
+ description: "Print planned package and local setup refresh steps",
356
+ },
357
+ {
358
+ name: "yes",
359
+ type: "boolean",
360
+ description: "Run prompt-free for agent execution",
361
+ },
362
+ ],
363
+ examples: [
364
+ {
365
+ description: "Update the Flywheel CLI and refresh local setup",
366
+ invocation: "flywheel update --yes",
367
+ },
368
+ {
369
+ description: "Check whether a newer public package is available",
370
+ invocation: "flywheel update --check",
371
+ },
372
+ {
373
+ description: "Preview update and refresh steps",
374
+ invocation: "flywheel update --dry-run",
375
+ },
376
+ ],
377
+ related: ["setup", "uninstall"],
378
+ },
335
379
  {
336
380
  group: "setup-admin",
337
381
  name: "uninstall",
@@ -2,6 +2,7 @@ import type { CommandContext } from './types.js';
2
2
  interface ComputeLeaseSummary {
3
3
  lease_id?: string;
4
4
  status?: string;
5
+ error?: string | null;
5
6
  }
6
7
  interface ComputeStatusResponse {
7
8
  compute?: {
@@ -12,7 +13,27 @@ interface ComputeStatusResponse {
12
13
  state?: string;
13
14
  leases?: ComputeLeaseSummary[];
14
15
  }
16
+ interface ComputeConnectionPayload {
17
+ lease_status?: string;
18
+ host?: string | null;
19
+ port?: number | null;
20
+ user?: string | null;
21
+ private_key?: string | null;
22
+ }
23
+ interface ComputeConnectionResponse {
24
+ compute?: ComputeConnectionPayload | null;
25
+ lease_status?: string;
26
+ host?: string | null;
27
+ port?: number | null;
28
+ user?: string | null;
29
+ private_key?: string | null;
30
+ }
31
+ interface ComputeConnectionPollState {
32
+ status: ComputeStatusResponse;
33
+ connection: ComputeConnectionResponse;
34
+ }
15
35
  export declare function pollComputeStatusByToken(context: CommandContext, token: string, terminalStates: ReadonlySet<string>, commandName: string): Promise<ComputeStatusResponse>;
36
+ export declare function pollComputeConnectionReadinessByToken(context: CommandContext, token: string, commandName: string): Promise<ComputeConnectionPollState>;
16
37
  interface GrantsListResponse {
17
38
  grants?: Array<{
18
39
  status?: string;
@@ -1,7 +1,11 @@
1
1
  import { pollUntilTerminal } from '../http/poll.js';
2
+ import { EXIT_TRANSPORT } from '../exit-codes.js';
3
+ import { CliHttpError } from '../http/client.js';
4
+ function extractLeases(result) {
5
+ return result?.compute?.leases ?? result?.leases ?? [];
6
+ }
2
7
  function extractLeaseStatuses(result) {
3
- const leases = result?.compute?.leases ?? result?.leases ?? [];
4
- return leases
8
+ return extractLeases(result)
5
9
  .map((lease) => (typeof lease?.status === 'string' ? lease.status : null))
6
10
  .filter((status) => status !== null);
7
11
  }
@@ -17,6 +21,43 @@ function resolveEffectiveState(result) {
17
21
  }
18
22
  return result?.compute?.state ?? result?.state ?? null;
19
23
  }
24
+ function connectionPayload(result) {
25
+ return result?.compute ?? result ?? null;
26
+ }
27
+ function hasPresentString(value) {
28
+ return typeof value === 'string' && value.trim().length > 0;
29
+ }
30
+ function hasPositiveInteger(value) {
31
+ return typeof value === 'number' && Number.isInteger(value) && value > 0;
32
+ }
33
+ function hasUsableConnectionMaterial(result) {
34
+ const payload = connectionPayload(result);
35
+ return (hasPresentString(payload?.host) &&
36
+ hasPositiveInteger(payload?.port) &&
37
+ hasPresentString(payload?.user) &&
38
+ hasPresentString(payload?.private_key));
39
+ }
40
+ function describeConnectionPollState(state) {
41
+ const status = resolveEffectiveState(state.status) ?? 'unknown';
42
+ const payload = connectionPayload(state.connection);
43
+ const connection = typeof payload?.lease_status === 'string' && payload.lease_status.trim()
44
+ ? payload.lease_status
45
+ : 'unknown';
46
+ const host = hasPresentString(payload?.host) ? 'present' : 'missing';
47
+ const port = hasPositiveInteger(payload?.port) ? 'present' : 'missing';
48
+ return `status=${status}; connection=${connection}; host=${host}; port=${port}`;
49
+ }
50
+ function throwIfStatusTerminalError(result) {
51
+ const lease = extractLeases(result)[0] ?? null;
52
+ const status = lease?.status ?? resolveEffectiveState(result);
53
+ if (status !== 'error') {
54
+ return;
55
+ }
56
+ const reason = typeof lease?.error === 'string' && lease.error.trim()
57
+ ? lease.error.trim()
58
+ : 'error';
59
+ throw new CliHttpError(`compute lease entered terminal error state: ${reason}`, EXIT_TRANSPORT, 200, result, { method: 'GET', path: '/compute/status' });
60
+ }
20
61
  export async function pollComputeStatusByToken(context, token, terminalStates, commandName) {
21
62
  const timeoutS = context.globals?.waitTimeoutS ?? 600;
22
63
  const verbose = context.globals?.verbose === true;
@@ -47,6 +88,31 @@ export async function pollComputeStatusByToken(context, token, terminalStates, c
47
88
  : undefined,
48
89
  });
49
90
  }
91
+ export async function pollComputeConnectionReadinessByToken(context, token, commandName) {
92
+ const timeoutS = context.globals?.waitTimeoutS ?? 600;
93
+ const verbose = context.globals?.verbose === true;
94
+ return pollUntilTerminal(async () => {
95
+ const status = await context.requestJson('GET', '/compute/status', {
96
+ query: { lease_control_token: token },
97
+ wrapperStep: 'wait-status',
98
+ });
99
+ throwIfStatusTerminalError(status);
100
+ const connection = await context.requestJson('GET', '/compute/connection', {
101
+ query: { lease_control_token: token },
102
+ wrapperStep: 'wait-connection',
103
+ });
104
+ return { status, connection };
105
+ }, (result) => hasUsableConnectionMaterial(result.connection), {
106
+ timeoutS,
107
+ commandName,
108
+ describeState: describeConnectionPollState,
109
+ onProgress: verbose
110
+ ? (event) => {
111
+ context.stderr?.(`${JSON.stringify({ event: 'status', data: event })}\n`);
112
+ }
113
+ : undefined,
114
+ });
115
+ }
50
116
  export async function pollGrantsUntilActive(context, approvalSessionId, commandName) {
51
117
  const timeoutS = context.globals?.waitTimeoutS ?? 600;
52
118
  const verbose = context.globals?.verbose === true;
@@ -1 +1 @@
1
- {"version":3,"file":"_wait-polling.js","sourceRoot":"","sources":["../../src/commands/_wait-polling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_wait-polling.js","sourceRoot":"","sources":["../../src/commands/_wait-polling.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,5 @@
1
- import { pollComputeStatusByToken } from './_wait-polling.js';
1
+ import { pollComputeConnectionReadinessByToken } from './_wait-polling.js';
2
2
  import { optionalString, requiredString } from './utils.js';
3
- // uses pollUntilTerminal via _wait-polling.js
4
- // Wire values come from core.models.ComputeLeaseStatus (pending/active/
5
- // releasing/released/error) serialized verbatim by _serialize_compute_status.
6
- // `error` is the terminal failure state for a failed acquire; omitting it
7
- // causes --wait to poll until timeout instead of returning promptly.
8
- const TERMINAL = new Set(['active', 'error']);
9
3
  export const computeAcquireCommand = async (context) => {
10
4
  const nodeId = requiredString(context.params, 'node_id');
11
5
  const grantId = requiredString(context.params, 'compute_grant_id');
@@ -33,7 +27,7 @@ export const computeAcquireCommand = async (context) => {
33
27
  if (!token) {
34
28
  return response;
35
29
  }
36
- const terminal = await pollComputeStatusByToken(context, token, TERMINAL, 'compute:acquire');
30
+ const terminal = await pollComputeConnectionReadinessByToken(context, token, 'compute:acquire');
37
31
  return { ...response, wait_result: terminal };
38
32
  };
39
33
  //# sourceMappingURL=compute-acquire.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compute-acquire.js","sourceRoot":"","sources":["../../src/commands/compute-acquire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,8CAA8C;AAE9C,wEAAwE;AACxE,8EAA8E;AAC9E,0EAA0E;AAC1E,qEAAqE;AACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAM9C,MAAM,CAAC,MAAM,qBAAqB,GAAmB,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACnE,MAAM,OAAO,GACX,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;QAC1C,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxD,8EAA8E;IAC9E,2EAA2E;IAC3E,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC;IACvE,MAAM,IAAI,GAA4B;QACpC,OAAO;QACP,gBAAgB,EAAE,OAAO;QACzB,QAAQ,EAAE,OAAO;QACjB,mBAAmB,EAAE,iBAAiB;KACvC,CAAC;IACF,IAAI,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAEjC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CACxC,MAAM,EACN,UAAU,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,EACtD,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CACjC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAC7F,OAAO,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAChD,CAAC,CAAC"}
1
+ {"version":3,"file":"compute-acquire.js","sourceRoot":"","sources":["../../src/commands/compute-acquire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQ5D,MAAM,CAAC,MAAM,qBAAqB,GAAmB,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACnE,MAAM,OAAO,GACX,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;QAC1C,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxD,8EAA8E;IAC9E,2EAA2E;IAC3E,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC;IACvE,MAAM,IAAI,GAA4B;QACpC,OAAO;QACP,gBAAgB,EAAE,OAAO;QACzB,QAAQ,EAAE,OAAO;QACjB,mBAAmB,EAAE,iBAAiB;KACvC,CAAC;IACF,IAAI,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAEjC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CACxC,MAAM,EACN,UAAU,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,EACtD,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CACjC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,qCAAqC,CAC1D,OAAO,EACP,KAAK,EACL,iBAAiB,CAClB,CAAC;IACF,OAAO,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAChD,CAAC,CAAC"}
@@ -13,9 +13,13 @@ export const feedbackCreateCommand = async (context) => {
13
13
  'command_family',
14
14
  'tool_family',
15
15
  'node_id',
16
+ 'request_id',
16
17
  'trace_id',
17
18
  'sentry_event_id',
18
19
  'product_event_id',
20
+ 'cli_invocation_id',
21
+ 'mcp_request_id',
22
+ 'mcp_idempotency_key',
19
23
  ]) {
20
24
  const value = optionalString(context.params, key);
21
25
  if (value !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"feedback-create.js","sourceRoot":"","sources":["../../src/commands/feedback-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,CAAC,MAAM,qBAAqB,GAAmB,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,IAAI,GAA2B;QACnC,OAAO,EAAE,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE;QACnE,aAAa,EAAE,OAAO;QACtB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,IAAI,OAAO;QAClF,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,IAAI,KAAK;KACjF,CAAC;IACF,KAAK,MAAM,GAAG,IAAI;QAChB,cAAc;QACd,sBAAsB;QACtB,gBAAgB;QAChB,aAAa;QACb,SAAS;QACT,UAAU;QACV,iBAAiB;QACjB,kBAAkB;KACnB,EAAE,CAAC;QACF,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC"}
1
+ {"version":3,"file":"feedback-create.js","sourceRoot":"","sources":["../../src/commands/feedback-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,CAAC,MAAM,qBAAqB,GAAmB,KAAK,EAAE,OAAO,EAAE,EAAE;IACrE,MAAM,IAAI,GAA2B;QACnC,OAAO,EAAE,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE;QACnE,aAAa,EAAE,OAAO;QACtB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,IAAI,OAAO;QAClF,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,IAAI,KAAK;KACjF,CAAC;IACF,KAAK,MAAM,GAAG,IAAI;QAChB,cAAc;QACd,sBAAsB;QACtB,gBAAgB;QAChB,aAAa;QACb,SAAS;QACT,YAAY;QACZ,UAAU;QACV,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,gBAAgB;QAChB,qBAAqB;KACtB,EAAE,CAAC;QACF,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC"}
@@ -60,7 +60,7 @@ export const COMPUTE_COMMANDS = [
60
60
  {
61
61
  name: 'compute:acquire',
62
62
  group: 'compute-executions',
63
- summary: 'Acquire managed compute for a node.',
63
+ summary: 'Acquire managed compute for a node; with --wait, wait for usable SSH connection material.',
64
64
  endpoints: ['POST /nodes/{node_id}/compute/acquire'],
65
65
  required: [
66
66
  { name: 'node_id', type: 'string', description: 'Target node.' },
@@ -1 +1 @@
1
- {"version":3,"file":"compute.js","sourceRoot":"","sources":["../../../src/commands/registry/compute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compute.js","sourceRoot":"","sources":["../../../src/commands/registry/compute.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ export const RESOURCES_COMMANDS = [
29
29
  description: 'MCP tool family associated with the feedback.',
30
30
  },
31
31
  { name: 'node_id', type: 'string', description: 'Related node ID.' },
32
+ { name: 'request_id', type: 'string', description: 'Related request ID.' },
32
33
  { name: 'trace_id', type: 'string', description: 'Related trace ID.' },
33
34
  {
34
35
  name: 'sentry_event_id',
@@ -40,6 +41,21 @@ export const RESOURCES_COMMANDS = [
40
41
  type: 'string',
41
42
  description: 'Related product event ID.',
42
43
  },
44
+ {
45
+ name: 'cli_invocation_id',
46
+ type: 'string',
47
+ description: 'Related CLI invocation ID.',
48
+ },
49
+ {
50
+ name: 'mcp_request_id',
51
+ type: 'string',
52
+ description: 'Related MCP request ID.',
53
+ },
54
+ {
55
+ name: 'mcp_idempotency_key',
56
+ type: 'string',
57
+ description: 'Related MCP idempotency key.',
58
+ },
43
59
  ],
44
60
  examples: [
45
61
  {
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/commands/registry/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/commands/registry/resources.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "sourceCommit": "59f9a3cf94dd350a45ada948ab6b41d4c3aad508",
2
+ "sourceCommit": "8c6b8edcadb0b2513c57e53ddcfbceca76c1c2c4",
3
3
  "files": [
4
4
  "auth/active-key-id.d.ts",
5
5
  "auth/active-key-id.js",
@@ -123,7 +123,34 @@ function isFlywheelMcpUrl(url, targetOrigin) {
123
123
  return targetOrigin !== null && parsed.origin.toLowerCase() === targetOrigin;
124
124
  }
125
125
 
126
- async function findFlywheelTomlEntryNames(filePath, targetOrigin) {
126
+ function isMcpServerUrl(url) {
127
+ if (typeof url !== "string" || url.trim().length === 0) {
128
+ return false;
129
+ }
130
+ try {
131
+ return new URL(url).pathname === "/mcp-server";
132
+ } catch {
133
+ return false;
134
+ }
135
+ }
136
+
137
+ function shouldTreatAsFlywheelMcpEntry({
138
+ serverName,
139
+ serverUrl,
140
+ targetOrigin,
141
+ trustedServerNames,
142
+ }) {
143
+ return (
144
+ isFlywheelMcpUrl(serverUrl, targetOrigin) ||
145
+ (trustedServerNames.has(serverName) && isMcpServerUrl(serverUrl))
146
+ );
147
+ }
148
+
149
+ async function findFlywheelTomlEntries(
150
+ filePath,
151
+ targetOrigin,
152
+ trustedServerNames,
153
+ ) {
127
154
  let raw;
128
155
  try {
129
156
  raw = await readFile(filePath, "utf8");
@@ -139,9 +166,14 @@ async function findFlywheelTomlEntryNames(filePath, targetOrigin) {
139
166
  if (
140
167
  currentServerName !== null &&
141
168
  currentUrl !== null &&
142
- isFlywheelMcpUrl(currentUrl, targetOrigin)
169
+ shouldTreatAsFlywheelMcpEntry({
170
+ serverName: currentServerName,
171
+ serverUrl: currentUrl,
172
+ targetOrigin,
173
+ trustedServerNames,
174
+ })
143
175
  ) {
144
- matches.push(currentServerName);
176
+ matches.push({ serverName: currentServerName, serverUrl: currentUrl });
145
177
  }
146
178
  currentServerName = null;
147
179
  currentUrl = null;
@@ -176,26 +208,48 @@ async function findFlywheelTomlEntryNames(filePath, targetOrigin) {
176
208
  }
177
209
  commitCurrent();
178
210
 
179
- return unique(matches);
211
+ return uniqueEntries(matches);
212
+ }
213
+
214
+ function uniqueEntries(entries = []) {
215
+ const seen = new Set();
216
+ const out = [];
217
+ for (const entry of entries) {
218
+ const key = `${entry.serverName}\0${entry.serverUrl}`;
219
+ if (seen.has(key)) continue;
220
+ seen.add(key);
221
+ out.push(entry);
222
+ }
223
+ return out.sort((left, right) => {
224
+ const byName = left.serverName.localeCompare(right.serverName);
225
+ if (byName !== 0) return byName;
226
+ return left.serverUrl.localeCompare(right.serverUrl);
227
+ });
180
228
  }
181
229
 
182
- export async function findFlywheelMcpEntryNames({
230
+ export async function findFlywheelMcpEntries({
183
231
  hostName,
184
232
  scope,
185
233
  cwd = process.cwd(),
186
234
  targetOrigin = null,
235
+ trustedServerNames = [],
187
236
  getHost = defaultGetHost,
188
237
  resolveMcpPath = defaultResolveMcpPath,
189
238
  readJsonConfig = defaultReadJsonConfig,
190
239
  readYamlConfig = defaultReadYamlConfig,
191
240
  }) {
241
+ const trustedServerNameSet = new Set(trustedServerNames);
192
242
  try {
193
243
  const host = getHost(hostName);
194
244
  const candidates = resolveCandidatesForScope(host, scope, cwd);
195
245
  const filePath = await resolveMcpPath(candidates);
196
246
 
197
247
  if (host.mcp.configType === "toml") {
198
- return await findFlywheelTomlEntryNames(filePath, targetOrigin);
248
+ return await findFlywheelTomlEntries(
249
+ filePath,
250
+ targetOrigin,
251
+ trustedServerNameSet,
252
+ );
199
253
  }
200
254
 
201
255
  const config =
@@ -223,16 +277,29 @@ export async function findFlywheelMcpEntryNames({
223
277
  const matches = [];
224
278
  for (const [entryName, entry] of Object.entries(section)) {
225
279
  const entryUrl = readEntryServerUrl(entry);
226
- if (entryUrl !== null && isFlywheelMcpUrl(entryUrl, targetOrigin)) {
227
- matches.push(entryName);
280
+ if (
281
+ entryUrl !== null &&
282
+ shouldTreatAsFlywheelMcpEntry({
283
+ serverName: entryName,
284
+ serverUrl: entryUrl,
285
+ targetOrigin,
286
+ trustedServerNames: trustedServerNameSet,
287
+ })
288
+ ) {
289
+ matches.push({ serverName: entryName, serverUrl: entryUrl });
228
290
  }
229
291
  }
230
- return unique(matches);
292
+ return uniqueEntries(matches);
231
293
  } catch {
232
294
  return [];
233
295
  }
234
296
  }
235
297
 
298
+ export async function findFlywheelMcpEntryNames(options) {
299
+ const entries = await findFlywheelMcpEntries(options);
300
+ return entries.map((entry) => entry.serverName);
301
+ }
302
+
236
303
  /**
237
304
  * Determine whether a truly skill-only host's ownership marker is present at
238
305
  * the skills-root that `hostName` would write into. The two destination