@openagt/dashboard 0.49.0 → 0.51.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 (159) hide show
  1. package/README.md +3 -4
  2. package/dist/built-in.d.ts +2 -2
  3. package/dist/built-in.d.ts.map +1 -1
  4. package/dist/built-in.js +4 -4
  5. package/dist/built-in.js.map +1 -1
  6. package/dist/cli/bin.d.ts +3 -0
  7. package/dist/cli/bin.d.ts.map +1 -0
  8. package/dist/cli/bin.js +11 -0
  9. package/dist/cli/bin.js.map +1 -0
  10. package/dist/cli/browser.d.ts +14 -0
  11. package/dist/cli/browser.d.ts.map +1 -0
  12. package/dist/cli/browser.js +22 -0
  13. package/dist/cli/browser.js.map +1 -0
  14. package/dist/cli/cli.d.ts +37 -0
  15. package/dist/cli/cli.d.ts.map +1 -0
  16. package/dist/cli/cli.js +188 -0
  17. package/dist/cli/cli.js.map +1 -0
  18. package/dist/cli/project.d.ts +6 -0
  19. package/dist/cli/project.d.ts.map +1 -0
  20. package/dist/cli/project.js +13 -0
  21. package/dist/cli/project.js.map +1 -0
  22. package/dist/cli/skills.d.ts +18 -0
  23. package/dist/cli/skills.d.ts.map +1 -0
  24. package/dist/cli/skills.js +36 -0
  25. package/dist/cli/skills.js.map +1 -0
  26. package/dist/cli/update-check.d.ts +44 -0
  27. package/dist/cli/update-check.d.ts.map +1 -0
  28. package/dist/cli/update-check.js +71 -0
  29. package/dist/cli/update-check.js.map +1 -0
  30. package/dist/daemon-runtime.js +13 -13
  31. package/dist/daemon-runtime.js.map +1 -1
  32. package/dist/daemon.d.ts +0 -2
  33. package/dist/daemon.d.ts.map +1 -1
  34. package/dist/daemon.js +5 -5
  35. package/dist/daemon.js.map +1 -1
  36. package/dist/dashboard/agent-updates.d.ts +39 -0
  37. package/dist/dashboard/agent-updates.d.ts.map +1 -0
  38. package/dist/dashboard/agent-updates.js +87 -0
  39. package/dist/dashboard/agent-updates.js.map +1 -0
  40. package/dist/dashboard/copied-logins.d.ts +0 -2
  41. package/dist/dashboard/copied-logins.d.ts.map +1 -1
  42. package/dist/dashboard/copied-logins.js +2 -6
  43. package/dist/dashboard/copied-logins.js.map +1 -1
  44. package/dist/dashboard/copy-logins.d.ts.map +1 -1
  45. package/dist/dashboard/copy-logins.js +4 -4
  46. package/dist/dashboard/copy-logins.js.map +1 -1
  47. package/dist/dashboard/logins-sync.d.ts.map +1 -1
  48. package/dist/dashboard/logins-sync.js +5 -5
  49. package/dist/dashboard/logins-sync.js.map +1 -1
  50. package/dist/dashboard/machine-runs.d.ts.map +1 -1
  51. package/dist/dashboard/machine-runs.js +17 -9
  52. package/dist/dashboard/machine-runs.js.map +1 -1
  53. package/dist/dashboard/models.d.ts +5 -1
  54. package/dist/dashboard/models.d.ts.map +1 -1
  55. package/dist/dashboard/models.js +11 -6
  56. package/dist/dashboard/models.js.map +1 -1
  57. package/dist/dashboard/quota.d.ts.map +1 -1
  58. package/dist/dashboard/quota.js +9 -1
  59. package/dist/dashboard/quota.js.map +1 -1
  60. package/dist/dashboard/rpc-serve.d.ts +4 -0
  61. package/dist/dashboard/rpc-serve.d.ts.map +1 -1
  62. package/dist/dashboard/rpc-serve.js.map +1 -1
  63. package/dist/dashboard/server.d.ts +3 -0
  64. package/dist/dashboard/server.d.ts.map +1 -1
  65. package/dist/dashboard/server.js +1 -0
  66. package/dist/dashboard/server.js.map +1 -1
  67. package/dist/dashboard-bundle/assets/host/module-Cj4JvDNR.js +1 -0
  68. package/dist/dashboard-bundle/assets/main-C337ghZH.css +2 -0
  69. package/dist/dashboard-bundle/assets/main-Dws_coS4.js +148 -0
  70. package/dist/dashboard-bundle/assets/module-pxUBfZug.js +14 -0
  71. package/dist/dashboard-bundle/index.html +4 -4
  72. package/dist/dashboard-rpc/accounts.d.ts +10 -47
  73. package/dist/dashboard-rpc/accounts.d.ts.map +1 -1
  74. package/dist/dashboard-rpc/accounts.js +19 -151
  75. package/dist/dashboard-rpc/accounts.js.map +1 -1
  76. package/dist/dashboard-rpc/computers.js +1 -1
  77. package/dist/dashboard-rpc/computers.js.map +1 -1
  78. package/dist/dashboard-rpc/context.d.ts +3 -0
  79. package/dist/dashboard-rpc/context.d.ts.map +1 -1
  80. package/dist/dashboard-rpc/context.js +4 -0
  81. package/dist/dashboard-rpc/context.js.map +1 -1
  82. package/dist/dashboard-rpc/copied-logins.d.ts.map +1 -1
  83. package/dist/dashboard-rpc/copied-logins.js +1 -1
  84. package/dist/dashboard-rpc/copied-logins.js.map +1 -1
  85. package/dist/dashboard-rpc/index.d.ts +1 -1
  86. package/dist/dashboard-rpc/index.d.ts.map +1 -1
  87. package/dist/dashboard-rpc/index.js +1 -1
  88. package/dist/dashboard-rpc/index.js.map +1 -1
  89. package/dist/dashboard-rpc/logins.d.ts.map +1 -1
  90. package/dist/dashboard-rpc/logins.js +4 -3
  91. package/dist/dashboard-rpc/logins.js.map +1 -1
  92. package/dist/dashboard-rpc/machines.d.ts +7 -0
  93. package/dist/dashboard-rpc/machines.d.ts.map +1 -1
  94. package/dist/dashboard-rpc/machines.js +3 -3
  95. package/dist/dashboard-rpc/machines.js.map +1 -1
  96. package/dist/dashboard-rpc/models.d.ts +5 -0
  97. package/dist/dashboard-rpc/models.d.ts.map +1 -1
  98. package/dist/dashboard-rpc/models.js +17 -2
  99. package/dist/dashboard-rpc/models.js.map +1 -1
  100. package/dist/dashboard-rpc/reads.d.ts.map +1 -1
  101. package/dist/dashboard-rpc/reads.js +3 -1
  102. package/dist/dashboard-rpc/reads.js.map +1 -1
  103. package/dist/dashboard-rpc/test-context.d.ts.map +1 -1
  104. package/dist/dashboard-rpc/test-context.js +2 -1
  105. package/dist/dashboard-rpc/test-context.js.map +1 -1
  106. package/dist/module-types/dashboard/components/driver-logos.d.ts +15 -0
  107. package/dist/module-types/dashboard/components/ui/card.d.ts +1 -1
  108. package/dist/module-types/dashboard/components/ui/gauge.d.ts +5 -0
  109. package/dist/module-types/dashboard/module/index.d.ts +41 -43
  110. package/dist/module-types/dashboard/rpc/machines.d.ts +3 -3
  111. package/dist/module-types/dashboard/rpc/models.d.ts +3 -0
  112. package/dist/module-types/src/built-in.d.ts +2 -2
  113. package/dist/module-types/src/dashboard/agent-updates.d.ts +38 -0
  114. package/dist/module-types/src/dashboard/copied-logins.d.ts +0 -2
  115. package/dist/module-types/src/dashboard/models.d.ts +5 -1
  116. package/dist/module-types/src/dashboard/rpc-serve.d.ts +4 -0
  117. package/dist/module-types/src/dashboard-rpc/accounts.d.ts +10 -47
  118. package/dist/module-types/src/dashboard-rpc/context.d.ts +3 -0
  119. package/dist/module-types/src/dashboard-rpc/index.d.ts +1 -1
  120. package/dist/module-types/src/dashboard-rpc/machines.d.ts +7 -0
  121. package/dist/module-types/src/dashboard-rpc/models.d.ts +5 -0
  122. package/dist/module-types/src/project-modules.d.ts +28 -29
  123. package/dist/module-types/src/project-skills/catalogue.d.ts +1 -1
  124. package/dist/module-types/src/quota-poller.d.ts +1 -1
  125. package/dist/module-types/src/reached-by-line.d.ts +1 -0
  126. package/dist/module-types/src/registry.d.ts +19 -7
  127. package/dist/module-types/src/version.d.ts +0 -1
  128. package/dist/overview-layout.d.ts.map +1 -1
  129. package/dist/overview-layout.js.map +1 -1
  130. package/dist/project-modules.d.ts +28 -29
  131. package/dist/project-modules.d.ts.map +1 -1
  132. package/dist/project-modules.js +47 -46
  133. package/dist/project-modules.js.map +1 -1
  134. package/dist/project-skills/catalogue.d.ts +1 -1
  135. package/dist/quota-poller.d.ts +1 -1
  136. package/dist/quota-poller.d.ts.map +1 -1
  137. package/dist/quota-poller.js +5 -8
  138. package/dist/quota-poller.js.map +1 -1
  139. package/dist/reached-by-line.d.ts +1 -0
  140. package/dist/reached-by-line.d.ts.map +1 -1
  141. package/dist/reached-by-line.js +1 -1
  142. package/dist/reached-by-line.js.map +1 -1
  143. package/dist/registry.d.ts +19 -7
  144. package/dist/registry.d.ts.map +1 -1
  145. package/dist/registry.js +39 -9
  146. package/dist/registry.js.map +1 -1
  147. package/dist/version.d.ts +0 -1
  148. package/dist/version.d.ts.map +1 -1
  149. package/dist/version.js +21 -9
  150. package/dist/version.js.map +1 -1
  151. package/package.json +26 -25
  152. package/dist/dashboard-bundle/assets/host/module-BdU8htGM.js +0 -1
  153. package/dist/dashboard-bundle/assets/main-CbO78PA9.css +0 -2
  154. package/dist/dashboard-bundle/assets/main-DyfbReQD.js +0 -148
  155. package/dist/dashboard-bundle/assets/module-BKRGk-mY.js +0 -14
  156. package/dist/serve.d.ts +0 -4
  157. package/dist/serve.d.ts.map +0 -1
  158. package/dist/serve.js +0 -6
  159. package/dist/serve.js.map +0 -1
