@openagt/dashboard 0.11.0 → 0.13.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 (88) hide show
  1. package/dist/built-in.d.ts +15 -6
  2. package/dist/built-in.d.ts.map +1 -1
  3. package/dist/built-in.js +25 -11
  4. package/dist/built-in.js.map +1 -1
  5. package/dist/clone-project.d.ts +69 -0
  6. package/dist/clone-project.d.ts.map +1 -0
  7. package/dist/clone-project.js +124 -0
  8. package/dist/clone-project.js.map +1 -0
  9. package/dist/daemon-runtime.d.ts +11 -1
  10. package/dist/daemon-runtime.d.ts.map +1 -1
  11. package/dist/daemon-runtime.js +56 -3
  12. package/dist/daemon-runtime.js.map +1 -1
  13. package/dist/daemon.js +1 -1
  14. package/dist/daemon.js.map +1 -1
  15. package/dist/dashboard/module-serve.d.ts +6 -0
  16. package/dist/dashboard/module-serve.d.ts.map +1 -1
  17. package/dist/dashboard/module-serve.js +24 -8
  18. package/dist/dashboard/module-serve.js.map +1 -1
  19. package/dist/dashboard/relay-endpoints.d.ts +8 -1
  20. package/dist/dashboard/relay-endpoints.d.ts.map +1 -1
  21. package/dist/dashboard/relay-endpoints.js +48 -1
  22. package/dist/dashboard/relay-endpoints.js.map +1 -1
  23. package/dist/dashboard/remote-run.d.ts +31 -0
  24. package/dist/dashboard/remote-run.d.ts.map +1 -1
  25. package/dist/dashboard/remote-run.js +33 -0
  26. package/dist/dashboard/remote-run.js.map +1 -1
  27. package/dist/dashboard/rpc-serve.d.ts +9 -0
  28. package/dist/dashboard/rpc-serve.d.ts.map +1 -1
  29. package/dist/dashboard/rpc-serve.js +15 -0
  30. package/dist/dashboard/rpc-serve.js.map +1 -1
  31. package/dist/dashboard/server.d.ts +5 -1
  32. package/dist/dashboard/server.d.ts.map +1 -1
  33. package/dist/dashboard/server.js +14 -5
  34. package/dist/dashboard/server.js.map +1 -1
  35. package/dist/dashboard/types.d.ts +11 -3
  36. package/dist/dashboard/types.d.ts.map +1 -1
  37. package/dist/dashboard-bundle/assets/main-Co_A_Ebn.js +140 -0
  38. package/dist/dashboard-bundle/assets/main-DD99HRP9.css +2 -0
  39. package/dist/dashboard-bundle/assets/{module-DKd-4BTU.js → module-ZjyA5WUg.js} +2 -2
  40. package/dist/dashboard-bundle/host/module.js +1 -1
  41. package/dist/dashboard-bundle/index.html +3 -3
  42. package/dist/dashboard-rpc/index.d.ts +3 -3
  43. package/dist/dashboard-rpc/index.d.ts.map +1 -1
  44. package/dist/dashboard-rpc/index.js +3 -3
  45. package/dist/dashboard-rpc/index.js.map +1 -1
  46. package/dist/dashboard-rpc/machines.d.ts +17 -0
  47. package/dist/dashboard-rpc/machines.d.ts.map +1 -1
  48. package/dist/dashboard-rpc/machines.js +47 -2
  49. package/dist/dashboard-rpc/machines.js.map +1 -1
  50. package/dist/dashboard-rpc/modules.d.ts +11 -3
  51. package/dist/dashboard-rpc/modules.d.ts.map +1 -1
  52. package/dist/dashboard-rpc/modules.js +22 -3
  53. package/dist/dashboard-rpc/modules.js.map +1 -1
  54. package/dist/dashboard-rpc/projects.d.ts +16 -0
  55. package/dist/dashboard-rpc/projects.d.ts.map +1 -1
  56. package/dist/dashboard-rpc/projects.js +24 -3
  57. package/dist/dashboard-rpc/projects.js.map +1 -1
  58. package/dist/module-types/dashboard/components/QrCode.d.ts +8 -0
  59. package/dist/module-types/dashboard/module/index.d.ts +11 -4
  60. package/dist/module-types/dashboard/rpc/modules.d.ts +1 -0
  61. package/dist/module-types/src/built-in.d.ts +15 -6
  62. package/dist/module-types/src/clone-project.d.ts +68 -0
  63. package/dist/module-types/src/dashboard/module-serve.d.ts +6 -0
  64. package/dist/module-types/src/dashboard/remote-run.d.ts +31 -0
  65. package/dist/module-types/src/dashboard/rpc-serve.d.ts +9 -0
  66. package/dist/module-types/src/dashboard/types.d.ts +11 -3
  67. package/dist/module-types/src/dashboard-rpc/index.d.ts +3 -3
  68. package/dist/module-types/src/dashboard-rpc/machines.d.ts +17 -0
  69. package/dist/module-types/src/dashboard-rpc/modules.d.ts +11 -3
  70. package/dist/module-types/src/dashboard-rpc/projects.d.ts +16 -0
  71. package/dist/module-types/src/pick-directory.d.ts +2 -0
  72. package/dist/module-types/src/project-modules.d.ts +12 -3
  73. package/dist/module-types/src/repository-address.d.ts +8 -0
  74. package/dist/pick-directory.d.ts +2 -0
  75. package/dist/pick-directory.d.ts.map +1 -1
  76. package/dist/pick-directory.js +7 -1
  77. package/dist/pick-directory.js.map +1 -1
  78. package/dist/project-modules.d.ts +12 -3
  79. package/dist/project-modules.d.ts.map +1 -1
  80. package/dist/project-modules.js +20 -2
  81. package/dist/project-modules.js.map +1 -1
  82. package/dist/repository-address.d.ts +8 -0
  83. package/dist/repository-address.d.ts.map +1 -1
  84. package/dist/repository-address.js +14 -2
  85. package/dist/repository-address.js.map +1 -1
  86. package/package.json +12 -11
  87. package/dist/dashboard-bundle/assets/main-9Xb8Ao4p.css +0 -2
  88. package/dist/dashboard-bundle/assets/main-DTyyQ0jM.js +0 -140
