fifony 0.1.47 → 0.1.48

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 (89) hide show
  1. package/README.md +78 -0
  2. package/app/dist/assets/CommandPalette-CZDG20HW.js +1 -0
  3. package/app/dist/assets/{KeyboardShortcutsHelp-CqEFfGcE.js → KeyboardShortcutsHelp-TYhQc4aA.js} +1 -1
  4. package/app/dist/assets/OnboardingWizard-CQ9YmVIT.js +1 -0
  5. package/app/dist/assets/agents.lazy-CgakDm_P.js +1 -0
  6. package/app/dist/assets/analytics.lazy-C0rw3sov.js +1 -0
  7. package/app/dist/assets/{createLucideIcon-luywpIq4.js → createLucideIcon-B3bah5lk.js} +1 -1
  8. package/app/dist/assets/hooks-CNPue7d7.js +1 -0
  9. package/app/dist/assets/index-B8XCmr0-.css +1 -0
  10. package/app/dist/assets/index-Dfn02uW3.js +47 -0
  11. package/app/dist/assets/index.lazy-JdqhBwPd.js +44 -0
  12. package/app/dist/assets/services-CHpVij2M.css +1 -0
  13. package/app/dist/assets/services.lazy-BShKUCOt.js +12 -0
  14. package/app/dist/assets/vendor-X6HTElZW.js +9 -0
  15. package/app/dist/assets/viz-Dsh_q2DK.js +4 -0
  16. package/app/dist/index.html +5 -4
  17. package/app/dist/service-worker.js +32 -1
  18. package/dist/agent/run-local.js +89 -76
  19. package/dist/{agent-DFSFG6DG.js → agent-DJ4SCNBZ.js} +22 -17
  20. package/dist/{analytics-broadcaster-O4AE3RUK.js → analytics-broadcaster-INNYWHDJ.js} +25 -20
  21. package/dist/approve-plan.command-WE2CO3H2.js +21 -0
  22. package/dist/{chunk-HOIOVUHI.js → chunk-5M7PBFMZ.js} +8 -6
  23. package/dist/chunk-7R7XFXJM.js +1247 -0
  24. package/dist/{chunk-2PRRKBG6.js → chunk-A4P2MYJF.js} +22 -9
  25. package/dist/chunk-AFOV3ZAF.js +722 -0
  26. package/dist/chunk-AFP36N23.js +134 -0
  27. package/dist/{chunk-AAZKYWOY.js → chunk-AFYKGVSP.js} +103 -8
  28. package/dist/chunk-APJOZXRP.js +737 -0
  29. package/dist/chunk-DLSPRIQL.js +241 -0
  30. package/dist/{chunk-5AMWD66T.js → chunk-EDIPHR5B.js} +6 -4
  31. package/dist/{chunk-K36BWMUV.js → chunk-JU3MF3MW.js} +2526 -736
  32. package/dist/{chunk-7TXZYZR5.js → chunk-N5HCNY4O.js} +7 -5
  33. package/dist/{chunk-JRLWLZOD.js → chunk-NKMZYPIS.js} +31 -23
  34. package/dist/{chunk-PI7Y77R3.js → chunk-OFIVTM2E.js} +17 -7
  35. package/dist/{chunk-QH6VCTET.js → chunk-RCSJFMQG.js} +909 -98
  36. package/dist/{chunk-AAVROEQC.js → chunk-UR7T7IA6.js} +253 -349
  37. package/dist/{chunk-QHISYRXJ.js → chunk-VOYLU3MI.js} +57 -3
  38. package/dist/{chunk-EBCSQFPR.js → chunk-W5IULOWV.js} +2 -3
  39. package/dist/chunk-X37RNTWU.js +193 -0
  40. package/dist/{chunk-PACI3T4I.js → chunk-XY2APMDE.js} +13 -5
  41. package/dist/chunk-Z6ZWNWWR.js +34 -0
  42. package/dist/cli.js +45 -17
  43. package/dist/constants-AAP7ZGCX.js +124 -0
  44. package/dist/create-issue.command-SX3AXXIC.js +29 -0
  45. package/dist/fsm-agent-JGV22WK4.js +59 -0
  46. package/dist/{fsm-issue-EHTSKMFN.js → fsm-issue-LHIJM5VB.js} +12 -8
  47. package/dist/{fsm-service-7O4AJG2R.js → fsm-service-GGDKUTWS.js} +13 -4
  48. package/dist/{helpers-ON2S7UEF.js → helpers-AENVYEZJ.js} +6 -2
  49. package/dist/{issue-log-broadcaster-FZGVEEIX.js → issue-log-broadcaster-QQWM7LOV.js} +29 -18
  50. package/dist/{issues-3YNNTB4U.js → issues-RXFKKSXB.js} +10 -7
  51. package/dist/{log-analyzer-EIX6R6PP.js → log-analyzer-4LNXQISY.js} +30 -20
  52. package/dist/{logger-IFLXTQPS.js → logger-4F6ATWNA.js} +2 -1
  53. package/dist/mcp/server.js +6 -2
  54. package/dist/merge-workspace.command-ZNGIZC4O.js +29 -0
  55. package/dist/{parallel-executor-DWESCNX3.js → parallel-executor-OL5CB33L.js} +78 -19
  56. package/dist/{pid-manager-UBWXVSMD.js → pid-manager-EDT4DHAU.js} +2 -1
  57. package/dist/queue-workers-NSKIIMQ2.js +43 -0
  58. package/dist/replan-issue.command-73PETERX.js +21 -0
  59. package/dist/retry-issue.command-DIDP4OCS.js +21 -0
  60. package/dist/reverse-proxy-server-QSS3H4UH.js +97 -0
  61. package/dist/scheduler-5YORYECF.js +37 -0
  62. package/dist/service-log-broadcaster-JIUP2L3D.js +21 -0
  63. package/dist/{settings-SOTIS6ZD.js → settings-ZNDXYL46.js} +34 -23
  64. package/dist/settings.resource-OKUHXICJ.js +35 -0
  65. package/dist/{store-S3NAYZ3S.js → store-P3ACO6YA.js} +22 -17
  66. package/dist/telemetry-KVUFHDQS.js +828 -0
  67. package/dist/template-variants-HEPLYKMP.js +24 -0
  68. package/dist/trace-bundle-IJOV7IWH.js +41 -0
  69. package/dist/{web-push-QCTLS7EJ.js → web-push-X2LLMQ4M.js} +2 -1
  70. package/dist/websocket-Q2TUCIC2.js +103 -0
  71. package/dist/{workspace-OS7GPMCN.js → workspace-TDX3NJCX.js} +10 -6
  72. package/package.json +12 -9
  73. package/app/dist/assets/CommandPalette-CL8p78lG.js +0 -1
  74. package/app/dist/assets/OnboardingWizard-BmI50ZUv.js +0 -1
  75. package/app/dist/assets/analytics.lazy-CXGjZabc.js +0 -1
  76. package/app/dist/assets/index-CEaccpYh.js +0 -96
  77. package/app/dist/assets/index-CzzWGzux.css +0 -1
  78. package/app/dist/assets/vendor-uqBx3VSC.js +0 -9
  79. package/dist/approve-plan.command-QGQZZXTQ.js +0 -17
  80. package/dist/chunk-N4KFNX2G.js +0 -370
  81. package/dist/chunk-VM5QAYP5.js +0 -404
  82. package/dist/create-issue.command-VAKYRECC.js +0 -24
  83. package/dist/merge-workspace.command-T2NIGR4M.js +0 -24
  84. package/dist/queue-workers-V57BYXAY.js +0 -38
  85. package/dist/replan-issue.command-2GQ3QXCR.js +0 -17
  86. package/dist/retry-issue.command-GJBUUYDJ.js +0 -17
  87. package/dist/scheduler-KYILMWLD.js +0 -32
  88. package/dist/settings.resource-JMD3JQOS.js +0 -30
  89. package/dist/websocket-T2Y3BY4B.js +0 -61
