@paradigma-inc/flywheel 0.2.4 → 0.2.9

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.
package/README.md CHANGED
@@ -24,8 +24,9 @@ The script installs `@paradigma-inc/flywheel@latest` into the managed user
24
24
  prefix `${FLYWHEEL_INSTALL_PREFIX:-$HOME/.local}`, adds a marked PATH block
25
25
  when needed, and then runs guided `flywheel setup` through the installed binary.
26
26
  In an interactive terminal, setup asks whether you want MCP host setup or
27
- CLI-only setup. You can read the full source at the same URL without piping to
28
- `sh`.
27
+ CLI-only setup. Setup then asks where to install: Project (this folder) or
28
+ Global (your machine), with Global preselected. You can read the full source
29
+ at the same URL without piping to `sh`.
29
30
 
30
31
  Prefer the two-step npm recipe? It still works:
31
32
 
@@ -186,6 +187,7 @@ Mode behavior:
186
187
  If mode is omitted:
187
188
 
188
189
  - interactive TTY: prompt for `mcp` or `cli` (default `mcp`)
190
+ - location: Where should Flywheel be installed? (default Global)
189
191
  - non-interactive: fails with usage error (`exit 2`)
190
192
 
191
193
  ## Public Base URL Rules
@@ -329,6 +331,7 @@ full details.
329
331
 
330
332
  - Default scope (no `--project`) is user-level/global.
331
333
  - `--project` is the explicit repo-local override.
334
+ - Interactive setup asks for the install location (Global preselected) when `--project` is omitted.
332
335
 
333
336
  Examples:
334
337
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paradigma-inc/flywheel",
3
- "version": "0.2.4",
3
+ "version": "0.2.9",
4
4
  "description": "One-command setup for Flywheel MCP hosts",
5
5
  "type": "module",
6
6
  "files": [
package/src/cli.mjs CHANGED
@@ -368,9 +368,9 @@ function validateCliModeFlags(options) {
368
368
  }
369
369
  }
370
370
 