@@ -1 +1 @@
1
- import{A as e,B as t,C as n,D as r,E as i,G as a,Gt as o,H as s,Ht as c,I as l,J as u,K as d,L as f,P as p,Q as m,S as h,T as g,U as _,Ut as v,V as y,Vt as b,X as x,Xt as S,_ as C,a as w,b as T,c as E,dn as D,g as O,h as k,i as A,in as j,m as M,n as N,nn as P,nt as F,o as I,q as L,qt as R,r as z,rn as B,rt as V,s as H,t as U,v as W,w as G,x as K,y as q,z as J}from"../assets/module-DKd-4BTU.js";export{S as Badge,P as Button,h as Card,n as CardContent,G as CardHeader,g as CardTitle,i as Checkbox,k as DiffStat,d as DropdownMenu,L as DropdownMenuCheckboxItem,u as DropdownMenuContent,x as DropdownMenuItem,m as DropdownMenuSeparator,F as DropdownMenuTrigger,y as Input,E as LinkActions,D as MAX_SPEND_OFFSET,r as Markdown,U as ModuleHostContext,W as Popover,q as PopoverContent,T as PopoverTrigger,O as PreviewCard,C as RangeSlider,V as ScrollArea,t as Separator,w as SettingsRow,I as SettingsSection,H as SettingsSelectRow,J as Skeleton,M as StartAgentButton,K as Switch,s as Tooltip,_ as TooltipContent,a as TooltipTrigger,B as buttonVariants,j as cn,N as defineModule,p as forgetRemembered,c as formatAge,v as formatDateTime,o as formatDuration,R as formatRelative,z as moduleHost,b as useAction,e as useCodingAgents,l as useLoaded,A as useModuleHost,f as usePolled};
1
+ import{$ as e,B as t,C as n,D as r,E as i,F as a,H as o,Ht as s,J as c,Jt as l,K as u,Kt as d,L as f,O as p,R as m,S as h,T as g,U as _,Ut as v,V as y,W as b,Wt as x,Y as S,Z as C,Zt as w,_ as T,a as E,an as D,b as O,c as k,fn as A,g as j,h as M,i as N,in as P,it as F,j as I,l as L,n as R,o as z,q as B,r as V,rn as H,rt as U,s as W,t as G,v as K,w as q,x as J,y as Y}from"../assets/module-ZjyA5WUg.js";export{w as Badge,H as Button,n as Card,q as CardContent,g as CardHeader,i as CardTitle,r as Checkbox,j as DiffStat,B as DropdownMenu,c as DropdownMenuCheckboxItem,S as DropdownMenuContent,C as DropdownMenuItem,e as DropdownMenuSeparator,U as DropdownMenuTrigger,o as Input,L as LinkActions,A as MAX_SPEND_OFFSET,p as Markdown,G as ModuleHostContext,Y as Popover,O as PopoverContent,J as PopoverTrigger,T as PreviewCard,E as QrCode,K as RangeSlider,F as ScrollArea,y as Separator,z as SettingsRow,W as SettingsSection,k as SettingsSelectRow,t as Skeleton,M as StartAgentButton,h as Switch,_ as Tooltip,b as TooltipContent,u as TooltipTrigger,P as buttonVariants,D as cn,R as defineModule,a as forgetRemembered,v as formatAge,x as formatDateTime,d as formatDuration,l as formatRelative,V as moduleHost,s as useAction,I as useCodingAgents,f as useLoaded,N as useModuleHost,m as usePolled};
@@ -27,14 +27,14 @@
27
27
  "@openagt/dashboard/module": "/host/module.js"
28
28
  }
29
29
  }</script>
30
- <script type="module" crossorigin src="/assets/main-DTyyQ0jM.js"></script>
30
+ <script type="module" crossorigin src="/assets/main-Co_A_Ebn.js"></script>
31
31
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/react-CZI7_Jkm.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/react-dom-cJyBB_A4.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/client-CbBRB9m4.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-By8HlURe.js">
36
- <link rel="modulepreload" crossorigin href="/assets/module-DKd-4BTU.js">
37
- <link rel="stylesheet" crossorigin href="/assets/main-9Xb8Ao4p.css">
36
+ <link rel="modulepreload" crossorigin href="/assets/module-ZjyA5WUg.js">
37
+ <link rel="stylesheet" crossorigin href="/assets/main-DD99HRP9.css">
38
38
  </head>
39
39
  <body>
40
40
  <div id="root"></div>