@@ -1,8 +1,13 @@
1
1
  import {
2
2
  serializeReviewRouteSnapshot
3
- } from "./chunk-EBCSQFPR.js";
3
+ } from "./chunk-W5IULOWV.js";
4
+ import {
5
+ loadHarnessOutcome
6
+ } from "./chunk-APJOZXRP.js";
4
7
 
5
8
  // src/domains/metrics.ts
9
+ import { existsSync, readdirSync } from "fs";
10
+ import { join } from "path";
6
11
  function resolveAnalyticsReviewRun(issue) {
7
12
  const reviewRuns = Array.isArray(issue.reviewRuns) ? issue.reviewRuns : [];
8
13
  const completed = reviewRuns.filter((entry) => entry.status === "completed");
@@ -485,9 +490,58 @@ function computeQualityGateMetrics(issues) {
485
490
  }
486
491
  };
487
492
  }
493
+ function outcomeToScore(outcome) {
494
+ if (outcome === "success") return 1;
495
+ if (outcome === "failure") return 0;
496
+ if (outcome === "timeout") return 0;
497
+ if (outcome === "crash") return 0;
498
+ return 0.25;
499
+ }
500
+ var PARETO_TRACE_DIR = "traces";
501
+ var PARETO_TRACE_PATTERN = /^v(\d+)a(\d+)$/;
502
+ function computeContextParetoFrontier(workspacesRoot) {
503
+ const points = [];
504
+ let workspaces = [];
505
+ try {
506
+ workspaces = readdirSync(workspacesRoot).map((name) => join(workspacesRoot, name)).filter((path) => existsSync(join(path, PARETO_TRACE_DIR))).slice(0, 100);
507
+ } catch {
508
+ return [];
509
+ }
510
+ for (const workspace of workspaces) {
511
+ const tracesRoot = join(workspace, PARETO_TRACE_DIR);
512
+ let traceNames = [];
513
+ try {
514
+ traceNames = readdirSync(tracesRoot).filter((name) => PARETO_TRACE_PATTERN.test(name));
515
+ } catch {
516
+ continue;
517
+ }
518
+ for (const traceName of traceNames) {
519
+ const outcome = loadHarnessOutcome(join(tracesRoot, traceName));
520
+ if (!outcome) continue;
521
+ points.push({
522
+ issueId: outcome.issueId,
523
+ issueIdentifier: outcome.issueIdentifier,
524
+ planVersion: outcome.planVersion,
525
+ executeAttempt: outcome.executeAttempt,
526
+ contextChars: outcome.contextMetrics.retryContextChars,
527
+ contextUtilizationPct: outcome.contextMetrics.budgetUtilizationPct,
528
+ outcomeScore: outcomeToScore(outcome.outcome),
529
+ outcome: outcome.outcome,
530
+ onFrontier: false
531
+ });
532
+ }
533
+ }
534
+ for (const point of points) {
535
+ point.onFrontier = !points.some(
536
+ (other) => other !== point && other.contextChars <= point.contextChars && other.outcomeScore >= point.outcomeScore && (other.contextChars < point.contextChars || other.outcomeScore > point.outcomeScore)
537
+ );
538
+ }
539
+ return points.sort((a, b) => a.contextChars - b.contextChars);
540
+ }
488
541
 
489
542
  export {
490
543
  computeMetrics,
491
- computeQualityGateMetrics
544
+ computeQualityGateMetrics,
545
+ computeContextParetoFrontier
492
546
  };
