@openagt/start 0.21.0 → 0.23.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.
@@ -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/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/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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAK/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;AAwBD,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;AAgCD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,cAAc,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAO/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;AAyBD,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;AAkDD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,cAAc,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxG"}
package/dist/cli.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { checkForUpdate, formatUpdateStatus, nodeVersionFetcher } from './update-check.js';
2
2
  import { runDaemon, DEFAULT_DAEMON_PORT } from '@openagt/dashboard/serve';
3
3
  import { handDownSkills } from './skills.js';
4
+ import { repositoryOf } from './project.js';
5
+ import { openInBrowser } from './browser.js';
4
6
  import { openagentVersion } from './version.js';
5
7
  const defaultIO = {
6
8
  out: line => process.stdout.write(line + '\n'),
@@ -10,7 +12,8 @@ const HELP = `OpenAgent — turnkey AI orchestration that wraps a coding agent (
10
12
 
11
13
  Usage:
12
14
  openagent Serve the dashboard in the foreground. Ctrl+C closes it; the server
13
- logs stream to this terminal.
15
+ logs stream to this terminal. Typed inside a Git repository, it adds
16
+ that repository to the dashboard's projects and opens its page.
14
17
 
15
18
  Options:
16
19
  --port <n> Dashboard port (default: 4200).
@@ -18,7 +21,7 @@ Options:
18
21
  -v, --version Print the version.
19
22
 
20
23
  The dashboard listens on this computer only. A phone, or another computer's OpenAgent, gets in
21
- from its Settings page: Devices.
24
+ from Settings › Devices.
22
25
 
23
26
  Everything else is the dashboard: it shows a project's runs from their files, and starts one
24
27
  through the project's own start hook (.openagent/hooks.yml), which names the tool that runs it.`;
@@ -87,17 +90,37 @@ async function runForegroundDaemonCmd(args, io) {
87
90
  try {
88
91
  // Set in this process's own environment, so everything the dashboard starts inherits it.
89
92
  await handDownSkills(process.env);
93
+ const project = await repositoryOf(cwd);
94
+ let url = '';
90
95
  await runDaemon(cwd, {
91
96
  port,
92
97
  version: openagentVersion(),
93
98
  onListening: state => {
99
+ url = state.url;
94
100
  io.out(`◆ dashboard running: ${state.url}`);
95
101
  io.out(' Ctrl+C to stop the dashboard. Server logs stream below.');
96
102
  // #312 asks bare `openagent` to print the commands + version too. onListening is sync and
97
103
  // runDaemon then blocks until signalled, so this is fire-and-forget by necessity: the
98
104
  // update line lands a moment later, above the server logs.
99
105
  void printStartupFooter(io);
106
+ // Outside a repository there is no project to open: the Overview, where one is added.
107
+ if (project === undefined)
108
+ openInBrowser(state.url);
100
109
  },
110
+ ...(project !== undefined
111
+ ? {
112
+ project,
113
+ onProject: (started) => {
114
+ // Its page, with the project picked in the sidebar too.
115
+ const id = encodeURIComponent(started.id);
116
+ const page = `${url}/${id}?project=${id}`;
117
+ if (started.added)
118
+ io.out(`◆ project added: ${started.path}`);
119
+ io.out(`◆ project: ${page}`);
120
+ openInBrowser(page);
121
+ },
122
+ }
123
+ : {}),
101
124
  });
102
125
  }
103
126
  catch (err) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/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/start` 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/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/start` 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/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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openagt/start",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "description": "OpenAgent in one command: the dashboard, with the skills every agent gets by default. A project's own skill of the same name takes a default's place.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -27,12 +27,12 @@
27
27
  "dependencies": {
28
28
  "@openagt/agent-data": "0.0.5",
29
29
  "@openagt/skill-github": "0.1.1",
30
- "@openagt/dashboard": "0.21.0",
31
- "@openagt/skill-orchestration": "0.1.6",
30
+ "@openagt/dashboard": "0.23.0",
31
+ "@openagt/skill-queue": "0.1.1",
32
32
  "@openagt/skill-logs": "0.1.3",
33
33
  "@openagt/skill-question": "0.1.0",
34
34
  "@openagt/skill-tickets": "0.1.2",
35
- "@openagt/skill-queue": "0.1.1"
35
+ "@openagt/skill-orchestration": "0.1.7"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^20.0.0",