@@ -1,13 +1,13 @@
1
1
  export { onAgents, onAgent, onAgentsDoing, onDocs, onQueue, onOverview, onRecentAgents, onInterventions, onOpenQuestions, onActivity, onDashboard, onGitHostHome, onRepositoryOffer, onGitStatus, onProjectFiles, onRetainedWorktrees, onAgentWorktree, onAgentHandoff, onBridgeQuestion, onBridgeStatus, onBridgeToken, onBridgeEvents, onBridgeAnswer, onBridgeBrowser } from './reads.js';
2
2
  export { sendStop, sendChoice, sendBridgeAnswer, sendBridgeAnswerCancel, sendBridgeBrowser, sendMessage, sendStart, sendOpenInApp, sendRemoveWorktree, sendDeleteAgent, sendOpenPullRequest, sendPush, sendMergeBranch, sendMerge, sendCreateRepository } from './control.js';
3
3
  export { streamAgentEvents, type LiveFeedEvent, type PartialMessage, type StreamSync } from './events.js';
4
- export { onProjects, sendAddProject, sendRemoveProject, onRecordsReach, sendShareRecords, sendPickProjectDirectory, onOnboarding, onCommands, onStartCheck, type ProjectLauncher } from './projects.js';
4
+ export { onProjects, sendAddProject, onCloneTarget, sendAddProjectFromAddress, sendRemoveProject, onRecordsReach, sendShareRecords, sendPickProjectDirectory, onOnboarding, onCommands, onStartCheck, type ProjectLauncher } from './projects.js';
5
5
  export { onPreferences, savePreferences, patchPreferences, onProjectPresets, saveProjectPresets, onEditors, type SavePreferencesResult, type PatchPreferencesResult, } from './preferences.js';
6
6
  export { type EditorInfo } from '../dashboard/open-in-app.js';
7
7
  export { onQuota } from './quota.js';
8
8
  export { onModels } from './models.js';
9
- export { onMachines, sendAddMachine, sendRemoveMachine, onMachinesReachable, onMachineVersions, type Machine, type AddMachineResult, type MachineVersions } from './machines.js';
10
- export { onModules, runModuleCommand, readModule, type DashboardModule, type ModuleCommandResult, type ModuleReadResult } from './modules.js';
9
+ export { onMachines, sendAddMachine, sendRemoveMachine, onMachinesReachable, onMachineVersions, sendProjectToMachine, onProjectOnMachine, type Machine, type AddMachineResult, type MachineVersions, type ProjectOnMachine } from './machines.js';
10
+ export { onModules, runModuleCommand, runComputerCommand, readModule, type DashboardModule, type ModuleCommandResult, type ModuleReadResult } from './modules.js';
11
11
  export { onProjectSkills, sendChangeSkills, sendCommitSkills, type ProjectSkills, type ProjectSkill, type ChangeSkillsResult } from './skills.js';
12
12
  import { streamAgentEvents } from './events.js';
13
13
  /** One RPC: called with whatever the browser sent, answering with whatever JSON.stringify keeps. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5X,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC7Q,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AACvM,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAChL,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC7I,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAWjJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAOnD,CAAA;AAED,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,0BAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5X,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC7Q,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AACjP,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACjP,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACjK,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAWjJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAOnD,CAAA;AAED,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,0BAAoB,CAAA"}
@@ -5,12 +5,12 @@
5
5
  export { onAgents, onAgent, onAgentsDoing, onDocs, onQueue, onOverview, onRecentAgents, onInterventions, onOpenQuestions, onActivity, onDashboard, onGitHostHome, onRepositoryOffer, onGitStatus, onProjectFiles, onRetainedWorktrees, onAgentWorktree, onAgentHandoff, onBridgeQuestion, onBridgeStatus, onBridgeToken, onBridgeEvents, onBridgeAnswer, onBridgeBrowser } from './reads.js';
6
6
  export { sendStop, sendChoice, sendBridgeAnswer, sendBridgeAnswerCancel, sendBridgeBrowser, sendMessage, sendStart, sendOpenInApp, sendRemoveWorktree, sendDeleteAgent, sendOpenPullRequest, sendPush, sendMergeBranch, sendMerge, sendCreateRepository } from './control.js';
7
7
  export { streamAgentEvents } from './events.js';
8
- export { onProjects, sendAddProject, sendRemoveProject, onRecordsReach, sendShareRecords, sendPickProjectDirectory, onOnboarding, onCommands, onStartCheck } from './projects.js';
8
+ export { onProjects, sendAddProject, onCloneTarget, sendAddProjectFromAddress, sendRemoveProject, onRecordsReach, sendShareRecords, sendPickProjectDirectory, onOnboarding, onCommands, onStartCheck } from './projects.js';
9
9
  export { onPreferences, savePreferences, patchPreferences, onProjectPresets, saveProjectPresets, onEditors, } from './preferences.js';
10
10
  export { onQuota } from './quota.js';
11
11
  export { onModels } from './models.js';
12
- export { onMachines, sendAddMachine, sendRemoveMachine, onMachinesReachable, onMachineVersions } from './machines.js';
13
- export { onModules, runModuleCommand, readModule } from './modules.js';
12
+ export { onMachines, sendAddMachine, sendRemoveMachine, onMachinesReachable, onMachineVersions, sendProjectToMachine, onProjectOnMachine } from './machines.js';
13
+ export { onModules, runModuleCommand, runComputerCommand, readModule } from './modules.js';
14
14
  export { onProjectSkills, sendChangeSkills, sendCommitSkills } from './skills.js';
15
15
  import * as reads from './reads.js';
16
16
  import * as control from './control.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard-rpc/index.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,oDAAoD;AACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5X,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC7Q,OAAO,EAAE,iBAAiB,EAA4D,MAAM,aAAa,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAwB,MAAM,eAAe,CAAA;AACvM,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,GAGV,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAA6D,MAAM,eAAe,CAAA;AAChL,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAyE,MAAM,cAAc,CAAA;AAC7I,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAkE,MAAM,aAAa,CAAA;AAEjJ,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAK/C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAA+B,MAAM,CAAC,MAAM,CACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAA+B,EACjD,MAAM,CAAC,WAAW,CAChB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;KAC9E,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACzC,MAAM,CAAC,CAAC,KAAK,EAAiC,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CACpF,CACF,CAAA;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard-rpc/index.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,oDAAoD;AACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5X,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC7Q,OAAO,EAAE,iBAAiB,EAA4D,MAAM,aAAa,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAwB,MAAM,eAAe,CAAA;AACjP,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,GAGV,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAoF,MAAM,eAAe,CAAA;AACjP,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAyE,MAAM,cAAc,CAAA;AACjK,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAkE,MAAM,aAAa,CAAA;AAEjJ,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAK/C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAA+B,MAAM,CAAC,MAAM,CACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAA+B,EACjD,MAAM,CAAC,WAAW,CAChB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;KAC9E,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACzC,MAAM,CAAC,CAAC,KAAK,EAAiC,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CACpF,CACF,CAAA;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAA"}
@@ -49,4 +49,21 @@ export interface MachineVersions {
49
49
  * that a machine fell behind this computer. One short call to each, with this computer's key.
50
50
  */