493
- //# sourceMappingURL=chunk-QHISYRXJ.js.map
547
+ //# sourceMappingURL=chunk-VOYLU3MI.js.map
@@ -120,8 +120,7 @@ function deriveReviewProfile(issue) {
120
120
  ],
121
121
  evidencePriorities: [
122
122
  "Navigate the affected UI and describe what users can and cannot do",
123
- "Verify mobile-width and edge-state behavior, not just the happy path",
124
- "Use Playwright evidence when visible behavior is part of the contract"
123
+ "Verify mobile-width and edge-state behavior, not just the happy path"
125
124
  ],
126
125
  severityBias: "Treat usability breaks and visually misleading states as blocking defects, not polish nits."
127
126
  },
@@ -679,4 +678,4 @@ export {
679
678
  recommendHarnessModeForIssue,
680
679
  recommendReviewRouteForIssue
681
680
  };
682
- //# sourceMappingURL=chunk-EBCSQFPR.js.map
681
+ //# sourceMappingURL=chunk-W5IULOWV.js.map
@@ -0,0 +1,193 @@
1
+ import {
2
+ __esm
3
+ } from "./chunk-Z6ZWNWWR.js";
4
+
5
+ // src/concerns/constants.ts
6
+ import { basename, dirname, join, resolve } from "path";
7
+ import { fileURLToPath } from "url";
8
+ import { env, argv, cwd as getCwd } from "process";
9
+ import { homedir } from "os";
10
+ import { existsSync } from "fs";
11
+ function findPackageRoot(startDir) {
12
+ let dir = startDir;
13
+ for (let i = 0; i < 5; i++) {
14
+ if (existsSync(join(dir, "package.json"))) return dir;
15
+ const parent = dirname(dir);
16
+ if (parent === dir) break;
17
+ dir = parent;
18
+ }
19
+ return resolve(startDir, "../..");
20
+ }
21
+ function readArgValue(args, flag) {
22
+ const index = args.indexOf(flag);
23
+ if (index === -1) return void 0;
24
+ const value = args[index + 1];
25
+ if (!value || value.startsWith("--")) return void 0;
26
+ return value;
27
+ }
28
+ function resolveInputPath(value) {
29
+ if (value.startsWith("~/")) {
30
+ return resolve(homedir(), value.slice(2));
31
+ }
32
+ return resolve(value);
33
+ }
34
+ function resolvePersistenceRoot(value) {
35
+ const resolved = value.startsWith("file://") ? fileURLToPath(value) : resolveInputPath(value);
36
+ return basename(resolved) === ".fifony" ? resolved : join(resolved, ".fifony");
37
+ }
38
+ var __filename, __dirname, PACKAGE_ROOT, CLI_ARGS, CLI_WORKSPACE_ROOT, CLI_PERSISTENCE, TARGET_ROOT, STATE_ROOT, SOURCE_ROOT, WORKSPACE_ROOT, SOURCE_MARKER, ATTACHMENTS_ROOT, BLUEPRINT_ARTIFACTS_DIRNAME, S3DB_DATABASE_PATH, S3DB_RUNTIME_RESOURCE, S3DB_ISSUE_RESOURCE, S3DB_MILESTONE_RESOURCE, S3DB_ISSUE_PLAN_RESOURCE, S3DB_EVENT_RESOURCE, S3DB_SETTINGS_RESOURCE, S3DB_AGENT_SESSION_RESOURCE, S3DB_AGENT_PIPELINE_RESOURCE, S3DB_SERVICES_RESOURCE, S3DB_VARIABLES_RESOURCE, S3DB_CONTEXT_FRAGMENT_RESOURCE, S3DB_RUNTIME_RECORD_ID, S3DB_RUNTIME_SCHEMA_VERSION, EMBEDDING_VECTOR_DIMENSIONS, GLOBAL_FIFONY_ROOT, LEGACY_WORKSPACE_EMBEDDING_CACHE_DIR, EMBEDDING_LOCAL_CACHE_DIR, FRONTEND_DIR, FRONTEND_INDEX, FRONTEND_MANIFEST_JSON, FRONTEND_SERVICE_WORKER_JS, FRONTEND_ICON_SVG, FRONTEND_MASKABLE_ICON_SVG, FRONTEND_OFFLINE_HTML, DEBUG_BOOT, ALLOWED_STATES, TERMINAL_STATES, COMPLETED_STATES, EXECUTING_STATES, PERSIST_EVENTS_MAX, DEFAULT_MAX_REVIEW_AUTO_RETRIES, DEFAULT_MAX_TURNS, DEFAULT_MAX_TURNS_BY_MODE, DEFAULT_MAX_CONTRACT_NEGOTIATION_ROUNDS, DEFAULT_MAX_CONTEXT_RESETS, DEFAULT_CONTEXT_RESET_THRESHOLD_PCT, DEFAULT_ADAPTIVE_POLICY_MIN_SAMPLES, DEFAULT_BLUEPRINT_ID, DEFAULT_BLUEPRINT_VERSION, DEFAULT_BLUEPRINT_MAX_LOCAL_RETRIES, DEFAULT_BLUEPRINT_MAX_REMOTE_ROUNDS, DEFAULT_BLUEPRINT_MAX_FANOUT, DEFAULT_BLUEPRINT_MAX_WALL_CLOCK_MINUTES, FAST_BOOT, SKIP_SOURCE, SKIP_SCAN, SKIP_RECOVERY, QUIET_MODE;
39
+ var init_constants = __esm({
40
+ "src/concerns/constants.ts"() {
41
+ __filename = fileURLToPath(import.meta.url);
42
+ __dirname = dirname(__filename);
43
+ PACKAGE_ROOT = findPackageRoot(__dirname);
44
+ CLI_ARGS = argv.slice(2);
45
+ CLI_WORKSPACE_ROOT = readArgValue(CLI_ARGS, "--workspace");
46
+ CLI_PERSISTENCE = readArgValue(CLI_ARGS, "--persistence");
47
+ TARGET_ROOT = resolveInputPath(
48
+ env.FIFONY_WORKSPACE_ROOT ?? CLI_WORKSPACE_ROOT ?? getCwd()
49
+ );
50
+ STATE_ROOT = resolvePersistenceRoot(
51
+ env.FIFONY_PERSISTENCE ?? CLI_PERSISTENCE ?? env.FIFONY_BOOTSTRAP_ROOT ?? TARGET_ROOT
52
+ );
53
+ SOURCE_ROOT = `${STATE_ROOT}/source`;
54
+ WORKSPACE_ROOT = `${STATE_ROOT}/workspaces`;
55
+ SOURCE_MARKER = `${SOURCE_ROOT}/.fifony-local-source-ready`;
56
+ ATTACHMENTS_ROOT = `${STATE_ROOT}/attachments`;
57
+ BLUEPRINT_ARTIFACTS_DIRNAME = ".fifony-blueprint";
58
+ S3DB_DATABASE_PATH = `${STATE_ROOT}/fifony.sqlite`;
59
+ S3DB_RUNTIME_RESOURCE = "runtime_state";
60
+ S3DB_ISSUE_RESOURCE = "issues";
61
+ S3DB_MILESTONE_RESOURCE = "milestones";
62
+ S3DB_ISSUE_PLAN_RESOURCE = "issue_plans";
63
+ S3DB_EVENT_RESOURCE = "events";
64
+ S3DB_SETTINGS_RESOURCE = "settings";
65
+ S3DB_AGENT_SESSION_RESOURCE = "agent_sessions";
66
+ S3DB_AGENT_PIPELINE_RESOURCE = "agent_pipelines";
67
+ S3DB_SERVICES_RESOURCE = "workspace_services";
68
+ S3DB_VARIABLES_RESOURCE = "workspace_variables";
69
+ S3DB_CONTEXT_FRAGMENT_RESOURCE = "context_fragments";
70
+ S3DB_RUNTIME_RECORD_ID = "current";
71
+ S3DB_RUNTIME_SCHEMA_VERSION = 1;
72
+ EMBEDDING_VECTOR_DIMENSIONS = 384;
73
+ GLOBAL_FIFONY_ROOT = resolvePersistenceRoot(
74
+ env.FIFONY_GLOBAL_ROOT ?? join(homedir(), ".fifony")
75
+ );
76
+ LEGACY_WORKSPACE_EMBEDDING_CACHE_DIR = resolveInputPath(
77
+ join(STATE_ROOT, "models", "embeddings")
78
+ );
79
+ EMBEDDING_LOCAL_CACHE_DIR = resolveInputPath(
80
+ env.FIFONY_EMBEDDINGS_CACHE_DIR ?? join(GLOBAL_FIFONY_ROOT, "models", "embeddings")
81
+ );
82
+ FRONTEND_DIR = `${PACKAGE_ROOT}/app/dist`;
83
+ FRONTEND_INDEX = `${FRONTEND_DIR}/index.html`;
84
+ FRONTEND_MANIFEST_JSON = `${FRONTEND_DIR}/manifest.webmanifest`;
85
+ FRONTEND_SERVICE_WORKER_JS = `${FRONTEND_DIR}/service-worker.js`;
86
+ FRONTEND_ICON_SVG = `${FRONTEND_DIR}/icon.svg`;
87
+ FRONTEND_MASKABLE_ICON_SVG = `${FRONTEND_DIR}/icon-maskable.svg`;
88
+ FRONTEND_OFFLINE_HTML = `${FRONTEND_DIR}/offline.html`;
89
+ DEBUG_BOOT = env.FIFONY_DEBUG_BOOT === "1";
90
+ ALLOWED_STATES = [
91
+ "Planning",
92
+ "PendingApproval",
93
+ "Queued",
94
+ "Running",
95
+ "Reviewing",
96
+ "PendingDecision",
97
+ "Blocked",
98
+ "Approved",
99
+ "Merged",
100
+ "Cancelled",
101
+ "Archived"
102
+ ];
103
+ TERMINAL_STATES = /* @__PURE__ */ new Set(["Merged", "Cancelled", "Archived"]);
104
+ COMPLETED_STATES = /* @__PURE__ */ new Set(["Approved", "Merged", "Cancelled", "Archived"]);
105
+ EXECUTING_STATES = /* @__PURE__ */ new Set(["Running", "Reviewing"]);
106
+ PERSIST_EVENTS_MAX = 500;
107
+ DEFAULT_MAX_REVIEW_AUTO_RETRIES = 1;
108
+ DEFAULT_MAX_TURNS = 20;
109
+ DEFAULT_MAX_TURNS_BY_MODE = {
110
+ solo: 10,
111
+ standard: 20,
112
+ contractual: 30
113
+ };
114
+ DEFAULT_MAX_CONTRACT_NEGOTIATION_ROUNDS = 2;
115
+ DEFAULT_MAX_CONTEXT_RESETS = 2;
116
+ DEFAULT_CONTEXT_RESET_THRESHOLD_PCT = 85;
117
+ DEFAULT_ADAPTIVE_POLICY_MIN_SAMPLES = 3;
118
+ DEFAULT_BLUEPRINT_ID = "fifony.unattended.v1";
119
+ DEFAULT_BLUEPRINT_VERSION = 1;
120
+ DEFAULT_BLUEPRINT_MAX_LOCAL_RETRIES = 2;
121
+ DEFAULT_BLUEPRINT_MAX_REMOTE_ROUNDS = 1;
122
+ DEFAULT_BLUEPRINT_MAX_FANOUT = 3;
123
+ DEFAULT_BLUEPRINT_MAX_WALL_CLOCK_MINUTES = 120;
124
+ FAST_BOOT = CLI_ARGS.includes("--fast-boot");
125
+ SKIP_SOURCE = FAST_BOOT || CLI_ARGS.includes("--skip-source");
126
+ SKIP_SCAN = FAST_BOOT || CLI_ARGS.includes("--skip-scan");
127
+ SKIP_RECOVERY = FAST_BOOT || CLI_ARGS.includes("--skip-recovery");
128
+ QUIET_MODE = CLI_ARGS.includes("--quiet") || CLI_ARGS.includes("--silent");
129
+ }
130
+ });
131
+
132
+ export {
133
+ PACKAGE_ROOT,
134
+ CLI_ARGS,
135
+ resolvePersistenceRoot,
136
+ TARGET_ROOT,
137
+ STATE_ROOT,
138
+ SOURCE_ROOT,
139
+ WORKSPACE_ROOT,
140
+ SOURCE_MARKER,
141
+ ATTACHMENTS_ROOT,
142
+ BLUEPRINT_ARTIFACTS_DIRNAME,
143
+ S3DB_DATABASE_PATH,
144
+ S3DB_RUNTIME_RESOURCE,
145
+ S3DB_ISSUE_RESOURCE,
146
+ S3DB_MILESTONE_RESOURCE,
147
+ S3DB_ISSUE_PLAN_RESOURCE,
148
+ S3DB_EVENT_RESOURCE,
149
+ S3DB_SETTINGS_RESOURCE,
150
+ S3DB_AGENT_SESSION_RESOURCE,
151
+ S3DB_AGENT_PIPELINE_RESOURCE,
152
+ S3DB_SERVICES_RESOURCE,
153
+ S3DB_VARIABLES_RESOURCE,
154
+ S3DB_CONTEXT_FRAGMENT_RESOURCE,
155
+ S3DB_RUNTIME_RECORD_ID,
156
+ S3DB_RUNTIME_SCHEMA_VERSION,
157
+ EMBEDDING_VECTOR_DIMENSIONS,
158
+ GLOBAL_FIFONY_ROOT,
159
+ LEGACY_WORKSPACE_EMBEDDING_CACHE_DIR,
160
+ EMBEDDING_LOCAL_CACHE_DIR,
161
+ FRONTEND_DIR,
162
+ FRONTEND_INDEX,
163
+ FRONTEND_MANIFEST_JSON,
164
+ FRONTEND_SERVICE_WORKER_JS,
165
+ FRONTEND_ICON_SVG,
166
+ FRONTEND_MASKABLE_ICON_SVG,
167
+ FRONTEND_OFFLINE_HTML,
168
+ DEBUG_BOOT,
169
+ ALLOWED_STATES,
170
+ TERMINAL_STATES,
171
+ COMPLETED_STATES,
172
+ EXECUTING_STATES,
173
+ PERSIST_EVENTS_MAX,
174
+ DEFAULT_MAX_REVIEW_AUTO_RETRIES,
175
+ DEFAULT_MAX_TURNS,
176
+ DEFAULT_MAX_TURNS_BY_MODE,
177
+ DEFAULT_MAX_CONTRACT_NEGOTIATION_ROUNDS,
178
+ DEFAULT_MAX_CONTEXT_RESETS,
179
+ DEFAULT_CONTEXT_RESET_THRESHOLD_PCT,
180
+ DEFAULT_ADAPTIVE_POLICY_MIN_SAMPLES,
181
+ DEFAULT_BLUEPRINT_ID,
182
+ DEFAULT_BLUEPRINT_VERSION,
183
+ DEFAULT_BLUEPRINT_MAX_LOCAL_RETRIES,
184
+ DEFAULT_BLUEPRINT_MAX_REMOTE_ROUNDS,
185
+ DEFAULT_BLUEPRINT_MAX_FANOUT,
186
+ DEFAULT_BLUEPRINT_MAX_WALL_CLOCK_MINUTES,
187
+ SKIP_SOURCE,
188
+ SKIP_SCAN,
189
+ SKIP_RECOVERY,
190
+ QUIET_MODE,
191
+ init_constants
192
+ };
193
+ //# sourceMappingURL=chunk-X37RNTWU.js.map
@@ -1,14 +1,22 @@
1
1
  import {
2
2
  transitionIssueCommand
3
- } from "./chunk-7TXZYZR5.js";
3
+ } from "./chunk-N5HCNY4O.js";
4
4
  import {
5
5
  assertPlanReadyForExecution,
6
6
  getPlanExecutionBlocker
7
- } from "./chunk-JRLWLZOD.js";
7
+ } from "./chunk-NKMZYPIS.js";
8
8
  import {
9
- TERMINAL_STATES,
9
+ init_helpers,
10
10
  now
11
- } from "./chunk-VM5QAYP5.js";
11
+ } from "./chunk-DLSPRIQL.js";
12
+ import {
13
+ TERMINAL_STATES,
14
+ init_constants
15
+ } from "./chunk-X37RNTWU.js";
16
+
17
+ // src/commands/retry-issue.command.ts
18
+ init_constants();
19
+ init_helpers();
12
20
 
