@paradigma-inc/flywheel 0.2.5 → 0.2.15

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 (39) hide show
  1. package/README.md +17 -0
  2. package/bin/flywheel.js +11 -2
  3. package/package.json +1 -1
  4. package/src/public-command-metadata.mjs +16 -1
  5. package/src/runtime/delegate.mjs +13 -0
  6. package/src/runtime/node-version-preflight.mjs +26 -0
  7. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-operation.js +7 -4
  8. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-operation.js.map +1 -1
  9. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-selection.js +2 -2
  10. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-selection.js.map +1 -1
  11. package/src/runtime/vendor/flywheel-cli-dist/generatedFeedbackContract.js +2 -2
  12. package/src/runtime/vendor/flywheel-cli-dist/generatedFeedbackContract.js.map +1 -1
  13. package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js +4 -2
  14. package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js.map +1 -1
  15. package/src/runtime/vendor/flywheel-cli-dist/local/domain/service/commit-normalize.js +265 -0
  16. package/src/runtime/vendor/flywheel-cli-dist/local/domain/service/commit-normalize.js.map +1 -0
  17. package/src/runtime/vendor/flywheel-cli-dist/local/domain/service/commit.js +7 -4
  18. package/src/runtime/vendor/flywheel-cli-dist/local/domain/service/commit.js.map +1 -1
  19. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js +48 -18
  20. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js.map +1 -1
  21. package/src/runtime/vendor/flywheel-cli-dist/local/store/apply.js +3 -6
  22. package/src/runtime/vendor/flywheel-cli-dist/local/store/apply.js.map +1 -1
  23. package/src/runtime/vendor/flywheel-cli-dist/local/store/contract.js.map +1 -1
  24. package/src/runtime/vendor/flywheel-cli-dist/local/store/migration/steps.js +2 -1
  25. package/src/runtime/vendor/flywheel-cli-dist/local/store/migration/steps.js.map +1 -1
  26. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/connection.js +10 -1
  27. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/connection.js.map +1 -1
  28. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js +37 -0
  29. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js.map +1 -1
  30. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/store.js +8 -0
  31. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/store.js.map +1 -1
  32. package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js +40 -9
  33. package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js.map +1 -1
  34. package/src/runtime/vendor/flywheel-cli-dist/main.js +1 -1
  35. package/src/runtime/vendor/flywheel-cli-dist/main.js.map +1 -1
  36. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-arm64/node.napi.node +0 -0
  37. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-x64/node.napi.node +0 -0
  38. package/src/runtime/vendor/manifest.json +3 -1
  39. package/src/setup-auth.mjs +34 -14
package/README.md CHANGED
@@ -6,6 +6,13 @@ install or refresh bundled Flywheel skills.
6
6
  `@paradigma-inc/flywheel` is the only user-facing Flywheel CLI install path and
7
7
  owns the public `flywheel` binary surface.
8
8
 
9
+ ## Requirements
10
+
11
+ Local repository commands require Node.js `^24.15.0 || >=25.7.0`. On an older
12
+ Node.js, `flywheel` prints the upgrade message and exits before running any
13
+ repository command; `flywheel update`, `--version`, and `--help` always remain
14
+ available so you can repair your own installation.
15
+
9
16
  ## Install
10
17
 
11
18
  One-shot installer (macOS and Linux):
@@ -500,6 +507,16 @@ npx --yes skills ls -a cursor
500
507
  If bundled skills are missing, rerun setup with explicit mode and desired skill
501
508
  flags.
502
509
 
510
+ ## Feedback Version Metadata
511
+
512
+ `flywheel feedback:create` (and other runtime HTTP requests) report the
513
+ `@paradigma-inc/flywheel` version you have installed, read once from the
514
+ installed package manifest before the first request. Installing a fixed
515
+ release corrects the version recorded on newly submitted feedback going
516
+ forward. Historical feedback receipts are not backfilled or rewritten; if you
517
+ need to confirm the exact version that produced an older report, check the
518
+ environment details recorded in that report's original message.
519
+
503
520
  ## Other Commands
504
521
 
505
522
  - `setup`: setup flow with explicit mode routing.
package/bin/flywheel.js CHANGED
@@ -1,8 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { runUnifiedCli } from "../src/unified-cli.mjs";
3
+ import { evaluateNodeVersionPreflight } from "../src/runtime/node-version-preflight.mjs";
4
4
 