51
51
  export declare function onMachineVersions(): Promise<MachineVersions>;
52
+ /** Whether a saved machine has a project of this computer's: `there` is false while the machine clones it. */
53
+ export type ProjectOnMachine = {
54
+ ok: true;
55
+ there: boolean;
56
+ } | {
57
+ ok: false;
58
+ error: string;
59
+ };
60
+ /**
61
+ * Have a saved machine clone a project of this computer's that it does not have, from the
62
+ * project's repository address and with the machine's own logins: what a run sent there waits
63
+ * for, the first time. The machine clones on its own; {@link onProjectOnMachine} says when the
64
+ * project is there. Nothing happens on a machine that has it, or is cloning it already.
65
+ */
66
+ export declare function sendProjectToMachine(projectId: string, machineId: string): Promise<ProjectOnMachine>;
67
+ /** Whether a saved machine has the project by now, or why it will not: asked while the machine clones it. */
68
+ export declare function onProjectOnMachine(projectId: string, machineId: string): Promise<ProjectOnMachine>;
52
69
  //# sourceMappingURL=machines.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/machines.ts"],"names":[],"mappings":"AAaA,sDAAsD;AACtD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5F,wCAAwC;AACxC,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAErD;AAOD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsB9F;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7E;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAMhF;AAED,6GAA6G;AAC7G,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAI5E;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,QAAQ,EAAE,CAAC,OAAO,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC,CAQlE"}
1
+ {"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/machines.ts"],"names":[],"mappings":"AAgBA,sDAAsD;AACtD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5F,wCAAwC;AACxC,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAErD;AAOD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsB9F;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7E;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAMhF;AAED,6GAA6G;AAC7G,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAI5E;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,QAAQ,EAAE,CAAC,OAAO,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC,CAQlE;AAED,8GAA8G;AAC9G,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1F;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE1G;AAED,6GAA6G;AAC7G,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAExG"}
@@ -1,7 +1,10 @@
1
1
  import { hostname } from 'node:os';
2
- import { enterRemote, leaveRemote, pingRemote, remoteVersion } from '../dashboard/remote-run.js';
2
+ import { basename } from 'node:path';
3
+ import { readSharing } from '@openagt/agent-data';
4
+ import { enterRemote, leaveRemote, pingRemote, remoteProject, remoteVersion } from '../dashboard/remote-run.js';
3
5
  import { errorMessage } from '../error-message.js';
4
- import { contextRemote } from './context.js';
6
+ import { repositoryAddress, repositorySpelling } from '../repository-address.js';
7
+ import { contextRemote, resolveProjectPath } from './context.js';
5
8
  import { addMachine, listMachines, removeMachine } from '../registry.js';
6
9
  import { parseMachineLink } from '../machine-link.js';
7
10
  import { openagentVersion } from '../version.js';
@@ -79,4 +82,46 @@ export async function onMachineVersions() {
79
82
  }));
80
83
  return { version: openagentVersion(), machines };
81
84
  }