package/README.md CHANGED
@@ -8,15 +8,14 @@ checkout of the repo, does its work, and hands the result off as a pull request.
8
8
  checkout is never touched.
9
9
 
10
10
  ```bash
11
- npm i -g @openagt/start
11
+ npm i -g @openagt/dashboard
12
12
 
13
13
  cd ~/code/my-repo
14
14
  openagent # serves the dashboard at http://127.0.0.1:4200
15
15
  ```
16
16
 
17
- This package is the dashboard itself: the server and its pages, with no command of its own.
18
- OpenAgent is run as `@openagt/start`, which serves it and hands every run the skills it gets by
19
- default.
17
+ This package is OpenAgent: the server, its pages and the command that serves them and hands
18
+ every run the skills it gets by default.
20
19
 
21
20
  ## The command is three options and no verbs
22
21
 
@@ -12,8 +12,8 @@ import { type ProjectPackage, type ProvidedCommand, type ProvidedCommandLookup }
12
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
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
15
+ * The packages that are this computer's and no project's: the door to it, the servers it
16
+ * installed OpenAgent on, and the accounts its runs use. Their pages show and their commands run with no project added, and
17
17
  * what one keeps is in the person's home folder.
18
18
  */
19
19
  export declare const COMPUTER_PACKAGES: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"built-in.d.ts","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAA4H,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAErO;;;;;;;;GAQG;AAEH,4GAA4G;AAC5G,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA+I,CAAA;AAE9L;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAyB,CAAA;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA6I,CAAA;AAE1L,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAqE,CAAA;AAYpH,iHAAiH;AACjH,wBAAgB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3D;AAsBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ/E;AA2BD,oFAAoF;AACpF,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAEzE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAEnE;AAED,4EAA4E;AAC5E,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAElE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAElE;AAED,0IAA0I;AAC1I,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAMxD;AAED,wIAAwI;AACxI,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAE/F;AAED,gFAAgF;AAChF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEtG;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAE3D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkBtE"}
