@runfusion/fusion 0.35.0 → 0.37.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 (66) hide show
  1. package/dist/bin.js +2685 -585
  2. package/dist/client/.vite/manifest.json +61 -61
  3. package/dist/client/assets/{AgentDetailView-CFX3jxfA.js → AgentDetailView-T_AHPxcG.js} +1 -1
  4. package/dist/client/assets/{AgentPermissionPolicyEditor-4tnYHS0-.js → AgentPermissionPolicyEditor-niLSqGAE.js} +1 -1
  5. package/dist/client/assets/{AgentsView-DnNWfwiY.js → AgentsView-CQhaLHz_.js} +3 -3
  6. package/dist/client/assets/{ChatView-rwl2O-s0.js → ChatView-B60kYfdk.js} +1 -1
  7. package/dist/client/assets/{DevServerView-C9fEzcFQ.js → DevServerView-0Gb44WOb.js} +1 -1
  8. package/dist/client/assets/{DirectoryPicker-Cwyr0Sl4.js → DirectoryPicker-BSQA0XM9.js} +1 -1
  9. package/dist/client/assets/{DocumentsView-gDWTMU2w.js → DocumentsView-XZbaqEFF.js} +1 -1
  10. package/dist/client/assets/{EvalsView-Cw7D1x0W.js → EvalsView-CJNtXxX9.js} +1 -1
  11. package/dist/client/assets/{ExperimentalAgentOnboardingModal-8yeOcqbX.js → ExperimentalAgentOnboardingModal-DR8E3i36.js} +1 -1
  12. package/dist/client/assets/GoalsView-CN1zQ_Ax.js +1 -0
  13. package/dist/client/assets/GoalsView-CtWi0fxE.css +1 -0
  14. package/dist/client/assets/{InsightsView-IHHikd5n.js → InsightsView-D_jRaMyn.js} +1 -1
  15. package/dist/client/assets/{MemoryView-pii3HOba.js → MemoryView-D90vdPnp.js} +1 -1
  16. package/dist/client/assets/{NodesView-CoDK14B3.js → NodesView-C1zuedAe.js} +1 -1
  17. package/dist/client/assets/{PiExtensionsManager-vH7EJ5JD.js → PiExtensionsManager-DBJDDVfM.js} +1 -1
  18. package/dist/client/assets/{PluginManager-PbkFQ0Nu.js → PluginManager-Ceg64P2Z.js} +1 -1
  19. package/dist/client/assets/{ResearchView-Dp4g_BWq.js → ResearchView-XRwWdczc.js} +1 -1
  20. package/dist/client/assets/{SecretsView-Q8wES8_N.js → SecretsView-TCrKyCme.js} +1 -1
  21. package/dist/client/assets/{SettingsModal-127YAB8c.js → SettingsModal-B8fRuWdQ.js} +4 -4
  22. package/dist/client/assets/{SettingsModal-DdUztATB.js → SettingsModal-C1TczsEr.js} +1 -1
  23. package/dist/client/assets/{SetupWizardModal-BSAFiQpJ.js → SetupWizardModal-D6moSTT3.js} +1 -1
  24. package/dist/client/assets/{SkillsView-Bj8KQQXB.js → SkillsView-BDHLPVBi.js} +1 -1
  25. package/dist/client/assets/{StashRecoveryView-DvKN_b_k.js → StashRecoveryView-DZGa591R.js} +1 -1
  26. package/dist/client/assets/{TodoView-C-cabt2D.js → TodoView-nr_SnCJv.js} +1 -1
  27. package/dist/client/assets/{dashboard-view-DrHb8VOl.js → dashboard-view-0XeZ1FTR.js} +1 -1
  28. package/dist/client/assets/{folder-open-CYVKFKAx.js → folder-open-iURwQbEg.js} +1 -1
  29. package/dist/client/assets/index-CjuQj4qe.js +742 -0
  30. package/dist/client/assets/index-DmrpDn7c.css +1 -0
  31. package/dist/client/assets/{upload-eQh-mH3-.js → upload-Beqg4S4L.js} +1 -1
  32. package/dist/client/assets/{users-B5upejXg.js → users-C2o86ZCR.js} +1 -1
  33. package/dist/client/index.html +2 -2
  34. package/dist/client/version.json +1 -1
  35. package/dist/droid-cli/index.ts +1 -1
  36. package/dist/droid-cli/package.json +3 -3
  37. package/dist/droid-cli/src/__tests__/thinking-config.test.ts +1 -1
  38. package/dist/extension.js +1928 -287
  39. package/dist/pi-claude-cli/index.ts +3 -3
  40. package/dist/pi-claude-cli/package.json +3 -3
  41. package/dist/pi-claude-cli/src/__tests__/event-bridge.test.ts +3 -3
  42. package/dist/pi-claude-cli/src/__tests__/provider.test.ts +3 -3
  43. package/dist/pi-claude-cli/src/__tests__/thinking-config.test.ts +1 -1
  44. package/dist/pi-claude-cli/src/event-bridge.ts +2 -2
  45. package/dist/pi-claude-cli/src/provider.ts +1 -1
  46. package/dist/pi-claude-cli/src/thinking-config.ts +1 -1
  47. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  48. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  49. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  50. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +34607 -33421
  51. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  52. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  53. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  54. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  55. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  56. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  57. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  58. package/package.json +7 -7
  59. package/skill/fusion/SKILL.md +1 -0
  60. package/skill/fusion/references/cli-commands.md +3 -0
  61. package/skill/fusion/references/extension-tools.md +43 -0
  62. package/skill/fusion/references/fusion-capabilities.md +4 -0
  63. package/dist/client/assets/GoalsView-Cg136Jcn.css +0 -1
  64. package/dist/client/assets/GoalsView-kRIhgAA6.js +0 -1
  65. package/dist/client/assets/index-Cuh_Pqv0.css +0 -1
  66. package/dist/client/assets/index-Cze5qbME.js +0 -742
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/droid-runtime",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/hermes-runtime",
3
- "version": "0.2.45",
3
+ "version": "0.2.47",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/openclaw-runtime",
3
- "version": "0.2.45",
3
+ "version": "0.2.47",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/paperclip-runtime",
3
- "version": "0.2.45",
3
+ "version": "0.2.47",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/reports",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "type": "module",
5
5
  "description": "Reports plugin for Fusion",
