@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.
Files changed (106) hide show
  1. package/dist/bin.js +524 -106
  2. package/dist/child-process-worker.js +252 -29
  3. package/dist/client/.vite/manifest.json +263 -263
  4. package/dist/client/assets/{AgentDetailView-jg-430Wv.js → AgentDetailView-CUXS0Odh.js} +1 -1
  5. package/dist/client/assets/{AgentPermissionPolicyEditor-0iybC0Dg.js → AgentPermissionPolicyEditor-CzjHjB5r.js} +1 -1
  6. package/dist/client/assets/{AgentsView-DeVI7IJy.js → AgentsView-B5stgI5m.js} +3 -3
  7. package/dist/client/assets/ChatView-CpoOgZ4X.js +13 -0
  8. package/dist/client/assets/{CommandCenter-CPpYSmxm.js → CommandCenter-BdEQ_ZOX.js} +1 -1
  9. package/dist/client/assets/{DevServerView-C7Uib0ck.js → DevServerView-BHgAmF3y.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-Ba9x3E72.js → DirectoryPicker-BQXVc5YW.js} +1 -1
  11. package/dist/client/assets/{DocumentsView-DkuxxEAC.js → DocumentsView-CxN0Ptrj.js} +1 -1
  12. package/dist/client/assets/{EvalsView-DwRsXihY.js → EvalsView-DAgJtpO5.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-C2g8TiAY.js → ExperimentalAgentOnboardingModal-NZcXkGrN.js} +1 -1
  14. package/dist/client/assets/{GoalsView-hQSajINq.js → GoalsView-Dwq7NW4j.js} +1 -1
  15. package/dist/client/assets/{InsightsView-p7j5T5a8.js → InsightsView-CUlL5NSC.js} +1 -1
  16. package/dist/client/assets/{MemoryView-DoVBk38U.js → MemoryView-WfHzJflp.js} +1 -1
  17. package/dist/client/assets/{PiExtensionsManager-DzT94cPg.js → PiExtensionsManager-BS1dkauB.js} +1 -1
  18. package/dist/client/assets/{PluginManager-5DK-HUkf.js → PluginManager-B1oLb0pn.js} +1 -1
  19. package/dist/client/assets/{PullRequestView-c8_Nl91A.js → PullRequestView-Cdp662lx.js} +1 -1
  20. package/dist/client/assets/{ReportModal-BfNu73zb.js → ReportModal-C92wQO-k.js} +1 -1
  21. package/dist/client/assets/{ResearchView-Cc_DZq5v.js → ResearchView-4-SoxmQv.js} +1 -1
  22. package/dist/client/assets/{SecretsView-DMETxbnI.js → SecretsView-C5UQ1Mms.js} +1 -1
  23. package/dist/client/assets/SessionTerminal-BTjX9p3a.js +2 -0
  24. package/dist/client/assets/SettingsModal-BcnOOo9g.js +21 -0
  25. package/dist/client/assets/{SettingsModal-oTMDyzjF.js → SettingsModal-BfHAE14s.js} +1 -1
  26. package/dist/client/assets/{SettingsTextareaRow-B63cJNsI.js → SettingsTextareaRow-C2JqzQdD.js} +1 -1
  27. package/dist/client/assets/{SetupWizardModal-BZnyRPT7.js → SetupWizardModal-C1KmMVfU.js} +2 -2
  28. package/dist/client/assets/{SkillsView-DGwWIOqX.js → SkillsView-DyLNdfDy.js} +1 -1
  29. package/dist/client/assets/{TodoView-BoLH6qHP.js → TodoView-DyrniX19.js} +1 -1
  30. package/dist/client/assets/{WorkflowNodeEditor-DHqpPcSv.js → WorkflowNodeEditor-Bh-Hn1Kx.js} +1 -1
  31. package/dist/client/assets/{agent-import-generation-Dl3UAfFr.js → agent-import-generation-C5pyefIj.js} +1 -1
  32. package/dist/client/assets/{app-B4dURBVF.js → app-Bl764LdY.js} +1 -1
  33. package/dist/client/assets/{app-DxbSLeuH.js → app-DNrauoYS.js} +1 -1
  34. package/dist/client/assets/{app-DfQxLcCr.js → app-DdCnRHSe.js} +1 -1
  35. package/dist/client/assets/{app-R0cG-sq5.js → app-QmIotwFZ.js} +1 -1
  36. package/dist/client/assets/{app-DLG7AA6O.js → app-YM47G7Ks.js} +1 -1
  37. package/dist/client/assets/{app-JOLkwq4O.js → app-oUEtzFOj.js} +1 -1
  38. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DRSMeXsR.js → architectureDiagram-3BPJPVTR-B6axGlaS.js} +1 -1
  39. package/dist/client/assets/{blockDiagram-GPEHLZMM-xBxQf_Gy.js → blockDiagram-GPEHLZMM-BENjJaZD.js} +1 -1
  40. package/dist/client/assets/{c4Diagram-AAUBKEIU-CememwlP.js → c4Diagram-AAUBKEIU-Cl2qKhuO.js} +1 -1
  41. package/dist/client/assets/channel-CktWdAhK.js +1 -0
  42. package/dist/client/assets/{chunk-2J33WTMH-B62t8Ow1.js → chunk-2J33WTMH-BWo7R8T7.js} +1 -1
  43. package/dist/client/assets/{chunk-4BX2VUAB-CHzxnH6A.js → chunk-4BX2VUAB-DiRoI7pq.js} +1 -1
  44. package/dist/client/assets/{chunk-55IACEB6-BXJotoWf.js → chunk-55IACEB6-DPtv1GVO.js} +1 -1
  45. package/dist/client/assets/{chunk-727SXJPM-DGFhyp03.js → chunk-727SXJPM-BVcm5ITs.js} +1 -1
  46. package/dist/client/assets/{chunk-AQP2D5EJ-C-nRZZBE.js → chunk-AQP2D5EJ-CFT4bmXK.js} +1 -1
  47. package/dist/client/assets/{chunk-FMBD7UC4-CFS2iW51.js → chunk-FMBD7UC4-BDcEHQ0o.js} +1 -1
  48. package/dist/client/assets/{chunk-ND2GUHAM-DFleK3tP.js → chunk-ND2GUHAM-CYlDBFdI.js} +1 -1
  49. package/dist/client/assets/{chunk-QZHKN3VN-E7rqTspj.js → chunk-QZHKN3VN-3Wv3WxYt.js} +1 -1
  50. package/dist/client/assets/classDiagram-4FO5ZUOK-CrUS4gHO.js +1 -0
  51. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CrUS4gHO.js +1 -0
  52. package/dist/client/assets/{cose-bilkent-S5V4N54A-VYcUIreA.js → cose-bilkent-S5V4N54A-BuMkKBMC.js} +1 -1
  53. package/dist/client/assets/{dagre-BM42HDAG-B4VeH0Nz.js → dagre-BM42HDAG-D1P4z_OM.js} +1 -1
  54. package/dist/client/assets/{dashboard-view-DoNpCbHQ.js → dashboard-view-BgQBLynI.js} +1 -1
  55. package/dist/client/assets/{dashboard-view-BpeWPcmh.js → dashboard-view-CcK2sH0v.js} +1 -1
  56. package/dist/client/assets/{dashboard-view-DGcOsOey.js → dashboard-view-DaRKU5oU.js} +1 -1
  57. package/dist/client/assets/{diagram-2AECGRRQ-BM8FU7fY.js → diagram-2AECGRRQ-hmY-reWF.js} +1 -1
  58. package/dist/client/assets/{diagram-5GNKFQAL-Do8IJG5T.js → diagram-5GNKFQAL-CGfRqm_0.js} +1 -1
  59. package/dist/client/assets/{diagram-KO2AKTUF-C_-zygdh.js → diagram-KO2AKTUF-BfKo4Jd4.js} +1 -1
  60. package/dist/client/assets/{diagram-LMA3HP47-CSPiBke9.js → diagram-LMA3HP47-BZqpNemd.js} +1 -1
  61. package/dist/client/assets/{diagram-OG6HWLK6-BVuoiZg-.js → diagram-OG6HWLK6-CxLTV4DH.js} +1 -1
  62. package/dist/client/assets/{erDiagram-TEJ5UH35-CIY48OYH.js → erDiagram-TEJ5UH35-vw3tx2tK.js} +1 -1
  63. package/dist/client/assets/{flowDiagram-I6XJVG4X-B6zav8SR.js → flowDiagram-I6XJVG4X-OEm-Us2U.js} +1 -1
  64. package/dist/client/assets/{folder-open-Dc23V8n6.js → folder-open-D_zgZHWi.js} +1 -1
  65. package/dist/client/assets/{ganttDiagram-6RSMTGT7-_F49rUcG.js → ganttDiagram-6RSMTGT7-C5bc1DG1.js} +1 -1
  66. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Fk-V-buo.js → gitGraphDiagram-PVQCEYII-DEvcWRBq.js} +1 -1
  67. package/dist/client/assets/index-BinRUCFV.js +2661 -0
  68. package/dist/client/assets/index-DGmuyTtv.css +1 -0
  69. package/dist/client/assets/{infoDiagram-5YYISTIA-DvnBGHv4.js → infoDiagram-5YYISTIA-kFOE9wxd.js} +1 -1
  70. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-Df7TrITT.js → ishikawaDiagram-YF4QCWOH-DvLbzHmR.js} +1 -1
  71. package/dist/client/assets/{journeyDiagram-JHISSGLW-CieUO8Cz.js → journeyDiagram-JHISSGLW-ov6Tbcuz.js} +1 -1
  72. package/dist/client/assets/{kanban-definition-UN3LZRKU-BBR_Cj7I.js → kanban-definition-UN3LZRKU-Dr0foW2M.js} +1 -1
  73. package/dist/client/assets/{mermaid.core-whEVIkYk.js → mermaid.core-CM55309V.js} +4 -4
  74. package/dist/client/assets/{mindmap-definition-RKZ34NQL-utsoG884.js → mindmap-definition-RKZ34NQL-xNyB6Z6o.js} +1 -1
  75. package/dist/client/assets/{pieDiagram-4H26LBE5-B6_-ma_S.js → pieDiagram-4H26LBE5-DlS5Kpga.js} +1 -1
  76. package/dist/client/assets/{puzzle-CY7o6u4N.js → puzzle-BrEvi5DH.js} +1 -1
  77. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CCAEPNEU.js → quadrantDiagram-W4KKPZXB-D4z2CHAA.js} +1 -1
  78. package/dist/client/assets/{requirementDiagram-4Y6WPE33-C0rKKe1e.js → requirementDiagram-4Y6WPE33-Bcwt6-p9.js} +1 -1
  79. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DpeRsnkc.js → sankeyDiagram-5OEKKPKP-C54N76yk.js} +1 -1
  80. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DWYg86A1.js → sequenceDiagram-3UESZ5HK-DtqryztE.js} +1 -1
  81. package/dist/client/assets/{shield-alert-j_jHfoeI.js → shield-alert-DhxKVKek.js} +1 -1
  82. package/dist/client/assets/{standing-instructions-template-CCI99V8d.js → standing-instructions-template-CdHJwmLI.js} +1 -1
  83. package/dist/client/assets/{stateDiagram-AJRCARHV-CalOQ-6v.js → stateDiagram-AJRCARHV-DQAvSrHw.js} +1 -1
  84. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-Dd8RLebl.js → stateDiagram-v2-BHNVJYJU-BzIGKq7y.js} +1 -1
  85. package/dist/client/assets/{timeline-definition-PNZ67QCA-D1PZw-aB.js → timeline-definition-PNZ67QCA-GDj_48Um.js} +1 -1
  86. package/dist/client/assets/{upload-CFL3ZlNN.js → upload-B7GKZiF1.js} +1 -1
  87. package/dist/client/assets/{users-DGOPLxzy.js → users-CBtvFVLM.js} +1 -1
  88. package/dist/client/assets/{vennDiagram-CIIHVFJN-DKQAihMR.js → vennDiagram-CIIHVFJN-PQDmLFbj.js} +1 -1
  89. package/dist/client/assets/{wardley-L42UT6IY-B_XzYoGe.js → wardley-L42UT6IY-GmGtXctI.js} +1 -1
  90. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DBu7IvQK.js → wardleyDiagram-YWT4CUSO-Bv6slmsW.js} +1 -1
  91. package/dist/client/assets/{xychartDiagram-2RQKCTM6-CKrqMXvh.js → xychartDiagram-2RQKCTM6-CK1RJHwB.js} +1 -1
  92. package/dist/client/index.html +2 -2
  93. package/dist/client/version.json +1 -1
  94. package/dist/extension.js +349 -60
  95. package/dist/migrations/0036_chat_session_tags.sql +64 -0
  96. package/dist/plugin-sdk/index.js +27 -1
  97. package/dist/plugins/fusion-plugin-hermes-runtime/.bundled.reload-1.js +8835 -0
  98. package/package.json +3 -3
  99. package/dist/client/assets/ChatView-BWosYwf6.js +0 -8
  100. package/dist/client/assets/SessionTerminal-B4c2w5zb.js +0 -2
  101. package/dist/client/assets/SettingsModal-vpkxpahA.js +0 -21
  102. package/dist/client/assets/channel-DwxxVJWv.js +0 -1
  103. package/dist/client/assets/classDiagram-4FO5ZUOK-CU_MxE3u.js +0 -1
  104. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CU_MxE3u.js +0 -1
  105. package/dist/client/assets/index-C77ORgtm.css +0 -1
  106. 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 $$;
@@ -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(),