13
21
  // src/commands/request-rework.command.ts
14
22
  async function requestReworkCommand(input, deps) {
@@ -122,4 +130,4 @@ export {
122
130
  requestReworkCommand,
123
131
  retryIssueCommand
124
132
  };
125
- //# sourceMappingURL=chunk-PACI3T4I.js.map
133
+ //# sourceMappingURL=chunk-XY2APMDE.js.map
@@ -0,0 +1,34 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
6
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
7
+ }) : x)(function(x) {
8
+ if (typeof require !== "undefined") return require.apply(this, arguments);
9
+ throw Error('Dynamic require of "' + x + '" is not supported');
10
+ });
11
+ var __esm = (fn, res) => function __init() {
12
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
13
+ };
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+
28
+ export {
29
+ __require,
30
+ __esm,
31
+ __export,
32
+ __toCommonJS
33
+ };
34
+ //# sourceMappingURL=chunk-Z6ZWNWWR.js.map
package/dist/cli.js CHANGED
@@ -12,16 +12,14 @@ import {
12
12
  loadRuntimeSettings,
13
13
  resetDevProfile,
14
14
  runDoctorChecks
15
- } from "./chunk-K36BWMUV.js";
16
- import "./chunk-PACI3T4I.js";
17
- import "./chunk-HOIOVUHI.js";
15
+ } from "./chunk-JU3MF3MW.js";
16
+ import "./chunk-XY2APMDE.js";
17
+ import "./chunk-5M7PBFMZ.js";
18
18
  import "./chunk-FH7HUPZX.js";