6
6
  "private": true,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/roadmap",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/whatsapp-chat",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "type": "module",
5
5
  "description": "WhatsApp Web (Baileys) chat bridge for Fusion agents",
6
6
  "keywords": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runfusion/fusion",
3
- "version": "0.35.0",
3
+ "version": "0.37.0",
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",
@@ -40,8 +40,8 @@
40
40
  "README.md"
41
41
  ],
42
42
  "dependencies": {
43
- "@mariozechner/pi-ai": "^0.73.0",
44
- "@mariozechner/pi-coding-agent": "^0.73.0",
43
+ "@earendil-works/pi-ai": "^0.77.0",
44
+ "@earendil-works/pi-coding-agent": "^0.77.0",
45
45
  "dockerode": "^4.0.12",
46
46
  "express": "^5.1.0",
47
47
  "ink": "^6.8.0",
@@ -53,15 +53,15 @@
53
53
  "react": "^19.0.0"
54
54
  },
55
55
  "peerDependencies": {
56
- "@mariozechner/pi-ai": "*",
57
- "@mariozechner/pi-coding-agent": "*",
56
+ "@earendil-works/pi-ai": "*",
57
+ "@earendil-works/pi-coding-agent": "*",
58
58
  "typebox": "*"
59
59
  },
60
60
  "peerDependenciesMeta": {
61
- "@mariozechner/pi-ai": {
61
+ "@earendil-works/pi-ai": {
62
62
  "optional": true
63
63
  },
64
- "@mariozechner/pi-coding-agent": {
64
+ "@earendil-works/pi-coding-agent": {
65
65
  "optional": true
66
66
  },
67
67
  "typebox": {
@@ -30,6 +30,7 @@ Mission → Milestone → Slice → Feature → Task
30
30
  - **Task tools** — `fn_task_create`, `fn_task_update`, `fn_task_list`, `fn_task_show`, `fn_task_attach`, `fn_task_pause`, `fn_task_unpause`, `fn_task_retry`, `fn_task_duplicate`, `fn_task_refine`, `fn_task_archive`, `fn_task_unarchive`, `fn_task_delete`, `fn_task_plan`
31
31
  - **GitHub tools** — `fn_task_import_github`, `fn_task_import_github_issue`, `fn_task_browse_github_issues`
32
32
  - **Mission tools** — `fn_mission_create`, `fn_mission_list`, `fn_mission_show`, `fn_mission_delete`, `fn_milestone_add`, `fn_slice_add`, `fn_feature_add`, `fn_slice_activate`, `fn_feature_link_task`, `fn_feature_update`, `fn_milestone_update`
33
+ - **Goal tools** — `fn_goal_list`, `fn_goal_create`, `fn_goal_archive`, `fn_goal_show`
33
34
  - **Agent tools** — `fn_agent_stop`, `fn_agent_start`, `fn_agent_create`, `fn_agent_delete`, `fn_list_agents`, `fn_delegate_task`, `fn_agent_show`, `fn_agent_org_chart`
34
35
  - **Skills tools** — `fn_skills_search`, `fn_skills_install`
35
36
  - **Insight tools** — `fn_insight_list`, `fn_insight_show`, `fn_insight_run_list`, `fn_insight_run_show`
@@ -62,6 +62,9 @@ fn mission list # List all missions
62
62
  fn mission show M-001 # Show mission hierarchy
63
63
  fn mission delete M-001 [--force] # Delete mission (cascades)
64
64
  fn mission activate-slice SL-001 # Manually activate a slice
65
+ fn goals list [--status STATE] # List goals (default: active)
66
+ fn goals create "Title" "Description" # Create a new goal
67
+ fn goals archive G-001 # Archive a goal
65
68
  ```
66
69
 
67
70
  ## GitHub Integration
@@ -274,6 +274,41 @@ Update an existing milestone's title, description, or acceptance criteria (the s
274
274
  | `description` | string | — | Updated milestone description |
275
275
  | `acceptanceCriteria` | string | — | Updated acceptance criteria for completing the milestone |
276
276
 
277
+ ## Goal Tools
278
+
279
+ ### fn_goal_list
280
+
281
+ List goals by status with active-goal warning details.
282
+
283
+ | Parameter | Type | Required | Description |
284
+ |-----------|------|----------|-------------|
285
+ | `status` | union | — | Filter by goal status (default: active) |
286
+
287
+ ### fn_goal_create
288
+
289
+ Create a new project goal.
290
+
291
+ | Parameter | Type | Required | Description |
292
+ |-----------|------|----------|-------------|
293
+ | `title` | string | ✓ | Goal title — brief but descriptive |
294
+ | `description` | string | — | Long-form goal description (free-text markdown) |
295
+
296
+ ### fn_goal_archive
297
+
298
+ Archive a goal by ID.
299
+
300
+ | Parameter | Type | Required | Description |
301
+ |-----------|------|----------|-------------|
302
+ | `id` | string | ✓ | Goal ID (G-…) to archive |
303
+
304
+ ### fn_goal_show
305
+
306
+ Show full details for a single goal by ID.
307
+
308
+ | Parameter | Type | Required | Description |
309
+ |-----------|------|----------|-------------|
310
+ | `id` | string | ✓ | Goal ID (G-…) |
311
+
277
312
  ## Agent Tools
278
313
 
279
314
  ### fn_agent_stop
@@ -496,6 +531,14 @@ Group kept experiment runs into reviewable branches and finalize the session. Us
496
531
  | `summary` | string | — | Optional finalize summary |
497
532
 
498
533
  <!-- END: extension-tools -->
534
+
535
+ ## Goal retrieval contract notes
536
+
537
+ ### Goal-show response contract
538
+
539
+ - **Success:** returns `details.goal` as the complete goal JSON object (`id`, `title`, optional `description`, `status`, `createdAt`, `updatedAt`) and `content[0].text` with those same human-readable fields.
540
+ - **Not found:** returns `isError: true` with `details.code: "GOAL_NOT_FOUND"` and `details.goalId` set to the requested id.
541
+
499
542
  ## Dashboard Command
500
543
 
501
544
  ### /fn
@@ -43,6 +43,10 @@ All skill/extension tool invocations in this catalog use the public `fn_*` names
43
43
  | `fn_insight_run_show` | Show a single insight-generation run by ID. |
44
44
  | `fn_mission_create` | Create a new mission — a high-level objective that can span multiple milestones. Missions contain milestones that break down work into phases. |
45
45
  | `fn_mission_list` | List all missions with their current status. |
46
+ | `fn_goal_list` | List goals by status with active-goal warning details. |
47
+ | `fn_goal_create` | Create a new project goal. |
48
+ | `fn_goal_archive` | Archive a goal by ID. |
49
+ | `fn_goal_show` | Show full details for a single goal by ID. |
46
50
  | `fn_mission_show` | Show mission details with full hierarchy: milestones → slices → features. |
47
51
  | `fn_mission_delete` | Delete a mission and all its milestones, slices, and features. Cannot be undone. |
48
52
  | `fn_milestone_add` | Add a milestone to a mission. Milestones represent phases of work. |
@@ -1 +0,0 @@
1
- .goals-view{display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-lg)}.goals-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.goals-title{margin:0;color:var(--text);font-size:calc(var(--space-lg) + var(--space-xs))}.goals-count{margin:0;color:var(--text-muted)}.goals-add-button{display:inline-flex;align-items:center;gap:var(--space-sm)}.goals-add-button:focus-visible,.goals-card:focus-visible,.goals-activate-button:focus-visible{outline:none;box-shadow:var(--focus-ring-strong)}.goals-warning{margin:0;padding:var(--space-md);border-radius:var(--radius-md);border:calc(var(--space-xs) / 4) solid var(--color-warning);background:color-mix(in srgb,var(--color-warning) 10%,transparent);color:var(--color-warning)}.goals-error{margin:0}.goals-list{display:flex;flex-direction:column;gap:var(--space-md)}.goals-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.goals-card-main{min-width:0}.goals-card-title{margin:0;color:var(--text);font-size:calc(var(--space-md) + var(--space-xs))}.goals-card-status{margin:var(--space-xs) 0 0;color:var(--text-muted)}.goals-activate-button{min-width:calc(var(--space-2xl) * 2)}.goals-empty{color:var(--text-muted)}@media(max-width:768px){.goals-header{flex-direction:column;align-items:stretch}.goals-add-button,.goals-card,.goals-activate-button{min-height:calc(var(--space-xl) + var(--space-md))}.goals-card{flex-direction:column;align-items:stretch}}
@@ -1 +0,0 @@
1
- import{j as t,r as g}from"./vendor-react-K0fH_qHe.js";import{J as h}from"./index-Cze5qbME.js";import"./vendor-xterm-DzcZoU0P.js";import"./vendor-codemirror-jBKmHyH0.js";const v=5,p=3,x=[{id:"goal-1",title:"Reduce mean review turnaround",status:"active",createdAt:"2026-05-14T09:30:00.000Z"},{id:"goal-2",title:"Raise merge reliability coverage",status:"active",createdAt:"2026-05-15T12:00:00.000Z"},{id:"goal-3",title:"Ship dashboard quality audit",status:"inactive",createdAt:"2026-05-16T08:15:00.000Z"}];function j(n){const[s,i]=g.useState(()=>n??x),[c,o]=g.useState(null),l=g.useMemo(()=>s.filter(e=>e.status==="active").length,[s]);function r(){if(l>=v){o("Cannot activate more than 5 goals. Resolve an active goal before adding another active goal.");return}o(null),i(e=>[...e,{id:`goal-${e.length+1}`,title:`New Goal ${e.length+1}`,status:"active",createdAt:new Date().toISOString()}])}function a(e){const m=s.find(d=>d.id===e);if(!(!m||m.status==="active")){if(l>=v){o("Cannot activate more than 5 goals. Resolve an active goal before activating another.");return}o(null),i(d=>d.map(u=>u.id===e?{...u,status:"active"}:u))}}return{goals:s,activeCount:l,errorMessage:c,addGoal:r,activateGoal:a}}function A({initialGoals:n}){const{goals:s,activeCount:i,errorMessage:c,addGoal:o,activateGoal:l}=j(n),r=i>=p&&i<=v;return t.jsxs("section",{className:"goals-view","data-testid":"goals-view",children:[t.jsxs("header",{className:"goals-header",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"goals-title",children:"Goals"}),t.jsxs("p",{className:"goals-count","data-testid":"goals-active-count",children:[i," active goals"]})]}),t.jsxs("button",{type:"button",className:"btn btn-primary goals-add-button",onClick:o,"data-testid":"goals-add-button",children:[t.jsx(h,{"aria-hidden":"true"}),"Add Goal"]})]}),r?t.jsx("p",{className:"goals-warning",role:"status",children:"Approaching the 5-active goal cap. Keep active goals focused."}):null,c?t.jsx("p",{className:"form-error goals-error",role:"alert",children:c}):null,s.length===0?t.jsx("div",{className:"goals-empty card","data-testid":"goals-empty-state",children:"No goals yet. Add one to begin tracking strategic outcomes."}):t.jsx("div",{className:"goals-list","data-testid":"goals-list",children:s.map(a=>t.jsxs("article",{className:"card goals-card","data-testid":`goal-card-${a.id}`,children:[t.jsxs("div",{className:"goals-card-main",children:[t.jsx("h3",{className:"goals-card-title",children:a.title}),t.jsxs("p",{className:"goals-card-status",children:["Status: ",a.status]})]}),t.jsx("button",{type:"button",className:"btn goals-activate-button",disabled:a.status==="active",onClick:()=>l(a.id),"data-testid":`goal-activate-${a.id}`,children:a.status==="active"?"Active":"Activate"})]},a.id))})]})}export{A as GoalsView};