@runfusion/fusion 0.4.0 → 0.4.1
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/LICENSE +21 -0
- package/dist/bin.js +825 -749
- package/dist/client/assets/{AgentDetailView-DJwWfkpv.js → AgentDetailView-sy6Hg1Xr.js} +1 -1
- package/dist/client/assets/{AgentsView-DegK8aw-.js → AgentsView-DpEpW88a.js} +3 -3
- package/dist/client/assets/{ChatView-CYpEShLS.js → ChatView-BUt3C4cf.js} +1 -1
- package/dist/client/assets/{DevServerView-DfCTA9fx.js → DevServerView-BOyWtQJM.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-B0qNpfLW.js → DirectoryPicker-BJyEEso5.js} +1 -1
- package/dist/client/assets/{DocumentsView-CsQxuyz3.js → DocumentsView-Dx0M1YHw.js} +1 -1
- package/dist/client/assets/{InsightsView-Bzs7A2jv.js → InsightsView-BtXdAo7D.js} +1 -1
- package/dist/client/assets/{MemoryView-Cl5ASqjW.js → MemoryView-kKPuqmwf.js} +1 -1
- package/dist/client/assets/{NodesView-BpiqRlvc.js → NodesView-B_ZwUORz.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-Cr6EoC7S.js → PiExtensionsManager-Db0EGr0Q.js} +1 -1
- package/dist/client/assets/{PluginManager-DXtQdfns.js → PluginManager-mOwWndfg.js} +1 -1
- package/dist/client/assets/{RoadmapsView-CYPLTTB0.js → RoadmapsView-DbUzBLeF.js} +1 -1
- package/dist/client/assets/SettingsModal-Bs_lNs5B.js +31 -0
- package/dist/client/assets/{SettingsModal-CNdVTVqD.js → SettingsModal-TRJu_mTn.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-BLiljNn7.js → SetupWizardModal-D1bmCQrf.js} +1 -1
- package/dist/client/assets/{SkillsView-Dlpw5LKI.js → SkillsView-Dzzpd5Md.js} +1 -1
- package/dist/client/assets/{folder-open-B_38R5AA.js → folder-open-BcuByk6U.js} +1 -1
- package/dist/client/assets/index-BipedNj4.css +1 -0
- package/dist/client/assets/{index-DQKtk17v.js → index-k2c4LrUr.js} +5 -5
- package/dist/client/assets/{upload-DNQF7XCK.js → upload-BzNbXYEj.js} +1 -1
- package/dist/client/assets/{users-CG2_rCdk.js → users-BvIqhSXp.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/extension.js +68 -12
- package/dist/pi-claude-cli/package.json +1 -1
- package/package.json +17 -17
- package/dist/client/assets/SettingsModal-CyCC7MzL.js +0 -31
- package/dist/client/assets/index-DjOxzdj3.css +0 -1
package/dist/client/index.html
CHANGED
|
@@ -78,11 +78,11 @@
|
|
|
78
78
|
}
|
|
79
79
|
})();
|
|
80
80
|
</script>
|
|
81
|
-
<script type="module" crossorigin src="/assets/index-
|
|
81
|
+
<script type="module" crossorigin src="/assets/index-k2c4LrUr.js"></script>
|
|
82
82
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-K0fH_qHe.js">
|
|
83
83
|
<link rel="modulepreload" crossorigin href="/assets/vendor-xterm-DzcZoU0P.js">
|
|
84
84
|
<link rel="stylesheet" crossorigin href="/assets/vendor-xterm-LZoznX6r.css">
|
|
85
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
85
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BipedNj4.css">
|
|
86
86
|
</head>
|
|
87
87
|
<body>
|
|
88
88
|
<div id="root"></div>
|
package/dist/client/version.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"mog5pn44-24e04f4a"}
|
package/dist/extension.js
CHANGED
|
@@ -204,6 +204,7 @@ var init_settings_schema = __esm({
|
|
|
204
204
|
},
|
|
205
205
|
cloudflare: {
|
|
206
206
|
enabled: false,
|
|
207
|
+
quickTunnel: false,
|
|
207
208
|
tunnelName: "",
|
|
208
209
|
tunnelToken: null,
|
|
209
210
|
ingressUrl: ""
|
|
@@ -387,18 +388,18 @@ Call \`task_done()\` to signal completion.
|
|
|
387
388
|
},
|
|
388
389
|
"triage-welcome": {
|
|
389
390
|
key: "triage-welcome",
|
|
390
|
-
name: "
|
|
391
|
+
name: "Planning Welcome",
|
|
391
392
|
roles: ["triage"],
|
|
392
|
-
description: "Introductory section for the
|
|
393
|
+
description: "Introductory section for the planning agent",
|
|
393
394
|
defaultContent: `You are a task specification agent for "fn", an AI-orchestrated task board.
|
|
394
395
|
|
|
395
396
|
Your job: take a rough task description and produce a fully specified PROMPT.md that another AI agent can execute autonomously in a fresh context with zero memory of this conversation.`
|
|
396
397
|
},
|
|
397
398
|
"triage-context": {
|
|
398
399
|
key: "triage-context",
|
|
399
|
-
name: "
|
|
400
|
+
name: "Planning Context",
|
|
400
401
|
roles: ["triage"],
|
|
401
|
-
description: "Context-gathering instructions for
|
|
402
|
+
description: "Context-gathering instructions for planning",
|
|
402
403
|
defaultContent: `## What you receive
|
|
403
404
|
- A raw task title and optional description (the user's rough idea)
|
|
404
405
|
- Access to the project's files so you can understand context`
|
|
@@ -1087,7 +1088,7 @@ Output Requirements:
|
|
|
1087
1088
|
}
|
|
1088
1089
|
};
|
|
1089
1090
|
COLUMN_LABELS = {
|
|
1090
|
-
triage: "
|
|
1091
|
+
triage: "Planning",
|
|
1091
1092
|
todo: "Todo",
|
|
1092
1093
|
"in-progress": "In Progress",
|
|
1093
1094
|
"in-review": "In Review",
|
|
@@ -1095,7 +1096,7 @@ Output Requirements:
|
|
|
1095
1096
|
archived: "Archived"
|
|
1096
1097
|
};
|
|
1097
1098
|
COLUMN_DESCRIPTIONS = {
|
|
1098
|
-
triage: "Raw ideas \u2014 AI will
|
|
1099
|
+
triage: "Raw ideas \u2014 AI will plan these",
|
|
1099
1100
|
todo: "Specified and ready to start",
|
|
1100
1101
|
"in-progress": "AI is working on this in a worktree",
|
|
1101
1102
|
"in-review": "Complete \u2014 ready to merge",
|
|
@@ -2221,7 +2222,7 @@ var init_db = __esm({
|
|
|
2221
2222
|
"../core/src/db.ts"() {
|
|
2222
2223
|
"use strict";
|
|
2223
2224
|
init_types();
|
|
2224
|
-
SCHEMA_VERSION =
|
|
2225
|
+
SCHEMA_VERSION = 47;
|
|
2225
2226
|
SCHEMA_SQL = `
|
|
2226
2227
|
-- Tasks table with JSON columns for nested data
|
|
2227
2228
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
@@ -3659,6 +3660,14 @@ CREATE INDEX IF NOT EXISTS idxTodoItemsSortOrder ON todo_items(listId, sortOrder
|
|
|
3659
3660
|
this.db.exec("CREATE INDEX IF NOT EXISTS idxTodoItemsSortOrder ON todo_items(listId, sortOrder)");
|
|
3660
3661
|
});
|
|
3661
3662
|
}
|
|
3663
|
+
if (version < 47) {
|
|
3664
|
+
this.applyMigration(47, () => {
|
|
3665
|
+
if (this.hasTable("tasks") && this.hasColumn("tasks", "status")) {
|
|
3666
|
+
this.db.exec("UPDATE tasks SET status = 'planning' WHERE status = 'specifying'");
|
|
3667
|
+
this.db.exec("UPDATE tasks SET status = 'needs-replan' WHERE status = 'needs-respecify'");
|
|
3668
|
+
}
|
|
3669
|
+
});
|
|
3670
|
+
}
|
|
3662
3671
|
}
|
|
3663
3672
|
/**
|
|
3664
3673
|
* Run a single migration step inside a transaction and bump the version.
|
|
@@ -32829,7 +32838,7 @@ ${task.description}
|
|
|
32829
32838
|
let invalidatedStatus = false;
|
|
32830
32839
|
try {
|
|
32831
32840
|
await this.updateTask(id, {
|
|
32832
|
-
status: "needs-
|
|
32841
|
+
status: "needs-replan"
|
|
32833
32842
|
});
|
|
32834
32843
|
invalidatedStatus = true;
|
|
32835
32844
|
} catch (err) {
|
|
@@ -32837,7 +32846,7 @@ ${task.description}
|
|
|
32837
32846
|
...commentContextBase,
|
|
32838
32847
|
phase: "addComment:awaiting-approval-invalidation",
|
|
32839
32848
|
stage: "status-update",
|
|
32840
|
-
nextStatus: "needs-
|
|
32849
|
+
nextStatus: "needs-replan",
|
|
32841
32850
|
error: err instanceof Error ? err.message : String(err)
|
|
32842
32851
|
});
|
|
32843
32852
|
}
|
|
@@ -32854,7 +32863,7 @@ ${task.description}
|
|
|
32854
32863
|
...commentContextBase,
|
|
32855
32864
|
phase: "addComment:awaiting-approval-invalidation",
|
|
32856
32865
|
stage: "post-invalidation-log-entry",
|
|
32857
|
-
nextStatus: "needs-
|
|
32866
|
+
nextStatus: "needs-replan",
|
|
32858
32867
|
error: err instanceof Error ? err.message : String(err)
|
|
32859
32868
|
});
|
|
32860
32869
|
}
|
|
@@ -70921,6 +70930,9 @@ var init_provider_adapters = __esm({
|
|
|
70921
70930
|
provider: "cloudflare",
|
|
70922
70931
|
validateConfig(config) {
|
|
70923
70932
|
validateBaseConfig(config, "cloudflare");
|
|
70933
|
+
if (config.provider === "cloudflare" && config.quickTunnel === true) {
|
|
70934
|
+
return;
|
|
70935
|
+
}
|
|
70924
70936
|
if ("credentialsPath" in config && config.credentialsPath !== void 0) {
|
|
70925
70937
|
assertNonEmpty(config.credentialsPath, "credentialsPath");
|
|
70926
70938
|
if (isAbsoluteOrPathLike(config.credentialsPath)) {
|
|
@@ -71811,6 +71823,21 @@ var init_project_engine = __esm({
|
|
|
71811
71823
|
if (!cloudflare.enabled) {
|
|
71812
71824
|
return { provider, reason: "provider_not_enabled", message: "Cloudflare provider is disabled" };
|
|
71813
71825
|
}
|
|
71826
|
+
if (cloudflare.quickTunnel === true) {
|
|
71827
|
+
const executable2 = await this.checkExecutableAvailable("cloudflared");
|
|
71828
|
+
if (!executable2.available) {
|
|
71829
|
+
return { provider, reason: "runtime_prerequisite_missing", message: executable2.message };
|
|
71830
|
+
}
|
|
71831
|
+
return {
|
|
71832
|
+
provider,
|
|
71833
|
+
config: {
|
|
71834
|
+
provider: "cloudflare",
|
|
71835
|
+
quickTunnel: true,
|
|
71836
|
+
executablePath: "cloudflared",
|
|
71837
|
+
args: ["tunnel", "--url", "http://localhost:4040"]
|
|
71838
|
+
}
|
|
71839
|
+
};
|
|
71840
|
+
}
|
|
71814
71841
|
if (!cloudflare.tunnelName?.trim() || !cloudflare.ingressUrl?.trim()) {
|
|
71815
71842
|
return { provider, reason: "provider_not_configured", message: "Cloudflare tunnel name and ingress URL must be configured" };
|
|
71816
71843
|
}
|
|
@@ -76130,10 +76157,18 @@ var init_github_poll = __esm({
|
|
|
76130
76157
|
}
|
|
76131
76158
|
});
|
|
76132
76159
|
|
|
76133
|
-
// ../dashboard/src/routes/
|
|
76160
|
+
// ../dashboard/src/routes/resolve-diff-base.ts
|
|
76134
76161
|
import { execFile as execFile4 } from "node:child_process";
|
|
76135
76162
|
import { promisify as promisify11 } from "node:util";
|
|
76136
76163
|
var execFileAsync2;
|
|
76164
|
+
var init_resolve_diff_base = __esm({
|
|
76165
|
+
"../dashboard/src/routes/resolve-diff-base.ts"() {
|
|
76166
|
+
"use strict";
|
|
76167
|
+
execFileAsync2 = promisify11(execFile4);
|
|
76168
|
+
}
|
|
76169
|
+
});
|
|
76170
|
+
|
|
76171
|
+
// ../dashboard/src/routes/register-git-github.ts
|
|
76137
76172
|
var init_register_git_github = __esm({
|
|
76138
76173
|
"../dashboard/src/routes/register-git-github.ts"() {
|
|
76139
76174
|
"use strict";
|
|
@@ -76142,7 +76177,7 @@ var init_register_git_github = __esm({
|
|
|
76142
76177
|
init_github();
|
|
76143
76178
|
init_github_poll();
|
|
76144
76179
|
init_github_webhooks();
|
|
76145
|
-
|
|
76180
|
+
init_resolve_diff_base();
|
|
76146
76181
|
}
|
|
76147
76182
|
});
|
|
76148
76183
|
|
|
@@ -76511,6 +76546,23 @@ var init_register_integrated_routers = __esm({
|
|
|
76511
76546
|
}
|
|
76512
76547
|
});
|
|
76513
76548
|
|
|
76549
|
+
// ../dashboard/src/routes/register-terminal-routes.ts
|
|
76550
|
+
var init_register_terminal_routes = __esm({
|
|
76551
|
+
"../dashboard/src/routes/register-terminal-routes.ts"() {
|
|
76552
|
+
"use strict";
|
|
76553
|
+
init_api_error();
|
|
76554
|
+
}
|
|
76555
|
+
});
|
|
76556
|
+
|
|
76557
|
+
// ../dashboard/src/routes/register-session-diff-routes.ts
|
|
76558
|
+
var init_register_session_diff_routes = __esm({
|
|
76559
|
+
"../dashboard/src/routes/register-session-diff-routes.ts"() {
|
|
76560
|
+
"use strict";
|
|
76561
|
+
init_api_error();
|
|
76562
|
+
init_resolve_diff_base();
|
|
76563
|
+
}
|
|
76564
|
+
});
|
|
76565
|
+
|
|
76514
76566
|
// ../dashboard/src/routes.ts
|
|
76515
76567
|
import multer from "multer";
|
|
76516
76568
|
async function initPromptOverrides() {
|
|
@@ -76567,7 +76619,11 @@ var init_routes = __esm({
|
|
|
76567
76619
|
init_register_usage_routes();
|
|
76568
76620
|
init_register_auth_routes();
|
|
76569
76621
|
init_register_integrated_routers();
|
|
76622
|
+
init_register_terminal_routes();
|
|
76623
|
+
init_register_session_diff_routes();
|
|
76624
|
+
init_resolve_diff_base();
|
|
76570
76625
|
init_register_git_github();
|
|
76626
|
+
init_resolve_diff_base();
|
|
76571
76627
|
upload = multer({
|
|
76572
76628
|
storage: multer.memoryStorage(),
|
|
76573
76629
|
limits: { fileSize: 5 * 1024 * 1024 }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion/pi-claude-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Fusion vendored fork: pi coding-agent extension that routes LLM calls through the Claude Code CLI. Forked from rchern/pi-claude-cli (MIT). See UPSTREAM.md.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runfusion/fusion",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Fusion CLI: HTTP API server, daemon, dashboard launcher, and task tooling for the Fusion AI coding agent.",
|
|
6
6
|
"homepage": "https://github.com/Runfusion/Fusion#readme",
|
|
@@ -37,16 +37,6 @@
|
|
|
37
37
|
"skill/**",
|
|
38
38
|
"README.md"
|
|
39
39
|
],
|
|
40
|
-
"scripts": {
|
|
41
|
-
"dev": "tsx src/bin.ts",
|
|
42
|
-
"prebuild": "node ../../scripts/sync-fusion-skill-tools.mjs",
|
|
43
|
-
"build": "tsup",
|
|
44
|
-
"build:exe": "bun run build.ts",
|
|
45
|
-
"build:exe:all": "bun run build.ts --all",
|
|
46
|
-
"typecheck": "tsc --noEmit",
|
|
47
|
-
"test": "vitest run --silent=passed-only --reporter=dot",
|
|
48
|
-
"test:build-exe": "FUSION_TEST_BUILD_EXE=1 vitest run --config vitest.build-exe.config.ts --silent=passed-only --reporter=dot"
|
|
49
|
-
},
|
|
50
40
|
"dependencies": {
|
|
51
41
|
"@mariozechner/pi-ai": "^0.70.0",
|
|
52
42
|
"@mariozechner/pi-coding-agent": "^0.70.0",
|
|
@@ -75,10 +65,6 @@
|
|
|
75
65
|
}
|
|
76
66
|
},
|
|
77
67
|
"devDependencies": {
|
|
78
|
-
"@fusion/core": "workspace:*",
|
|
79
|
-
"@fusion/dashboard": "workspace:*",
|
|
80
|
-
"@fusion/engine": "workspace:*",
|
|
81
|
-
"@fusion/pi-claude-cli": "workspace:*",
|
|
82
68
|
"@types/node": "^22.0.0",
|
|
83
69
|
"@types/react": "^19.0.0",
|
|
84
70
|
"@vitest/coverage-v8": "^3.1.0",
|
|
@@ -88,10 +74,24 @@
|
|
|
88
74
|
"typebox": "^1.0.0",
|
|
89
75
|
"typescript": "^5.7.0",
|
|
90
76
|
"vitest": "^3.1.0",
|
|
91
|
-
"yaml": "^2.8.3"
|
|
77
|
+
"yaml": "^2.8.3",
|
|
78
|
+
"@fusion/core": "0.4.1",
|
|
79
|
+
"@fusion/dashboard": "0.4.1",
|
|
80
|
+
"@fusion/pi-claude-cli": "0.4.1",
|
|
81
|
+
"@fusion/engine": "0.4.1"
|
|
92
82
|
},
|
|
93
83
|
"repository": {
|
|
94
84
|
"type": "git",
|
|
95
85
|
"url": "https://github.com/Runfusion/Fusion"
|
|
86
|
+
},
|
|
87
|
+
"scripts": {
|
|
88
|
+
"dev": "tsx src/bin.ts",
|
|
89
|
+
"prebuild": "node ../../scripts/sync-fusion-skill-tools.mjs",
|
|
90
|
+
"build": "tsup",
|
|
91
|
+
"build:exe": "bun run build.ts",
|
|
92
|
+
"build:exe:all": "bun run build.ts --all",
|
|
93
|
+
"typecheck": "tsc --noEmit",
|
|
94
|
+
"test": "vitest run --silent=passed-only --reporter=dot",
|
|
95
|
+
"test:build-exe": "FUSION_TEST_BUILD_EXE=1 vitest run --config vitest.build-exe.config.ts --silent=passed-only --reporter=dot"
|
|
96
96
|
}
|
|
97
|
-
}
|
|
97
|
+
}
|