371
- async function runCliModeCommand(options, readStdinAuth) {
371
+ async function runCliModeCommand(options, readStdinAuth, contextScope) {
372
372
  validateCliModeFlags(options);
373
- const scope = options.project ? "project" : "global";
373
+ const scope = contextScope ?? (options.project ? "project" : "global");
374
374
  const baseUrl = normalizeBaseUrl(
375
375
  resolveSetupBaseUrl({ explicitBaseUrl: options.baseUrl }),
376
376
  );
@@ -450,9 +450,10 @@ async function runSetupCommandViaRouter(options) {
450
450
  isInteractive:
451
451
  isatty(0) && process.stdout.isTTY === true,
452
452
  promptMode: promptSetupMode,
453
- runMcpMode: async ({ readStdinAuth }) =>
453
+ runMcpMode: async ({ readStdinAuth, scope }) =>
454
454
  await runMcpModeCommand(options, {
455
455
  readStdinAuth,
456
+ scope,
456
457
  force: options.force === true,
457
458
  reconcilePriorMode: async ({
458
459
  hostNames,
@@ -480,7 +481,8 @@ async function runSetupCommandViaRouter(options) {
480
481
  }
481
482
  },
482
483
  }),
483
- runCliMode: async ({ readStdinAuth }) => await runCliModeCommand(options, readStdinAuth),
484
+ runCliMode: async ({ readStdinAuth, scope }) =>
485
+ await runCliModeCommand(options, readStdinAuth, scope),
484
486
  });
485
487
  }
486
488
 
@@ -1360,7 +1362,7 @@ Configure the Flywheel CLI, MCP host entries, and bundled skills without changin
1360
1362
  .optionsGroup("Scope:")
1361
1363
  .option(
1362
1364
  "-p, --project",
1363
- "Configure for current project instead of globally",
1365
+ "Configure for current project instead of globally; setup asks interactively when omitted",
1364
1366
  )
1365
1367
  .option("-y, --yes", "Skip confirmation prompts")
1366
1368
  .optionsGroup("Authentication:")
@@ -32,7 +32,7 @@ async function requireRepository(root) {
32
32
  if (state === "invalid")
33
33
  throw new RepositorySelectionError("repository_marker_invalid", `Invalid Flywheel repository marker: ${path.join(resolved, ".flywheel")}`, path.join(resolved, ".flywheel"));
34
34
  if (state === "missing")
35
- throw new RepositorySelectionError("repository_not_found", `No Flywheel repository at ${resolved}. Run flywheel repo:init, pass --repo <root>, or use --personal.`, resolved);
35
+ throw new RepositorySelectionError("repository_not_found", `No Flywheel repository at ${resolved}. To create one there, run: flywheel repo:init ${shellQuote(resolved)}. To use a different existing repository, rerun this command with --repo <root>, or use --personal.`, resolved);
36
36
  return resolved;
37
37
  }
38
38
  export async function resolveRepositorySelection({ params, cwd = process.cwd(), loadConfig = () => loadFlywheelConfig(), }) {
@@ -75,6 +75,6 @@ export async function resolveRepositorySelection({ params, cwd = process.cwd(),
75
75
  break;
76
76
  candidate = parent;
77
77
  }
78
- throw new RepositorySelectionError("repository_not_found", `No Flywheel repository found from ${cwd}. Run flywheel repo:init, pass --repo <root>, or use --personal.`);
78
+ throw new RepositorySelectionError("repository_not_found", `No Flywheel repository found in ${cwd} or any parent directory. To create one in the current directory, run: flywheel repo:init. To use an existing repository, rerun this command with --repo <root>, or use --personal.`);
79
79
  }
80
80
  //# sourceMappingURL=repository-selection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository-selection.js","sourceRoot":"","sources":["../../src/commands/repository-selection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository-selection.js","sourceRoot":"","sources":["../../src/commands/repository-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAyB,MAAM,oBAAoB,CAAC;AAQ/E,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,IAAI,CAKqB;IACzB,IAAI,CAAU;IACvB,YACE,IAAsC,EACtC,OAAe,EACf,UAAmB;QAEnB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC;AACjD,CAAC;AACD,KAAK,UAAU,WAAW,CACxB,IAAY;IAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,IAAI,wBAAwB,CAChC,2BAA2B,EAC3B,gDAAgD,UAAU,KAAM,KAAe,CAAC,OAAO,EAAE,EACzF,UAAU,CACX,CAAC;IACJ,CAAC;AACH,CAAC;AACD,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,wBAAwB,CAChC,2BAA2B,EAC3B,uCAAuC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EACzE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CACjC,CAAC;IACJ,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,wBAAwB,CAChC,sBAAsB,EACtB,6BAA6B,QAAQ,kDAAkD,UAAU,CAAC,QAAQ,CAAC,qGAAqG,EAChN,QAAQ,CACT,CAAC;IACJ,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,MAAM,EACN,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,UAAU,GAAG,GAAG,EAAE,CAAC,kBAAkB,EAAE,GAKxC;IACC,MAAM,QAAQ,GACZ,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACnD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACpB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC1C,IAAI,QAAQ,IAAI,QAAQ;QACtB,MAAM,IAAI,wBAAwB,CAChC,8BAA8B,EAC9B,gDAAgD,CACjD,CAAC;IACJ,IAAI,QAAQ;QACV,OAAO;YACL,IAAI,EAAE,MAAM,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1D,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC;QAC/D,IAAI,CAAC,UAAU;YACb,MAAM,IAAI,wBAAwB,CAChC,oCAAoC,EACpC,0EAA0E,CAC3E,CAAC;QACJ,IAAI,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK,YAAY,wBAAwB;gBACzC,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAsB;oBACpC,KAAK,CAAC,IAAI,KAAK,2BAA2B,CAAC,EAC7C,CAAC;gBACD,MAAM,IAAI,wBAAwB,CAChC,6BAA6B,EAC7B,oDAAoD,UAAU,MAAM,KAAK,CAAC,OAAO,0CAA0C,UAAU,CAAC,UAAU,CAAC,EAAE,CACpJ,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,OAAO;YACnB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC1D,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,wBAAwB,CAChC,2BAA2B,EAC3B,uCAAuC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAC1E,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAClC,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,wBAAwB,CAChC,sBAAsB,EACtB,mCAAmC,GAAG,qLAAqL,CAC5N,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // Generated by project/flywheel-server/scripts/sync_feedback_contract.py.
2
2
  // Do not edit by hand.
3
- export const FEEDBACK_CONTRACT_VERSION = "2026-05-06.1";
3
+ export const FEEDBACK_CONTRACT_VERSION = "2026-09-12.1";
4
4
  export const FEEDBACK_SOURCES = [
5
5
  "api",
6
6
  "api_client",
@@ -70,5 +70,5 @@ export const FEEDBACK_NODE_WORKFLOW_FAMILIES = [
70
70
  "tags",
71
71
  "timeline_layout",
72
72
  ];
73
- export const FEEDBACK_CONTRACT_ARTIFACT = JSON.parse('{"admin_note": {"max_length": 2000, "required": false}, "categories": ["billing", "bug", "confusing", "docs", "missing_capability", "other", "performance", "reliability", "workflow_friction"], "context_fields": ["route_family", "node_workflow_family", "command_family", "tool_family", "node_id", "request_id", "trace_id", "sentry_event_id", "product_event_id", "cli_invocation_id", "mcp_request_id", "mcp_idempotency_key"], "correlation_fields": ["request_id", "trace_id", "sentry_event_id", "product_event_id", "cli_invocation_id", "mcp_request_id", "mcp_idempotency_key", "node_id", "route_family", "node_workflow_family", "command_family", "tool_family"], "defaults": {"category": "other", "severity": "low", "status": "new"}, "message": {"max_length": 4000, "min_length": 1, "required": true}, "node_workflow_families": ["artifacts", "assets", "bulk_graph_actions", "canvas", "commit", "context_menu", "graph_layout", "hooks", "lease", "minimap", "node_focus", "node_hydration", "node_open", "node_selection", "node_view_editing", "partial_graph_preview", "radial_view", "share_policy", "staged_edit", "tags", "timeline_layout"], "privacy_rules": {"disallowed_fields": ["artifact_body", "attachment", "attachments", "authorization", "completion", "console", "cookies", "diagnostics", "dom_snapshot", "extra", "full_url", "headers", "logs", "metadata", "model_input", "model_output", "node_body", "node_content", "prompt", "query_string", "raw_logs", "replay", "request_body", "response_body", "screenshot", "token", "tool_transcript"], "message_storage": "Stored only in feedback_entries.message; never log or attach to Sentry context.", "raw_diagnostics": "Do not store screenshots, replay, raw logs, headers, bodies, prompts, model outputs, node content, or arbitrary metadata."}, "reporter_type_defaults": {"api": "human", "api_client": "human", "cli": "human", "mcp": "agent", "webui": "human"}, "reporter_types": ["agent", "human"], "route_families": ["admin", "analytics", "auth", "blobs", "compute", "credits", "feedback", "mcp", "nodes", "other", "root", "updates"], "severities": ["critical", "high", "low", "medium"], "sources": ["api", "api_client", "cli", "mcp", "webui"], "statuses": ["dismissed", "new", "planned", "resolved", "triaged"], "version": "2026-05-06.1"}');
73
+ export const FEEDBACK_CONTRACT_ARTIFACT = JSON.parse('{"admin_note": {"max_length": 2000, "required": false}, "categories": ["billing", "bug", "confusing", "docs", "missing_capability", "other", "performance", "reliability", "workflow_friction"], "context_fields": ["route_family", "node_workflow_family", "command_family", "tool_family", "node_id", "request_id", "trace_id", "sentry_event_id", "product_event_id", "cli_invocation_id", "mcp_request_id", "mcp_idempotency_key"], "correlation_fields": ["request_id", "trace_id", "sentry_event_id", "product_event_id", "cli_invocation_id", "mcp_request_id", "mcp_idempotency_key", "node_id", "route_family", "node_workflow_family", "command_family", "tool_family"], "defaults": {"category": "other", "severity": "low", "status": "new"}, "message": {"max_length": 4000, "min_length": 1, "required": true}, "node_workflow_families": ["artifacts", "assets", "bulk_graph_actions", "canvas", "commit", "context_menu", "graph_layout", "hooks", "lease", "minimap", "node_focus", "node_hydration", "node_open", "node_selection", "node_view_editing", "partial_graph_preview", "radial_view", "share_policy", "staged_edit", "tags", "timeline_layout"], "privacy_rules": {"disallowed_fields": ["artifact_body", "attachment", "attachments", "authorization", "completion", "console", "cookies", "diagnostics", "dom_snapshot", "extra", "full_url", "headers", "logs", "metadata", "model_input", "model_output", "node_body", "node_content", "prompt", "query_string", "raw_logs", "replay", "request_body", "response_body", "screenshot", "token", "tool_transcript"], "message_storage": "Stored only in feedback_entries.message; never log or attach to Sentry context.", "raw_diagnostics": "Do not store screenshots, replay, raw logs, headers, bodies, prompts, model outputs, node content, or arbitrary metadata."}, "reporter_type_defaults": {"api": "human", "api_client": "human", "cli": "human", "mcp": "agent", "webui": "human"}, "reporter_types": ["agent", "human"], "route_families": ["admin", "analytics", "auth", "blobs", "compute", "credits", "feedback", "mcp", "nodes", "other", "root", "updates"], "severities": ["critical", "high", "low", "medium"], "sources": ["api", "api_client", "cli", "mcp", "webui"], "statuses": ["dismissed", "new", "planned", "resolved", "triaged"], "version": "2026-09-12.1", "version_metadata_fields": {"accepted_in_create_payloads": false, "fields": ["client_version", "mcp_protocol_version", "api_version", "server_release"], "filled_by": "server", "max_lengths": {"api_version": 16, "client_version": 64, "mcp_protocol_version": 32, "server_release": 128}}}');
74
74
  //# sourceMappingURL=generatedFeedbackContract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generatedFeedbackContract.js","sourceRoot":"","sources":["../src/generatedFeedbackContract.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,uBAAuB;AAEvB,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAuB,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK;IACL,YAAY;IACZ,KAAK;IACL,KAAK;IACL,OAAO;CACC,CAAC;AAGX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAGnE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS;IACT,KAAK;IACL,WAAW;IACX,MAAM;IACN,oBAAoB;IACpB,OAAO;IACP,aAAa;IACb,aAAa;IACb,mBAAmB;CACX,CAAC;AAGX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;CACA,CAAC;AAGX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW;IACX,KAAK;IACL,SAAS;IACT,UAAU;IACV,SAAS;CACD,CAAC;AAGX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,UAAU;IACV,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,SAAS;CACD,CAAC;AAGX,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,WAAW;IACX,QAAQ;IACR,oBAAoB;IACpB,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,cAAc;IACd,OAAO;IACP,OAAO;IACP,SAAS;IACT,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,aAAa;IACb,cAAc;IACd,aAAa;IACb,MAAM;IACN,iBAAiB;CACT,CAAC;AA+BX,MAAM,CAAC,MAAM,0BAA0B,GAA4B,IAAI,CAAC,KAAK,CAC3E,6uEAA6uE,CAC9uE,CAAC"}
1
+ {"version":3,"file":"generatedFeedbackContract.js","sourceRoot":"","sources":["../src/generatedFeedbackContract.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,uBAAuB;AAEvB,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAuB,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK;IACL,YAAY;IACZ,KAAK;IACL,KAAK;IACL,OAAO;CACC,CAAC;AAGX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAGnE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS;IACT,KAAK;IACL,WAAW;IACX,MAAM;IACN,oBAAoB;IACpB,OAAO;IACP,aAAa;IACb,aAAa;IACb,mBAAmB;CACX,CAAC;AAGX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,UAAU;IACV,MAAM;IACN,KAAK;IACL,QAAQ;CACA,CAAC;AAGX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW;IACX,KAAK;IACL,SAAS;IACT,UAAU;IACV,SAAS;CACD,CAAC;AAGX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,UAAU;IACV,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,SAAS;CACD,CAAC;AAGX,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,WAAW;IACX,QAAQ;IACR,oBAAoB;IACpB,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,cAAc;IACd,OAAO;IACP,OAAO;IACP,SAAS;IACT,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,aAAa;IACb,cAAc;IACd,aAAa;IACb,MAAM;IACN,iBAAiB;CACT,CAAC;AA+BX,MAAM,CAAC,MAAM,0BAA0B,GAA4B,IAAI,CAAC,KAAK,CAC3E,2gFAA2gF,CAC5gF,CAAC"}
@@ -0,0 +1,265 @@
1
+ import { RepositoryServiceError } from "../errors.js";
2
+ import { NODE_FIELDS } from "../models/constants.js";
3
+ import { RepositoryOperation } from "../models/operations.js";
4
+ import { associateLatestValueWrites } from "../../store/latest-values.js";
5
+ function fieldEditTarget(operation) {
6
+ const payload = operation.payload;
7
+ switch (operation.type) {
8
+ case "node.field.set.v1":
9
+ return { ownerType: "node", ownerId: payload.node_id, field: payload.field };
10
+ case "edge.field.set.v1":
11
+ return { ownerType: "edge", ownerId: payload.edge_id, field: payload.field };
12
+ case "artifact.metadata.set.v1":
13
+ return { ownerType: "artifact", ownerId: payload.artifact_id, field: payload.field };
14
+ case "artifact.properties.set.v1":
15
+ return { ownerType: "artifact", ownerId: payload.artifact_id, field: "properties" };
16
+ default:
17
+ return null;
18
+ }
19
+ }
20
+ // Only operation types that unconditionally INSERT a brand-new entity are safe fold targets:
21
+ // `node.create.v1` and `edge.add.v1` both fail outright at apply time when their id already
22
+ // exists (see `applyNodeCreate` and the `edge.add.v1` branch of `applyEdge` in
23
+ // `store/projection/nodes.ts`/`relations.ts`), so folding into them is safe regardless of what
24
+ // the batch alone can prove. `artifact.attach.v1`/`artifact.attach.v2` are NOT included: an
25
+ // attach also legitimately references an artifact that already exists elsewhere in history - a
26
+ // pure precondition check against its current properties digest, not a write (see `attach()` in
27
+ // `store/projection/artifacts.ts`) - and a same-batch attach can still receive a supplied
28
+ // properties value in that case (sharing an existing artifact while also editing its
29
+ // properties), so "did this attach consume a value" cannot reliably distinguish a fresh artifact
30
+ // from an existing one without repository state this pure function does not have. Folding into
31
+ // such an attach would silently rewrite its declared digest and break that precondition at apply
32
+ // time; artifact field chains are therefore always collapsed rather than folded into a creator.
33
+ function creatorTarget(operation) {
34
+ const payload = operation.payload;
35
+ switch (operation.type) {
36
+ case "node.create.v1":
37
+ return { ownerType: "node", ownerId: payload.node_id, fields: new Set(NODE_FIELDS) };
38
+ case "edge.add.v1":
39
+ return { ownerType: "edge", ownerId: payload.edge_id, fields: new Set(["content"]) };
40
+ default:
41
+ return null;
42
+ }
43
+ }
44
+ // Lifecycle, content-replacement, and detach operations invalidate a same-entity field chain's
45
+ // digest continuity; any other operation referencing the entity (tags, lineage, containment,
46
+ // edge endpoints) leaves field state untouched and never breaks folding or collapsing.
47
+ function disruptorTarget(operation) {
48
+ const payload = operation.payload;
49
+ switch (operation.type) {
50
+ case "node.tombstone.v1":
51
+ case "node.restore.v1":
52
+ case "node.purge.v1":
53
+ return { ownerType: "node", ownerId: payload.node_id };
54
+ case "edge.remove.v1":
55
+ return { ownerType: "edge", ownerId: payload.edge_id };
56
+ case "artifact.detach.v1":
57
+ case "artifact.content.set.v1":
58
+ return { ownerType: "artifact", ownerId: payload.artifact_id };
59
+ default:
60
+ return null;
61
+ }
62
+ }
63
+ function entityKey(ownerType, ownerId) {
64
+ return `${ownerType}\0${ownerId}`;
65
+ }
66
+ function applyCreatorFold(operation, folds) {
67
+ const mapping = operation.toMapping();
68
+ if (operation.type === "node.create.v1") {
69
+ const initialValues = { ...mapping.initial_values };
70
+ const initialFieldDigests = { ...mapping.initial_field_digests };
71
+ for (const [field, write] of folds) {
72
+ initialValues[field] = write.value;
73
+ initialFieldDigests[field] = write.valueDigest;
74
+ }
75
+ return RepositoryOperation.fromMapping({ ...mapping, initial_values: initialValues, initial_field_digests: initialFieldDigests });
76
+ }
77
+ if (operation.type === "edge.add.v1") {
78
+ return RepositoryOperation.fromMapping({ ...mapping, content_digest: folds.get("content").valueDigest });
79
+ }
80
+ throw new Error("unreachable: applyCreatorFold called on a non-creator operation type");
81
+ }
82
+ /**
83
+ * Folds staged field-edit chains into the smallest net change `repo:commit` records, so a
84
+ * corrected typo or a value edited back to its original never survives into history as
85
+ * separate churn (see FLY-974). Reuses `associateLatestValueWrites` (the same association the
86
+ * commit boundary already runs) instead of a second bookkeeping scheme.
87
+ *
88
+ * Per (owner, field) chain of same-family edits, in staged order:
89
+ * - Fold into a same-batch creator (`node.create.v1` for any node field, or `edge.add.v1` for
90
+ * an edge's content - both unconditionally insert a brand-new entity) when no
91
+ * lifecycle/content-replacement/detach operation on that entity sits between the creator and
92
+ * the chain's last edit. Artifact fields never fold into an attach: an attach can also
93
+ * legitimately reference an artifact that already exists elsewhere in history, which this
94
+ * pure function cannot distinguish from a fresh one (see `creatorTarget`).
95
+ * - Otherwise collapse the chain to its first operation, taking the final digest and change
96
+ * metadata from the last edit, dropping the collapsed operation entirely when the net digest
97
+ * equals the chain's original expected digest.
98
+ * - Leave the whole chain staged, untouched, when such a disruptor sits between two edits of the
99
+ * chain (the interleaving guardrail), or - for artifact fields - when an edit of the sibling
100
+ * metadata/properties family sits between them (they share one underlying properties blob).
101
+ */
102
+ export function normalizeStagedBatch(operations, latestValues) {
103
+ const associations = associateLatestValueWrites(operations, latestValues);
104
+ const chains = new Map();
105
+ for (let index = 0; index < operations.length; index++) {
106
+ const target = fieldEditTarget(operations[index]);
107
+ if (!target)
108
+ continue;
109
+ const key = `${target.ownerType}\0${target.ownerId}\0${target.field}`;
110
+ const list = chains.get(key);
111
+ if (list)
112
+ list.push(index);
113
+ else
114
+ chains.set(key, [index]);
115
+ }
116
+ const creators = new Map();
117
+ for (let index = 0; index < operations.length; index++) {
118
+ const target = creatorTarget(operations[index]);
119
+ if (!target)
120
+ continue;
121
+ const key = entityKey(target.ownerType, target.ownerId);
122
+ if (!creators.has(key))
123
+ creators.set(key, index);
124
+ }
125
+ const disruptors = new Map();
126
+ for (let index = 0; index < operations.length; index++) {
127
+ const target = disruptorTarget(operations[index]);
128
+ if (!target)
129
+ continue;
130
+ const key = entityKey(target.ownerType, target.ownerId);
131
+ const list = disruptors.get(key);
132
+ if (list)
133
+ list.push(index);
134
+ else
135
+ disruptors.set(key, [index]);
136
+ }
137
+ // `artifact.metadata.set.v1` (legacy per-field digests) and `artifact.properties.set.v1` (one
138
+ // whole-blob digest) both read-modify-write the SAME `repository_artifacts.properties` column
139
+ // (see `setLegacyMetadata`/`setSharedValue` in `store/projection/artifacts.ts`). A metadata
140
+ // edit's own precondition only inspects its one decomposed field, but it still rewrites the
141
+ // whole blob digest a later `properties.set.v1` depends on, and vice versa. An edit of one
142
+ // family sitting between two edits of the OTHER family - or between a fold's creator and its
143
+ // chain - therefore invalidates that chain's skipped intermediate blob state even though the
144
+ // two families never share a field key.
145
+ const artifactBlobOps = new Map();
146
+ for (let index = 0; index < operations.length; index++) {
147
+ const operation = operations[index];
148
+ if (operation.type !== "artifact.metadata.set.v1" && operation.type !== "artifact.properties.set.v1")
149
+ continue;
150
+ const id = operation.payload.artifact_id;
151
+ const list = artifactBlobOps.get(id);
152
+ if (list)
153
+ list.push(index);
154
+ else
155
+ artifactBlobOps.set(id, [index]);
156
+ }
157
+ function ownWrite(operation) {
158
+ return [...associations.get(operation.operationId).values()][0];
159
+ }
160
+ const dropIndices = new Set();
161
+ const foldsByCreator = new Map();
162
+ const collapseUpdate = new Map();
163
+ const syntheticValues = [];
164
+ // Every index whose ORIGINAL latestValues consumption must be discarded: dropped chain
165
+ // members, a folded creator (its one value is replaced by the chain's final value), and a
166
+ // collapsed-but-surviving first operation (its value changes to the chain's final value).
167
+ // Tracked by index rather than by (owner, field) key so an unrelated, unmodified operation
168
+ // sharing that same key (e.g. an attach whose properties chain failed to fold) keeps its own
169
+ // original entry untouched.
170
+ const consumptionRemovalIndices = new Set();
171
+ for (const [key, indices] of chains) {
172
+ const [ownerType, ownerId, field] = key.split("\0");
173
+ const entity = entityKey(ownerType, ownerId);
174
+ const firstIndex = indices[0];
175
+ const lastIndex = indices.at(-1);
176
+ const lastOperation = operations[lastIndex];
177
+ const chainIndices = new Set(indices);
178
+ const foreignBlobOps = ownerType === "artifact" ? artifactBlobOps.get(ownerId) : undefined;
179
+ const hasForeignBlobOpBetween = (lowIndex, highIndex) => foreignBlobOps !== undefined && foreignBlobOps.some((index) => index > lowIndex && index < highIndex && !chainIndices.has(index));
180
+ const creatorIndex = creators.get(entity);
181
+ let foldEligible = false;
182
+ if (creatorIndex !== undefined && creatorIndex < firstIndex) {
183
+ const creator = creatorTarget(operations[creatorIndex]);
184
+ foldEligible = creator.fields.has(field) &&
185
+ !disruptors.get(entity)?.some((index) => index > creatorIndex && index < lastIndex) &&
186
+ !hasForeignBlobOpBetween(creatorIndex, lastIndex);
187
+ }
188
+ if (foldEligible) {
189
+ for (const index of indices) {
190
+ dropIndices.add(index);
191
+ consumptionRemovalIndices.add(index);
192
+ }
193
+ consumptionRemovalIndices.add(creatorIndex);
194
+ let folds = foldsByCreator.get(creatorIndex);
195
+ if (!folds) {
196
+ folds = new Map();
197
+ foldsByCreator.set(creatorIndex, folds);
198
+ }
199
+ const finalWrite = ownWrite(lastOperation);
200
+ folds.set(field, finalWrite);
201
+ if (operations[creatorIndex].type !== "node.create.v1")
202
+ syntheticValues.push(finalWrite);
203
+ continue;
204
+ }
205
+ // guardrail: whole chain stays staged
206
+ if (disruptors.get(entity)?.some((index) => index > firstIndex && index < lastIndex) || hasForeignBlobOpBetween(firstIndex, lastIndex)) {
207
+ continue;
208
+ }
209
+ const firstOperation = operations[firstIndex];
210
+ const finalDigest = lastOperation.payload.new_digest;
211
+ for (const index of indices) {
212
+ consumptionRemovalIndices.add(index);
213
+ if (index !== firstIndex)
214
+ dropIndices.add(index);
215
+ }
216
+ if (finalDigest === firstOperation.payload.expected_digest) {
217
+ dropIndices.add(firstIndex);
218
+ }
219
+ else {
220
+ collapseUpdate.set(firstIndex, { newDigest: finalDigest, changeMetadata: lastOperation.payload.change_metadata });
221
+ syntheticValues.push(ownWrite(lastOperation));
222
+ }
223
+ }
224
+ const finalOperations = [];
225
+ for (let index = 0; index < operations.length; index++) {
226
+ if (dropIndices.has(index))
227
+ continue;
228
+ const operation = operations[index];
229
+ const folds = foldsByCreator.get(index);
230
+ if (folds) {
231
+ finalOperations.push(applyCreatorFold(operation, folds));
232
+ continue;
233
+ }
234
+ const update = collapseUpdate.get(index);
235
+ finalOperations.push(update
236
+ ? RepositoryOperation.fromMapping({ ...operation.toMapping(), new_digest: update.newDigest, change_metadata: update.changeMetadata })
237
+ : operation);
238
+ }
239
+ // Untouched entries keep the exact staged order (attach/legacy-metadata sidebands may
240
+ // legitimately be supplied out of operation order; see `attachmentValues` in
241
+ // `store/latest-values.ts`). Remove exactly the physical entries each discarded or
242
+ // rewritten operation originally consumed (matched by content, one slot per consumption, so
243
+ // duplicate values remove only as many copies as were actually taken), then append the
244
+ // recomputed final values; per-key order is all `iterateOperationLatestValues` requires.
245
+ const removalPool = [];
246
+ for (const index of consumptionRemovalIndices) {
247
+ for (const write of associations.get(operations[index].operationId).values())
248
+ removalPool.push(write);
249
+ }
250
+ const sameValue = (write, entry) => write.ownerType === entry.owner_type && write.ownerId === entry.owner_id && write.field === entry.field &&
251
+ write.value === entry.value && write.valueDigest === entry.value_digest;
252
+ const survivingOriginal = latestValues.filter((entry) => {
253
+ const removalIndex = removalPool.findIndex((write) => sameValue(write, entry));
254
+ if (removalIndex === -1)
255
+ return true;
256
+ removalPool.splice(removalIndex, 1);
257
+ return false;
258
+ });
259
+ const finalValues = [...survivingOriginal, ...syntheticValues.map((write) => write.toMapping())];
260
+ if (finalOperations.length === 0) {
261
+ throw new RepositoryServiceError("repository staging has no net changes");
262
+ }
263
+ return { operations: finalOperations, latestValues: finalValues };
264
+ }
265
+ //# sourceMappingURL=commit-normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-normalize.js","sourceRoot":"","sources":["../../../../src/local/domain/service/commit-normalize.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { operationFailureMessage } from "../models/operation-identity.js";
4
4
  import { RepositoryCommit } from "../models/commits.js";
5
5
  import { MAX_COMMIT_METADATA_BYTES } from "../models/constants.js";
6
6
  import { artifactDigests, latestStateDigests, latestValueWrites } from "./writes.js";
7
+ import { normalizeStagedBatch } from "./commit-normalize.js";
7
8
  function commitTimestamp(clock) {
8
9
  const value = clock();
9
10
  if (!(value instanceof Date) || Number.isNaN(value.valueOf())) {
@@ -28,18 +29,19 @@ export async function commitStaged(store, repositoryId, clientId, expectedHead,
28
29
  }
29
30
  throw error;
30
31
  }
32
+ const normalized = normalizeStagedBatch(workspace.staging.operations, workspace.staging.latestValues);
31
33
  const commit = RepositoryCommit.create({
32
34
  repositoryId,
33
- operations: workspace.staging.operations,
35
+ operations: normalized.operations,
34
36
  parentCommitId: expectedHead,
35
37
  authorKind: "client",
36
38
  authorId: clientId,
37
39
  authoredAt: commitTimestamp(clock),
38
40
  message,
39
- latestStateDigests: latestStateDigests(workspace.staging.operations),
40
- artifactDigests: artifactDigests(workspace.staging.operations),
41
+ latestStateDigests: latestStateDigests(normalized.operations),
42
+ artifactDigests: artifactDigests(normalized.operations),
41
43
  });
42
- const writes = latestValueWrites(workspace.staging.operations, workspace.staging.latestValues);
44
+ const writes = latestValueWrites(normalized.operations, normalized.latestValues);
43
45
  const metadataBytes = commit.canonicalBytes.byteLength + writes.reduce((total, write) => total + write.byteLength, 0);
44
46
  if (metadataBytes > MAX_COMMIT_METADATA_BYTES) {
45
47
  throw new RepositoryServiceError("repository commit metadata exceeds limit");
@@ -50,6 +52,7 @@ export async function commitStaged(store, repositoryId, clientId, expectedHead,
50
52
  canonicalCommits: [commit],
51
53
  latestValueWrites: writes,
52
54
  clearStaging: true,
55
+ expectedStagingDigest: stagingDigest,
53
56
  localWorkspaceHead: commit.commitId,
54
57
  syncState: null,
55
58
  resultingHead: commit.commitId,
@@ -1 +1 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../../src/local/domain/service/commit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../../src/local/domain/service/commit.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,8 @@ import { createHash } from "node:crypto";
2
2
  import { RepositoryContractError } from "../domain/errors.js";
3
3
  import { RepositoryCommit } from "../domain/models/commits.js";
4
4
  import { MAX_COMMIT_METADATA_BYTES } from "../domain/models/constants.js";
5
- import { parseRepositoryJson } from "../domain/models/encoding.js";
6
5
  import { latestValuesBytes, stagingBytes, stagingDigest } from "../domain/service/staging.js";
7
- import { canonicalLatestGroup, persistCommit, workspaceHeadIn } from "./commits.js";
6
+ import { persistCommit, workspaceHeadIn } from "./commits.js";
8
7
  import { latestValueWrites } from "./latest-values.js";
9
8
  import { applyCommitProjection } from "./projection/apply.js";
10
9
  import { withWriteConnectionAsync } from "./sqlite/connection.js";
@@ -68,10 +67,8 @@ function prepareStaging(database, batch, commit, timestamp) {
68
67
  throw new RepositoryStoreError("revert requires empty repository staging");
69
68
  }
70
69
  else {
71
- const committedLatest = canonicalLatestGroup(batch.latestValueWrites);
72
- if (workspace.staging.digest !== stagingDigest(commit.operations, parseRepositoryJson(committedLatest.toString("utf8"))) ||
73
- !stagingBytes(workspace.staging.operations).equals(stagingBytes(commit.operations)) ||
74
- !latestValuesBytes(workspace.staging.latestValues).equals(committedLatest)) {
70
+ if (batch.expectedStagingDigest === undefined || batch.expectedStagingDigest === null ||
71
+ workspace.staging.digest !== batch.expectedStagingDigest) {
75
72
  throw new RepositoryStoreError("staged commit operations are stale");
76
73
  }
77
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/local/store/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/local/store/apply.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/local/store/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/local/store/contract.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACpH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AA2JhG,MAAM,aAAa,GAAgD;IACjE,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;CAChE,CAAC;AACF,MAAM,mBAAmB,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AAEzF,MAAM,OAAO,gBAAgB;IAEhB;IACA;IACA;IACA;IACA;IALX,YACW,SAAiB,EACjB,OAAe,EACf,KAAa,EACb,KAAoB,EACpB,WAAmB;QAJnB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAQ;QACb,UAAK,GAAL,KAAK,CAAe;QACpB,gBAAW,GAAX,WAAW,CAAQ;IAC1B,CAAC;IAEL,MAAM,CAAC,WAAW,CAAC,GAAY;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM;YAC1E,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAC7F,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC;YAC3E,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1F,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClE,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,0BAA0B,CAAC,CAAC;YAC5G,MAAM,KAAK,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAe;QACvC,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,mBAAmB,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,IAAI,KAAK,YAAY,WAAW,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACnG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,GAAG;QACL,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,SAAS;QACP,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;YACrE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW;SAClD,CAAC;IACJ,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "sourceDigest": "sha256:da1f0b6ce3d53638ba14e5ce9b9fbfa7901fb4fbf9fe75daa8d3bd11d3091805",
2
+ "sourceDigest": "sha256:425fe6b29f7d715bedb8fd2ed4bb652b4c92add1c1473c23c18324679fd3b07f",
3
3
  "files": [
4
4
  "auth/active-key-id.js",
5
5
  "auth/active-key-id.js.map",
@@ -443,6 +443,8 @@
443
443
  "local/domain/revert/plan.js.map",
444
444
  "local/domain/revert/tag-inverses.js",
445
445
  "local/domain/revert/tag-inverses.js.map",
446
+ "local/domain/service/commit-normalize.js",
447
+ "local/domain/service/commit-normalize.js.map",
446
448
  "local/domain/service/commit.js",
447
449
  "local/domain/service/commit.js.map",
448
450
  "local/domain/service/compose.js",
@@ -1,6 +1,7 @@
1
1
  import { resolveSetupMode } from "./mode.mjs";
2
2
  import { recordResolvedMode } from "./resolved-selection-record.mjs";
3
3
  import { createSetupStdinAuthReader } from "../setup-auth.mjs";
4
+ import { resolveInteractiveSetupScope } from "./install-scope.mjs";
4
5
 
5
6
  export async function runSetupRouter(options = {}, deps = {}) {
6
7
  const mode = await resolveSetupMode(options, {
@@ -11,10 +12,15 @@ export async function runSetupRouter(options = {}, deps = {}) {
11
12
  ? createSetupStdinAuthReader(options, deps.stdin)
12
13
  : undefined;
13
14
  recordResolvedMode(mode, deps);
15
+ const scope = await resolveInteractiveSetupScope(options, {
16
+ allowPrompt: deps.isInteractive === true && options.yes !== true,
17
+ promptLocation: deps.promptInstallLocation,
18
+ });
14
19
  const context = {
15
20
  mode,
16
21
  options,
17
22
  readStdinAuth,
23
+ scope,
18
24
  };
19
25
 
20
26
  if (mode === "mcp") {
@@ -605,7 +605,7 @@ export async function runMcpModeCommand(options, deps = {}) {
605
605
  );
606
606
  }
607
607
 
608
- const scope = options.project ? "project" : "global";
608
+ const scope = deps.scope ?? (options.project ? "project" : "global");
609
609
  const baseUrl = normalizeBaseUrl(
610
610
  resolveSetupBaseUrl({ explicitBaseUrl: options.baseUrl }),
611
611
  );