19
- import "./chunk-N4KFNX2G.js";
20
- import "./chunk-AAVROEQC.js";
21
- import "./chunk-5AMWD66T.js";
22
- import "./chunk-7TXZYZR5.js";
23
- import "./chunk-JRLWLZOD.js";
24
- import "./chunk-QH6VCTET.js";
19
+ import "./chunk-EDIPHR5B.js";
20
+ import "./chunk-N5HCNY4O.js";
21
+ import "./chunk-NKMZYPIS.js";
22
+ import "./chunk-RCSJFMQG.js";
25
23
  import {
26
24
  applyWorkflowConfig,
27
25
  buildRuntimeState,
@@ -31,17 +29,27 @@ import {
31
29
  listReferenceRepositories,
32
30
  resolveProjectMetadata,
33
31
  syncReferenceRepositories
34
- } from "./chunk-2PRRKBG6.js";
35
- import "./chunk-PI7Y77R3.js";
36
- import "./chunk-QHISYRXJ.js";
37
- import "./chunk-EBCSQFPR.js";
38
- import "./chunk-AAZKYWOY.js";
32
+ } from "./chunk-A4P2MYJF.js";
33
+ import "./chunk-OFIVTM2E.js";
34
+ import "./chunk-AFP36N23.js";
35
+ import "./chunk-AFOV3ZAF.js";
36
+ import "./chunk-VOYLU3MI.js";
37
+ import "./chunk-W5IULOWV.js";
38
+ import "./chunk-APJOZXRP.js";
39
+ import "./chunk-UR7T7IA6.js";
40
+ import "./chunk-7R7XFXJM.js";
41
+ import "./chunk-3NE23NYW.js";
42
+ import "./chunk-AFYKGVSP.js";
43
+ import {
44
+ init_helpers,
45
+ now
46
+ } from "./chunk-DLSPRIQL.js";
39
47
  import {
40
- now,
48
+ init_constants,
41
49
  resolvePersistenceRoot
42
- } from "./chunk-VM5QAYP5.js";
50
+ } from "./chunk-X37RNTWU.js";
43
51
  import "./chunk-PXTIWKLQ.js";