85
+ /**
86
+ * Have a saved machine clone a project of this computer's that it does not have, from the
87
+ * project's repository address and with the machine's own logins: what a run sent there waits
88
+ * for, the first time. The machine clones on its own; {@link onProjectOnMachine} says when the
89
+ * project is there. Nothing happens on a machine that has it, or is cloning it already.
90
+ */
91
+ export async function sendProjectToMachine(projectId, machineId) {
92
+ return projectOnMachine(projectId, machineId, true);
93
+ }
94
+ /** Whether a saved machine has the project by now, or why it will not: asked while the machine clones it. */
95
+ export async function onProjectOnMachine(projectId, machineId) {
96
+ return projectOnMachine(projectId, machineId, false);
97
+ }
98
+ async function projectOnMachine(projectId, machineId, bring) {
99
+ const machine = (await listMachines()).find(saved => saved.id === machineId);
100
+ if (!machine)
101
+ return { ok: false, error: 'That machine is no longer saved. Pick another place to run.' };
102
+ const cwd = typeof projectId === 'string' ? await resolveProjectPath(projectId) : undefined;
103
+ if (!cwd)
104
+ return { ok: false, error: `unknown project: ${String(projectId)}` };
105
+ const project = await repositoryAddress(cwd);
106
+ if (!project)
107
+ return { ok: false, error: 'This project has no repository address, so it cannot be sent to another machine.' };
108
+ const target = { url: machine.url, key: machine.key, ...(machine.pin ? { pin: machine.pin } : {}), project };
109
+ const from = bring ? await repositorySpelling(cwd) : undefined;
110
+ const said = await remoteProject(target, bring ? { share: await readSharing(cwd), ...(from !== undefined ? { from } : {}) } : undefined);
111
+ const name = basename(cwd);
112
+ switch (said.state) {
113
+ case 'there':
114
+ return { ok: true, there: true };
115
+ case 'coming':
116
+ return { ok: true, there: false };
117
+ case 'missing':
118
+ // The machine was restarted while it cloned: what it had made is gone, and a new send starts over.
119
+ return { ok: false, error: `${machine.label} is no longer cloning ${name}. Send again.` };
120
+ case 'failed':
121
+ // The machine's own words: "this computer" in them is the machine.
122
+ return { ok: false, error: `${name} could not be cloned on ${machine.label}. ${machine.label} says: ${said.error}` };
123
+ case 'unasked':
124
+ return { ok: false, error: `${machine.label} could not be asked for ${name}: ${said.error}` };
125
+ }
126
+ }
82
127
  //# sourceMappingURL=machines.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"machines.js","sourceRoot":"","sources":["../../src/dashboard-rpc/machines.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machines.js","sourceRoot":"","sources":["../../src/dashboard-rpc/machines.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,14 @@ export type { ModuleReadResult } from '../dashboard/module-host.js';
6
6
  export interface DashboardModule {
7
7
  /** The package that brings it. */
8
8
  package: string;
9
- /** The URL of its browser module, served from the first project that has it. */
9
+ /** The URL of its browser module, served from the first project that has it, or from OpenAgent's own copy for one of the computer's. */
10
10
  url: string;
11
- /** The registered projects whose packages include it, in the registry's order. */
11
+ /** The registered projects whose packages include it, in the registry's order; none for one of the computer's, whose commands run in no project. */
12
12
  projects: string[];
13
13
  }
14
14
  /**
15
- * Every module any registered project brings (#1774), one per package, with the projects
15
+ * Every module the dashboard loads (#1774), one per package. First the computer's, which are
16
+ * there with no project added. Then every module any registered project brings, with the projects
16
17
  * that have it: with no project picked the sidebar and the pages are every project's, and the
17
18
  * dashboard narrows them itself to a picked project's. A package several projects install is loaded once, from
18
19
  * the first of them in the registry's order; its page then reads each project through that
@@ -34,6 +35,13 @@ export declare function onModules(): Promise<DashboardModule[]>;
34
35
  * write only at the next sync.
35
36
  */
36
37
  export declare function runModuleCommand(projectId: string, pkg: string, args: string[], command?: string, acts?: boolean): Promise<ModuleCommandResult>;
38
+ /**
39
+ * Run one of the commands of a package that is this computer's, in no project, and answer its
40
+ * JSON output: how the door's page and the servers' page read and change what they keep, which is
41
+ * in the person's home folder, where the command runs. Refused for any other package: a project's
42
+ * module runs its commands in its project ({@link runModuleCommand}).
43
+ */
44
+ export declare function runComputerCommand(pkg: string, args: string[], command?: string): Promise<ModuleCommandResult>;
37
45
  /**
38
46
  * Call read `name` of a module's server part in one project: how a module's browser part reads
39
47
  * what a command cannot answer fast enough. Refused for an unknown project, a package that is not
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/modules.ts"],"names":[],"mappings":"AACA,OAAO,EAAyE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAGvI,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAI/F,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,6FAA6F;AAC7F,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAA;IACX,kFAAkF;IAClF,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAW5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAUnJ;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUxH"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/modules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkH,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAGhL,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAI/F,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,6FAA6F;AAC7F,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,wIAAwI;IACxI,GAAG,EAAE,MAAM,CAAA;IACX,oJAAoJ;IACpJ,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAc5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAUnJ;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAKpH;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUxH"}
@@ -1,12 +1,14 @@
1
+ import { homedir } from 'node:os';
1
2
  import { contextProjects, resolveProjectPath } from './context.js';
2
- import { findProjectModule, readProjectModules, runModuleCommand as runCommand } from '../project-modules.js';
3
- import { moduleUrl } from '../dashboard/module-serve.js';
3
+ import { findComputerModule, findProjectModule, readComputerModules, readProjectModules, runModuleCommand as runCommand } from '../project-modules.js';
4
+ import { computerModuleUrl, moduleUrl } from '../dashboard/module-serve.js';
4
5
  import { providedDataChanged } from '../store/provided.js';
5
6
  import { callModuleRead, serverHost } from '../dashboard/module-host.js';
6
7
  import { relayOr } from './relay-agent.js';
7
8
  import { DATA_BRANCH, pullFileBranch } from '@openagt/agent-data';
8
9
  /**
9
- * Every module any registered project brings (#1774), one per package, with the projects
10
+ * Every module the dashboard loads (#1774), one per package. First the computer's, which are
11
+ * there with no project added. Then every module any registered project brings, with the projects
10
12
  * that have it: with no project picked the sidebar and the pages are every project's, and the
11
13
  * dashboard narrows them itself to a picked project's. A package several projects install is loaded once, from
12
14
  * the first of them in the registry's order; its page then reads each project through that
@@ -14,6 +16,9 @@ import { DATA_BRANCH, pullFileBranch } from '@openagt/agent-data';
14
16
  */
