fifony 0.1.32 → 0.1.33
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/app/dist/apple-touch-icon.png +0 -0
- package/app/dist/assets/{CommandPalette-DuugDkZo.js → CommandPalette-Du7aS97R.js} +1 -1
- package/app/dist/assets/{KeyboardShortcutsHelp-B1a9ZDDu.js → KeyboardShortcutsHelp-mguoBIXk.js} +1 -1
- package/app/dist/assets/{OnboardingWizard-BF43aq_I.js → OnboardingWizard-dOrVz-hX.js} +1 -1
- package/app/dist/assets/{analytics.lazy-Bc6WBoMs.js → analytics.lazy-CKd9S45z.js} +1 -1
- package/app/dist/assets/{createLucideIcon-ggBfAlHh.js → createLucideIcon-CBw-4t9s.js} +1 -1
- package/app/dist/assets/index-nWJMQsCn.js +49 -0
- package/app/dist/assets/{index-CGCZneFa.css → index-rLcPCr9E.css} +1 -1
- package/app/dist/assets/vendor-DkWeBvNl.js +9 -0
- package/app/dist/favicon.png +0 -0
- package/app/dist/icon-128.png +0 -0
- package/app/dist/icon-144.png +0 -0
- package/app/dist/icon-152.png +0 -0
- package/app/dist/icon-16.png +0 -0
- package/app/dist/icon-192.png +0 -0
- package/app/dist/icon-32.png +0 -0
- package/app/dist/icon-384.png +0 -0
- package/app/dist/icon-48.png +0 -0
- package/app/dist/icon-512.png +0 -0
- package/app/dist/icon-72.png +0 -0
- package/app/dist/icon-96.png +0 -0
- package/app/dist/icon-maskable-192.png +0 -0
- package/app/dist/icon-maskable-512.png +0 -0
- package/app/dist/index.html +14 -7
- package/app/dist/manifest.webmanifest +19 -19
- package/app/dist/og-image.png +0 -0
- package/app/dist/service-worker.js +2 -2
- package/dist/agent/run-local.js +22 -15
- package/dist/{agent-3NYJEHH5.js → agent-7BMCWKOD.js} +5 -5
- package/dist/{chunk-H2QRC6UQ.js → chunk-DAXG76WD.js} +3 -3
- package/dist/{chunk-FAFGDK62.js → chunk-GAYQ2TXV.js} +17 -15
- package/dist/{chunk-FPUTP743.js → chunk-LX666HVP.js} +11 -11
- package/dist/{chunk-2D5P75F6.js → chunk-NNPKCBAB.js} +4 -4
- package/dist/cli.js +4 -4
- package/dist/{issue-runner-ZNDKLOCZ.js → issue-runner-BNAW3M6E.js} +5 -5
- package/dist/{issue-state-machine-NBSYRDZW.js → issue-state-machine-24GKGB3W.js} +3 -3
- package/dist/{issues-GBWLDBVU.js → issues-C4WJIF7S.js} +5 -5
- package/dist/{queue-workers-OHPJKAPM.js → queue-workers-HF7RBVV7.js} +2 -2
- package/dist/{scheduler-OU35EYUH.js → scheduler-JZCJB2IN.js} +5 -5
- package/dist/{store-FFHHRNVI.js → store-MHU3G2W4.js} +5 -5
- package/dist/{workspace-5XOCMZ57.js → workspace-IKR6X6OE.js} +2 -2
- package/package.json +7 -7
- package/app/dist/assets/index-Dx5YOoMm.js +0 -49
- package/app/dist/assets/vendor-CSL5bxVU.js +0 -9
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/app/dist/index.html
CHANGED
|
@@ -7,18 +7,25 @@
|
|
|
7
7
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
8
8
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
9
9
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
10
|
+
<meta name="apple-mobile-web-app-title" content="fifony" />
|
|
10
11
|
<meta name="format-detection" content="telephone=no" />
|
|
11
|
-
<meta name="description" content="
|
|
12
|
+
<meta name="description" content="Local AI orchestrator — plan, execute, review code with Claude, Codex & Gemini" />
|
|
13
|
+
<meta property="og:title" content="fifony" />
|
|
14
|
+
<meta property="og:description" content="Local AI orchestrator — plan, execute, review code with Claude, Codex & Gemini" />
|
|
15
|
+
<meta property="og:image" content="/assets/og-image.png" />
|
|
16
|
+
<meta property="og:type" content="website" />
|
|
12
17
|
<title>fifony</title>
|
|
13
18
|
<link rel="manifest" href="/assets/manifest.webmanifest" />
|
|
14
|
-
<link rel="icon" href="/assets/
|
|
15
|
-
<link rel="
|
|
16
|
-
<
|
|
19
|
+
<link rel="icon" href="/assets/favicon.png" type="image/png" />
|
|
20
|
+
<link rel="icon" href="/assets/icon-32.png" sizes="32x32" type="image/png" />
|
|
21
|
+
<link rel="icon" href="/assets/icon-16.png" sizes="16x16" type="image/png" />
|
|
22
|
+
<link rel="apple-touch-icon" href="/assets/apple-touch-icon.png" />
|
|
23
|
+
<script type="module" crossorigin src="/assets/assets/index-nWJMQsCn.js"></script>
|
|
17
24
|
<link rel="modulepreload" crossorigin href="/assets/assets/rolldown-runtime-Dw2cE7zH.js">
|
|
18
25
|
<link rel="modulepreload" crossorigin href="/assets/assets/api-ChEctgc5.js">
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/assets/vendor-
|
|
20
|
-
<link rel="modulepreload" crossorigin href="/assets/assets/createLucideIcon-
|
|
21
|
-
<link rel="stylesheet" crossorigin href="/assets/assets/index-
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/assets/vendor-DkWeBvNl.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/assets/createLucideIcon-CBw-4t9s.js">
|
|
28
|
+
<link rel="stylesheet" crossorigin href="/assets/assets/index-rLcPCr9E.css">
|
|
22
29
|
</head>
|
|
23
30
|
<body>
|
|
24
31
|
<div id="root"></div>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "/",
|
|
3
|
-
"name": "fifony
|
|
3
|
+
"name": "fifony",
|
|
4
4
|
"short_name": "fifony",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Local AI orchestrator — plan, execute, review code with Claude, Codex & Gemini",
|
|
6
6
|
"lang": "en-US",
|
|
7
7
|
"start_url": "/kanban",
|
|
8
8
|
"scope": "/",
|
|
9
|
-
"display": "
|
|
10
|
-
"display_override": ["window-controls-overlay", "standalone"
|
|
9
|
+
"display": "fullscreen",
|
|
10
|
+
"display_override": ["fullscreen", "window-controls-overlay", "standalone"],
|
|
11
11
|
"background_color": "#020617",
|
|
12
12
|
"theme_color": "#0f172a",
|
|
13
|
-
"orientation": "
|
|
13
|
+
"orientation": "any",
|
|
14
14
|
"prefer_related_applications": false,
|
|
15
15
|
"categories": ["productivity", "developer", "business"],
|
|
16
16
|
"shortcuts": [
|
|
@@ -18,32 +18,32 @@
|
|
|
18
18
|
"name": "Kanban",
|
|
19
19
|
"short_name": "Kanban",
|
|
20
20
|
"url": "/kanban",
|
|
21
|
-
"icons": [{ "src": "/icon.
|
|
21
|
+
"icons": [{ "src": "/icon-96.png", "sizes": "96x96", "type": "image/png" }]
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"name": "Issues",
|
|
25
25
|
"short_name": "Issues",
|
|
26
26
|
"url": "/issues",
|
|
27
|
-
"icons": [{ "src": "/icon.
|
|
27
|
+
"icons": [{ "src": "/icon-96.png", "sizes": "96x96", "type": "image/png" }]
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"name": "Agents",
|
|
31
31
|
"short_name": "Agents",
|
|
32
32
|
"url": "/agents",
|
|
33
|
-
"icons": [{ "src": "/icon.
|
|
33
|
+
"icons": [{ "src": "/icon-96.png", "sizes": "96x96", "type": "image/png" }]
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
36
|
"icons": [
|
|
37
|
-
{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
37
|
+
{ "src": "/icon-48.png", "sizes": "48x48", "type": "image/png" },
|
|
38
|
+
{ "src": "/icon-72.png", "sizes": "72x72", "type": "image/png" },
|
|
39
|
+
{ "src": "/icon-96.png", "sizes": "96x96", "type": "image/png" },
|
|
40
|
+
{ "src": "/icon-128.png", "sizes": "128x128", "type": "image/png" },
|
|
41
|
+
{ "src": "/icon-144.png", "sizes": "144x144", "type": "image/png" },
|
|
42
|
+
{ "src": "/icon-152.png", "sizes": "152x152", "type": "image/png" },
|
|
43
|
+
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
|
|
44
|
+
{ "src": "/icon-384.png", "sizes": "384x384", "type": "image/png" },
|
|
45
|
+
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" },
|
|
46
|
+
{ "src": "/icon-maskable-192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
|
|
47
|
+
{ "src": "/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
|
48
48
|
]
|
|
49
49
|
}
|
|
Binary file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const CACHE_VERSION = "
|
|
1
|
+
const CACHE_VERSION = "1774232641793";
|
|
2
2
|
const CORE_CACHE = `fifony-core-${CACHE_VERSION}`;
|
|
3
3
|
const ASSET_CACHE = `fifony-assets-${CACHE_VERSION}`;
|
|
4
4
|
const APP_SHELL_ROUTES = ["/kanban", "/issues", "/agents", "/settings", "/onboarding"];
|
|
5
|
-
const APP_SHELL_FILES = ["/offline.html", "/manifest.webmanifest", "/icon.
|
|
5
|
+
const APP_SHELL_FILES = ["/offline.html", "/manifest.webmanifest", "/favicon.png", "/icon-192.png", "/icon-512.png"];
|
|
6
6
|
const API_PREFIXES = ["/api/", "/docs", "/ws"];
|
|
7
7
|
|
|
8
8
|
self.addEventListener("install", (event) => {
|
package/dist/agent/run-local.js
CHANGED
|
@@ -23,10 +23,10 @@ import {
|
|
|
23
23
|
startApiServer,
|
|
24
24
|
syncRuntimeConfigSettings,
|
|
25
25
|
validateConfig
|
|
26
|
-
} from "../chunk-
|
|
26
|
+
} from "../chunk-GAYQ2TXV.js";
|
|
27
27
|
import {
|
|
28
28
|
computeMetrics
|
|
29
|
-
} from "../chunk-
|
|
29
|
+
} from "../chunk-DAXG76WD.js";
|
|
30
30
|
import {
|
|
31
31
|
detectAvailableProviders,
|
|
32
32
|
detectDefaultBranch,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
getProviderDefaultCommand,
|
|
35
35
|
resolveDefaultProvider,
|
|
36
36
|
setSkipSource
|
|
37
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-NNPKCBAB.js";
|
|
38
38
|
import {
|
|
39
39
|
debugBoot,
|
|
40
40
|
fail,
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
recoverOrphans,
|
|
48
48
|
recoverState,
|
|
49
49
|
stopQueueWorkers
|
|
50
|
-
} from "../chunk-
|
|
50
|
+
} from "../chunk-LX666HVP.js";
|
|
51
51
|
import {
|
|
52
52
|
initLogger,
|
|
53
53
|
logger
|
|
@@ -65,7 +65,7 @@ import { env, exit, argv } from "process";
|
|
|
65
65
|
|
|
66
66
|
// src/persistence/plugins/dev-server.ts
|
|
67
67
|
import { resolve } from "path";
|
|
68
|
-
async function startDevFrontend(apiPort, devPort) {
|
|
68
|
+
async function startDevFrontend(apiPort, devPort, options) {
|
|
69
69
|
const VITE_CONFIG_PATH = resolve(PACKAGE_ROOT, "app/vite.config.js");
|
|
70
70
|
let createViteServer;
|
|
71
71
|
try {
|
|
@@ -75,9 +75,14 @@ async function startDevFrontend(apiPort, devPort) {
|
|
|
75
75
|
logger.warn("Vite not installed (devDependency). Run 'pnpm install' in the project to enable --dev mode.");
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
|
+
const tls = options?.tls ?? false;
|
|
79
|
+
const scheme = tls ? "https" : "http";
|
|
80
|
+
const wsScheme = tls ? "wss" : "ws";
|
|
78
81
|
for (let attempt = 0; attempt < 20; attempt++) {
|
|
79
82
|
try {
|
|
80
|
-
const res = await fetch(
|
|
83
|
+
const res = await fetch(`${scheme}://localhost:${apiPort}/api/health`, {
|
|
84
|
+
...tls ? { dispatcher: void 0 } : {}
|
|
85
|
+
});
|
|
81
86
|
if (res.ok) break;
|
|
82
87
|
} catch {
|
|
83
88
|
await new Promise((r) => setTimeout(r, 250));
|
|
@@ -106,10 +111,11 @@ async function startDevFrontend(apiPort, devPort) {
|
|
|
106
111
|
port: devPort,
|
|
107
112
|
host: true,
|
|
108
113
|
proxy: {
|
|
109
|
-
"/api":
|
|
114
|
+
"/api": { target: `${scheme}://localhost:${apiPort}`, secure: false },
|
|
110
115
|
"/ws": {
|
|
111
|
-
target:
|
|
116
|
+
target: `${wsScheme}://localhost:${apiPort}`,
|
|
112
117
|
ws: true,
|
|
118
|
+
secure: false,
|
|
113
119
|
configure: (proxy) => {
|
|
114
120
|
const silence = (err) => {
|
|
115
121
|
logger.debug(`[Vite] WS proxy transient: ${err.code || err.message}`);
|
|
@@ -120,13 +126,13 @@ async function startDevFrontend(apiPort, devPort) {
|
|
|
120
126
|
});
|
|
121
127
|
}
|
|
122
128
|
},
|
|
123
|
-
"/docs":
|
|
124
|
-
"/health":
|
|
125
|
-
"/manifest.webmanifest":
|
|
126
|
-
"/service-worker.js":
|
|
127
|
-
"/icon.svg":
|
|
128
|
-
"/icon-maskable.svg":
|
|
129
|
-
"/offline.html":
|
|
129
|
+
"/docs": { target: `${scheme}://localhost:${apiPort}`, secure: false },
|
|
130
|
+
"/health": { target: `${scheme}://localhost:${apiPort}`, secure: false },
|
|
131
|
+
"/manifest.webmanifest": { target: `${scheme}://localhost:${apiPort}`, secure: false },
|
|
132
|
+
"/service-worker.js": { target: `${scheme}://localhost:${apiPort}`, secure: false },
|
|
133
|
+
"/icon.svg": { target: `${scheme}://localhost:${apiPort}`, secure: false },
|
|
134
|
+
"/icon-maskable.svg": { target: `${scheme}://localhost:${apiPort}`, secure: false },
|
|
135
|
+
"/offline.html": { target: `${scheme}://localhost:${apiPort}`, secure: false }
|
|
130
136
|
}
|
|
131
137
|
}
|
|
132
138
|
});
|
|
@@ -164,6 +170,7 @@ Options:
|
|
|
164
170
|
--poll <ms> Scheduler interval in ms
|
|
165
171
|
--timeout <ms> Agent command timeout in ms (default: 1800000)
|
|
166
172
|
--dev Start Vite dev server alongside API (HMR on port+1)
|
|
173
|
+
--no-tls Disable HTTPS (use plain HTTP)
|
|
167
174
|
--once Process once and exit
|
|
168
175
|
--skip-source Skip source snapshot copy
|
|
169
176
|
--skip-scan Skip project analysis
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
runIssueOnce,
|
|
16
16
|
runPlanningJob,
|
|
17
17
|
tryParseJsonOutput
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-GAYQ2TXV.js";
|
|
19
|
+
import "./chunk-DAXG76WD.js";
|
|
20
20
|
import {
|
|
21
21
|
buildPrompt,
|
|
22
22
|
buildProviderBasePrompt,
|
|
@@ -33,9 +33,9 @@ import {
|
|
|
33
33
|
runCommandWithTimeout,
|
|
34
34
|
runHook,
|
|
35
35
|
shouldSkipMergePath
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-NNPKCBAB.js";
|
|
37
37
|
import "./chunk-O5AEQXUV.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-LX666HVP.js";
|
|
39
39
|
import "./chunk-DVU3CXWA.js";
|
|
40
40
|
import "./chunk-OONOOWNC.js";
|
|
41
41
|
export {
|
|
@@ -71,4 +71,4 @@ export {
|
|
|
71
71
|
shouldSkipMergePath,
|
|
72
72
|
tryParseJsonOutput
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=agent-
|
|
74
|
+
//# sourceMappingURL=agent-7BMCWKOD.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
computeDiffStats,
|
|
3
3
|
syncIssueDiffStatsToStore
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NNPKCBAB.js";
|
|
5
5
|
import {
|
|
6
6
|
isoWeek,
|
|
7
7
|
now
|
|
@@ -324,7 +324,7 @@ function emitFsmEvent(issueId, kind, message) {
|
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
async function lazyEnqueue(issue, job) {
|
|
327
|
-
const { enqueue } = await import("./queue-workers-
|
|
327
|
+
const { enqueue } = await import("./queue-workers-HF7RBVV7.js");
|
|
328
328
|
return enqueue(issue, job);
|
|
329
329
|
}
|
|
330
330
|
var ISSUE_STATE_MACHINE_ID = "issue-lifecycle";
|
|
@@ -835,4 +835,4 @@ export {
|
|
|
835
835
|
canTransitionIssue,
|
|
836
836
|
visualizeStateMachine
|
|
837
837
|
};
|
|
838
|
-
//# sourceMappingURL=chunk-
|
|
838
|
+
//# sourceMappingURL=chunk-DAXG76WD.js.map
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
snapshotAndClearDirtyEventIds,
|
|
22
22
|
snapshotAndClearDirtyIssueIds,
|
|
23
23
|
snapshotAndClearDirtyIssuePlanIds
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-DAXG76WD.js";
|
|
25
25
|
import {
|
|
26
26
|
ADAPTERS,
|
|
27
27
|
assertIssueHasGitWorktree,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
resolveAgentCommand,
|
|
53
53
|
runCommandWithTimeout,
|
|
54
54
|
runHook
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-NNPKCBAB.js";
|
|
56
56
|
import {
|
|
57
57
|
appendFileTail,
|
|
58
58
|
clamp,
|
|
@@ -77,7 +77,7 @@ import {
|
|
|
77
77
|
} from "./chunk-O5AEQXUV.js";
|
|
78
78
|
import {
|
|
79
79
|
enqueue
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-LX666HVP.js";
|
|
81
81
|
import {
|
|
82
82
|
logger
|
|
83
83
|
} from "./chunk-DVU3CXWA.js";
|
|
@@ -2560,9 +2560,10 @@ async function collectClaudeUsage() {
|
|
|
2560
2560
|
}
|
|
2561
2561
|
}
|
|
2562
2562
|
const models = [
|
|
2563
|
-
{ slug: "claude-opus-4-6", displayName: "claude
|
|
2564
|
-
{ slug: "claude-sonnet-4-6", displayName: "claude
|
|
2565
|
-
{ slug: "claude-
|
|
2563
|
+
{ slug: "claude-opus-4-6", displayName: "claude-opus-4-6", description: "Most capable for complex work" },
|
|
2564
|
+
{ slug: "claude-sonnet-4-6", displayName: "claude-sonnet-4-6", description: "Best for everyday tasks" },
|
|
2565
|
+
{ slug: "claude-sonnet-4-6-1m", displayName: "claude-sonnet-4-6 (1m context)", description: "Billed as extra usage \xB7 $3/$15 per Mtok" },
|
|
2566
|
+
{ slug: "claude-haiku-4-5", displayName: "claude-haiku-4-5", description: "Fastest for quick answers" }
|
|
2566
2567
|
];
|
|
2567
2568
|
let plan = "pro";
|
|
2568
2569
|
let resetInfo = "Weekly reset (every Monday 00:00 UTC)";
|
|
@@ -3800,7 +3801,7 @@ function registerStateRoutes(app, state) {
|
|
|
3800
3801
|
if (!issueId) return c.json({ ok: false, error: "Issue id is required." }, 400);
|
|
3801
3802
|
const issue = findIssue(state, issueId);
|
|
3802
3803
|
if (!issue) return c.json({ ok: false, error: "Issue not found." }, 404);
|
|
3803
|
-
const { dryMerge } = await import("./workspace-
|
|
3804
|
+
const { dryMerge } = await import("./workspace-IKR6X6OE.js");
|
|
3804
3805
|
const result = dryMerge(issue);
|
|
3805
3806
|
return c.json({ ok: true, ...result });
|
|
3806
3807
|
} catch (error) {
|
|
@@ -3815,7 +3816,7 @@ function registerStateRoutes(app, state) {
|
|
|
3815
3816
|
if (!issueId) return c.json({ ok: false, error: "Issue id is required." }, 400);
|
|
3816
3817
|
const issue = findIssue(state, issueId);
|
|
3817
3818
|
if (!issue) return c.json({ ok: false, error: "Issue not found." }, 404);
|
|
3818
|
-
const { rebaseWorktree } = await import("./workspace-
|
|
3819
|
+
const { rebaseWorktree } = await import("./workspace-IKR6X6OE.js");
|
|
3819
3820
|
const result = rebaseWorktree(issue);
|
|
3820
3821
|
if (result.success) {
|
|
3821
3822
|
addEvent(state, issue.id, "info", `Branch ${issue.branchName} rebased onto ${issue.baseBranch}.`);
|
|
@@ -3947,7 +3948,7 @@ function registerStateRoutes(app, state) {
|
|
|
3947
3948
|
const issue = findIssue(state, issueId);
|
|
3948
3949
|
if (!issue) return c.json({ ok: false, error: "Issue not found." }, 404);
|
|
3949
3950
|
try {
|
|
3950
|
-
const { getIssueTransitionHistory } = await import("./issue-state-machine-
|
|
3951
|
+
const { getIssueTransitionHistory } = await import("./issue-state-machine-24GKGB3W.js");
|
|
3951
3952
|
const limit = parseInt(c.req.query("limit") ?? "50", 10);
|
|
3952
3953
|
const offset = parseInt(c.req.query("offset") ?? "0", 10);
|
|
3953
3954
|
const transitions = await getIssueTransitionHistory(issue.id, { limit, offset });
|
|
@@ -3958,7 +3959,7 @@ function registerStateRoutes(app, state) {
|
|
|
3958
3959
|
});
|
|
3959
3960
|
app.get("/api/state-machine/transitions", async (c) => {
|
|
3960
3961
|
try {
|
|
3961
|
-
const { getStateMachineTransitions } = await import("./issue-state-machine-
|
|
3962
|
+
const { getStateMachineTransitions } = await import("./issue-state-machine-24GKGB3W.js");
|
|
3962
3963
|
return c.json({ ok: true, transitions: getStateMachineTransitions() });
|
|
3963
3964
|
} catch (error) {
|
|
3964
3965
|
return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 500);
|
|
@@ -3966,7 +3967,7 @@ function registerStateRoutes(app, state) {
|
|
|
3966
3967
|
});
|
|
3967
3968
|
app.get("/api/state-machine/visualize", async (c) => {
|
|
3968
3969
|
try {
|
|
3969
|
-
const { visualizeStateMachine } = await import("./issue-state-machine-
|
|
3970
|
+
const { visualizeStateMachine } = await import("./issue-state-machine-24GKGB3W.js");
|
|
3970
3971
|
const dot = visualizeStateMachine();
|
|
3971
3972
|
if (!dot) return c.json({ ok: false, error: "Visualization not available." }, 404);
|
|
3972
3973
|
return c.json({ ok: true, dot });
|
|
@@ -6148,7 +6149,7 @@ var RouteCollector = class {
|
|
|
6148
6149
|
this.routes[`DELETE ${path}`] = handler;
|
|
6149
6150
|
}
|
|
6150
6151
|
};
|
|
6151
|
-
async function startApiServer(state, port) {
|
|
6152
|
+
async function startApiServer(state, port, options) {
|
|
6152
6153
|
logger.info({ port }, "[API] Starting API server");
|
|
6153
6154
|
const stateDb2 = getStateDb();
|
|
6154
6155
|
if (!stateDb2) {
|
|
@@ -6207,6 +6208,7 @@ async function startApiServer(state, port) {
|
|
|
6207
6208
|
const apiPlugin = new ApiPlugin({
|
|
6208
6209
|
port,
|
|
6209
6210
|
host: "0.0.0.0",
|
|
6211
|
+
tls: false,
|
|
6210
6212
|
versionPrefix: false,
|
|
6211
6213
|
metrics: {
|
|
6212
6214
|
logLevel: "info"
|
|
@@ -7869,7 +7871,7 @@ async function handleStatePatch(state, issue, payload) {
|
|
|
7869
7871
|
}
|
|
7870
7872
|
if (nextState === "Running" && sourceState === "Queued") {
|
|
7871
7873
|
try {
|
|
7872
|
-
const { enqueue: enqueue2 } = await import("./queue-workers-
|
|
7874
|
+
const { enqueue: enqueue2 } = await import("./queue-workers-HF7RBVV7.js");
|
|
7873
7875
|
await enqueue2(issue, "execute");
|
|
7874
7876
|
} catch (error) {
|
|
7875
7877
|
logger.warn({ issueId: issue.id, err: error }, "[Issues] Failed to enqueue after manual Running transition");
|
|
@@ -8137,7 +8139,7 @@ async function runIssueOnce(state, issue, running) {
|
|
|
8137
8139
|
const { workspacePath, promptText, promptFile } = await prepareWorkspace(issue, state, state.config.defaultBranch);
|
|
8138
8140
|
container.issueRepository.markDirty(issue.id);
|
|
8139
8141
|
try {
|
|
8140
|
-
const { getIssueStateResource: getIssueStateResource2 } = await import("./store-
|
|
8142
|
+
const { getIssueStateResource: getIssueStateResource2 } = await import("./store-MHU3G2W4.js");
|
|
8141
8143
|
const res = getIssueStateResource2();
|
|
8142
8144
|
if (res) {
|
|
8143
8145
|
await res.patch(issue.id, {
|
|
@@ -8249,4 +8251,4 @@ export {
|
|
|
8249
8251
|
syncReferenceRepositories,
|
|
8250
8252
|
importReferenceArtifacts
|
|
8251
8253
|
};
|
|
8252
|
-
//# sourceMappingURL=chunk-
|
|
8254
|
+
//# sourceMappingURL=chunk-GAYQ2TXV.js.map
|
|
@@ -26,7 +26,7 @@ async function initQueueWorkers(state) {
|
|
|
26
26
|
}, 3e4);
|
|
27
27
|
persistInterval = setInterval(() => {
|
|
28
28
|
if (!active || !runtimeState) return;
|
|
29
|
-
import("./store-
|
|
29
|
+
import("./store-MHU3G2W4.js").then(
|
|
30
30
|
({ persistState }) => persistState(runtimeState).catch(() => {
|
|
31
31
|
})
|
|
32
32
|
).catch(() => {
|
|
@@ -116,11 +116,11 @@ function sortQueue() {
|
|
|
116
116
|
}
|
|
117
117
|
async function dispatchPlan(issue) {
|
|
118
118
|
logger.info({ issueId: issue.id, identifier: issue.identifier }, "[Queue] Dispatching plan job");
|
|
119
|
-
const { runPlanningJob } = await import("./issue-runner-
|
|
119
|
+
const { runPlanningJob } = await import("./issue-runner-BNAW3M6E.js");
|
|
120
120
|
await runPlanningJob(runtimeState, issue);
|
|
121
121
|
}
|
|
122
122
|
async function dispatchExecute(issue) {
|
|
123
|
-
const { runIssueOnce } = await import("./issue-runner-
|
|
123
|
+
const { runIssueOnce } = await import("./issue-runner-BNAW3M6E.js");
|
|
124
124
|
while (active && runtimeState) {
|
|
125
125
|
const current = getCurrentIssue(issue.id);
|
|
126
126
|
if (!current || current.state !== "Queued" && current.state !== "Running") break;
|
|
@@ -130,12 +130,12 @@ async function dispatchExecute(issue) {
|
|
|
130
130
|
}
|
|
131
131
|
async function dispatchReview(issue) {
|
|
132
132
|
logger.info({ issueId: issue.id, identifier: issue.identifier }, "[Queue] Dispatching review job");
|
|
133
|
-
const { runIssueOnce } = await import("./issue-runner-
|
|
133
|
+
const { runIssueOnce } = await import("./issue-runner-BNAW3M6E.js");
|
|
134
134
|
await runIssueOnce(runtimeState, issue, running);
|
|
135
135
|
}
|
|
136
136
|
async function checkStaleIssues() {
|
|
137
137
|
if (!runtimeState) return;
|
|
138
|
-
const { ensureNotStale } = await import("./scheduler-
|
|
138
|
+
const { ensureNotStale } = await import("./scheduler-JZCJB2IN.js");
|
|
139
139
|
await ensureNotStale(runtimeState, runtimeState.config.staleInProgressTimeoutMs);
|
|
140
140
|
}
|
|
141
141
|
var draining = false;
|
|
@@ -186,7 +186,7 @@ async function enqueue(issue, job) {
|
|
|
186
186
|
async function recoverState() {
|
|
187
187
|
if (!runtimeState) return;
|
|
188
188
|
try {
|
|
189
|
-
const { getIssueStateMachinePlugin, ISSUE_STATE_MACHINE_ID } = await import("./issue-state-machine-
|
|
189
|
+
const { getIssueStateMachinePlugin, ISSUE_STATE_MACHINE_ID } = await import("./issue-state-machine-24GKGB3W.js");
|
|
190
190
|
const fsmPlugin = getIssueStateMachinePlugin();
|
|
191
191
|
if (fsmPlugin?.getState) {
|
|
192
192
|
for (const issue of runtimeState.issues) {
|
|
@@ -218,9 +218,9 @@ async function recoverState() {
|
|
|
218
218
|
}
|
|
219
219
|
async function recoverOrphans() {
|
|
220
220
|
if (!runtimeState) return;
|
|
221
|
-
const { isAgentStillRunning, cleanStalePidFile } = await import("./agent-
|
|
222
|
-
const { executeTransition } = await import("./issue-state-machine-
|
|
223
|
-
const { addEvent } = await import("./issues-
|
|
221
|
+
const { isAgentStillRunning, cleanStalePidFile } = await import("./agent-7BMCWKOD.js");
|
|
222
|
+
const { executeTransition } = await import("./issue-state-machine-24GKGB3W.js");
|
|
223
|
+
const { addEvent } = await import("./issues-C4WJIF7S.js");
|
|
224
224
|
const candidates = runtimeState.issues.filter((i) => i.state === "Running" || i.state === "Queued");
|
|
225
225
|
logger.debug({ count: candidates.length }, "[Queue] Checking for orphaned agent processes");
|
|
226
226
|
for (const issue of candidates) {
|
|
@@ -258,7 +258,7 @@ function cleanTerminalWorkspaces() {
|
|
|
258
258
|
logger.info({ count: terminals.length }, "[Queue] Scheduling terminal workspace cleanup in background");
|
|
259
259
|
const state = runtimeState;
|
|
260
260
|
setImmediate(async () => {
|
|
261
|
-
const { cleanWorkspace } = await import("./agent-
|
|
261
|
+
const { cleanWorkspace } = await import("./agent-7BMCWKOD.js");
|
|
262
262
|
for (const issue of terminals) {
|
|
263
263
|
try {
|
|
264
264
|
await cleanWorkspace(issue.id, issue, state);
|
|
@@ -292,4 +292,4 @@ export {
|
|
|
292
292
|
cleanTerminalWorkspaces,
|
|
293
293
|
getQueueStats
|
|
294
294
|
};
|
|
295
|
-
//# sourceMappingURL=chunk-
|
|
295
|
+
//# sourceMappingURL=chunk-LX666HVP.js.map
|
|
@@ -528,12 +528,12 @@ function parseClaudeUsageHeading(line) {
|
|
|
528
528
|
}
|
|
529
529
|
function formatClaudeModelFromLabel(label) {
|
|
530
530
|
const normalized = label.trim().toLowerCase();
|
|
531
|
-
const compact = normalized.replace(
|
|
531
|
+
const compact = normalized.replace(/[\s.]+/g, "-");
|
|
532
532
|
if (compact.includes("opus")) return `claude-${compact}`;
|
|
533
533
|
if (compact.includes("sonnet")) return `claude-${compact}`;
|
|
534
534
|
if (compact.includes("haiku")) return `claude-${compact}`;
|
|
535
535
|
if (compact.startsWith("claude-")) return compact;
|
|
536
|
-
return label.trim();
|
|
536
|
+
return label.trim().toLowerCase();
|
|
537
537
|
}
|
|
538
538
|
function parseClaudeUsageFromStatus(raw) {
|
|
539
539
|
const base = initSnapshot(raw);
|
|
@@ -2086,7 +2086,7 @@ function parseDiffStats(issue, raw) {
|
|
|
2086
2086
|
}
|
|
2087
2087
|
async function syncIssueDiffStatsToStore(issue) {
|
|
2088
2088
|
if (!issue?.id) return;
|
|
2089
|
-
const { getIssueStateResource } = await import("./store-
|
|
2089
|
+
const { getIssueStateResource } = await import("./store-MHU3G2W4.js");
|
|
2090
2090
|
const issueResource = getIssueStateResource();
|
|
2091
2091
|
if (!issueResource) return;
|
|
2092
2092
|
const toNumber = (value) => {
|
|
@@ -2350,4 +2350,4 @@ export {
|
|
|
2350
2350
|
hydrateIssuePathsFromWorkspace,
|
|
2351
2351
|
writeVersionedArtifacts
|
|
2352
2352
|
};
|
|
2353
|
-
//# sourceMappingURL=chunk-
|
|
2353
|
+
//# sourceMappingURL=chunk-NNPKCBAB.js.map
|
package/dist/cli.js
CHANGED
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
importReferenceArtifacts,
|
|
4
4
|
listReferenceRepositories,
|
|
5
5
|
syncReferenceRepositories
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-GAYQ2TXV.js";
|
|
7
|
+
import "./chunk-DAXG76WD.js";
|
|
8
|
+
import "./chunk-NNPKCBAB.js";
|
|
9
9
|
import "./chunk-O5AEQXUV.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-LX666HVP.js";
|
|
11
11
|
import "./chunk-DVU3CXWA.js";
|
|
12
12
|
import "./chunk-OONOOWNC.js";
|
|
13
13
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runIssueOnce,
|
|
3
3
|
runPlanningJob
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-GAYQ2TXV.js";
|
|
5
|
+
import "./chunk-DAXG76WD.js";
|
|
6
|
+
import "./chunk-NNPKCBAB.js";
|
|
7
7
|
import "./chunk-O5AEQXUV.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-LX666HVP.js";
|
|
9
9
|
import "./chunk-DVU3CXWA.js";
|
|
10
10
|
import "./chunk-OONOOWNC.js";
|
|
11
11
|
export {
|
|
12
12
|
runIssueOnce,
|
|
13
13
|
runPlanningJob
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=issue-runner-
|
|
15
|
+
//# sourceMappingURL=issue-runner-BNAW3M6E.js.map
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
setIssueResourceStateApi,
|
|
16
16
|
setIssueStateMachinePlugin,
|
|
17
17
|
visualizeStateMachine
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-DAXG76WD.js";
|
|
19
|
+
import "./chunk-NNPKCBAB.js";
|
|
20
20
|
import "./chunk-O5AEQXUV.js";
|
|
21
21
|
import "./chunk-DVU3CXWA.js";
|
|
22
22
|
import "./chunk-OONOOWNC.js";
|
|
@@ -38,4 +38,4 @@ export {
|
|
|
38
38
|
setIssueStateMachinePlugin,
|
|
39
39
|
visualizeStateMachine
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=issue-state-machine-
|
|
41
|
+
//# sourceMappingURL=issue-state-machine-24GKGB3W.js.map
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
normalizeIssue,
|
|
13
13
|
transitionIssue,
|
|
14
14
|
validateConfig
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-GAYQ2TXV.js";
|
|
16
16
|
import {
|
|
17
17
|
computeMetrics
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-DAXG76WD.js";
|
|
19
|
+
import "./chunk-NNPKCBAB.js";
|
|
20
20
|
import "./chunk-O5AEQXUV.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-LX666HVP.js";
|
|
22
22
|
import "./chunk-DVU3CXWA.js";
|
|
23
23
|
import "./chunk-OONOOWNC.js";
|
|
24
24
|
export {
|
|
@@ -37,4 +37,4 @@ export {
|
|
|
37
37
|
transitionIssue,
|
|
38
38
|
validateConfig
|
|
39
39
|
};
|
|
40
|
-
//# sourceMappingURL=issues-
|
|
40
|
+
//# sourceMappingURL=issues-C4WJIF7S.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
recoverOrphans,
|
|
8
8
|
recoverState,
|
|
9
9
|
stopQueueWorkers
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-LX666HVP.js";
|
|
11
11
|
import "./chunk-DVU3CXWA.js";
|
|
12
12
|
import "./chunk-OONOOWNC.js";
|
|
13
13
|
export {
|
|
@@ -20,4 +20,4 @@ export {
|
|
|
20
20
|
recoverState,
|
|
21
21
|
stopQueueWorkers
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=queue-workers-
|
|
23
|
+
//# sourceMappingURL=queue-workers-HF7RBVV7.js.map
|