44
- import "./chunk-3NE23NYW.js";
52
+ import "./chunk-Z6ZWNWWR.js";
45
53
 
46
54
  // src/cli.ts
47
55
  import { spawn } from "child_process";
@@ -51,6 +59,8 @@ import { fileURLToPath } from "url";
51
59
  import { createRequire } from "module";
52
60
  import { readFileSync } from "fs";
53
61
  import { createCLI } from "cli-args-parser";
62
+ init_helpers();
63
+ init_constants();
54
64
  import { existsSync } from "fs";
55
65
  var __filename = fileURLToPath(import.meta.url);
56
66
  var __dirname = dirname(__filename);
@@ -434,6 +444,14 @@ async function runMcpServer(result) {
434
444
  FIFONY_PERSISTENCE: persistenceRoot
435
445
  });
436
446
  }
447
+ async function runReverseProxyRuntime(result) {
448
+ const runtimeConfig = getStringOption(result, "runtimeConfig");
449
+ if (!runtimeConfig) {
450
+ throw new Error("Missing --runtime-config for reverse-proxy-runtime.");
451
+ }
452
+ const { runReverseProxyRuntimeProcess } = await import("./reverse-proxy-server-QSS3H4UH.js");
453
+ await runReverseProxyRuntimeProcess(resolve(runtimeConfig));
454
+ }
437
455
  function printDevProfileStatus(profile) {
438
456
  console.log("Fifony Dev Profile");
439
457
  printKeyValue("Profile", profile.profileName);
@@ -520,6 +538,16 @@ var cli = createCLI({
520
538
  options: commonOptions,
521
539
  handler: (result) => runMcpServer(result)
522
540
  },
541
+ "reverse-proxy-runtime": {
542
+ description: "Run the detached HTTPS reverse proxy runtime sidecar.",
543
+ options: {
544
+ runtimeConfig: {
545
+ type: "string",
546
+ description: "Path to the generated reverse proxy runtime config JSON."
547
+ }
548
+ },
549
+ handler: (result) => runReverseProxyRuntime(result)
550
+ },
523
551
  dev: {
524
552
  description: "Manage and run the isolated Fifony development profile.",
525
553
  commands: {
@@ -0,0 +1,124 @@
1
+ import {
2
+ ALLOWED_STATES,
3
+ ATTACHMENTS_ROOT,
4
+ BLUEPRINT_ARTIFACTS_DIRNAME,
5
+ CLI_ARGS,
6
+ COMPLETED_STATES,
7
+ DEBUG_BOOT,
8
+ DEFAULT_ADAPTIVE_POLICY_MIN_SAMPLES,
9
+ DEFAULT_BLUEPRINT_ID,
10
+ DEFAULT_BLUEPRINT_MAX_FANOUT,
11
+ DEFAULT_BLUEPRINT_MAX_LOCAL_RETRIES,
12
+ DEFAULT_BLUEPRINT_MAX_REMOTE_ROUNDS,
13
+ DEFAULT_BLUEPRINT_MAX_WALL_CLOCK_MINUTES,
14
+ DEFAULT_BLUEPRINT_VERSION,
15
+ DEFAULT_CONTEXT_RESET_THRESHOLD_PCT,
16
+ DEFAULT_MAX_CONTEXT_RESETS,
17
+ DEFAULT_MAX_CONTRACT_NEGOTIATION_ROUNDS,
18
+ DEFAULT_MAX_REVIEW_AUTO_RETRIES,
19
+ DEFAULT_MAX_TURNS,
20
+ DEFAULT_MAX_TURNS_BY_MODE,
21
+ EMBEDDING_LOCAL_CACHE_DIR,
22
+ EMBEDDING_VECTOR_DIMENSIONS,
23
+ EXECUTING_STATES,
24
+ FRONTEND_DIR,
25
+ FRONTEND_ICON_SVG,
26
+ FRONTEND_INDEX,
27
+ FRONTEND_MANIFEST_JSON,
28
+ FRONTEND_MASKABLE_ICON_SVG,
29
+ FRONTEND_OFFLINE_HTML,
30
+ FRONTEND_SERVICE_WORKER_JS,
31
+ GLOBAL_FIFONY_ROOT,
32
+ LEGACY_WORKSPACE_EMBEDDING_CACHE_DIR,
33
+ PACKAGE_ROOT,
34
+ PERSIST_EVENTS_MAX,
35
+ QUIET_MODE,
36
+ S3DB_AGENT_PIPELINE_RESOURCE,
37
+ S3DB_AGENT_SESSION_RESOURCE,
38
+ S3DB_CONTEXT_FRAGMENT_RESOURCE,
39
+ S3DB_DATABASE_PATH,
40
+ S3DB_EVENT_RESOURCE,
41
+ S3DB_ISSUE_PLAN_RESOURCE,
42
+ S3DB_ISSUE_RESOURCE,
43
+ S3DB_MILESTONE_RESOURCE,
44
+ S3DB_RUNTIME_RECORD_ID,
45
+ S3DB_RUNTIME_RESOURCE,
46
+ S3DB_RUNTIME_SCHEMA_VERSION,
47
+ S3DB_SERVICES_RESOURCE,
48
+ S3DB_SETTINGS_RESOURCE,
49
+ S3DB_VARIABLES_RESOURCE,
50
+ SKIP_RECOVERY,
51
+ SKIP_SCAN,
52
+ SKIP_SOURCE,
53
+ SOURCE_MARKER,
54
+ SOURCE_ROOT,
55
+ STATE_ROOT,
56
+ TARGET_ROOT,
57
+ TERMINAL_STATES,
58
+ WORKSPACE_ROOT,
59
+ init_constants,
60
+ resolvePersistenceRoot
61
+ } from "./chunk-X37RNTWU.js";
62
+ import "./chunk-Z6ZWNWWR.js";
63
+ init_constants();
64
+ export {
65
+ ALLOWED_STATES,
66
+ ATTACHMENTS_ROOT,
67
+ BLUEPRINT_ARTIFACTS_DIRNAME,
68
+ CLI_ARGS,
69
+ COMPLETED_STATES,
70
+ DEBUG_BOOT,
71
+ DEFAULT_ADAPTIVE_POLICY_MIN_SAMPLES,
72
+ DEFAULT_BLUEPRINT_ID,
73
+ DEFAULT_BLUEPRINT_MAX_FANOUT,
74
+ DEFAULT_BLUEPRINT_MAX_LOCAL_RETRIES,
75
+ DEFAULT_BLUEPRINT_MAX_REMOTE_ROUNDS,
76
+ DEFAULT_BLUEPRINT_MAX_WALL_CLOCK_MINUTES,
77
+ DEFAULT_BLUEPRINT_VERSION,
78
+ DEFAULT_CONTEXT_RESET_THRESHOLD_PCT,
79
+ DEFAULT_MAX_CONTEXT_RESETS,
80
+ DEFAULT_MAX_CONTRACT_NEGOTIATION_ROUNDS,
81
+ DEFAULT_MAX_REVIEW_AUTO_RETRIES,
82
+ DEFAULT_MAX_TURNS,
83
+ DEFAULT_MAX_TURNS_BY_MODE,
84
+ EMBEDDING_LOCAL_CACHE_DIR,
85
+ EMBEDDING_VECTOR_DIMENSIONS,
86
+ EXECUTING_STATES,
87
+ FRONTEND_DIR,
88
+ FRONTEND_ICON_SVG,
89
+ FRONTEND_INDEX,
90
+ FRONTEND_MANIFEST_JSON,
91
+ FRONTEND_MASKABLE_ICON_SVG,
92
+ FRONTEND_OFFLINE_HTML,
93
+ FRONTEND_SERVICE_WORKER_JS,
94
+ GLOBAL_FIFONY_ROOT,
95
+ LEGACY_WORKSPACE_EMBEDDING_CACHE_DIR,
96
+ PACKAGE_ROOT,
97
+ PERSIST_EVENTS_MAX,
98
+ QUIET_MODE,
99
+ S3DB_AGENT_PIPELINE_RESOURCE,
100
+ S3DB_AGENT_SESSION_RESOURCE,
101
+ S3DB_CONTEXT_FRAGMENT_RESOURCE,
102
+ S3DB_DATABASE_PATH,
103
+ S3DB_EVENT_RESOURCE,
104
+ S3DB_ISSUE_PLAN_RESOURCE,
105
+ S3DB_ISSUE_RESOURCE,
106
+ S3DB_MILESTONE_RESOURCE,
107
+ S3DB_RUNTIME_RECORD_ID,
108
+ S3DB_RUNTIME_RESOURCE,
109
+ S3DB_RUNTIME_SCHEMA_VERSION,
110
+ S3DB_SERVICES_RESOURCE,
111
+ S3DB_SETTINGS_RESOURCE,
112
+ S3DB_VARIABLES_RESOURCE,
113
+ SKIP_RECOVERY,
114
+ SKIP_SCAN,
115
+ SKIP_SOURCE,
116
+ SOURCE_MARKER,
117
+ SOURCE_ROOT,
118
+ STATE_ROOT,
119
+ TARGET_ROOT,
120
+ TERMINAL_STATES,
121
+ WORKSPACE_ROOT,
122
+ resolvePersistenceRoot
123
+ };
124
+ //# sourceMappingURL=constants-AAP7ZGCX.js.map
@@ -0,0 +1,29 @@
1
+ import {
2
+ createIssueCommand
3
+ } from "./chunk-JU3MF3MW.js";
4
+ import "./chunk-XY2APMDE.js";
5
+ import "./chunk-5M7PBFMZ.js";
6
+ import "./chunk-FH7HUPZX.js";
7
+ import "./chunk-EDIPHR5B.js";
8
+ import "./chunk-N5HCNY4O.js";
9
+ import "./chunk-NKMZYPIS.js";
10
+ import "./chunk-RCSJFMQG.js";
11
+ import "./chunk-A4P2MYJF.js";
12
+ import "./chunk-OFIVTM2E.js";
13
+ import "./chunk-AFP36N23.js";
14
+ import "./chunk-AFOV3ZAF.js";
15
+ import "./chunk-VOYLU3MI.js";
16
+ import "./chunk-W5IULOWV.js";
17
+ import "./chunk-APJOZXRP.js";
18
+ import "./chunk-UR7T7IA6.js";
19
+ import "./chunk-7R7XFXJM.js";
20
+ import "./chunk-3NE23NYW.js";
21
+ import "./chunk-AFYKGVSP.js";
22
+ import "./chunk-DLSPRIQL.js";
23
+ import "./chunk-X37RNTWU.js";
24
+ import "./chunk-PXTIWKLQ.js";
25
+ import "./chunk-Z6ZWNWWR.js";
26
+ export {
27
+ createIssueCommand
28
+ };
29
+ //# sourceMappingURL=create-issue.command-SX3AXXIC.js.map
@@ -0,0 +1,59 @@
1
+ import {
2
+ AGENT_STATE_MACHINE_ID,
3
+ AGENT_WATCHER_INTERVAL_MS,
4
+ agentLogPath,
5
+ agentStateMachineConfig,
6
+ applyHarnessReviewPolicy,
7
+ canDispatchAgent,
8
+ cleanAgentJobState,
9
+ deriveAgentOperation,
10
+ getAgentStatus,
11
+ reconcileAgentStates,
12
+ requiresCheckpointReview,
13
+ resolveHarnessMode,
14
+ resolveMaxTurns,
15
+ runExecutePhase,
16
+ runPlanPhase,
17
+ runReviewPhase
18
+ } from "./chunk-JU3MF3MW.js";
19
+ import "./chunk-XY2APMDE.js";
20
+ import "./chunk-5M7PBFMZ.js";
21
+ import "./chunk-FH7HUPZX.js";
22
+ import "./chunk-EDIPHR5B.js";
23
+ import "./chunk-N5HCNY4O.js";
24
+ import "./chunk-NKMZYPIS.js";
25
+ import "./chunk-RCSJFMQG.js";
26
+ import "./chunk-A4P2MYJF.js";
27
+ import "./chunk-OFIVTM2E.js";
28
+ import "./chunk-AFP36N23.js";
29
+ import "./chunk-AFOV3ZAF.js";
30
+ import "./chunk-VOYLU3MI.js";
31
+ import "./chunk-W5IULOWV.js";
32
+ import "./chunk-APJOZXRP.js";
33
+ import "./chunk-UR7T7IA6.js";
34
+ import "./chunk-7R7XFXJM.js";
35
+ import "./chunk-3NE23NYW.js";
36
+ import "./chunk-AFYKGVSP.js";
37
+ import "./chunk-DLSPRIQL.js";
38
+ import "./chunk-X37RNTWU.js";
39
+ import "./chunk-PXTIWKLQ.js";
40
+ import "./chunk-Z6ZWNWWR.js";
41
+ export {
42
+ AGENT_STATE_MACHINE_ID,
43
+ AGENT_WATCHER_INTERVAL_MS,
44
+ agentLogPath,
45
+ agentStateMachineConfig,
46
+ applyHarnessReviewPolicy,
47
+ canDispatchAgent,
48
+ cleanAgentJobState,
49
+ deriveAgentOperation,
50
+ getAgentStatus,
51
+ reconcileAgentStates,
52
+ requiresCheckpointReview,
53
+ resolveHarnessMode,
54
+ resolveMaxTurns,
55
+ runExecutePhase,
56
+ runPlanPhase,
57
+ runReviewPhase
58
+ };
59
+ //# sourceMappingURL=fsm-agent-JGV22WK4.js.map