15
17
  export async function onModules() {
16
18
  const byPackage = new Map();
19
+ for (const module of await readComputerModules().catch(() => [])) {
20
+ byPackage.set(module.package, { package: module.package, url: computerModuleUrl(module), projects: [] });
21
+ }
17
22
  for (const project of await contextProjects().list()) {
18
23
  const modules = await readProjectModules(project.path).catch(() => []);
19
24
  for (const module of modules) {
@@ -55,6 +60,20 @@ export async function runModuleCommand(projectId, pkg, args, command, acts = fal
55
60
  providedDataChanged(root);
56
61
  return result;
57
62
  }
63
+ /**
64
+ * Run one of the commands of a package that is this computer's, in no project, and answer its
65
+ * JSON output: how the door's page and the servers' page read and change what they keep, which is
66
+ * in the person's home folder, where the command runs. Refused for any other package: a project's
67
+ * module runs its commands in its project ({@link runModuleCommand}).
68
+ */
69
+ export async function runComputerCommand(pkg, args, command) {
70
+ if (!Array.isArray(args))
71
+ return { ok: false, error: 'arguments must be a list' };
72
+ const module = await findComputerModule(pkg);
73
+ if (!module)
74
+ return { ok: false, error: `${pkg} is not this computer's` };
75
+ return runCommand(homedir(), module, args, command);
76
+ }
58
77
  /**
59
78
  * Call read `name` of a module's server part in one project: how a module's browser part reads
60
79
  * what a command cannot answer fast enough. Refused for an unknown project, a package that is not
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/dashboard-rpc/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/dashboard-rpc/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,gBAAgB,IAAI,UAAU,EAA4B,MAAM,uBAAuB,CAAA;AAChL,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAyB,MAAM,6BAA6B,CAAA;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAejE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAA;IACpD,KAAK,MAAM,MAAM,IAAI,MAAM,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1G,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QACtE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC3C,IAAI,KAAK;gBAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;;gBACrC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7H,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;AAChC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,GAAW,EAAE,IAAc,EAAE,OAAgB,EAAE,IAAI,GAAG,KAAK;IACnH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;IACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAA;IACjF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,mCAAmC,EAAE,CAAA;IACnF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC5D,IAAI,IAAI;QAAE,MAAM,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACpF,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,IAAc,EAAE,OAAgB;IACpF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAA;IACjF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,yBAAyB,EAAE,CAAA;IACzE,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB,EAAE,GAAW,EAAE,IAAY,EAAE,KAAc;IAC3F,MAAM,OAAO,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,KAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACvK,OAAO,OAAO,CAAmB,OAAO,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;QACzD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACxE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,+BAA+B,EAAE,CAAA;QAC/E,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,qBAAqB,EAAE,CAAA;QAC5E,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IACrE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC,CAAA;AAC1E,CAAC"}
@@ -15,6 +15,22 @@ export declare function onProjects(): Promise<ProjectSummary[]>;
15
15
  * repository's remote. Nothing is pushed for a project added with `false`.
16
16
  */
17
17
  export declare function sendAddProject(path: string, share: boolean): Promise<AddProjectResult>;
18
+ /** Where the repository a person typed the address of would be cloned to on this computer, or why what was typed is no address: asked before anything is cloned. */
19
+ export declare function onCloneTarget(address: string): Promise<{
20
+ ok: true;
21
+ address: string;
22
+ path: string;
23
+ } | {
24
+ ok: false;
25
+ error: string;
26
+ }>;
27
+ /**
28
+ * Add a project by its repository's address, for a computer that does not have its folder: the
29
+ * repository is cloned into `~/projects/<its name>` with the logins this computer has, and the
30
+ * folder is then added as {@link sendAddProject} adds one. A folder already there with this
31
+ * repository in it is added as it is. The answer says where the project is.
32
+ */
33
+ export declare function sendAddProjectFromAddress(address: string, share: boolean): Promise<AddProjectResult>;
18
34
  /**
19
35
  * Remove a project from the dashboard: it leaves the Projects list. Nothing in its folder is
20
36
  * deleted unless `files` is true: then what OpenAgent left there is removed too, and the answer
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAA+E,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACnI,OAAO,EAAsD,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAM7G,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAYxG,wBAAsB,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAM5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAM5F;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAIvG;AAED,uHAAuH;AACvH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAGnF;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAU3H;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAE7E;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAIlE;AAED,0GAA0G;AAC1G,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,iGAAiG;IACjG,SAAS,EAAE,OAAO,CAAA;IAClB,qJAAqJ;IACrJ,OAAO,EAAE,OAAO,CAAA;IAChB,8IAA8I;IAC9I,MAAM,EAAE,OAAO,CAAA;IACf,sJAAsJ;IACtJ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAanF;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMrG"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/dashboard-rpc/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAA+E,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACnI,OAAO,EAAsD,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAQ7G,OAAO,EAAmC,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAEhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAYxG,wBAAsB,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAM5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAM5F;AAED,oKAAoK;AACpK,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAExI;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAM1G;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAIvG;AAED,uHAAuH;AACvH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAGnF;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAU3H;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAE7E;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAKlE;AAED,0GAA0G;AAC1G,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,iGAAiG;IACjG,SAAS,EAAE,OAAO,CAAA;IAClB,qJAAqJ;IACrJ,OAAO,EAAE,OAAO,CAAA;IAChB,8IAA8I;IAC9I,MAAM,EAAE,OAAO,CAAA;IACf,sJAAsJ;IACtJ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAanF;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMrG"}
@@ -6,7 +6,9 @@ import { hasRemote } from '../has-remote.js';
6
6
  import { repositoryAddress } from '../repository-address.js';
7
7
  import { currentBranch } from '../dashboard/git-status.js';
8
8
  import { waitingSkills } from '../dashboard/start-branch.js';
9
- import { pickDirectory } from '../pick-directory.js';
9
+ import { homedir } from 'node:os';
10
+ import { cloneProject, cloneTargetOf } from '../clone-project.js';
11
+ import { canPickDirectory, pickDirectory } from '../pick-directory.js';
10
12
  import { projectGitHost } from '../store/git-host.js';
11
13
  // The Projects sidebar behind the new dashboard (#405): the global registry (#390) the
12
14
  // daemon and CLI write — id, path, name, activated, last activity. The per-agent
@@ -42,6 +44,24 @@ export async function sendAddProject(path, share) {
42
44
  return { ok: false, error: 'a project path is required' };
43
45
  return addProject(trimmed, share === true);
44
46
  }
47
+ /** Where the repository a person typed the address of would be cloned to on this computer, or why what was typed is no address: asked before anything is cloned. */
48
+ export async function onCloneTarget(address) {
49
+ return cloneTargetOf(typeof address === 'string' ? address : '');
50
+ }
51
+ /**
52
+ * Add a project by its repository's address, for a computer that does not have its folder: the
53
+ * repository is cloned into `~/projects/<its name>` with the logins this computer has, and the
54
+ * folder is then added as {@link sendAddProject} adds one. A folder already there with this
55
+ * repository in it is added as it is. The answer says where the project is.
56
+ */
57
+ export async function sendAddProjectFromAddress(address, share) {
58
+ const addProject = contextAddProject();
59
+ const cloned = await cloneProject(typeof address === 'string' ? address : '');
60
+ if (!cloned.ok)
61
+ return cloned;
62
+ const added = await addProject(cloned.path, share === true);
63
+ return added.ok ? { ...added, path: cloned.path } : added;
64
+ }
45
65
  /**
46
66
  * Remove a project from the dashboard: it leaves the Projects list. Nothing in its folder is
47
67
  * deleted unless `files` is true: then what OpenAgent left there is removed too, and the answer
@@ -95,9 +115,10 @@ export async function sendPickProjectDirectory() {
95
115
  * so the first step can offer "Add {cwd} as project" without the user typing a path.
96
116
  */
97
117
  export async function onOnboarding() {
98
- const cwd = process.cwd();
118
+ // A service runs in its user's home folder, as OpenAgent does on a server: no project to offer.
119
+ const cwd = process.cwd() === homedir() ? null : process.cwd();
99
120
  const registered = await contextProjects().list();
100
- return { cwd, cwdProjectId: registered.find(p => p.path === cwd)?.id ?? null };
121
+ return { cwd, cwdProjectId: (cwd !== null && registered.find(p => p.path === cwd)?.id) || null, canPickFolder: canPickDirectory() };
101
122
  }
102
123
  /**
103
124
  * The project's commands (#1774), read off its skills folders, whether it has a start hook, whether
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/dashboard-rpc/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/dashboard-rpc/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A link as a QR code. Always dark on white, whatever the page's theme: a phone's camera reads
3
+ * the contrast, not the colours of the page around it.
4
+ */
5
+ export declare function QrCode({ text, label }: {
6
+ text: string;
7
+ label: string;
8
+ }): import("react").JSX.Element;
@@ -104,13 +104,13 @@ export interface ModuleCard {
104
104
  }
105
105
  /** What a Settings section is rendered with: the projects that have its package. */
106
106
  export interface ModuleSettingsProps {
107
- /** The registered projects whose dependencies include the module's package, in the registry's order. */
107
+ /** The registered projects whose dependencies include the module's package, in the registry's order; none for a package that is the computer's. */
108
108
  projects: ModuleProject[];
109
109
  }
110
110
  /**
111
111
  * A section a module adds to the Settings page: the package's own settings, read and written
112
- * through its own command, drawn after the dashboard's own sections. A package with no projects
113
- * registered shows none.
112
+ * through its own command, drawn after the dashboard's own sections. A project's package with no
113
+ * project registered shows none; a package that is the computer's shows its own with no project.
114
114
  */
115
115
  export interface ModuleSettings {
116
116
  /** Which section this is, for the shell's key and its error line; the section draws its own title. */
@@ -273,6 +273,12 @@ export interface ModuleHost {
273
273
  * change shows at once instead of at the next sync. A link action's host runs every command so.
274
274
  */
275
275
  act(projectId: string, args: string[], command?: string): Promise<ModuleCommandResult>;
276
+ /**
277
+ * Run one of the module package's own commands in no project, for a package that is this
278
+ * computer's (the door to it, its servers): what such a package keeps is the computer's, so
279
+ * its page reads and changes it with no project added. Refused for any other package.
280
+ */
281
+ runComputerCommand(args: string[], command?: string): Promise<ModuleCommandResult>;
276
282
  /**
277
283
  * Call one of the module's own server reads (its package's `./server`) in one project, with
278
284
  * `input`, a JSON object; `input.agentId` names the run the read is about, when it is about one.
@@ -337,7 +343,7 @@ export type MachineAdded = {
337
343
  error: string;
338
344
  };
339
345
  /** What the dashboard knows about the module it is serving: every service but the commands and the reads, which it binds to the package. */
340
- export type ModuleHostBase = Omit<ModuleHost, 'runCommand' | 'act' | 'read'>;
346
+ export type ModuleHostBase = Omit<ModuleHost, 'runCommand' | 'act' | 'runComputerCommand' | 'read'>;
341
347
  /**
342
348
  * The host for one module: the dashboard's services, and its commands bound to the module's own
343
349
  * package. `acts` marks every command as an action on the project rather than a page's read: the
@@ -374,6 +380,7 @@ export { StartAgentButton } from '../components/StartAgentButton.js';
374
380
  export { LinkActions, type ProjectLinks, type LinkTargets } from '../components/LinkActions.js';
375
381
  export { cn } from '../lib/utils.js';
376
382
  export { SettingsSection, SettingsRow, SettingsSelectRow, type SettingsOption } from '../components/SettingsRows.js';
383
+ export { QrCode } from '../components/QrCode.js';
377
384
  export { useCodingAgents, type CodingAgent } from '../lib/models.js';
378
385
  export { MAX_SPEND_OFFSET } from '../../src/preference-defaults.js';
379
386
  export { formatRelative, formatDateTime, formatDuration, formatAge } from '../lib/format-date.js';
@@ -2,4 +2,5 @@ import type * as impl from '../../src/dashboard-rpc/modules.js';
2
2
  export type * from '../../src/dashboard-rpc/modules.js';
3
3
  export declare const onModules: () => Promise<impl.DashboardModule[]>;
4
4
  export declare const runModuleCommand: (projectId: string, pkg: string, args: string[], command?: string | undefined, acts?: boolean | undefined) => Promise<import("@openagt/agent-data").PackageCommandResult>;
5
+ export declare const runComputerCommand: (pkg: string, args: string[], command?: string | undefined) => Promise<import("@openagt/agent-data").PackageCommandResult>;
5
6
  export declare const readModule: (projectId: string, pkg: string, name: string, input: unknown) => Promise<impl.ModuleReadResult>;
@@ -5,12 +5,18 @@ import { type ProjectPackage, type ProvidedCommand, type ProvidedCommandLookup }
5
5
  * own install, so a project installs nothing for them and an empty folder starts an agent and
6
6
  * shows it. Each comes through the same contract as any package: a module by its `./dashboard`
7
7
  * export, a provider of a kind of data and the writer of its hook lines by its `openagent` key.
8
- * These two lists are the one place OpenAgent names a package. One of these names among a
8
+ * These three lists are the one place OpenAgent names a package. One of these names among a
9
9
  * project's own dependencies is not read: OpenAgent's copy, and the rules below for which
10
10
  * project has it, are the only ones.
11
11
  */
12
- /** The packages every project has: an agent cannot start, be shown or be put on a git host without them, and the door to this computer and the servers it installed OpenAgent on are no project's to pick. */
12
+ /** The packages every project has: an agent cannot start, be shown or be put on a git host without them. */
13
13
  export declare const BUILT_IN_PACKAGES: readonly string[];
14
+ /**
15
+ * The packages that are this computer's and no project's: the door to it, and the servers it
16
+ * installed OpenAgent on. Their pages show and their commands run with no project added, and
17
+ * what one keeps is in the person's home folder.
18
+ */
19
+ export declare const COMPUTER_PACKAGES: readonly string[];
14
20
  /**
15
21
  * The packages a project has once it picked them (#2023). A skill's package is the project's
16
22
  * when the project holds the skill's text where the coding agents read it
@@ -27,16 +33,19 @@ export declare function builtInPackages(): Promise<ProjectPackage[]>;
27
33
  /**
28
34
  * The packages OpenAgent brings to the project at `root`: the ones every project has, and
29
35
  * each picked one the project has by its rule (see {@link PICKED_PACKAGES}). Read off the
30
- * project's files each time, so a skill written or deleted a moment ago counts at once.
36
+ * project's files each time, so a skill written or deleted a moment ago counts at once. None of
37
+ * the computer's: no project has those.
31
38
  */
32
39
  export declare function builtInPackagesOf(root: string): Promise<ProjectPackage[]>;
33
40
  /** The project's own installed packages, less the names OpenAgent brings itself. */
34
41
  export declare function ownPackages(root: string): Promise<ProjectPackage[]>;
42
+ /** The packages that are this computer's: see {@link COMPUTER_PACKAGES}. */
43
+ export declare function computerPackages(): Promise<ProjectPackage[]>;
35
44
  /**
36
- * The services of the packages every project has: a package declares
45
+ * The services of the computer's packages: a package declares
37
46
  * `"openagent": { "service": "<command>" }`, and `<command> serve` runs for as long as OpenAgent
38
- * runs (`package-services.ts`). Only those packages: a service is this computer's, and a package
39
- * a project picked is that project's.
47
+ * runs (`package-services.ts`). Only those packages: a service is this computer's, and any
48
+ * other package is a project's.
40
49
  */
41
50
  export declare function builtInServices(): Promise<ProvidedCommand[]>;
42
51
  /** The directories the commands of OpenAgent's packages sit in: what a hook line's PATH gains after the project's own installed tools. */