1
+ {"version":3,"file":"built-in.d.ts","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAA4H,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAErO;;;;;;;;GAQG;AAEH,4GAA4G;AAC5G,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAmK,CAAA;AAElN;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAsE,CAAA;AAErH;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA6I,CAAA;AAE1L,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAqE,CAAA;AAYpH,iHAAiH;AACjH,wBAAgB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3D;AAsBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ/E;AA2BD,oFAAoF;AACpF,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAEzE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAEnE;AAED,4EAA4E;AAC5E,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAElE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAElE;AAED,0IAA0I;AAC1I,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAMxD;AAED,wIAAwI;AACxI,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAE/F;AAED,gFAAgF;AAChF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEtG;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAE3D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkBtE"}
package/dist/built-in.js CHANGED
@@ -12,13 +12,13 @@ import { declaring, SKILLS_DIRS, SKILLS_ENV, lookupProvidedCommand, packageBins,
12
12
  * project has it, are the only ones.
13
13
  */
14
14
  /** The packages every project has: an agent cannot start, be shown or be put on a git host without them. */
15
- export const BUILT_IN_PACKAGES = ['@openagt/changes', '@openagt/files', '@openagt/skill-branches', '@openagt/skill-github', '@openagt/skill-logs', '@openagt/agent-runner'];
15
+ export const BUILT_IN_PACKAGES = ['@openagt/dashboard-changes', '@openagt/dashboard-files', '@openagt/skill-branches', '@openagt/skill-github', '@openagt/skill-logs', '@openagt/agent-runner'];
16
16
  /**
17
- * The packages that are this computer's and no project's: the door to it, and the servers it
18
- * installed OpenAgent on. Their pages show and their commands run with no project added, and
17
+ * The packages that are this computer's and no project's: the door to it, the servers it
18
+ * installed OpenAgent on, and the accounts its runs use. Their pages show and their commands run with no project added, and
19
19
  * what one keeps is in the person's home folder.
20
20
  */
21
- export const COMPUTER_PACKAGES = ['@openagt/devices'];
21
+ export const COMPUTER_PACKAGES = ['@openagt/dashboard-devices', '@openagt/skill-account-rotation'];
22
22
  /**
23
23
  * The packages a project has once it picked them (#2023). A skill's package is every project's
24
24
  * when the skill is one every run gets by default (the package that started OpenAgent names those,
@@ -1 +1 @@
1
- {"version":3,"file":"built-in.js","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"built-in.js","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ import { runCli } from './cli.js';
3
+ // Exited outright once the CLI is done: a handle left over (a child, a timer, a socket) must not
4
+ // keep the process up after the dashboard stopped (#2141).
5
+ runCli(process.argv.slice(2))
6
+ .then(code => process.exit(code))
7
+ .catch((err) => {
8
+ console.error(err);
9
+ process.exit(1);
10
+ });
11
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,iGAAiG;AACjG,2DAA2D;AAC3D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ /** The command that opens an address in the default browser, by platform. */
2
+ export declare function browserCommand(platform: NodeJS.Platform, url: string): {
3
+ command: string;
4
+ args: string[];
5
+ };
6
+ /**
7
+ * Open the dashboard in the browser, for a person at this terminal only: a service, with no
8
+ * terminal, has no one to show it to. A computer with no browser to open says nothing: the
9
+ * address is printed above it.
10
+ */
11
+ export declare function openInBrowser(url: string, stdout?: {
12
+ isTTY?: boolean;
13
+ }): void;
14
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/cli/browser.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAK1G;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAmB,GAAG,IAAI,CAI7F"}
@@ -0,0 +1,22 @@
1
+ import { spawn } from 'node:child_process';
2
+ /** The command that opens an address in the default browser, by platform. */
3
+ export function browserCommand(platform, url) {
4
+ if (platform === 'darwin')
5
+ return { command: 'open', args: [url] };
6
+ // `start` is a command of cmd itself; its first quoted argument is the window's title.
7
+ if (platform === 'win32')
8
+ return { command: 'cmd', args: ['/c', 'start', '""', url] };
9
+ return { command: 'xdg-open', args: [url] };
10
+ }
11
+ /**
12
+ * Open the dashboard in the browser, for a person at this terminal only: a service, with no
13
+ * terminal, has no one to show it to. A computer with no browser to open says nothing: the
14
+ * address is printed above it.
15
+ */
16
+ export function openInBrowser(url, stdout = process.stdout) {
17
+ if (!stdout.isTTY)
18
+ return;
19
+ const { command, args } = browserCommand(process.platform, url);
20
+ spawn(command, args, { stdio: 'ignore', detached: true }).on('error', () => { }).unref();
21
+ }
22
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/cli/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,QAAyB,EAAE,GAAW;IACnE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAA;IAClE,uFAAuF;IACvF,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAA;IACrF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAA;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,MAAM,GAAwB,OAAO,CAAC,MAAM;IACrF,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAM;IACzB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC/D,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;AACzF,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { type VersionFetcher } from './update-check.js';
2
+ /** Where the CLI writes. Injectable so tests capture output. */
3
+ export interface CliIO {
4
+ out: (line: string) => void;
5
+ err: (line: string) => void;
6
+ }
7
+ /** What the CLI itself accepts: three options, no verbs (D4). */
8
+ export interface CliArgs {
9
+ help: boolean;
10
+ version: boolean;
11
+ /** `--port <n>`: the port the dashboard binds. Default {@link DEFAULT_DAEMON_PORT}; `0` is ephemeral. */
12
+ port?: number;
13
+ error?: string;
14
+ }
15
+ /**
16
+ * Parse argv (without the node/script prefix). Pure and testable.
17
+ *
18
+ * Three options and nothing else: `--port` because it is the one thing a browser cannot be asked
19
+ * and a dashboard cannot serve about itself; `--help` and `--version` because a command with
20
+ * options owes the user both. The command runs no agent (#1774): a run is started
21
+ * from the dashboard, by the project's own start hook.
22
+ */
23
+ export declare function parseArgs(argv: string[]): CliArgs;
24
+ export declare function runCli(argv: string[], io?: CliIO): Promise<number>;
25
+ /**
26
+ * The startup footer every dashboard path prints (#312): where prompts come from, the version,
27
+ * and then — once npm answers — whether that version is the latest.
28
+ *
29
+ * The update line is deliberately not awaited before the static lines. #312 asks for the static
30
+ * info first, and the foreground path (bare `openagent`) blocks on the server forever, so a line
31
+ * printed after the await would never appear there at all. `checkForUpdate` is already forgiving:
32
+ * offline or slow (2.5s cap) resolves to 'unknown', which prints nothing.
33
+ */
34
+ export declare function printStartupFooter(io: CliIO, opts?: {
35
+ fetchLatest?: VersionFetcher;
36
+ }): Promise<void>;
37
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAS/G,gEAAgE;AAChE,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5B;AA0BD,iEAAiE;AACjE,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,yGAAyG;IACzG,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAyBjD;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,KAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBnF;AAgFD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,cAAc,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxG"}
@@ -0,0 +1,188 @@
1
+ import { checkForUpdate, formatUpdateStatus, nodeVersionFetcher } from './update-check.js';
2
+ import { runDaemon, DEFAULT_DAEMON_PORT } from '../daemon.js';
3
+ import { joinRunningDashboard } from '../join-dashboard.js';
4
+ import { handDownSkills } from './skills.js';
5
+ import { repositoryOf } from './project.js';
6
+ import { openInBrowser } from './browser.js';
7
+ import { openagentVersion } from '../version.js';
8
+ const defaultIO = {
9
+ out: line => process.stdout.write(line + '\n'),
10
+ err: line => process.stderr.write(line + '\n'),
11
+ };
12
+ const HELP = `OpenAgent — turnkey AI orchestration that wraps a coding agent (Claude Code or Codex).
13
+
14
+ Usage:
15
+ openagent Serve the dashboard in the foreground. Ctrl+C closes it; the server
16
+ logs stream to this terminal. Typed inside a Git repository, it adds
17
+ that repository to the dashboard's projects and opens its page. With
18
+ the dashboard running already, it hands the repository to that one.
19
+
20
+ Options:
21
+ --port <n> Dashboard port (default: 4200).
22
+ -h, --help Show this help.
23
+ -v, --version Print the version.
24
+
25
+ The dashboard listens on this computer only. A phone, or another computer's OpenAgent, gets in
26
+ from Settings › Devices.
27
+
28
+ Everything else is the dashboard: it shows a project's runs from their files, and starts one
29
+ through the project's own start hook (.openagent/hooks.yml), which names the tool that runs it.`;
30
+ /**
31
+ * Parse argv (without the node/script prefix). Pure and testable.
32
+ *
33
+ * Three options and nothing else: `--port` because it is the one thing a browser cannot be asked
34
+ * and a dashboard cannot serve about itself; `--help` and `--version` because a command with
35
+ * options owes the user both. The command runs no agent (#1774): a run is started
36
+ * from the dashboard, by the project's own start hook.
37
+ */
38
+ export function parseArgs(argv) {
39
+ const opts = { help: false, version: false };
40
+ for (let i = 0; i < argv.length; i++) {
41
+ const arg = argv[i];
42
+ switch (arg) {
43
+ case '--help':
44
+ case '-h':
45
+ opts.help = true;
46
+ break;
47
+ case '--version':
48
+ case '-v':
49
+ opts.version = true;
50
+ break;
51
+ case '--port': {
52
+ const n = Number(argv[++i]);
53
+ if (Number.isInteger(n) && n >= 0)
54
+ opts.port = n;
55
+ else
56
+ opts.error ??= 'invalid --port: must be a non-negative integer';
57
+ break;
58
+ }
59
+ default:
60
+ // The first thing that could not be read is the one told: what follows an unknown option is its value, not a command.
61
+ opts.error ??= arg.startsWith('-') ? `unknown option: ${arg}` : `unknown command: ${arg}`;
62
+ }
63
+ }
64
+ return opts;
65
+ }
66
+ export async function runCli(argv, io = defaultIO) {
67
+ const args = parseArgs(argv);
68
+ if (args.error) {
69
+ io.err(args.error);
70
+ io.err('Run `openagent --help` for usage.');
71
+ return 2;
72
+ }
73
+ if (args.help) {
74
+ io.out(HELP);
75
+ return 0;
76
+ }
77
+ if (args.version) {
78
+ io.out(openagentVersion());
79
+ return 0;
80
+ }
81
+ // Everything else is bare `openagent`: serve the dashboard in the foreground until Ctrl-C.
82
+ return runForegroundDaemonCmd(args, io);
83
+ }
84
+ /**
85
+ * Bare `openagent`: run the dashboard server in the foreground (#456), so its logs and any
86
+ * server-thrown errors are visible and Ctrl+C stops it. Blocks until the server is signalled
87
+ * (SIGINT/SIGTERM).
88
+ */
89
+ async function runForegroundDaemonCmd(args, io) {
90
+ const cwd = process.cwd();
91
+ const port = args.port ?? DEFAULT_DAEMON_PORT;
92
+ let project;
93
+ try {
94
+ // Set in this process's own environment, so everything the dashboard starts inherits it.
95
+ await handDownSkills(process.env);
96
+ // A server's service starts in its user's home, which is no project however it looks: a home
97
+ // made a repository would be added again at every start.
98
+ project = process.env.OPENAGENT_SERVER === '1' ? undefined : await repositoryOf(cwd);
99
+ let url = '';
100
+ await runDaemon(cwd, {
101
+ port,
102
+ onListening: state => {
103
+ url = state.url;
104
+ io.out(`◆ dashboard running: ${state.url}`);
105
+ io.out(' Ctrl+C to stop the dashboard. Server logs stream below.');
106
+ // #312 asks bare `openagent` to print the commands + version too. onListening is sync and
107
+ // runDaemon then blocks until signalled, so this is fire-and-forget by necessity: the
108
+ // update line lands a moment later, above the server logs.
109
+ void printStartupFooter(io);
110
+ // Outside a repository there is no project to open: the Overview, where one is added.
111
+ if (project === undefined)
112
+ openInBrowser(state.url);
113
+ },
114
+ ...(project !== undefined ? { project, onProject: (started) => openProject(url, started, io) } : {}),
115
+ });
116
+ }
117
+ catch (err) {
118
+ // Another dashboard has the port (#2141): this one hands it the folder rather than failing.
119
+ // An ephemeral port never collides, so it never joins.
120
+ if (err.code === 'EADDRINUSE' && port !== 0)
121
+ return joinRunning(port, project, io);
122
+ io.err(`could not start the dashboard (${err instanceof Error ? err.message : String(err)}).`);
123
+ return 1;
124
+ }
125
+ return 0;
126
+ }
127
+ /**
128
+ * Say where the project is and open its page, which picks it in the sidebar too. What is printed
129
+ * is the address the page shows; what is opened is its id, which always opens it, whatever the
130
+ * page's modules call their pages: the dashboard then writes the address in its place.
131
+ */
132
+ function openProject(url, started, io) {
133
+ if (started.added)
134
+ io.out(`◆ project added: ${started.path}`);
135
+ io.out(`◆ project: ${url}/${encodeURIComponent(started.address)}`);
136
+ openInBrowser(`${url}/${encodeURIComponent(started.id)}`);
137
+ }
138
+ /**
139
+ * A dashboard runs on the port already: hand it the repository this was typed in, open the page,
140
+ * and end, since this process serves nothing. What holds the port may be no dashboard at all.
141
+ */
142
+ async function joinRunning(port, project, io) {
143
+ const running = await joinRunningDashboard(port, project);
144
+ if (!running.joined) {
145
+ io.err(`could not start the dashboard: port ${port} is taken by another program. Pass --port <n> to use another one.`);
146
+ return 1;
147
+ }
148
+ io.out(`◆ dashboard already running: ${running.url}`);
149
+ const version = openagentVersion();
150
+ if (running.version !== version)
151
+ io.out(` It runs OpenAgent v${running.version}; this is v${version}. Stop it and run this again to use v${version}.`);
152
+ if (!running.project) {
153
+ // Outside a repository there is no project to open: the Overview, where one is added.
154
+ openInBrowser(running.url);
155
+ return 0;
156
+ }
157
+ if (!running.project.ok) {
158
+ io.err(`could not add ${project}: ${running.project.error}`);
159
+ return 1;
160
+ }
161
+ openProject(running.url, running.project, io);
162
+ return 0;
163
+ }
164
+ /**
165
+ * The startup footer every dashboard path prints (#312): where prompts come from, the version,
166
+ * and then — once npm answers — whether that version is the latest.
167
+ *
168
+ * The update line is deliberately not awaited before the static lines. #312 asks for the static
169
+ * info first, and the foreground path (bare `openagent`) blocks on the server forever, so a line
170
+ * printed after the await would never appear there at all. `checkForUpdate` is already forgiving:
171
+ * offline or slow (2.5s cap) resolves to 'unknown', which prints nothing.
172
+ */
173
+ export function printStartupFooter(io, opts = {}) {
174
+ const version = openagentVersion();
175
+ io.out('');
176
+ io.out('Type a prompt on the dashboard to start an agent, or use:');
177
+ io.out(' openagent --help All options');
178
+ io.out('');
179
+ io.out(`OpenAgent v${version}`);
180
+ return checkForUpdate(version, opts.fetchLatest ?? nodeVersionFetcher())
181
+ .then(status => {
182
+ const line = formatUpdateStatus(status);
183
+ if (line)
184
+ io.out(line);
185
+ })
186
+ .catch(() => { });
187
+ }
188
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The Git repository a folder is in, by its top folder: the project `npx @openagt/dashboard` adds when
3
+ * it is typed in that folder. Undefined outside a repository, where there is nothing to add.
4
+ */
5
+ export declare function repositoryOf(folder: string): Promise<string | undefined>;
6
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/cli/project.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAI9E"}
@@ -0,0 +1,13 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { promisify } from 'node:util';
3
+ const run = promisify(execFile);
4
+ /**
5
+ * The Git repository a folder is in, by its top folder: the project `npx @openagt/dashboard` adds when
6
+ * it is typed in that folder. Undefined outside a repository, where there is nothing to add.
7
+ */
8
+ export async function repositoryOf(folder) {
9
+ const said = await run('git', ['rev-parse', '--show-toplevel'], { cwd: folder }).catch(() => undefined);
10
+ const top = said?.stdout.trim();
11
+ return top ? top : undefined;
12
+ }
13
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/cli/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAE/B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACvG,MAAM,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IAC/B,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The skills every run gets by default: what an agent needs in any project to work at all, read
3
+ * what earlier agents did, ask the person a question, and hand its work over on the project's git
4
+ * host; and the ones the dashboard has pages for, so a page never shows work an agent cannot do:
5
+ * split a task across subagents, the tickets and the queue; and the accounts runs use, which are
6
+ * the computer's and no project's. The one place they are named: the runner links whatever it is
7
+ * handed, and the dashboard gives every project their pages. Each is linked into a run's checkout,
8
+ * hidden from git, and a project's own skill of the same name takes its place (see the runner's
9
+ * `basic-skills.ts`).
10
+ */
11
+ export declare const DEFAULT_SKILLS: readonly string[];
12
+ /**
13
+ * Put the default skills in `env` under {@link SKILLS_ENV}: their packages' directories, resolved
14
+ * from this package's own install, joined by the path delimiter. One that is not installed is
15
+ * left out.
16
+ */
17
+ export declare function handDownSkills(env: NodeJS.ProcessEnv): Promise<void>;
18
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/cli/skills.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAAqM,CAAA;AAEjP;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1E"}
@@ -0,0 +1,36 @@
1
+ import { realpath } from 'node:fs/promises';
2
+ import { createRequire } from 'node:module';
3
+ import { delimiter, dirname } from 'node:path';
4
+ import { SKILLS_ENV } from '@openagt/agent-data';
5
+ /**
6
+ * The skills every run gets by default: what an agent needs in any project to work at all, read
7
+ * what earlier agents did, ask the person a question, and hand its work over on the project's git
8
+ * host; and the ones the dashboard has pages for, so a page never shows work an agent cannot do:
9
+ * split a task across subagents, the tickets and the queue; and the accounts runs use, which are
10
+ * the computer's and no project's. The one place they are named: the runner links whatever it is
11
+ * handed, and the dashboard gives every project their pages. Each is linked into a run's checkout,
12
+ * hidden from git, and a project's own skill of the same name takes its place (see the runner's
13
+ * `basic-skills.ts`).
14
+ */
15
+ export const DEFAULT_SKILLS = ['@openagt/skill-logs', '@openagt/skill-question', '@openagt/skill-github', '@openagt/skill-orchestration', '@openagt/skill-tickets', '@openagt/skill-queue', '@openagt/skill-account-rotation'];
16
+ /**
17
+ * Put the default skills in `env` under {@link SKILLS_ENV}: their packages' directories, resolved
18
+ * from this package's own install, joined by the path delimiter. One that is not installed is
19
+ * left out.
20
+ */
21
+ export async function handDownSkills(env) {
22
+ const require = createRequire(import.meta.url);
23
+ const dirs = [];
24
+ for (const name of DEFAULT_SKILLS) {
25
+ let manifest;
26
+ try {
27
+ manifest = require.resolve(`${name}/package.json`);
28
+ }
29
+ catch {
30
+ continue;
31
+ }
32
+ dirs.push(await realpath(dirname(manifest)));
33
+ }
34
+ env[SKILLS_ENV] = dirs.join(delimiter);
35
+ }
36
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/cli/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,iCAAiC,CAAC,CAAA;AAEjP;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAsB;IACzD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,QAAgB,CAAA;QACpB,IAAI,CAAC;YACH,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC,CAAA;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACxC,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * CLI "up-to-date?" check (#312): after the bare-`openagent` version footer,
3
+ * tell the user whether a newer version is published on npm. Display only;
4
+ * auto-update is a separate, deferred concern. Same seam + node-adapter +
5
+ * forgiving-on-error convention as `project.ts` (#380).
6
+ */
7
+ /** The npm package this CLI ships as; the registry key for the version check. */
8
+ export declare const PACKAGE_NAME = "@openagt/dashboard";
9
+ /** Fetches the latest published version of `pkg`, or undefined on any failure. Injectable for tests. */
10
+ export type VersionFetcher = (pkg: string) => Promise<string | undefined>;
11
+ /**
12
+ * A {@link VersionFetcher} backed by the npm registry. GETs the packument and
13
+ * reads `dist-tags.latest`. A 2.5s AbortSignal.timeout caps it; any error /
14
+ * non-ok / offline yields undefined (the check silently degrades to "unknown").
15
+ */
16
+ export declare function nodeVersionFetcher(): VersionFetcher;
17
+ /** The result of an update check. */
18
+ export type UpdateStatus = {
19
+ kind: 'up-to-date';
20
+ current: string;
21
+ } | {
22
+ kind: 'update-available';
23
+ current: string;
24
+ latest: string;
25
+ } | {
26
+ kind: 'unknown';
27
+ current: string;
28
+ };
29
+ /**
30
+ * Compare two `major.minor.patch` versions numerically (a prerelease/build
31
+ * suffix after `-` or `+` is stripped, missing parts read as 0). Returns
32
+ * -1 / 0 / 1. No semver dependency.
33
+ */
34
+ export declare function compareVersions(a: string, b: string): number;
35
+ /**
36
+ * Check whether `current` is behind the latest published version. Uses the
37
+ * injected fetcher; a missing/failed fetch is 'unknown'. `current` >= latest is
38
+ * 'up-to-date' (so running a local build ahead of the registry never reads as
39
+ * "update available").
40
+ */
41
+ export declare function checkForUpdate(current: string, fetchLatest: VersionFetcher, pkg?: string): Promise<UpdateStatus>;
42
+ /** The one-line message to print for a status, or undefined for 'unknown' (print nothing). */
43
+ export declare function formatUpdateStatus(status: UpdateStatus): string | undefined;
44
+ //# sourceMappingURL=update-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/cli/update-check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iFAAiF;AACjF,eAAO,MAAM,YAAY,uBAAuB,CAAA;AAEhD,wGAAwG;AACxG,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;AAEzE;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAYnD;AAED,qCAAqC;AACrC,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAExC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAW5D;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,cAAc,EAC3B,GAAG,GAAE,MAAqB,GACzB,OAAO,CAAC,YAAY,CAAC,CAMvB;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAS3E"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * CLI "up-to-date?" check (#312): after the bare-`openagent` version footer,
3
+ * tell the user whether a newer version is published on npm. Display only;
4
+ * auto-update is a separate, deferred concern. Same seam + node-adapter +
5
+ * forgiving-on-error convention as `project.ts` (#380).
6
+ */
7
+ /** The npm package this CLI ships as; the registry key for the version check. */
8
+ export const PACKAGE_NAME = '@openagt/dashboard';
9
+ /**
10
+ * A {@link VersionFetcher} backed by the npm registry. GETs the packument and
11
+ * reads `dist-tags.latest`. A 2.5s AbortSignal.timeout caps it; any error /
12
+ * non-ok / offline yields undefined (the check silently degrades to "unknown").
13
+ */
14
+ export function nodeVersionFetcher() {
15
+ return async (pkg) => {
16
+ try {
17
+ const res = await fetch(`https://registry.npmjs.org/${pkg}`, { signal: AbortSignal.timeout(2500) });
18
+ if (!res.ok)
19
+ return undefined;
20
+ const data = (await res.json());
21
+ const latest = data?.['dist-tags']?.latest;
22
+ return typeof latest === 'string' ? latest : undefined;
23
+ }
24
+ catch {
25
+ return undefined;
26
+ }
27
+ };
28
+ }
29
+ /**
30
+ * Compare two `major.minor.patch` versions numerically (a prerelease/build
31
+ * suffix after `-` or `+` is stripped, missing parts read as 0). Returns
32
+ * -1 / 0 / 1. No semver dependency.
33
+ */
34
+ export function compareVersions(a, b) {
35
+ const parse = (v) => (v.split(/[-+]/)[0] ?? '').split('.').map(n => parseInt(n, 10) || 0);
36
+ const pa = parse(a);
37
+ const pb = parse(b);
38
+ for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
39
+ const na = pa[i] ?? 0;
40
+ const nb = pb[i] ?? 0;
41
+ if (na !== nb)
42
+ return na < nb ? -1 : 1;
43
+ }
44
+ return 0;
45
+ }
46
+ /**
47
+ * Check whether `current` is behind the latest published version. Uses the
48
+ * injected fetcher; a missing/failed fetch is 'unknown'. `current` >= latest is
49
+ * 'up-to-date' (so running a local build ahead of the registry never reads as
50
+ * "update available").
51
+ */
52
+ export async function checkForUpdate(current, fetchLatest, pkg = PACKAGE_NAME) {
53
+ const latest = await fetchLatest(pkg);
54
+ if (!latest)
55
+ return { kind: 'unknown', current };
56
+ return compareVersions(latest, current) > 0
57
+ ? { kind: 'update-available', current, latest }
58
+ : { kind: 'up-to-date', current };
59
+ }
60
+ /** The one-line message to print for a status, or undefined for 'unknown' (print nothing). */
61
+ export function formatUpdateStatus(status) {
62
+ switch (status.kind) {
63
+ case 'up-to-date':
64
+ return `✅ Up to date (v${status.current})`;
65
+ case 'update-available':
66
+ return `⬆️ Update available: v${status.latest} (you have v${status.current}). Run: npm i -g ${PACKAGE_NAME}`;
67
+ case 'unknown':
68
+ return undefined;
69
+ }
70
+ }
71
+ //# sourceMappingURL=update-check.js.map