5
- runUnifiedCli(process.argv.slice(2)).catch((error) => {
5
+ const argv = process.argv.slice(2);
6
+ const nodeVersionPreflight = evaluateNodeVersionPreflight(argv);
7
+ if (!nodeVersionPreflight.allowed) {
8
+ console.error(`flywheel: ${nodeVersionPreflight.message}`);
9
+ process.exit(1);
10
+ }
11
+
12
+ const { runUnifiedCli } = await import("../src/unified-cli.mjs");
13
+
14
+ runUnifiedCli(argv).catch((error) => {
6
15
  const message = error instanceof Error ? error.message : String(error);
7
16
  console.error(`flywheel: ${message}`);
8
17
  const exitCode =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paradigma-inc/flywheel",
3
- "version": "0.2.5",
3
+ "version": "0.2.15",
4
4
  "description": "One-command setup for Flywheel MCP hosts",
5
5
  "type": "module",
6
6
  "files": [
@@ -1,6 +1,7 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
+ import { testSeamOverride } from "./setup/test-seams.mjs";
4
5
 
5
6
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
7
  const PACKAGE_JSON_PATH = path.resolve(__dirname, "..", "package.json");
@@ -504,14 +505,28 @@ export function usageVersionArg(version) {
504
505
  return `--_usage_version=${version}`;
505
506
  }
506
507
 
508
+ const PACKAGE_JSON_FOR_TESTS_ENV = "FLYWHEEL_PACKAGE_JSON_FOR_TESTS";
509
+
510
+ function resolvePackageJsonPath() {
511
+ const override = testSeamOverride(PACKAGE_JSON_FOR_TESTS_ENV);
512
+ return override === undefined ? PACKAGE_JSON_PATH : override;
513
+ }
514
+
515
+ // Repeated in-process runtime dispatches must observe the manifest as it
516
+ // exists on disk at each dispatch, so the delegate resets this cache before
517
+ // reloading the version.
507
518
  let cachedPackageVersion = null;
508
519
 
520
+ export function resetPackageVersionCache() {
521
+ cachedPackageVersion = null;
522
+ }
523
+
509
524
  export async function loadPackageVersion() {
510
525
  if (cachedPackageVersion !== null) {
511
526
  return cachedPackageVersion;
512
527
  }
513
528
  try {
514
- const raw = await readFile(PACKAGE_JSON_PATH, "utf8");
529
+ const raw = await readFile(resolvePackageJsonPath(), "utf8");
515
530
  const parsed = JSON.parse(raw);
516
531
  if (typeof parsed.version === "string" && parsed.version.trim()) {
517
532
  cachedPackageVersion = parsed.version.trim();
@@ -1,4 +1,17 @@
1
+ import {
2
+ loadPackageVersion,
3
+ resetPackageVersionCache,
4
+ } from "../public-command-metadata.mjs";
5
+ import { setCliVersion } from "./vendor/flywheel-cli-dist/version.js";
6
+
7
+ // Bootstraps the vendored runtime's shared version state from the installed
8
+ // public package manifest before constructing any HTTP client. Without this,
9
+ // the vendored runtime keeps its internal seed regardless of the installed
10
+ // package version (FLY-1009). The cached manifest read is reset first so a
11
+ // repeated in-process dispatch observes an on-disk package upgrade.
1
12
  export async function runRuntimeCli(argv, dependencies = {}) {
13
+ resetPackageVersionCache();
14
+ setCliVersion(await loadPackageVersion());
2
15
  const { runCli } = await import("./vendor/flywheel-cli-dist/runtime-entry.js");
3
16
  return await runCli(argv, dependencies);
4
17
  }
@@ -0,0 +1,26 @@
1
+ import { assertNodeVersion } from "./vendor/flywheel-cli-dist/local/runtime/platform.js";
2
+
3
+ const VERSION_HELP_TOKENS = new Set(["--version", "--help"]);
4
+
5
+ // `flywheel update` (including `flywheel update --yes`), `--version`, and
6
+ // `--help` must always run, even on a Node.js version the local repository
7
+ // engine cannot use, so a user stuck on an old runtime can still repair
8
+ // their own installation. `assertNodeVersion` reuses the exact decision and
9
+ // remediation message the engine itself throws (see
10
+ // project/flywheel-cli/src/local/runtime/platform.ts), so the supported set
11
+ // is defined once and consumed by both the executable and the engine check.
12
+ export function evaluateNodeVersionPreflight(argv, version = process.versions.node) {
13
+ const exempt = argv[0] === "update" || argv.some((token) => VERSION_HELP_TOKENS.has(token));
14
+ if (exempt) {
15
+ return { allowed: true };
16
+ }
17
+ try {
18
+ assertNodeVersion(version);
19
+ return { allowed: true };
20
+ } catch (error) {
21
+ return {
22
+ allowed: false,
23
+ message: error instanceof Error ? error.message : String(error),
24
+ };
25
+ }
26
+ }
@@ -135,12 +135,15 @@ function operationHandler(command) {
135
135
  };
136
136
  }
137
137
  else if (command === "repo:pull") {
138
- const status = await context.requestLocalJson(repositoryPath, "GET", "/status");
138
+ // The saved mode is only needed when --objects is omitted; fetching
139
+ // status unconditionally would block explicit-mode recovery pulls on
140
+ // the very availability defect they repair.
141
+ const objectMode = typeof context.params.objects === "string"
142
+ ? context.params.objects
143
+ : (await context.requestLocalJson(repositoryPath, "GET", "/status")).sync.object_mode;
139
144
  body = {
140
145
  pull_id: context.globals?.idempotencyKey ?? randomUUID(),
141
- object_mode: typeof context.params.objects === "string"
142
- ? context.params.objects
143
- : status.sync.object_mode,
146
+ object_mode: objectMode,
144
147
  };
145
148
  }
146
149
  else if (command === "repo:push") {
@@ -1 +1 @@
1
- {"version":3,"file":"repository-operation.js","sourceRoot":"","sources":["../../src/commands/repository-operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository-operation.js","sourceRoot":"","sources":["../../src/commands/repository-operation.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
@@ -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"}
@@ -90,8 +90,10 @@ function localCommandError(error) {
90
90
  if (error instanceof CliHttpError || error instanceof CliApprovalPendingError)
91
91
  return error;
92
92
  const type = error instanceof Error ? error.message : String(error);
93
- const retryable = type === "repository_locked";
94
- const message = retryable ? "another repository command is running; retry when it completes" : type;
93
+ const retryable = type === "repository_locked" || type === "repository_busy";
94
+ const message = type === "repository_locked" ? "another repository command is running; retry when it completes"
95
+ : type === "repository_busy" ? "the repository database is busy; retry when contention clears"
96
+ : type;
95
97
  return new CliHttpError(message, EXIT_TRANSPORT, undefined, {
96
98
  detail: { details: {}, message, retryable, type },
97
99
  });
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/local/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/local/adapter.ts"],"names":[],"mappings":"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"}
@@ -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