@runfusion/fusion 0.73.0-beta.6 → 0.74.0-beta.0
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/dist/bin.js +524 -106
- package/dist/child-process-worker.js +252 -29
- package/dist/client/.vite/manifest.json +263 -263
- package/dist/client/assets/{AgentDetailView-jg-430Wv.js → AgentDetailView-CUXS0Odh.js} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-0iybC0Dg.js → AgentPermissionPolicyEditor-CzjHjB5r.js} +1 -1
- package/dist/client/assets/{AgentsView-DeVI7IJy.js → AgentsView-B5stgI5m.js} +3 -3
- package/dist/client/assets/ChatView-CpoOgZ4X.js +13 -0
- package/dist/client/assets/{CommandCenter-CPpYSmxm.js → CommandCenter-BdEQ_ZOX.js} +1 -1
- package/dist/client/assets/{DevServerView-C7Uib0ck.js → DevServerView-BHgAmF3y.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-Ba9x3E72.js → DirectoryPicker-BQXVc5YW.js} +1 -1
- package/dist/client/assets/{DocumentsView-DkuxxEAC.js → DocumentsView-CxN0Ptrj.js} +1 -1
- package/dist/client/assets/{EvalsView-DwRsXihY.js → EvalsView-DAgJtpO5.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-C2g8TiAY.js → ExperimentalAgentOnboardingModal-NZcXkGrN.js} +1 -1
- package/dist/client/assets/{GoalsView-hQSajINq.js → GoalsView-Dwq7NW4j.js} +1 -1
- package/dist/client/assets/{InsightsView-p7j5T5a8.js → InsightsView-CUlL5NSC.js} +1 -1
- package/dist/client/assets/{MemoryView-DoVBk38U.js → MemoryView-WfHzJflp.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-DzT94cPg.js → PiExtensionsManager-BS1dkauB.js} +1 -1
- package/dist/client/assets/{PluginManager-5DK-HUkf.js → PluginManager-B1oLb0pn.js} +1 -1
- package/dist/client/assets/{PullRequestView-c8_Nl91A.js → PullRequestView-Cdp662lx.js} +1 -1
- package/dist/client/assets/{ReportModal-BfNu73zb.js → ReportModal-C92wQO-k.js} +1 -1
- package/dist/client/assets/{ResearchView-Cc_DZq5v.js → ResearchView-4-SoxmQv.js} +1 -1
- package/dist/client/assets/{SecretsView-DMETxbnI.js → SecretsView-C5UQ1Mms.js} +1 -1
- package/dist/client/assets/SessionTerminal-BTjX9p3a.js +2 -0
- package/dist/client/assets/SettingsModal-BcnOOo9g.js +21 -0
- package/dist/client/assets/{SettingsModal-oTMDyzjF.js → SettingsModal-BfHAE14s.js} +1 -1
- package/dist/client/assets/{SettingsTextareaRow-B63cJNsI.js → SettingsTextareaRow-C2JqzQdD.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-BZnyRPT7.js → SetupWizardModal-C1KmMVfU.js} +2 -2
- package/dist/client/assets/{SkillsView-DGwWIOqX.js → SkillsView-DyLNdfDy.js} +1 -1
- package/dist/client/assets/{TodoView-BoLH6qHP.js → TodoView-DyrniX19.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-DHqpPcSv.js → WorkflowNodeEditor-Bh-Hn1Kx.js} +1 -1
- package/dist/client/assets/{agent-import-generation-Dl3UAfFr.js → agent-import-generation-C5pyefIj.js} +1 -1
- package/dist/client/assets/{app-B4dURBVF.js → app-Bl764LdY.js} +1 -1
- package/dist/client/assets/{app-DxbSLeuH.js → app-DNrauoYS.js} +1 -1
- package/dist/client/assets/{app-DfQxLcCr.js → app-DdCnRHSe.js} +1 -1
- package/dist/client/assets/{app-R0cG-sq5.js → app-QmIotwFZ.js} +1 -1
- package/dist/client/assets/{app-DLG7AA6O.js → app-YM47G7Ks.js} +1 -1
- package/dist/client/assets/{app-JOLkwq4O.js → app-oUEtzFOj.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-DRSMeXsR.js → architectureDiagram-3BPJPVTR-B6axGlaS.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-xBxQf_Gy.js → blockDiagram-GPEHLZMM-BENjJaZD.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CememwlP.js → c4Diagram-AAUBKEIU-Cl2qKhuO.js} +1 -1
- package/dist/client/assets/channel-CktWdAhK.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-B62t8Ow1.js → chunk-2J33WTMH-BWo7R8T7.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-CHzxnH6A.js → chunk-4BX2VUAB-DiRoI7pq.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-BXJotoWf.js → chunk-55IACEB6-DPtv1GVO.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-DGFhyp03.js → chunk-727SXJPM-BVcm5ITs.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-C-nRZZBE.js → chunk-AQP2D5EJ-CFT4bmXK.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CFS2iW51.js → chunk-FMBD7UC4-BDcEHQ0o.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-DFleK3tP.js → chunk-ND2GUHAM-CYlDBFdI.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-E7rqTspj.js → chunk-QZHKN3VN-3Wv3WxYt.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CrUS4gHO.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CrUS4gHO.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-VYcUIreA.js → cose-bilkent-S5V4N54A-BuMkKBMC.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-B4VeH0Nz.js → dagre-BM42HDAG-D1P4z_OM.js} +1 -1
- package/dist/client/assets/{dashboard-view-DoNpCbHQ.js → dashboard-view-BgQBLynI.js} +1 -1
- package/dist/client/assets/{dashboard-view-BpeWPcmh.js → dashboard-view-CcK2sH0v.js} +1 -1
- package/dist/client/assets/{dashboard-view-DGcOsOey.js → dashboard-view-DaRKU5oU.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-BM8FU7fY.js → diagram-2AECGRRQ-hmY-reWF.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-Do8IJG5T.js → diagram-5GNKFQAL-CGfRqm_0.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-C_-zygdh.js → diagram-KO2AKTUF-BfKo4Jd4.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CSPiBke9.js → diagram-LMA3HP47-BZqpNemd.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-BVuoiZg-.js → diagram-OG6HWLK6-CxLTV4DH.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-CIY48OYH.js → erDiagram-TEJ5UH35-vw3tx2tK.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-B6zav8SR.js → flowDiagram-I6XJVG4X-OEm-Us2U.js} +1 -1
- package/dist/client/assets/{folder-open-Dc23V8n6.js → folder-open-D_zgZHWi.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-_F49rUcG.js → ganttDiagram-6RSMTGT7-C5bc1DG1.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Fk-V-buo.js → gitGraphDiagram-PVQCEYII-DEvcWRBq.js} +1 -1
- package/dist/client/assets/index-BinRUCFV.js +2661 -0
- package/dist/client/assets/index-DGmuyTtv.css +1 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-DvnBGHv4.js → infoDiagram-5YYISTIA-kFOE9wxd.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-Df7TrITT.js → ishikawaDiagram-YF4QCWOH-DvLbzHmR.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-CieUO8Cz.js → journeyDiagram-JHISSGLW-ov6Tbcuz.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BBR_Cj7I.js → kanban-definition-UN3LZRKU-Dr0foW2M.js} +1 -1
- package/dist/client/assets/{mermaid.core-whEVIkYk.js → mermaid.core-CM55309V.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-utsoG884.js → mindmap-definition-RKZ34NQL-xNyB6Z6o.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-B6_-ma_S.js → pieDiagram-4H26LBE5-DlS5Kpga.js} +1 -1
- package/dist/client/assets/{puzzle-CY7o6u4N.js → puzzle-BrEvi5DH.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CCAEPNEU.js → quadrantDiagram-W4KKPZXB-D4z2CHAA.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-C0rKKe1e.js → requirementDiagram-4Y6WPE33-Bcwt6-p9.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DpeRsnkc.js → sankeyDiagram-5OEKKPKP-C54N76yk.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DWYg86A1.js → sequenceDiagram-3UESZ5HK-DtqryztE.js} +1 -1
- package/dist/client/assets/{shield-alert-j_jHfoeI.js → shield-alert-DhxKVKek.js} +1 -1
- package/dist/client/assets/{standing-instructions-template-CCI99V8d.js → standing-instructions-template-CdHJwmLI.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-CalOQ-6v.js → stateDiagram-AJRCARHV-DQAvSrHw.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-Dd8RLebl.js → stateDiagram-v2-BHNVJYJU-BzIGKq7y.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-D1PZw-aB.js → timeline-definition-PNZ67QCA-GDj_48Um.js} +1 -1
- package/dist/client/assets/{upload-CFL3ZlNN.js → upload-B7GKZiF1.js} +1 -1
- package/dist/client/assets/{users-DGOPLxzy.js → users-CBtvFVLM.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-DKQAihMR.js → vennDiagram-CIIHVFJN-PQDmLFbj.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-B_XzYoGe.js → wardley-L42UT6IY-GmGtXctI.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DBu7IvQK.js → wardleyDiagram-YWT4CUSO-Bv6slmsW.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-CKrqMXvh.js → xychartDiagram-2RQKCTM6-CK1RJHwB.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/extension.js +349 -60
- package/dist/migrations/0036_chat_session_tags.sql +64 -0
- package/dist/plugin-sdk/index.js +27 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/.bundled.reload-1.js +8835 -0
- package/package.json +3 -3
- package/dist/client/assets/ChatView-BWosYwf6.js +0 -8
- package/dist/client/assets/SessionTerminal-B4c2w5zb.js +0 -2
- package/dist/client/assets/SettingsModal-vpkxpahA.js +0 -21
- package/dist/client/assets/channel-DwxxVJWv.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CU_MxE3u.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CU_MxE3u.js +0 -1
- package/dist/client/assets/index-C77ORgtm.css +0 -1
- package/dist/client/assets/index-D8TQBkB7.js +0 -2661
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
-- FNXC:ChatTags 2026-08-05-10:55:
|
|
2
|
+
-- Direct conversation tags have an explicit project scope and normalized name so
|
|
3
|
+
-- whitespace/case variants cannot split one reusable category. Assignment rows
|
|
4
|
+
-- cascade with either parent; store transactions additionally prove a tag and
|
|
5
|
+
-- session share the same scope before writing.
|
|
6
|
+
CREATE TABLE IF NOT EXISTS project.chat_tags (
|
|
7
|
+
id text NOT NULL,
|
|
8
|
+
project_id text NOT NULL DEFAULT COALESCE(NULLIF(current_setting('fusion.project_id', true), ''), '__legacy_unscoped__'),
|
|
9
|
+
owner_project_id text NOT NULL DEFAULT '__default__',
|
|
10
|
+
name text NOT NULL,
|
|
11
|
+
normalized_name text NOT NULL,
|
|
12
|
+
created_at text NOT NULL,
|
|
13
|
+
updated_at text NOT NULL,
|
|
14
|
+
CONSTRAINT chat_tags_normalized_name_nonempty CHECK (length(normalized_name) > 0),
|
|
15
|
+
PRIMARY KEY (project_id, id),
|
|
16
|
+
CONSTRAINT uq_chat_tags_scope_name UNIQUE (project_id, normalized_name)
|
|
17
|
+
);
|
|
18
|
+
CREATE INDEX IF NOT EXISTS idx_chat_tags_scope_name ON project.chat_tags(project_id, normalized_name);
|
|
19
|
+
|
|
20
|
+
-- Some upgrade-recovery fixtures materialize only a partial historical schema.
|
|
21
|
+
-- Do not stamp a broken assignment table before its session parent exists; a normal
|
|
22
|
+
-- 0000 upgrade always has chat_sessions and receives both cascading constraints.
|
|
23
|
+
DO $$
|
|
24
|
+
BEGIN
|
|
25
|
+
IF to_regclass('project.chat_sessions') IS NOT NULL THEN
|
|
26
|
+
-- FNXC:ChatTags 2026-08-05-12:15: legacy sessions use `id` as their primary
|
|
27
|
+
-- key, so establish the project/id candidate key before scoped assignments
|
|
28
|
+
-- reference it. The global ID primary key keeps this addition safe for rows
|
|
29
|
+
-- already present on upgraded clusters.
|
|
30
|
+
ALTER TABLE project.chat_sessions
|
|
31
|
+
ADD CONSTRAINT chat_sessions_project_id_id_key UNIQUE (project_id, id);
|
|
32
|
+
|
|
33
|
+
CREATE TABLE IF NOT EXISTS project.chat_session_tags (
|
|
34
|
+
session_id text NOT NULL,
|
|
35
|
+
tag_id text NOT NULL,
|
|
36
|
+
project_id text NOT NULL DEFAULT COALESCE(NULLIF(current_setting('fusion.project_id', true), ''), '__legacy_unscoped__'),
|
|
37
|
+
assigned_at text NOT NULL,
|
|
38
|
+
PRIMARY KEY (project_id, session_id, tag_id),
|
|
39
|
+
CONSTRAINT chat_session_tags_session_fk FOREIGN KEY (project_id, session_id)
|
|
40
|
+
REFERENCES project.chat_sessions(project_id, id) ON DELETE CASCADE,
|
|
41
|
+
CONSTRAINT chat_session_tags_tag_fk FOREIGN KEY (project_id, tag_id)
|
|
42
|
+
REFERENCES project.chat_tags(project_id, id) ON DELETE CASCADE
|
|
43
|
+
);
|
|
44
|
+
CREATE INDEX IF NOT EXISTS idx_chat_session_tags_tag ON project.chat_session_tags(project_id, tag_id, session_id);
|
|
45
|
+
END IF;
|
|
46
|
+
END $$;
|
|
47
|
+
|
|
48
|
+
ALTER TABLE project.chat_tags ENABLE ROW LEVEL SECURITY;
|
|
49
|
+
ALTER TABLE project.chat_tags FORCE ROW LEVEL SECURITY;
|
|
50
|
+
DROP POLICY IF EXISTS fusion_project_isolation ON project.chat_tags;
|
|
51
|
+
CREATE POLICY fusion_project_isolation ON project.chat_tags USING (current_setting('fusion.project_bypass', true) = 'on' OR project_id = current_setting('fusion.project_id', true)) WITH CHECK (current_setting('fusion.project_bypass', true) = 'on' OR project_id = current_setting('fusion.project_id', true));
|
|
52
|
+
DROP TRIGGER IF EXISTS fusion_assign_project_id ON project.chat_tags;
|
|
53
|
+
CREATE TRIGGER fusion_assign_project_id BEFORE INSERT OR UPDATE OF project_id ON project.chat_tags FOR EACH ROW EXECUTE FUNCTION project.fusion_assign_project_id();
|
|
54
|
+
DO $$
|
|
55
|
+
BEGIN
|
|
56
|
+
IF to_regclass('project.chat_session_tags') IS NOT NULL THEN
|
|
57
|
+
ALTER TABLE project.chat_session_tags ENABLE ROW LEVEL SECURITY;
|
|
58
|
+
ALTER TABLE project.chat_session_tags FORCE ROW LEVEL SECURITY;
|
|
59
|
+
DROP POLICY IF EXISTS fusion_project_isolation ON project.chat_session_tags;
|
|
60
|
+
CREATE POLICY fusion_project_isolation ON project.chat_session_tags USING (current_setting('fusion.project_bypass', true) = 'on' OR project_id = current_setting('fusion.project_id', true)) WITH CHECK (current_setting('fusion.project_bypass', true) = 'on' OR project_id = current_setting('fusion.project_id', true));
|
|
61
|
+
DROP TRIGGER IF EXISTS fusion_assign_project_id ON project.chat_session_tags;
|
|
62
|
+
CREATE TRIGGER fusion_assign_project_id BEFORE INSERT OR UPDATE OF project_id ON project.chat_session_tags FOR EACH ROW EXECUTE FUNCTION project.fusion_assign_project_id();
|
|
63
|
+
END IF;
|
|
64
|
+
END $$;
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -7361,7 +7361,33 @@ var chatSessions = projectSchema.table("chat_sessions", {
|
|
|
7361
7361
|
cliExecutorAdapterId: text("cli_executor_adapter_id")
|
|
7362
7362
|
}, (t) => [
|
|
7363
7363
|
index("idxChatSessionsAgentId").on(t.agentId),
|
|
7364
|
-
index("idxChatSessionsProjectId").on(t.projectId)
|
|
7364
|
+
index("idxChatSessionsProjectId").on(t.projectId),
|
|
7365
|
+
uniqueIndex("uqChatSessionsProjectIdId").on(t.projectId, t.id)
|
|
7366
|
+
]);
|
|
7367
|
+
var chatTags = projectSchema.table("chat_tags", {
|
|
7368
|
+
id: text("id").notNull(),
|
|
7369
|
+
projectId: text("project_id").notNull().default(sql`current_setting('fusion.project_id', true)`),
|
|
7370
|
+
ownerProjectId: text("owner_project_id").notNull(),
|
|
7371
|
+
name: text("name").notNull(),
|
|
7372
|
+
normalizedName: text("normalized_name").notNull(),
|
|
7373
|
+
createdAt: text("created_at").notNull(),
|
|
7374
|
+
updatedAt: text("updated_at").notNull()
|
|
7375
|
+
}, (t) => [
|
|
7376
|
+
primaryKey({ columns: [t.projectId, t.id] }),
|
|
7377
|
+
uniqueIndex("uqChatTagsScopeName").on(t.projectId, t.normalizedName),
|
|
7378
|
+
index("idxChatTagsScopeName").on(t.projectId, t.normalizedName)
|
|
7379
|
+
]);
|
|
7380
|
+
var chatSessionTags = projectSchema.table("chat_session_tags", {
|
|
7381
|
+
sessionId: text("session_id").notNull(),
|
|
7382
|
+
tagId: text("tag_id").notNull(),
|
|
7383
|
+
projectId: text("project_id").notNull().default(sql`current_setting('fusion.project_id', true)`),
|
|
7384
|
+
assignedAt: text("assigned_at").notNull()
|
|
7385
|
+
}, (t) => [
|
|
7386
|
+
// FNXC:ChatTags 2026-08-05-12:15: both parents include the RLS partition, preventing bypass/admin access from joining a same-named ID in another project.
|
|
7387
|
+
primaryKey({ columns: [t.projectId, t.sessionId, t.tagId] }),
|
|
7388
|
+
foreignKey({ columns: [t.projectId, t.sessionId], foreignColumns: [chatSessions.projectId, chatSessions.id] }).onDelete("cascade"),
|
|
7389
|
+
foreignKey({ columns: [t.projectId, t.tagId], foreignColumns: [chatTags.projectId, chatTags.id] }).onDelete("cascade"),
|
|
7390
|
+
index("idxChatSessionTagsTag").on(t.projectId, t.tagId, t.sessionId)
|
|
7365
7391
|
]);
|
|
7366
7392
|
var cliSessions = projectSchema.table("cli_sessions", {
|
|
7367
7393
|
id: text("id").primaryKey(),
|