@openagt/dashboard 0.28.0 → 0.30.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.
- package/README.md +4 -4
- package/dist/built-in.d.ts +1 -2
- package/dist/built-in.d.ts.map +1 -1
- package/dist/built-in.js +5 -22
- package/dist/built-in.js.map +1 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/dashboard/index.d.ts +0 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +0 -1
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/interventions.d.ts +12 -3
- package/dist/dashboard/interventions.d.ts.map +1 -1
- package/dist/dashboard/interventions.js +40 -11
- package/dist/dashboard/interventions.js.map +1 -1
- package/dist/dashboard/run-inbox.js +1 -1
- package/dist/dashboard/run-inbox.js.map +1 -1
- package/dist/dashboard/unpublished.d.ts +1 -1
- package/dist/dashboard/unpublished.js +1 -1
- package/dist/dashboard-bundle/assets/main-CfEbsHo4.css +2 -0
- package/dist/dashboard-bundle/assets/main-GS_hy5oS.js +144 -0
- package/dist/dashboard-bundle/assets/module-DkmToQ6q.js +14 -0
- package/dist/dashboard-bundle/host/module.js +1 -1
- package/dist/dashboard-bundle/index.html +3 -3
- package/dist/dashboard-rpc/control.d.ts +5 -2
- package/dist/dashboard-rpc/control.d.ts.map +1 -1
- package/dist/dashboard-rpc/control.js +9 -4
- package/dist/dashboard-rpc/control.js.map +1 -1
- package/dist/dashboard-rpc/index.d.ts +1 -1
- package/dist/dashboard-rpc/index.d.ts.map +1 -1
- package/dist/dashboard-rpc/index.js +1 -1
- package/dist/dashboard-rpc/index.js.map +1 -1
- package/dist/dashboard-rpc/reads.d.ts +0 -3
- package/dist/dashboard-rpc/reads.d.ts.map +1 -1
- package/dist/dashboard-rpc/reads.js +0 -5
- package/dist/dashboard-rpc/reads.js.map +1 -1
- package/dist/dashboard-rpc/skills.d.ts +4 -6
- package/dist/dashboard-rpc/skills.d.ts.map +1 -1
- package/dist/dashboard-rpc/skills.js +8 -8
- package/dist/dashboard-rpc/skills.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/module-types/src/built-in.d.ts +1 -2
- package/dist/module-types/src/client.d.ts +1 -0
- package/dist/module-types/src/dashboard/interventions.d.ts +12 -3
- package/dist/module-types/src/dashboard/unpublished.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/control.d.ts +5 -2
- package/dist/module-types/src/dashboard-rpc/index.d.ts +1 -1
- package/dist/module-types/src/dashboard-rpc/reads.d.ts +0 -3
- package/dist/module-types/src/dashboard-rpc/skills.d.ts +4 -6
- package/dist/module-types/src/index.d.ts +0 -1
- package/dist/module-types/src/open-choices.d.ts +1 -1
- package/dist/module-types/src/project-hooks.d.ts +3 -1
- package/dist/module-types/src/registry.d.ts +6 -0
- package/dist/module-types/src/run-name.d.ts +8 -0
- package/dist/module-types/src/store/agent-store.d.ts +6 -0
- package/dist/open-choices.d.ts +1 -1
- package/dist/open-choices.js +1 -1
- package/dist/project-hooks.d.ts +3 -1
- package/dist/project-hooks.d.ts.map +1 -1
- package/dist/project-hooks.js +3 -2
- package/dist/project-hooks.js.map +1 -1
- package/dist/registry.d.ts +6 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +3 -0
- package/dist/registry.js.map +1 -1
- package/dist/run-name.d.ts +9 -0
- package/dist/run-name.d.ts.map +1 -0
- package/dist/run-name.js +10 -0
- package/dist/run-name.js.map +1 -0
- package/dist/store/agent-store.d.ts +6 -0
- package/dist/store/agent-store.d.ts.map +1 -1
- package/dist/store/agent-store.js.map +1 -1
- package/package.json +13 -13
- package/dist/dashboard/open-questions.d.ts +0 -45
- package/dist/dashboard/open-questions.d.ts.map +0 -1
- package/dist/dashboard/open-questions.js +0 -62
- package/dist/dashboard/open-questions.js.map +0 -1
- package/dist/dashboard-bundle/assets/main-BenA3DC-.js +0 -145
- package/dist/dashboard-bundle/assets/main-KUO4ZuZ3.css +0 -2
- package/dist/dashboard-bundle/assets/module-CZzF8pLL.js +0 -14
- package/dist/module-types/src/dashboard/open-questions.d.ts +0 -44
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ OpenAgent runs no coding agent and makes no model call. Starting an agent is run
|
|
|
41
41
|
|
|
42
42
|
```yaml
|
|
43
43
|
start: agent-runner run --detach "$PROMPT" ${DRIVER:+--driver "$DRIVER"} ${MODEL:+--model "$MODEL"} ${EFFORT:+--effort "$EFFORT"} ${THEN:+--then "$THEN"} ${PUBLISH:+--publish "$PUBLISH"} ${BASE:+--base "$BASE"}
|
|
44
|
-
resume: agent-runner run --detach --resume "$RUN_ID" ${TEXT:+"$TEXT"} ${ANSWER:+--answer "$ANSWER"}
|
|
44
|
+
resume: agent-runner run --detach --resume "$RUN_ID" ${TEXT:+"$TEXT"} ${ANSWER:+--answer "$ANSWER"} ${PUBLISH:+--publish "$PUBLISH"}
|
|
45
45
|
check: agent-runner check ${DRIVER:+--driver "$DRIVER"}
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -51,9 +51,9 @@ runs it. From there the agent belongs to whatever that
|
|
|
51
51
|
line started. Adding a project writes these three lines into the file, so a new project, an
|
|
52
52
|
empty folder included, starts an agent with nothing typed by hand. They are a default: a line
|
|
53
53
|
already there is kept, and any of them can be changed or deleted. A line finds its tools in the
|
|
54
|
-
packages the dashboard brings first, `agent-runner` and `
|
|
54
|
+
packages the dashboard brings first, `agent-runner` and `scheduler` among them, then in the project's installed ones;
|
|
55
55
|
nothing is downloaded to run a line. A project with no `start` line cannot start an agent from
|
|
56
|
-
the dashboard, and the dashboard says so. `npx @openagt/
|
|
56
|
+
the dashboard, and the dashboard says so. `npx @openagt/skill-scheduler@0.1 init`, run in the project, writes
|
|
57
57
|
the scheduler's `open` and `close` lines (they start it when the dashboard opens and stop it
|
|
58
58
|
when it closes), keeping any line already there. The file's keys are `open`, `close`, `start`, `resume` and `check`; any other key
|
|
59
59
|
is refused and the whole file ignored.
|
|
@@ -80,7 +80,7 @@ A package's own settings are no hook. The scheduler's are the scheduler package'
|
|
|
80
80
|
the dashboard: its Automations page holds a switch, a pace, a number of agents at once and a
|
|
81
81
|
publish pick per scheduled command, its Settings entry holds how far past the quota boundary
|
|
82
82
|
it may start unattended work, and the handle on the usage bar is its stop line. That part reads
|
|
83
|
-
them with `
|
|
83
|
+
them with `scheduler status` and saves them with `scheduler offset`, `switch`,
|
|
84
84
|
`pace`, `agents` and `publish`.
|
|
85
85
|
|
|
86
86
|
The dashboard is a **projection of the agent's own files**. The agent's tool keeps the
|
package/dist/built-in.d.ts
CHANGED
|
@@ -23,8 +23,7 @@ export declare const COMPUTER_PACKAGES: readonly string[];
|
|
|
23
23
|
* {@link SKILLS_ENV}); else the project's when the project holds the skill's text where the coding
|
|
24
24
|
* agents read it (`.claude/skills/<name>/SKILL.md`, `.agents/skills/<name>/SKILL.md`): the rule
|
|
25
25
|
* the launcher already lists a project's commands by, so deleting the skill's folder takes its
|
|
26
|
-
* page away.
|
|
27
|
-
* hook lines runs it.
|
|
26
|
+
* page away.
|
|
28
27
|
*/
|
|
29
28
|
export declare const PICKED_PACKAGES: readonly string[];
|
|
30
29
|
/** Every name OpenAgent brings itself. */
|
package/dist/built-in.d.ts.map
CHANGED
|
@@ -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;
|
|
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;AAEzD,OAAO,EAA+G,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAExN;;;;;;;;GAQG;AAEH,4GAA4G;AAC5G,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA+I,CAAA;AAE9L;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAmD,CAAA;AAElG;;;;;;;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,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
|
@@ -2,8 +2,7 @@ import { readFile, realpath, stat } from 'node:fs/promises';
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { delimiter, dirname, join } from 'node:path';
|
|
4
4
|
import { SKILLS_DIRS } from './project-commands.js';
|
|
5
|
-
import {
|
|
6
|
-
import { declaring, lineRuns, SKILLS_ENV, lookupProvidedCommand, packageBins, projectPackages, readManifest, runPackageCommand } from '@openagt/agent-data';
|
|
5
|
+
import { declaring, SKILLS_ENV, lookupProvidedCommand, packageBins, projectPackages, readManifest, runPackageCommand } from '@openagt/agent-data';
|
|
7
6
|
/**
|
|
8
7
|
* The packages OpenAgent brings, by name: dependencies of OpenAgent itself, resolved from its
|
|
9
8
|
* own install, so a project installs nothing for them and an empty folder starts an agent and
|
|
@@ -27,10 +26,9 @@ export const COMPUTER_PACKAGES = ['@openagt/remote-access', '@openagt/servers'];
|
|
|
27
26
|
* {@link SKILLS_ENV}); else the project's when the project holds the skill's text where the coding
|
|
28
27
|
* agents read it (`.claude/skills/<name>/SKILL.md`, `.agents/skills/<name>/SKILL.md`): the rule
|
|
29
28
|
* the launcher already lists a project's commands by, so deleting the skill's folder takes its
|
|
30
|
-
* page away.
|
|
31
|
-
* hook lines runs it.
|
|
29
|
+
* page away.
|
|
32
30
|
*/
|
|
33
|
-
export const PICKED_PACKAGES = ['@openagt/skill-tickets', '@openagt/skill-queue', '@openagt/skill-orchestration', '@openagt/skill-browser', '@openagt/
|
|
31
|
+
export const PICKED_PACKAGES = ['@openagt/skill-tickets', '@openagt/skill-queue', '@openagt/skill-orchestration', '@openagt/skill-browser', '@openagt/skill-scheduler'];
|
|
34
32
|
/** Every name OpenAgent brings itself. */
|
|
35
33
|
export const OWN_PACKAGE_NAMES = [...BUILT_IN_PACKAGES, ...COMPUTER_PACKAGES, ...PICKED_PACKAGES];
|
|
36
34
|
let resolved;
|
|
@@ -67,14 +65,11 @@ async function resolveOwn() {
|
|
|
67
65
|
*/
|
|
68
66
|
export async function builtInPackagesOf(root) {
|
|
69
67
|
const packages = [];
|
|
70
|
-
let lines;
|
|
71
68
|
for (const pkg of await (resolved ??= resolveOwn())) {
|
|
72
69
|
if (pkg.of === 'the computer')
|
|
73
70
|
continue;
|
|
74
|
-
if (pkg.of === 'a pick' && !(await defaultSkills()).has(pkg.name))
|
|
75
|
-
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
71
|
+
if (pkg.of === 'a pick' && !(await defaultSkills()).has(pkg.name) && !(pkg.skill !== undefined && (await holdsSkill(root, pkg.skill))))
|
|
72
|
+
continue;
|
|
78
73
|
packages.push(pkg);
|
|
79
74
|
}
|
|
80
75
|
return packages;
|
|
@@ -104,18 +99,6 @@ async function holdsSkill(root, name) {
|
|
|
104
99
|
return true;
|
|
105
100
|
return false;
|
|
106
101
|
}
|
|
107
|
-
/** Every line of the project's hooks file. */
|
|
108
|
-
async function hookLines(root) {
|
|
109
|
-
const hooks = await readProjectHooks(root).catch(() => undefined);
|
|
110
|
-
if (!hooks)
|
|
111
|
-
return [];
|
|
112
|
-
return [...hooks.open, ...hooks.close, hooks.start, hooks.resume, hooks.check].filter((line) => typeof line === 'string');
|
|
113
|
-
}
|
|
114
|
-
/** Whether one of `lines` runs the package: see `lineRuns`. */
|
|
115
|
-
function runsOneOf(lines, pkg) {
|
|
116
|
-
const tool = { name: pkg.name, commands: Object.keys(packageBins(pkg.name, pkg.manifest.bin, pkg.dir)) };
|
|
117
|
-
return lines.some(line => lineRuns(line, tool));
|
|
118
|
-
}
|
|
119
102
|
/** The project's own installed packages, less the names OpenAgent brings itself. */
|
|
120
103
|
export async function ownPackages(root) {
|
|
121
104
|
return (await projectPackages(root)).filter(pkg => !OWN_PACKAGE_NAMES.includes(pkg.name));
|
package/dist/built-in.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-in.js","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"built-in.js","sourceRoot":"","sources":["../src/built-in.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { DRIVERS, DRIVER_LABELS, isDriverName, driverFromImpl, type DriverName } from './driver-names.js';
|
|
2
2
|
export { PUBLISH_LABELS, isPublishPick, offeredPublishPicks, publishPickIn, type PublishPick } from './publish-levels.js';
|
|
3
3
|
export { formatOpenAgentEvent } from './terminal.js';
|
|
4
|
+
export { runName } from './run-name.js';
|
|
4
5
|
export { foldScreenRows } from './screens.js';
|
|
5
6
|
export { formatBytes } from './format-bytes.js';
|
|
6
7
|
export { errorMessage } from './error-message.js';
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGlD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAIlE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAE9J,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,uBAAuB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/client.js
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
export { DRIVERS, DRIVER_LABELS, isDriverName, driverFromImpl } from './driver-names.js';
|
|
6
6
|
export { PUBLISH_LABELS, isPublishPick, offeredPublishPicks, publishPickIn } from './publish-levels.js';
|
|
7
7
|
export { formatOpenAgentEvent } from './terminal.js';
|
|
8
|
+
// What every list calls a run, so the same run never goes by two names.
|
|
9
|
+
export { runName } from './run-name.js';
|
|
8
10
|
export { foldScreenRows } from './screens.js';
|
|
9
11
|
export { formatBytes } from './format-bytes.js';
|
|
10
12
|
export { errorMessage } from './error-message.js';
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,wFAAwF;AACxF,oFAAoF;AACpF,qFAAqF;AACrF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAA;AACzH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,WAAW,EACX,WAAW,GAGZ,MAAM,iBAAiB,CAAA;AACxB,8FAA8F;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,+FAA+F;AAC/F,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,oGAAoG;AACpG,qGAAqG;AACrG,4FAA4F;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,EAAuB,MAAM,0BAA0B,CAAA;AAC9J,6FAA6F;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,8HAA8H;AAC9H,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,gHAAgH;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,mGAAmG;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,+GAA+G;AAC/G,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,uBAAuB,EAAsB,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,wFAAwF;AACxF,oFAAoF;AACpF,qFAAqF;AACrF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAA;AACzH,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,wEAAwE;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,WAAW,EACX,WAAW,GAGZ,MAAM,iBAAiB,CAAA;AACxB,8FAA8F;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,+FAA+F;AAC/F,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,oGAAoG;AACpG,qGAAqG;AACrG,4FAA4F;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,EAAuB,MAAM,0BAA0B,CAAA;AAC9J,6FAA6F;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,8HAA8H;AAC9H,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,gHAAgH;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,mGAAmG;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,+GAA+G;AAC/G,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,uBAAuB,EAAsB,MAAM,sBAAsB,CAAA"}
|
|
@@ -12,7 +12,6 @@ export { readGitStatus, type GitStatus } from './git-status.js';
|
|
|
12
12
|
export { prView, prsForBranch, openPrs, pickAgentPr, type LinkedPr, type OpenPr, type PrLookup, type BranchPrLookup, type PrLister } from './pull-requests.js';
|
|
13
13
|
export { readAgentHandoff, agentBranchFor, openAgentPullRequest, type AgentHandoff, type HandoffCommit, type HandoffFile, type HandoffResult, type AgentHandoffDeps, } from './agent-handoff.js';
|
|
14
14
|
export { buildInterventions, interventionKey, type Intervention, type InterventionsDeps, } from './interventions.js';
|
|
15
|
-
export { buildOpenQuestions, type OpenQuestion, type OpenQuestionsDeps } from './open-questions.js';
|
|
16
15
|
export { bridgeChoiceRequest, type BridgeOption, type BridgeQuestion } from './bridge-question.js';
|
|
17
16
|
export { buildActivity, activityKey, type Activity, type ActivityDeps } from './activity.js';
|
|
18
17
|
export { SeenTracker } from './keyed-watcher.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnF,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACjM,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,IAAI,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,IAAI,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AACxL,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACzG,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC9J,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"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"}
|
package/dist/dashboard/index.js
CHANGED
|
@@ -11,7 +11,6 @@ export { readGitStatus } from './git-status.js';
|
|
|
11
11
|
export { prView, prsForBranch, openPrs, pickAgentPr } from './pull-requests.js';
|
|
12
12
|
export { readAgentHandoff, agentBranchFor, openAgentPullRequest, } from './agent-handoff.js';
|
|
13
13
|
export { buildInterventions, interventionKey, } from './interventions.js';
|
|
14
|
-
export { buildOpenQuestions } from './open-questions.js';
|
|
15
14
|
export { bridgeChoiceRequest } from './bridge-question.js';
|
|
16
15
|
export { buildActivity, activityKey } from './activity.js';
|
|
17
16
|
export { SeenTracker } from './keyed-watcher.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAyC,MAAM,aAAa,CAAA;AAEnF,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAKxB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAA;AACjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAqB,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAA0H,MAAM,eAAe,CAAA;AACxL,OAAO,EAAE,cAAc,EAA4D,MAAM,gBAAgB,CAAA;AACzG,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAiF,MAAM,oBAAoB,CAAA;AAC9J,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GAMrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,eAAe,GAGhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAyC,MAAM,aAAa,CAAA;AAEnF,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAKxB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAA;AACjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAqB,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAA0H,MAAM,eAAe,CAAA;AACxL,OAAO,EAAE,cAAc,EAA4D,MAAM,gBAAgB,CAAA;AACzG,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAiF,MAAM,oBAAoB,CAAA;AAC9J,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GAMrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,eAAe,GAGhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,mBAAmB,EAA0C,MAAM,sBAAsB,CAAA;AAClG,OAAO,EAAE,aAAa,EAAE,WAAW,EAAoC,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAiG,MAAM,uBAAuB,CAAA;AACzK,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAyE,MAAM,oBAAoB,CAAA;AAC/L,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAyB,MAAM,0BAA0B,CAAA;AACzH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAyC,MAAM,mBAAmB,CAAA"}
|
|
@@ -3,11 +3,13 @@ import type { OpenAgentEvent } from '../events.js';
|
|
|
3
3
|
import type { ProjectSummary, ProjectionRead } from './projects.js';
|
|
4
4
|
import { type BranchesFor } from '../store/branches.js';
|
|
5
5
|
import { type PrLister } from './pull-requests.js';
|
|
6
|
+
import { type BridgeQuestion } from './bridge-question.js';
|
|
6
7
|
export { interventionKey } from './keys.js';
|
|
7
8
|
/**
|
|
8
|
-
* One item awaiting the human
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* One item awaiting the human: an open `pr` to review and merge or close, a run `awaiting` the
|
|
10
|
+
* answer to its question, or a finished run's work left `uncommitted` or `unpushed`. The Human
|
|
11
|
+
* Queue, the launcher's "Waiting on you" and the browser hook all iterate the flat list, branching
|
|
12
|
+
* on `kind` for the fields that differ.
|
|
11
13
|
*/
|
|
12
14
|
export interface Intervention {
|
|
13
15
|
projectId: string;
|
|
@@ -18,7 +20,10 @@ export interface Intervention {
|
|
|
18
20
|
* run whose branch has commits that were never pushed (#860).
|
|
19
21
|
*/
|
|
20
22
|
kind: 'pr' | 'awaiting' | 'uncommitted' | 'unpushed';
|
|
23
|
+
/** The run's name, as every list names it ({@link runName}); a request no run here opened goes by its own title. */
|
|
21
24
|
title: string;
|
|
25
|
+
/** What the run asks (`awaiting` only). */
|
|
26
|
+
question?: string;
|
|
22
27
|
/** The PR on the git host (`pr` only): where a click takes the user when no run of this dashboard opened it. */
|
|
23
28
|
url?: string;
|
|
24
29
|
/** The PR number (`pr` only). */
|
|
@@ -31,6 +36,8 @@ export interface Intervention {
|
|
|
31
36
|
branch?: string;
|
|
32
37
|
/** How many commits are waiting (`unpushed` only). */
|
|
33
38
|
commits?: number;
|
|
39
|
+
/** Whether the project can open a pull request (`unpushed` only): the work's next step is one, else a push. */
|
|
40
|
+
gitHost?: boolean;
|
|
34
41
|
/** How many files were left uncommitted (`uncommitted` only). */
|
|
35
42
|
files?: number;
|
|
36
43
|
/** When the PR was opened (`pr`) or the agent last updated (the other two), ISO, for ordering. */
|
|
@@ -47,6 +54,8 @@ export interface InterventionsDeps {
|
|
|
47
54
|
agents?: (cwd: string) => Promise<AgentMeta[]>;
|
|
48
55
|
/** The project's checkouts and branches (default the project's provider, {@link projectBranches}): where a branch's state is read; drives the `unpushed` source (#860). */
|
|
49
56
|
branches?: BranchesFor;
|
|
57
|
+
/** The questions Claude Code web sessions are parked on, as the browser bridge holds them, minus those with an answer on its way (default: the daemon's bridge store, #1554). */
|
|
58
|
+
bridged?: () => BridgeQuestion[];
|
|
50
59
|
}
|
|
51
60
|
/**
|
|
52
61
|
* Build the cross-project interventions queue: every registered project's open PRs, plus any run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interventions.d.ts","sourceRoot":"","sources":["../../src/dashboard/interventions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE9G,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"interventions.d.ts","sourceRoot":"","sources":["../../src/dashboard/interventions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE9G,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAExE,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGjE,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI/E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAS3C;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAA;IACpD,oHAAoH;IACpH,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gHAAgH;IAChH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0HAA0H;IAC1H,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+GAA+G;IAC/G,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kGAAkG;IAClG,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,QAAQ,CAAA;IACd,qJAAqJ;IACrJ,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAClD,0IAA0I;IAC1I,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,CAAA;IAChF,mGAAmG;IACnG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC9C,2KAA2K;IAC3K,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,iLAAiL;IACjL,OAAO,CAAC,EAAE,MAAM,cAAc,EAAE,CAAA;CACjC;AAQD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,cAAc,EAAE,EAC1B,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAgBvC"}
|
|
@@ -4,8 +4,16 @@ import { projectBranches } from '../store/branches.js';
|
|
|
4
4
|
import { unpublishedRuns } from './unpublished.js';
|
|
5
5
|
import { cachedOpenPrs } from './pull-requests.js';
|
|
6
6
|
import { interventionKey } from './keys.js';
|
|
7
|
+
import { runName } from '../run-name.js';
|
|
8
|
+
import { bridgeChoiceRequest } from './bridge-question.js';
|
|
9
|
+
import { bridgeQuestions } from './bridge-store.js';
|
|
7
10
|
// Pure identity + diff, in the leaf `keys.ts` so the dashboard shares them rather than copying.
|
|
8
11
|
export { interventionKey } from './keys.js';
|
|
12
|
+
/** The bridge store's questions still waiting for a pick. */
|
|
13
|
+
function unansweredBridgeQuestions() {
|
|
14
|
+
const store = bridgeQuestions();
|
|
15
|
+
return store.list().filter(question => !store.pendingAnswer(question.sessionId));
|
|
16
|
+
}
|
|
9
17
|
/**
|
|
10
18
|
* Build the cross-project interventions queue: every registered project's open PRs, plus any run
|
|
11
19
|
* currently paused on a choice gate (#636), newest first. Forgiving — a project with no remote
|
|
@@ -21,18 +29,22 @@ export { interventionKey } from './keys.js';
|
|
|
21
29
|
export async function buildInterventions(projects, deps = {}) {
|
|
22
30
|
// Every project at once, and each one's sources at once: a project's open requests are a git host
|
|
23
31
|
// read, and asking them one project after the other kept the queue waiting seconds.
|
|
24
|
-
const
|
|
32
|
+
const bridged = (deps.bridged ?? unansweredBridgeQuestions)();
|
|
33
|
+
const read = await Promise.all(projects.map(project => projectInterventions(project, deps, bridged)));
|
|
25
34
|
const items = read.flatMap(project => project.items);
|
|
26
35
|
const whole = read.flatMap(project => (project.whole ? [project.id] : []));
|
|
27
36
|
items.sort((a, b) => (b.createdAt ?? '').localeCompare(a.createdAt ?? ''));
|
|
28
37
|
// The same repo can be registered under two projects (e.g. a monorepo root + a subdir), so a
|
|
29
38
|
// PR would otherwise appear once per entry. Collapse by identity, keeping the first (newest-sorted).
|
|
39
|
+
// A web session's question is one too: both entries share the repository's records, so each finds
|
|
40
|
+
// the run that asked it.
|
|
30
41
|
const seen = new Set();
|
|
31
|
-
const
|
|
42
|
+
const identity = (item) => (item.awaitId?.startsWith('bridge:') ? item.awaitId : interventionKey(item));
|
|
43
|
+
const unique = items.filter(item => (seen.has(identity(item)) ? false : (seen.add(identity(item)), true)));
|
|
32
44
|
return { items: unique, whole };
|
|
33
45
|
}
|
|
34
46
|
/** One project's items, and whether every one of its sources answered. */
|
|
35
|
-
async function projectInterventions(project, deps) {
|
|
47
|
+
async function projectInterventions(project, deps, bridged) {
|
|
36
48
|
const prs = deps.prs ?? cachedOpenPrs;
|
|
37
49
|
const liveAgents = deps.liveAgents ?? readLiveMetas;
|
|
38
50
|
const events = deps.events ?? loadAgentEvents;
|
|
@@ -68,7 +80,7 @@ async function projectInterventions(project, deps) {
|
|
|
68
80
|
projectName: project.name,
|
|
69
81
|
kind: 'pr',
|
|
70
82
|
number: pr.number,
|
|
71
|
-
title: pr.title,
|
|
83
|
+
title: (run && runName(run)) ?? pr.title,
|
|
72
84
|
url: pr.url,
|
|
73
85
|
...(run ? { agentId: run.id } : {}),
|
|
74
86
|
...(pr.createdAt ? { createdAt: pr.createdAt } : {}),
|
|
@@ -76,7 +88,7 @@ async function projectInterventions(project, deps) {
|
|
|
76
88
|
}
|
|
77
89
|
// A run that ended on a question waits for the user, a "needs you" too (#636): it ended
|
|
78
90
|
// `waiting`, its checkout kept for the answer (#1774). The question is read off the run's own
|
|
79
|
-
// diary by the rule the run page
|
|
91
|
+
// diary by the rule the run page uses, so the ping names the question
|
|
80
92
|
// they offer; a waiting run whose diary shows none is skipped. A project has several runs
|
|
81
93
|
// (#736), so each waiting run contributes its own item — keyed on the question's id, plus the
|
|
82
94
|
// agent id so two runs are told apart.
|
|
@@ -86,11 +98,16 @@ async function projectInterventions(project, deps) {
|
|
|
86
98
|
.filter(meta => meta.status === 'waiting')
|
|
87
99
|
.map(async (meta) => {
|
|
88
100
|
const choice = pendingChoices((await events(project.path, meta.id).catch(() => undefined)) ?? []).at(-1);
|
|
89
|
-
return choice
|
|
90
|
-
? [{ projectId: project.id, projectName: project.name, kind: 'awaiting', title: choice.title, awaitId: choice.id, agentId: meta.id, ...(meta.updatedAt ? { createdAt: meta.updatedAt } : {}) }]
|
|
91
|
-
: [];
|
|
101
|
+
return choice ? [askedBy(project, meta, choice, meta.updatedAt)] : [];
|
|
92
102
|
}));
|
|
93
103
|
items.push(...awaiting.flat());
|
|
104
|
+
// A Claude Code web session's question lives in the bridge store, not its log (#1554): joined on
|
|
105
|
+
// the cloud session its run's record names. Waiting since the bridge saw it, not since the hand-off.
|
|
106
|
+
for (const question of bridged) {
|
|
107
|
+
const run = runs.find(agent => agent.target === 'web' && agent.sessionId === question.sessionId);
|
|
108
|
+
if (run)
|
|
109
|
+
items.push(askedBy(project, run, bridgeChoiceRequest(question), question.receivedAt));
|
|
110
|
+
}
|
|
94
111
|
// A finished run whose work never left the machine is a "needs you" too (#860). Until then the
|
|
95
112
|
// queue only knew about a PR that is *already on the git host* and an agent parked on a gate, so an agent
|
|
96
113
|
// that committed real code and stopped produced neither, and nothing told anyone: the overview
|
|
@@ -104,6 +121,19 @@ async function projectInterventions(project, deps) {
|
|
|
104
121
|
items.push(...(await unpushedFor(project, recorded ?? [], deps.branches ?? projectBranches, unread)));
|
|
105
122
|
return { id: project.id, items, whole: sawEverything };
|
|
106
123
|
}
|
|
124
|
+
/** A run waiting on its question, named as every list names it, the question beside it. */
|
|
125
|
+
function askedBy(project, run, choice, since) {
|
|
126
|
+
return {
|
|
127
|
+
projectId: project.id,
|
|
128
|
+
projectName: project.name,
|
|
129
|
+
kind: 'awaiting',
|
|
130
|
+
title: runName(run) ?? run.id,
|
|
131
|
+
question: choice.title,
|
|
132
|
+
awaitId: choice.id,
|
|
133
|
+
agentId: run.id,
|
|
134
|
+
...(since ? { createdAt: since } : {}),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
107
137
|
/**
|
|
108
138
|
* The finished runs of a project whose work never left this machine (#860), as
|
|
109
139
|
* {@link unpublishedRuns} finds them for the list of runs too: files left uncommitted first, since
|
|
@@ -124,14 +154,13 @@ async function unpushedFor(project, agents, branches, unread) {
|
|
|
124
154
|
const work = found.get(agent.id);
|
|
125
155
|
if (!work)
|
|
126
156
|
return [];
|
|
127
|
-
const left = work.uncommitted > 0 ? { kind: 'uncommitted', files: work.uncommitted } : { kind: 'unpushed', commits: work.commits };
|
|
157
|
+
const left = work.uncommitted > 0 ? { kind: 'uncommitted', files: work.uncommitted } : { kind: 'unpushed', commits: work.commits, gitHost: project.gitHost };
|
|
128
158
|
return [
|
|
129
159
|
{
|
|
130
160
|
projectId: project.id,
|
|
131
161
|
projectName: project.name,
|
|
132
162
|
...left,
|
|
133
|
-
|
|
134
|
-
title: agent.intent?.trim() || agent.title?.trim() || work.branch,
|
|
163
|
+
title: runName(agent) ?? work.branch,
|
|
135
164
|
agentId: agent.id,
|
|
136
165
|
branch: work.branch,
|
|
137
166
|
...(agent.updatedAt ? { createdAt: agent.updatedAt } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interventions.js","sourceRoot":"","sources":["../../src/dashboard/interventions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAkC,MAAM,mBAAmB,CAAA;AAC9G,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGnD,OAAO,EAAE,eAAe,EAAoB,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,aAAa,EAAiB,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"interventions.js","sourceRoot":"","sources":["../../src/dashboard/interventions.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ export async function sayToRun(cwd, agentId, line, deps = {}) {
|
|
|
41
41
|
for (const stranded of lines) {
|
|
42
42
|
const resumed = await runResumeHook(cwd, {
|
|
43
43
|
runId: agentId,
|
|
44
|
-
...(stranded.kind === 'message' ? { text: stranded.text } : { answer: stranded.answer }),
|
|
44
|
+
...(stranded.kind === 'message' ? { text: stranded.text, ...(stranded.publish !== undefined ? { publish: stranded.publish } : {}) } : { answer: stranded.answer }),
|
|
45
45
|
});
|
|
46
46
|
if (!resumed.ok)
|
|
47
47
|
return resumed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-inbox.js","sourceRoot":"","sources":["../../src/dashboard/run-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAkB,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE/E;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAA;AAK3C,iGAAiG;AACjG,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,OAAe;IACtD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAClE,OAAO,KAAK,EAAE,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACrH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,OAAe,EACf,IAAe,EACf,IAAI,GAAuE,EAAE;IAE7E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,YAAY,CAAA;IAChD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;IACpB,IAAI,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,CAAA;QAC3F,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC9B,IAAI,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACtD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjD,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE;YACvC,KAAK,EAAE,OAAO;YACd,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"run-inbox.js","sourceRoot":"","sources":["../../src/dashboard/run-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAkB,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE/E;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAA;AAK3C,iGAAiG;AACjG,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,OAAe;IACtD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAClE,OAAO,KAAK,EAAE,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACrH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,OAAe,EACf,IAAe,EACf,IAAI,GAAuE,EAAE;IAE7E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,YAAY,CAAA;IAChD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;IACpB,IAAI,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,CAAA;QAC3F,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC9B,IAAI,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACtD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjD,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE;YACvC,KAAK,EAAE,OAAO;YACd,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;SACnK,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAA;IACjC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AACrB,CAAC"}
|
|
@@ -12,7 +12,7 @@ export interface Unpublished {
|
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* The finished runs of a project whose work never left this machine (#860), by run id: what the
|
|
15
|
-
* Human Queue lists as "
|
|
15
|
+
* Human Queue lists as "Needs commit" and "Needs PR" (or "Needs push") and the list of runs marks on each row,
|
|
16
16
|
* read alike so the two never disagree.
|
|
17
17
|
*
|
|
18
18
|
* Only a branch the branches provider made for the run counts. A branch of the person's own is
|
|
@@ -2,7 +2,7 @@ import { projectBranches } from '../store/branches.js';
|
|
|
2
2
|
import { agentBranchFor } from './agent-handoff.js';
|
|
3
3
|
/**
|
|
4
4
|
* The finished runs of a project whose work never left this machine (#860), by run id: what the
|
|
5
|
-
* Human Queue lists as "
|
|
5
|
+
* Human Queue lists as "Needs commit" and "Needs PR" (or "Needs push") and the list of runs marks on each row,
|
|
6
6
|
* read alike so the two never disagree.
|
|
7
7
|
*
|
|
8
8
|
* Only a branch the branches provider made for the run counts. A branch of the person's own is
|