@tt-a1i/hive 0.6.0-alpha.4 → 0.6.0-alpha.7
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/CHANGELOG.md +81 -0
- package/README.en.md +272 -0
- package/README.md +103 -143
- package/dist/src/cli/team.d.ts +8 -0
- package/dist/src/cli/team.js +69 -26
- package/dist/src/cli/team.js.map +1 -1
- package/dist/src/server/agent-launch-cache.js +2 -2
- package/dist/src/server/agent-launch-cache.js.map +1 -1
- package/dist/src/server/agent-launch-resolver.d.ts +4 -0
- package/dist/src/server/agent-launch-resolver.js +33 -0
- package/dist/src/server/agent-launch-resolver.js.map +1 -0
- package/dist/src/server/agent-run-store.d.ts +1 -2
- package/dist/src/server/agent-run-store.js +5 -13
- package/dist/src/server/agent-run-store.js.map +1 -1
- package/dist/src/server/agent-runtime-ports.d.ts +1 -2
- package/dist/src/server/agent-session-store.d.ts +1 -1
- package/dist/src/server/agent-session-store.js +28 -34
- package/dist/src/server/agent-session-store.js.map +1 -1
- package/dist/src/server/agent-startup-instructions.js +1 -1
- package/dist/src/server/agent-startup-instructions.js.map +1 -1
- package/dist/src/server/app-state-store.d.ts +1 -1
- package/dist/src/server/app-state-store.js +1 -3
- package/dist/src/server/app-state-store.js.map +1 -1
- package/dist/src/server/command-preset-store.d.ts +1 -1
- package/dist/src/server/command-preset-store.js +2 -8
- package/dist/src/server/command-preset-store.js.map +1 -1
- package/dist/src/server/dispatch-ledger-store.d.ts +18 -4
- package/dist/src/server/dispatch-ledger-store.js +0 -66
- package/dist/src/server/dispatch-ledger-store.js.map +1 -1
- package/dist/src/server/hive-team-guidance.js +8 -4
- package/dist/src/server/hive-team-guidance.js.map +1 -1
- package/dist/src/server/message-log-store.d.ts +1 -3
- package/dist/src/server/message-log-store.js +2 -59
- package/dist/src/server/message-log-store.js.map +1 -1
- package/dist/src/server/orchestrator-autostart.js +12 -2
- package/dist/src/server/orchestrator-autostart.js.map +1 -1
- package/dist/src/server/orchestrator-launch.js +2 -27
- package/dist/src/server/orchestrator-launch.js.map +1 -1
- package/dist/src/server/recovery-summary.js +1 -1
- package/dist/src/server/recovery-summary.js.map +1 -1
- package/dist/src/server/role-template-store.d.ts +1 -1
- package/dist/src/server/role-template-store.js +2 -6
- package/dist/src/server/role-template-store.js.map +1 -1
- package/dist/src/server/route-types.d.ts +2 -0
- package/dist/src/server/routes-workspaces.js +26 -18
- package/dist/src/server/routes-workspaces.js.map +1 -1
- package/dist/src/server/runtime-database.d.ts +1 -1
- package/dist/src/server/runtime-database.js +8 -4
- package/dist/src/server/runtime-database.js.map +1 -1
- package/dist/src/server/runtime-store-helpers.js +2 -4
- package/dist/src/server/runtime-store-helpers.js.map +1 -1
- package/dist/src/server/runtime-store.d.ts +1 -1
- package/dist/src/server/runtime-store.js +1 -1
- package/dist/src/server/runtime-store.js.map +1 -1
- package/dist/src/server/settings-store.d.ts +1 -1
- package/dist/src/server/settings-store.js.map +1 -1
- package/dist/src/server/team-list-enrichment.d.ts +22 -0
- package/dist/src/server/team-list-enrichment.js +41 -0
- package/dist/src/server/team-list-enrichment.js.map +1 -0
- package/dist/src/server/team-list-serializer.d.ts +1 -1
- package/dist/src/server/team-list-serializer.js +3 -2
- package/dist/src/server/team-list-serializer.js.map +1 -1
- package/dist/src/server/terminal-state-mirror.d.ts +1 -1
- package/dist/src/server/terminal-state-mirror.js +1 -1
- package/dist/src/server/terminal-state-mirror.js.map +1 -1
- package/dist/src/server/worker-output-tracker.d.ts +1 -1
- package/dist/src/server/worker-output-tracker.js +2 -2
- package/dist/src/server/worker-output-tracker.js.map +1 -1
- package/dist/src/server/workspace-store-hydration.d.ts +2 -2
- package/dist/src/server/workspace-store-hydration.js +1 -4
- package/dist/src/server/workspace-store-hydration.js.map +1 -1
- package/dist/src/server/workspace-store.d.ts +1 -1
- package/dist/src/server/workspace-store.js +5 -5
- package/dist/src/server/workspace-store.js.map +1 -1
- package/dist/src/shared/types.d.ts +15 -3
- package/package.json +7 -3
- package/web/dist/assets/addon-clipboard-wHJhZAA4.js +1 -0
- package/web/dist/assets/addon-unicode11-Bt8F3D7-.js +7 -0
- package/web/dist/assets/addon-web-links-DIbG5aQx.js +1 -0
- package/web/dist/assets/addon-webgl-DCtw1yLn.js +64 -0
- package/web/dist/assets/index-B8F00qo4.css +1 -0
- package/web/dist/assets/index-CGvIlvht.js +80 -0
- package/web/dist/cli-icons/claude.png +0 -0
- package/web/dist/cli-icons/codex.png +0 -0
- package/web/dist/cli-icons/gemini.png +0 -0
- package/web/dist/cli-icons/opencode.svg +18 -0
- package/web/dist/index.html +2 -2
- package/README.zh-CN.md +0 -210
- package/web/dist/assets/index-CnUabdqK.js +0 -73
- package/web/dist/assets/index-DqkpIE12.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-store.js","sourceRoot":"","sources":["../../../src/server/runtime-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime-store.js","sourceRoot":"","sources":["../../../src/server/runtime-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,4 +16,4 @@ export interface SettingsStore {
|
|
|
16
16
|
updateRoleTemplate: (id: string, input: RoleTemplateInput) => RoleTemplateRecord;
|
|
17
17
|
}
|
|
18
18
|
export type { AppStateRecord, AppStateValue, CommandPresetInput, CommandPresetRecord, RoleTemplateInput, RoleTemplateRecord, };
|
|
19
|
-
export declare const createSettingsStore: (db: Database
|
|
19
|
+
export declare const createSettingsStore: (db: Database) => SettingsStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../../src/server/settings-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2C,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AACnG,OAAO,EAGL,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,uBAAuB,GAGxB,MAAM,0BAA0B,CAAA;AAyBjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../../src/server/settings-store.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2C,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AACnG,OAAO,EAGL,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,uBAAuB,GAGxB,MAAM,0BAA0B,CAAA;AAyBjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAY,EAAiB,EAAE;IACjE,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAC7C,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAA;IACvD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAA;IAErD,OAAO;QACL,mBAAmB,EAAE,kBAAkB,CAAC,MAAM;QAC9C,kBAAkB,EAAE,iBAAiB,CAAC,MAAM;QAC5C,mBAAmB,EAAE,kBAAkB,CAAC,MAAM;QAC9C,kBAAkB,EAAE,iBAAiB,CAAC,MAAM;QAC5C,WAAW,EAAE,aAAa,CAAC,GAAG;QAC9B,gBAAgB,EAAE,kBAAkB,CAAC,GAAG;QACxC,kBAAkB,EAAE,kBAAkB,CAAC,IAAI;QAC3C,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;QACzC,WAAW,EAAE,aAAa,CAAC,GAAG;QAC9B,mBAAmB,EAAE,kBAAkB,CAAC,MAAM;QAC9C,kBAAkB,EAAE,iBAAiB,CAAC,MAAM;KAC7C,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TeamListItem } from '../shared/types.js';
|
|
2
|
+
import type { RuntimeStore } from './runtime-store.js';
|
|
3
|
+
export type TeamListEnrichmentStore = Pick<RuntimeStore, 'getLastPtyLineForAgent' | 'peekAgentLaunchConfig' | 'settings'>;
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the built-in command preset id for a worker. Mirrors the launch-time
|
|
6
|
+
* lookup in `agent-run-bootstrap.ts::resolveLaunchPreset`: explicit
|
|
7
|
+
* `commandPresetId` first, then implicit by matching `config.command` against a
|
|
8
|
+
* built-in preset record. Returns null when the worker was launched with a
|
|
9
|
+
* custom command, when augmentation has been disabled on the config (the
|
|
10
|
+
* launcher won't apply preset behavior, so claiming the brand logo would be a
|
|
11
|
+
* lie), or when there is no launch config row yet (worker created but never
|
|
12
|
+
* configured).
|
|
13
|
+
*/
|
|
14
|
+
export declare const resolveCommandPresetId: (store: Pick<RuntimeStore, "peekAgentLaunchConfig" | "settings">, workspaceId: string, workerId: string) => string | null;
|
|
15
|
+
/**
|
|
16
|
+
* Folds the two transient signals exposed on team list payloads — last PTY
|
|
17
|
+
* line (read fresh per request) and resolved command preset id (read from the
|
|
18
|
+
* launch cache) — into the in-memory worker records. The records themselves
|
|
19
|
+
* stay narrow (`workspace-store.listWorkers`) because the workspace store does
|
|
20
|
+
* not own the launch cache; enrichment happens at the route boundary instead.
|
|
21
|
+
*/
|
|
22
|
+
export declare const enrichTeamList: (workspaceId: string, store: TeamListEnrichmentStore, workers: TeamListItem[]) => TeamListItem[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the built-in command preset id for a worker. Mirrors the launch-time
|
|
3
|
+
* lookup in `agent-run-bootstrap.ts::resolveLaunchPreset`: explicit
|
|
4
|
+
* `commandPresetId` first, then implicit by matching `config.command` against a
|
|
5
|
+
* built-in preset record. Returns null when the worker was launched with a
|
|
6
|
+
* custom command, when augmentation has been disabled on the config (the
|
|
7
|
+
* launcher won't apply preset behavior, so claiming the brand logo would be a
|
|
8
|
+
* lie), or when there is no launch config row yet (worker created but never
|
|
9
|
+
* configured).
|
|
10
|
+
*/
|
|
11
|
+
export const resolveCommandPresetId = (store, workspaceId, workerId) => {
|
|
12
|
+
const config = store.peekAgentLaunchConfig(workspaceId, workerId);
|
|
13
|
+
if (!config)
|
|
14
|
+
return null;
|
|
15
|
+
if (config.presetAugmentationDisabled)
|
|
16
|
+
return null;
|
|
17
|
+
if (config.commandPresetId)
|
|
18
|
+
return config.commandPresetId;
|
|
19
|
+
const implicit = store.settings.getCommandPreset(config.command);
|
|
20
|
+
if (!implicit || implicit.command !== config.command)
|
|
21
|
+
return null;
|
|
22
|
+
return implicit.id;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Folds the two transient signals exposed on team list payloads — last PTY
|
|
26
|
+
* line (read fresh per request) and resolved command preset id (read from the
|
|
27
|
+
* launch cache) — into the in-memory worker records. The records themselves
|
|
28
|
+
* stay narrow (`workspace-store.listWorkers`) because the workspace store does
|
|
29
|
+
* not own the launch cache; enrichment happens at the route boundary instead.
|
|
30
|
+
*/
|
|
31
|
+
export const enrichTeamList = (workspaceId, store, workers) => workers.map((worker) => {
|
|
32
|
+
const line = store.getLastPtyLineForAgent(workspaceId, worker.id);
|
|
33
|
+
const presetId = resolveCommandPresetId(store, workspaceId, worker.id);
|
|
34
|
+
const next = { ...worker };
|
|
35
|
+
if (line !== null)
|
|
36
|
+
next.lastPtyLine = line;
|
|
37
|
+
if (presetId !== null)
|
|
38
|
+
next.commandPresetId = presetId;
|
|
39
|
+
return next;
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=team-list-enrichment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-list-enrichment.js","sourceRoot":"","sources":["../../../src/server/team-list-enrichment.ts"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAA+D,EAC/D,WAAmB,EACnB,QAAgB,EACD,EAAE;IACjB,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACjE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,IAAI,MAAM,CAAC,0BAA0B;QAAE,OAAO,IAAI,CAAA;IAClD,IAAI,MAAM,CAAC,eAAe;QAAE,OAAO,MAAM,CAAC,eAAe,CAAA;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACjE,OAAO,QAAQ,CAAC,EAAE,CAAA;AACpB,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAAmB,EACnB,KAA8B,EAC9B,OAAuB,EACP,EAAE,CAClB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG,KAAK,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IACtE,MAAM,IAAI,GAAiB,EAAE,GAAG,MAAM,EAAE,CAAA;IACxC,IAAI,IAAI,KAAK,IAAI;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IAC1C,IAAI,QAAQ,KAAK,IAAI;QAAE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAA;IACtD,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { TeamListItem, TeamListItemPayload } from '../shared/types.js';
|
|
2
|
-
export declare const serializeTeamListItem: ({ id,
|
|
2
|
+
export declare const serializeTeamListItem: ({ commandPresetId, id, lastPtyLine, name, pendingTaskCount, role, status, }: TeamListItem) => TeamListItemPayload;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export const serializeTeamListItem = ({ id,
|
|
1
|
+
export const serializeTeamListItem = ({ commandPresetId, id, lastPtyLine, name, pendingTaskCount, role, status, }) => ({
|
|
2
2
|
id,
|
|
3
3
|
name,
|
|
4
4
|
role,
|
|
5
5
|
status,
|
|
6
6
|
pending_task_count: pendingTaskCount,
|
|
7
|
-
|
|
7
|
+
last_pty_line: lastPtyLine ?? null,
|
|
8
|
+
command_preset_id: commandPresetId ?? null,
|
|
8
9
|
});
|
|
9
10
|
//# sourceMappingURL=team-list-serializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-list-serializer.js","sourceRoot":"","sources":["../../../src/server/team-list-serializer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,EAAE,EACF,
|
|
1
|
+
{"version":3,"file":"team-list-serializer.js","sourceRoot":"","sources":["../../../src/server/team-list-serializer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,eAAe,EACf,EAAE,EACF,WAAW,EACX,IAAI,EACJ,gBAAgB,EAChB,IAAI,EACJ,MAAM,GACO,EAAuB,EAAE,CAAC,CAAC;IACxC,EAAE;IACF,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,kBAAkB,EAAE,gBAAgB;IACpC,aAAa,EAAE,WAAW,IAAI,IAAI;IAClC,iBAAiB,EAAE,eAAe,IAAI,IAAI;CAC3C,CAAC,CAAA"}
|
|
@@ -15,7 +15,7 @@ export declare class TerminalStateMirror {
|
|
|
15
15
|
* truncated to `maxLen`). Returns `null` when scrollback has no printable
|
|
16
16
|
* content, so the wire protocol can express "no output yet" as a null.
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
lastPtyLine(maxLen?: number): string | null;
|
|
19
19
|
resize(cols: number, rows: number): void;
|
|
20
20
|
write(chunk: string): void;
|
|
21
21
|
}
|
|
@@ -38,7 +38,7 @@ export class TerminalStateMirror {
|
|
|
38
38
|
* truncated to `maxLen`). Returns `null` when scrollback has no printable
|
|
39
39
|
* content, so the wire protocol can express "no output yet" as a null.
|
|
40
40
|
*/
|
|
41
|
-
|
|
41
|
+
lastPtyLine(maxLen = 60) {
|
|
42
42
|
const buffer = this.terminal.buffer.active;
|
|
43
43
|
for (let row = buffer.length - 1; row >= 0; row -= 1) {
|
|
44
44
|
const raw = buffer.getLine(row)?.translateToString(true) ?? '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-state-mirror.js","sourceRoot":"","sources":["../../../src/server/terminal-state-mirror.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,sBAAsB,MAAM,iBAAiB,CAAA;AAEpD,MAAM,EAAE,cAAc,EAAE,GAAG,oBAA+D,CAAA;AAC1F,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAA0D,CAAA;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAOzC,MAAM,qBAAqB,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAsB,EAAsB,EAAE,CAAC,CAAC;IACzF,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC,CAAA;AAEF,gFAAgF;AAChF,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;AAE3F,MAAM,OAAO,mBAAmB;IACb,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA;IACrC,QAAQ,CAA+B;IAChD,cAAc,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAEzD,YAAY,OAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC3D,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC;YAC3B,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,UAAU,EAAE,mBAAmB;SAChC,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,cAAc,CAAA;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"terminal-state-mirror.js","sourceRoot":"","sources":["../../../src/server/terminal-state-mirror.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export interface WorkerOutputTracker {
|
|
|
3
3
|
attach: (workspaceId: string, agentId: string, runId: string, initialOutput: string) => void;
|
|
4
4
|
closeAll: () => void;
|
|
5
5
|
detach: (workspaceId: string, agentId: string) => void;
|
|
6
|
-
|
|
6
|
+
getLastPtyLine: (workspaceId: string, agentId: string) => string | null;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Maintains a headless terminal mirror per active agent run so the team-list
|
|
@@ -42,9 +42,9 @@ export const createWorkerOutputTracker = (outputBus) => {
|
|
|
42
42
|
disposeEntry(entry);
|
|
43
43
|
tracked.delete(key);
|
|
44
44
|
},
|
|
45
|
-
|
|
45
|
+
getLastPtyLine(workspaceId, agentId) {
|
|
46
46
|
const entry = tracked.get(trackerKey(workspaceId, agentId));
|
|
47
|
-
return entry ? entry.mirror.
|
|
47
|
+
return entry ? entry.mirror.lastPtyLine() : null;
|
|
48
48
|
},
|
|
49
49
|
};
|
|
50
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-output-tracker.js","sourceRoot":"","sources":["../../../src/server/worker-output-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAehE,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAA;AAExF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAuB,EAAuB,EAAE;IACxF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE7C,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAE,EAAE;QACzC,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC,CAAA;IAED,OAAO;QACL,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa;YAC/C,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK;oBAAE,OAAM;gBACpC,YAAY,CAAC,QAAQ,CAAC,CAAA;YACxB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAA;YACxC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACzD,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;QAClD,CAAC;QACD,QAAQ;YACN,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YACzD,OAAO,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC;QACD,MAAM,CAAC,WAAW,EAAE,OAAO;YACzB,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"worker-output-tracker.js","sourceRoot":"","sources":["../../../src/server/worker-output-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAehE,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAA;AAExF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAuB,EAAuB,EAAE;IACxF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE7C,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAE,EAAE;QACzC,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC,CAAA;IAED,OAAO;QACL,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa;YAC/C,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK;oBAAE,OAAM;gBACpC,YAAY,CAAC,QAAQ,CAAC,CAAA;YACxB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAA;YACxC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACzD,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;QAClD,CAAC;QACD,QAAQ;YACN,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YACzD,OAAO,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC;QACD,MAAM,CAAC,WAAW,EAAE,OAAO;YACzB,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;QACD,cAAc,CAAC,WAAW,EAAE,OAAO;YACjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;YAC3D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAClD,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Database } from 'better-sqlite3';
|
|
2
2
|
import type { WorkspaceRecord } from './workspace-store-contract.js';
|
|
3
3
|
import { type MessageKindRecord } from './workspace-store-support.js';
|
|
4
|
-
export declare const hydrateWorkspaceFromDb: (db: Database
|
|
5
|
-
export declare const seedWorkspacesFromDb: (db: Database
|
|
4
|
+
export declare const hydrateWorkspaceFromDb: (db: Database, workspaces: Map<string, WorkspaceRecord>, messageKinds: MessageKindRecord[], workspaceId: string) => void;
|
|
5
|
+
export declare const seedWorkspacesFromDb: (db: Database, workspaces: Map<string, WorkspaceRecord>, messageKinds: MessageKindRecord[]) => void;
|
|
@@ -24,7 +24,7 @@ const applyMessageKinds = (workspaces, messageKinds, workspaceId) => {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
export const hydrateWorkspaceFromDb = (db, workspaces, messageKinds, workspaceId) => {
|
|
27
|
-
if (
|
|
27
|
+
if (workspaces.has(workspaceId)) {
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
const row = db.prepare('SELECT id, name, path FROM workspaces WHERE id = ?').get(workspaceId);
|
|
@@ -43,9 +43,6 @@ export const hydrateWorkspaceFromDb = (db, workspaces, messageKinds, workspaceId
|
|
|
43
43
|
applyMessageKinds(workspaces, messageKinds, workspaceId);
|
|
44
44
|
};
|
|
45
45
|
export const seedWorkspacesFromDb = (db, workspaces, messageKinds) => {
|
|
46
|
-
if (!db) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
46
|
for (const row of db
|
|
50
47
|
.prepare('SELECT id, name, path FROM workspaces ORDER BY created_at ASC')
|
|
51
48
|
.all()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-store-hydration.js","sourceRoot":"","sources":["../../../src/server/workspace-store-hydration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,GAKd,MAAM,8BAA8B,CAAA;AAErC,MAAM,mBAAmB,GAAG,CAC1B,WAAmB,EACnB,GAA4D,EAC9C,EAAE,CAAC,CAAC;IAClB,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,WAAW;IACX,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC;IACnE,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,CAAC;CACpB,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,CACxB,UAAwC,EACxC,YAAiC,EACjC,WAAoB,EACpB,EAAE;IACF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,WAAW,IAAI,GAAG,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;YACpD,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,UAAU;aACtB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YACtB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,SAAQ;QACV,CAAC;QAED,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,
|
|
1
|
+
{"version":3,"file":"workspace-store-hydration.js","sourceRoot":"","sources":["../../../src/server/workspace-store-hydration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,GAKd,MAAM,8BAA8B,CAAA;AAErC,MAAM,mBAAmB,GAAG,CAC1B,WAAmB,EACnB,GAA4D,EAC9C,EAAE,CAAC,CAAC;IAClB,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,WAAW;IACX,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC;IACnE,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,CAAC;CACpB,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,CACxB,UAAwC,EACxC,YAAiC,EACjC,WAAoB,EACpB,EAAE;IACF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,WAAW,IAAI,GAAG,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;YACpD,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,UAAU;aACtB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YACtB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,SAAQ;QACV,CAAC;QAED,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,EAAY,EACZ,UAAwC,EACxC,YAAiC,EACjC,WAAmB,EACnB,EAAE;IACF,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,WAAW,CAE/E,CAAA;IACb,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAM;IACR,CAAC;IAED,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;QACrB,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;QACvD,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACrC,CAAC,CAAA;IAEF,KAAK,MAAM,SAAS,IAAI,EAAE;SACvB,OAAO,CACN,8GAA8G,CAC/G;SACA,GAAG,CAAC,WAAW,CAAgB,EAAE,CAAC;QACnC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAClG,CAAC;IAED,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;AAC1D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,EAAY,EACZ,UAAwC,EACxC,YAAiC,EACjC,EAAE;IACF,KAAK,MAAM,GAAG,IAAI,EAAE;SACjB,OAAO,CAAC,+DAA+D,CAAC;SACxE,GAAG,EAAoB,EAAE,CAAC;QAC3B,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;YACrB,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;YACvD,MAAM,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACrC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,EAAE;SACjB,OAAO,CACN,uFAAuF,CACxF;SACA,GAAG,EAAiB,EAAE,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAA;IAC3F,CAAC;IAED,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;AAC7C,CAAC,CAAA"}
|
|
@@ -2,4 +2,4 @@ import type { Database } from 'better-sqlite3';
|
|
|
2
2
|
import type { WorkerInput, WorkspaceRecord, WorkspaceStore } from './workspace-store-contract.js';
|
|
3
3
|
import { type MessageKindRecord } from './workspace-store-support.js';
|
|
4
4
|
export type { WorkerInput, WorkspaceRecord, WorkspaceStore };
|
|
5
|
-
export declare const createWorkspaceStore: (db: Database
|
|
5
|
+
export declare const createWorkspaceStore: (db: Database, messageKinds: MessageKindRecord[]) => WorkspaceStore;
|
|
@@ -38,20 +38,20 @@ export const createWorkspaceStore = (db, messageKinds) => {
|
|
|
38
38
|
status: 'stopped',
|
|
39
39
|
pendingTaskCount: 0,
|
|
40
40
|
};
|
|
41
|
-
db
|
|
41
|
+
db.prepare('INSERT INTO workers (id, workspace_id, name, description, role, created_at) VALUES (?, ?, ?, ?, ?, ?)').run(worker.id, workspaceId, worker.name, worker.description, worker.role, Date.now());
|
|
42
42
|
workspace.agents.push(worker);
|
|
43
43
|
return worker;
|
|
44
44
|
},
|
|
45
45
|
createWorkspace(path, name) {
|
|
46
46
|
const summary = { id: randomUUID(), name, path };
|
|
47
|
-
db
|
|
47
|
+
db.prepare('INSERT INTO workspaces (id, name, path, created_at) VALUES (?, ?, ?, ?)').run(summary.id, name, path, Date.now());
|
|
48
48
|
workspaces.set(summary.id, { summary, agents: [createOrchestrator(summary.id)] });
|
|
49
49
|
return summary;
|
|
50
50
|
},
|
|
51
51
|
deleteWorkspace(workspaceId) {
|
|
52
52
|
const workspace = getWorkspace(workspaceId);
|
|
53
53
|
const agentIds = workspace.agents.map((agent) => agent.id);
|
|
54
|
-
db
|
|
54
|
+
db.transaction(() => {
|
|
55
55
|
db.prepare('DELETE FROM messages WHERE workspace_id = ?').run(workspaceId);
|
|
56
56
|
db.prepare('DELETE FROM agent_launch_configs WHERE workspace_id = ?').run(workspaceId);
|
|
57
57
|
db.prepare('DELETE FROM agent_sessions WHERE workspace_id = ?').run(workspaceId);
|
|
@@ -72,14 +72,14 @@ export const createWorkspaceStore = (db, messageKinds) => {
|
|
|
72
72
|
if (workspace.agents.some((agent) => agent.id !== workerId && agent.name === trimmed && isWorkerAgent(agent))) {
|
|
73
73
|
throw new ConflictError(`Worker name already exists: ${trimmed}`);
|
|
74
74
|
}
|
|
75
|
-
db
|
|
75
|
+
db.prepare('UPDATE workers SET name = ? WHERE workspace_id = ? AND id = ?').run(trimmed, workspaceId, workerId);
|
|
76
76
|
worker.name = trimmed;
|
|
77
77
|
return worker;
|
|
78
78
|
},
|
|
79
79
|
deleteWorker(workspaceId, workerId) {
|
|
80
80
|
const workspace = getWorkspace(workspaceId);
|
|
81
81
|
getWorkerRecord(workspaces, workspaceId, workerId);
|
|
82
|
-
db
|
|
82
|
+
db.transaction(() => {
|
|
83
83
|
db.prepare('DELETE FROM messages WHERE workspace_id = ? AND worker_id = ?').run(workspaceId, workerId);
|
|
84
84
|
db.prepare('DELETE FROM agent_launch_configs WHERE workspace_id = ? AND agent_id = ?').run(workspaceId, workerId);
|
|
85
85
|
db.prepare('DELETE FROM agent_sessions WHERE workspace_id = ? AND agent_id = ?').run(workspaceId, workerId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-store.js","sourceRoot":"","sources":["../../../src/server/workspace-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAIxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAC7F,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,kBAAkB,EAClB,aAAa,GAEd,MAAM,8BAA8B,CAAA;AAIrC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IACtF,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,
|
|
1
|
+
{"version":3,"file":"workspace-store.js","sourceRoot":"","sources":["../../../src/server/workspace-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,8 +21,19 @@ export interface TeamListItem {
|
|
|
21
21
|
role: WorkerRole;
|
|
22
22
|
status: AgentStatus;
|
|
23
23
|
pendingTaskCount: number;
|
|
24
|
-
/**
|
|
25
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Last raw line printed to the worker's PTY. Surfaced on the worker card for UI hints only —
|
|
26
|
+
* not a worker reply. Real replies arrive as [Hive 系统消息] entries on orchestrator stdin.
|
|
27
|
+
*/
|
|
28
|
+
lastPtyLine?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Built-in command preset this worker was launched with (`claude` / `codex` /
|
|
31
|
+
* `opencode` / `gemini`). Drives the worker card's CLI logo (§6.4). Undefined
|
|
32
|
+
* when the worker was created without picking a preset, or when the launch
|
|
33
|
+
* config row references a custom command — in that case the UI falls back to
|
|
34
|
+
* the role-letter avatar.
|
|
35
|
+
*/
|
|
36
|
+
commandPresetId?: string;
|
|
26
37
|
}
|
|
27
38
|
/**
|
|
28
39
|
* Wire payload shape for /api/workspaces/:id/team and worker-creation responses.
|
|
@@ -35,5 +46,6 @@ export interface TeamListItemPayload {
|
|
|
35
46
|
role: WorkerRole;
|
|
36
47
|
status: AgentStatus;
|
|
37
48
|
pending_task_count: number;
|
|
38
|
-
|
|
49
|
+
last_pty_line: string | null;
|
|
50
|
+
command_preset_id: string | null;
|
|
39
51
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tt-a1i/hive",
|
|
3
|
-
"version": "0.6.0-alpha.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.6.0-alpha.7",
|
|
4
|
+
"description": "Browser-native hive-mind for CLI coding agents — Claude Code, Codex, Gemini, and OpenCode collaborate as real PTY processes via a team protocol.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.30.3",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"CHANGELOG.md",
|
|
32
32
|
"LICENSE",
|
|
33
33
|
"README.md",
|
|
34
|
-
"README.
|
|
34
|
+
"README.en.md",
|
|
35
35
|
"SECURITY.md",
|
|
36
36
|
"dist/bin/",
|
|
37
37
|
"dist/src/",
|
|
@@ -67,8 +67,12 @@
|
|
|
67
67
|
"@radix-ui/react-slot": "^1.2.4",
|
|
68
68
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
69
69
|
"@tailwindcss/vite": "^4.2.2",
|
|
70
|
+
"@xterm/addon-clipboard": "^0.2.0",
|
|
70
71
|
"@xterm/addon-fit": "^0.11.0",
|
|
71
72
|
"@xterm/addon-serialize": "^0.14.0",
|
|
73
|
+
"@xterm/addon-unicode11": "^0.9.0",
|
|
74
|
+
"@xterm/addon-web-links": "^0.12.0",
|
|
75
|
+
"@xterm/addon-webgl": "^0.19.0",
|
|
72
76
|
"@xterm/headless": "^6.0.0",
|
|
73
77
|
"@xterm/xterm": "^6.0.0",
|
|
74
78
|
"better-sqlite3": "^12.9.0",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var T="3.7.8",j=T,u=typeof Buffer=="function",g=typeof TextDecoder=="function"?new TextDecoder:void 0,B=typeof TextEncoder=="function"?new TextEncoder:void 0,I="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=Array.prototype.slice.call(I),f=(e=>{let t={};return e.forEach((r,a)=>t[r]=a),t})(d),V=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,o=String.fromCharCode.bind(String),C=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),_=e=>e.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),w=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),U=e=>{let t,r,a,i,n="",s=e.length%3;for(let c=0;c<e.length;){if((r=e.charCodeAt(c++))>255||(a=e.charCodeAt(c++))>255||(i=e.charCodeAt(c++))>255)throw new TypeError("invalid character found");t=r<<16|a<<8|i,n+=d[t>>18&63]+d[t>>12&63]+d[t>>6&63]+d[t&63]}return s?n.slice(0,s-3)+"===".substring(s):n},x=typeof btoa=="function"?e=>btoa(e):u?e=>Buffer.from(e,"binary").toString("base64"):U,b=u?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let r=0,a=e.length;r<a;r+=4096)t.push(o.apply(null,e.subarray(r,r+4096)));return x(t.join(""))},p=(e,t=!1)=>t?_(b(e)):b(e),$=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e:t<2048?o(192|t>>>6)+o(128|t&63):o(224|t>>>12&15)+o(128|t>>>6&63)+o(128|t&63)}else{var t=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return o(240|t>>>18&7)+o(128|t>>>12&63)+o(128|t>>>6&63)+o(128|t&63)}},L=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,F=e=>e.replace(L,$),m=u?e=>Buffer.from(e,"utf8").toString("base64"):B?e=>b(B.encode(e)):e=>x(F(e)),l=(e,t=!1)=>t?_(m(e)):m(e),v=e=>l(e,!0),H=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,N=e=>{switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),r=t-65536;return o((r>>>10)+55296)+o((r&1023)+56320);case 3:return o((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return o((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},S=e=>e.replace(H,N),P=e=>{if(e=e.replace(/\s+/g,""),!V.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(e.length&3));let t,r,a,i=[];for(let n=0;n<e.length;)t=f[e.charAt(n++)]<<18|f[e.charAt(n++)]<<12|(r=f[e.charAt(n++)])<<6|(a=f[e.charAt(n++)]),r===64?i.push(o(t>>16&255)):a===64?i.push(o(t>>16&255,t>>8&255)):i.push(o(t>>16&255,t>>8&255,t&255));return i.join("")},y=typeof atob=="function"?e=>atob(w(e)):u?e=>Buffer.from(e,"base64").toString("binary"):P,R=u?e=>C(Buffer.from(e,"base64")):e=>C(y(e).split("").map(t=>t.charCodeAt(0))),E=e=>R(D(e)),k=u?e=>Buffer.from(e,"base64").toString("utf8"):g?e=>g.decode(R(e)):e=>S(y(e)),D=e=>w(e.replace(/[-_]/g,t=>t=="-"?"+":"/")),A=e=>k(D(e)),q=e=>{if(typeof e!="string")return!1;let t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},z=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),O=function(){let e=(t,r)=>Object.defineProperty(String.prototype,t,z(r));e("fromBase64",function(){return A(this)}),e("toBase64",function(t){return l(this,t)}),e("toBase64URI",function(){return l(this,!0)}),e("toBase64URL",function(){return l(this,!0)}),e("toUint8Array",function(){return E(this)})},Z=function(){let e=(t,r)=>Object.defineProperty(Uint8Array.prototype,t,z(r));e("toBase64",function(t){return p(this,t)}),e("toBase64URI",function(){return p(this,!0)}),e("toBase64URL",function(){return p(this,!0)})},G=()=>{O(),Z()},h={version:T,VERSION:j,atob:y,atobPolyfill:P,btoa:x,btoaPolyfill:U,fromBase64:A,toBase64:l,encode:l,encodeURI:v,encodeURL:v,utob:F,btou:S,decode:A,isValid:q,fromUint8Array:p,toUint8Array:E,extendString:O,extendUint8Array:Z,extendBuiltins:G},M=class{constructor(e=new K,t=new J){this._base64=e,this._provider=t}activate(e){this._terminal=e,this._disposable=e.parser.registerOscHandler(52,t=>this._setOrReportClipboard(t))}dispose(){return this._disposable?.dispose()}_readText(e,t){let r=this._base64.encodeText(t);this._terminal?.input(`\x1B]52;${e};${r}\x07`,!1)}_setOrReportClipboard(e){let t=e.split(";");if(t.length<2)return!0;let r=t[0],a=t[1];if(a==="?"){let s=this._provider.readText(r);return s instanceof Promise?s.then(c=>(this._readText(r,c),!0)):(this._readText(r,s),!0)}let i="";try{i=this._base64.decodeText(a)}catch{}let n=this._provider.writeText(r,i);return n instanceof Promise?n.then(()=>!0):!0}},J=class{async readText(e){return e!=="c"?Promise.resolve(""):navigator.clipboard.readText()}async writeText(e,t){return e!=="c"?Promise.resolve():navigator.clipboard.writeText(t)}},K=class{encodeText(e){return h.encode(e)}decodeText(e){let t=h.decode(e);return!h.isValid(e)||h.encode(t)!==e?"":t}};export{K as Base64,J as BrowserClipboardProvider,M as ClipboardAddon};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
var V=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],ge=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],g;function me(e,t){let s=0,l=t.length-1,u;if(e<t[0][0]||e>t[l][1])return!1;for(;l>=s;)if(u=s+l>>1,e>t[u][1])s=u+1;else if(e<t[u][0])l=u-1;else return!0;return!1}var we=class{constructor(){if(this.version="6",!g){g=new Uint8Array(65536),g.fill(1),g[0]=0,g.fill(0,1,32),g.fill(0,127,160),g.fill(2,4352,4448),g[9001]=2,g[9002]=2,g.fill(2,11904,42192),g[12351]=1,g.fill(2,44032,55204),g.fill(2,63744,64256),g.fill(2,65040,65050),g.fill(2,65072,65136),g.fill(2,65280,65377),g.fill(2,65504,65511);for(let e=0;e<V.length;++e)g.fill(0,V[e][0],V[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?g[e]:me(e,ge)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let s=this.wcwidth(e),l=s===0&&t!==0;if(l){let u=z.extractWidth(t);u===0?l=!1:u>s&&(s=u)}return z.createPropertyValue(0,s,l)}},ye=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?te.isErrorNoTelemetry(e)?new te(e.message+`
|
|
2
|
+
|
|
3
|
+
`+e.stack):new Error(e.message+`
|
|
4
|
+
|
|
5
|
+
`+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},be=new ye;function G(e){Ee(e)||be.onUnexpectedError(e)}var Y="Canceled";function Ee(e){return e instanceof Le?!0:e instanceof Error&&e.name===Y&&e.message===Y}var Le=class extends Error{constructor(){super(Y),this.name=this.message}},te=class X extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof X)return t;let s=new X;return s.message=t.message,s.stack=t.stack,s}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}};function ke(e,t){let s=this,l=!1,u;return function(){return l||(l=!0,t||(u=e.apply(s,arguments))),u}}var xe;(e=>{function t(d){return d<0}e.isLessThan=t;function s(d){return d<=0}e.isLessThanOrEqual=s;function l(d){return d>0}e.isGreaterThan=l;function u(d){return d===0}e.isNeitherLessOrGreaterThan=u,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(xe||={});var se;(e=>{function t(h){return h&&typeof h=="object"&&typeof h[Symbol.iterator]=="function"}e.is=t;let s=Object.freeze([]);function l(){return s}e.empty=l;function*u(h){yield h}e.single=u;function d(h){return t(h)?h:u(h)}e.wrap=d;function m(h){return h||s}e.from=m;function*y(h){for(let f=h.length-1;f>=0;f--)yield h[f]}e.reverse=y;function E(h){return!h||h[Symbol.iterator]().next().done===!0}e.isEmpty=E;function L(h){return h[Symbol.iterator]().next().value}e.first=L;function F(h,f){let _=0;for(let w of h)if(f(w,_++))return!0;return!1}e.some=F;function S(h,f){for(let _ of h)if(f(_))return _}e.find=S;function*U(h,f){for(let _ of h)f(_)&&(yield _)}e.filter=U;function*R(h,f){let _=0;for(let w of h)yield f(w,_++)}e.map=R;function*H(h,f){let _=0;for(let w of h)yield*f(w,_++)}e.flatMap=H;function*I(...h){for(let f of h)yield*f}e.concat=I;function $(h,f,_){let w=_;for(let C of h)w=f(w,C);return w}e.reduce=$;function*T(h,f,_=h.length){for(f<0&&(f+=h.length),_<0?_+=h.length:_>h.length&&(_=h.length);f<_;f++)yield h[f]}e.slice=T;function q(h,f=Number.POSITIVE_INFINITY){let _=[];if(f===0)return[_,h];let w=h[Symbol.iterator]();for(let C=0;C<f;C++){let W=w.next();if(W.done)return[_,e.empty()];_.push(W.value)}return[_,{[Symbol.iterator](){return w}}]}e.consume=q;async function j(h){let f=[];for await(let _ of h)f.push(_);return Promise.resolve(f)}e.asyncToArray=j})(se||={});function ie(e){if(se.is(e)){let t=[];for(let s of e)if(s)try{s.dispose()}catch(l){t.push(l)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function Te(...e){return ne(()=>ie(e))}function ne(e){return{dispose:ke(()=>{e()})}}var oe=class le{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{ie(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?le.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&(this._toDispose.delete(t),void 0)}};oe.DISABLE_DISPOSED_WARNING=!1;var ee=oe,O=class{constructor(){this._store=new ee,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};O.None=Object.freeze({dispose(){}});var Ce=globalThis.performance&&typeof globalThis.performance.now=="function",De=class ae{static create(t){return new ae(t)}constructor(t){this._now=Ce&&t===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}},Ae;(e=>{e.None=()=>O.None;function t(o,r){return S(o,()=>{},0,void 0,!0,void 0,r)}e.defer=t;function s(o){return(r,n=null,i)=>{let a=!1,c;return c=o(p=>{if(!a)return c?c.dispose():a=!0,r.call(n,p)},null,i),a&&c.dispose(),c}}e.once=s;function l(o,r,n){return L((i,a=null,c)=>o(p=>i.call(a,r(p)),null,c),n)}e.map=l;function u(o,r,n){return L((i,a=null,c)=>o(p=>{r(p),i.call(a,p)},null,c),n)}e.forEach=u;function d(o,r,n){return L((i,a=null,c)=>o(p=>r(p)&&i.call(a,p),null,c),n)}e.filter=d;function m(o){return o}e.signal=m;function y(...o){return(r,n=null,i)=>{let a=Te(...o.map(c=>c(p=>r.call(n,p))));return F(a,i)}}e.any=y;function E(o,r,n,i){let a=n;return l(o,c=>(a=r(a,c),a),i)}e.reduce=E;function L(o,r){let n,i={onWillAddFirstListener(){n=o(a.fire,a)},onDidRemoveLastListener(){n?.dispose()}},a=new x(i);return r?.add(a),a.event}function F(o,r){return r instanceof Array?r.push(o):r&&r.add(o),o}function S(o,r,n=100,i=!1,a=!1,c,p){let v,b,D,M=0,A,pe={leakWarningThreshold:c,onWillAddFirstListener(){v=o(_e=>{M++,b=r(b,_e),i&&!D&&(P.fire(b),b=void 0),A=()=>{let ve=b;b=void 0,D=void 0,(!i||M>1)&&P.fire(ve),M=0},typeof n=="number"?(clearTimeout(D),D=setTimeout(A,n)):D===void 0&&(D=0,queueMicrotask(A))})},onWillRemoveListener(){a&&M>0&&A?.()},onDidRemoveLastListener(){A=void 0,v.dispose()}},P=new x(pe);return p?.add(P),P.event}e.debounce=S;function U(o,r=0,n){return e.debounce(o,(i,a)=>i?(i.push(a),i):[a],r,void 0,!0,void 0,n)}e.accumulate=U;function R(o,r=(i,a)=>i===a,n){let i=!0,a;return d(o,c=>{let p=i||!r(c,a);return i=!1,a=c,p},n)}e.latch=R;function H(o,r,n){return[e.filter(o,r,n),e.filter(o,i=>!r(i),n)]}e.split=H;function I(o,r=!1,n=[],i){let a=n.slice(),c=o(b=>{a?a.push(b):v.fire(b)});i&&i.add(c);let p=()=>{a?.forEach(b=>v.fire(b)),a=null},v=new x({onWillAddFirstListener(){c||(c=o(b=>v.fire(b)),i&&i.add(c))},onDidAddFirstListener(){a&&(r?setTimeout(p):p())},onDidRemoveLastListener(){c&&c.dispose(),c=null}});return i&&i.add(v),v.event}e.buffer=I;function $(o,r){return(n,i,a)=>{let c=r(new q);return o(function(p){let v=c.evaluate(p);v!==T&&n.call(i,v)},void 0,a)}}e.chain=$;let T=Symbol("HaltChainable");class q{constructor(){this.steps=[]}map(r){return this.steps.push(r),this}forEach(r){return this.steps.push(n=>(r(n),n)),this}filter(r){return this.steps.push(n=>r(n)?n:T),this}reduce(r,n){let i=n;return this.steps.push(a=>(i=r(i,a),i)),this}latch(r=(n,i)=>n===i){let n=!0,i;return this.steps.push(a=>{let c=n||!r(a,i);return n=!1,i=a,c?a:T}),this}evaluate(r){for(let n of this.steps)if(r=n(r),r===T)break;return r}}function j(o,r,n=i=>i){let i=(...v)=>p.fire(n(...v)),a=()=>o.on(r,i),c=()=>o.removeListener(r,i),p=new x({onWillAddFirstListener:a,onDidRemoveLastListener:c});return p.event}e.fromNodeEventEmitter=j;function h(o,r,n=i=>i){let i=(...v)=>p.fire(n(...v)),a=()=>o.addEventListener(r,i),c=()=>o.removeEventListener(r,i),p=new x({onWillAddFirstListener:a,onDidRemoveLastListener:c});return p.event}e.fromDOMEventEmitter=h;function f(o){return new Promise(r=>s(o)(r))}e.toPromise=f;function _(o){let r=new x;return o.then(n=>{r.fire(n)},()=>{r.fire(void 0)}).finally(()=>{r.dispose()}),r.event}e.fromPromise=_;function w(o,r){return o(n=>r.fire(n))}e.forward=w;function C(o,r,n){return r(n),o(i=>r(i))}e.runAndSubscribe=C;class W{constructor(r,n){this._observable=r,this._counter=0,this._hasChanged=!1;let i={onWillAddFirstListener:()=>{r.addObserver(this)},onDidRemoveLastListener:()=>{r.removeObserver(this)}};this.emitter=new x(i),n&&n.add(this.emitter)}beginUpdate(r){this._counter++}handlePossibleChange(r){}handleChange(r,n){this._hasChanged=!0}endUpdate(r){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function de(o,r){return new W(o,r).emitter.event}e.fromObservable=de;function fe(o){return(r,n,i)=>{let a=0,c=!1,p={beginUpdate(){a++},endUpdate(){a--,a===0&&(o.reportChanges(),c&&(c=!1,r.call(n)))},handlePossibleChange(){},handleChange(){c=!0}};o.addObserver(p),o.reportChanges();let v={dispose(){o.removeObserver(p)}};return i instanceof ee?i.add(v):Array.isArray(i)&&i.push(v),v}}e.fromObservableLight=fe})(Ae||={});var Z=class Q{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${Q._idPool++}`,Q.all.add(this)}start(t){this._stopWatch=new De,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};Z.all=new Set,Z._idPool=0;var Se=Z,We=-1,he=class ue{constructor(t,s,l=(ue._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t,this.threshold=s,this.name=l,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(t,s){let l=this.threshold;if(l<=0||s<l)return;this._stacks||(this._stacks=new Map);let u=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,u+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=l*.5;let[d,m]=this.getMostFrequentStack(),y=`[${this.name}] potential listener LEAK detected, having ${s} listeners already. MOST frequent listener (${m}):`;console.warn(y),console.warn(d);let E=new Ne(y,d);this._errorHandler(E)}return()=>{let d=this._stacks.get(t.value)||0;this._stacks.set(t.value,d-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,s=0;for(let[l,u]of this._stacks)(!t||s<u)&&(t=[l,u],s=u);return t}};he._idPool=1;var Me=he,Pe=class ce{constructor(t){this.value=t}static create(){let t=new Error;return new ce(t.stack??"")}print(){console.warn(this.value.split(`
|
|
6
|
+
`).slice(2).join(`
|
|
7
|
+
`))}},Ne=class extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},Oe=class extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},ze=0,B=class{constructor(e){this.value=e,this.id=ze++}},Fe=2,Ue,x=class{constructor(e){this._size=0,this._options=e,this._leakageMon=this._options?.leakWarningThreshold?new Me(e?.onListenerError??G,this._options?.leakWarningThreshold??We):void 0,this._perfMon=this._options?._profName?new Se(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){this._disposed||(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose())}get event(){return this._event??=(e,t,s)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let m=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(m);let y=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],E=new Oe(`${m}. HINT: Stack shows most frequent listener (${y[1]}-times)`,y[0]);return(this._options?.onListenerError||G)(E),O.None}if(this._disposed)return O.None;t&&(e=e.bind(t));let l=new B(e),u;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(l.stack=Pe.create(),u=this._leakageMon.check(l.stack,this._size+1)),this._listeners?this._listeners instanceof B?(this._deliveryQueue??=new Re,this._listeners=[this._listeners,l]):this._listeners.push(l):(this._options?.onWillAddFirstListener?.(this),this._listeners=l,this._options?.onDidAddFirstListener?.(this)),this._size++;let d=ne(()=>{u?.(),this._removeListener(l)});return s instanceof ee?s.add(d):Array.isArray(s)&&s.push(d),d},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,s=t.indexOf(e);if(s===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[s]=void 0;let l=this._deliveryQueue.current===this;if(this._size*Fe<=t.length){let u=0;for(let d=0;d<t.length;d++)t[d]?t[u++]=t[d]:l&&(this._deliveryQueue.end--,u<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=u}}_deliver(e,t){if(!e)return;let s=this._options?.onListenerError||G;if(!s){e.value(t);return}try{e.value(t)}catch(l){s(l)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof B)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}},Re=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,s){this.i=0,this.end=s,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},z=class N{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new x,this.onChange=this._onChange.event;let t=new we;this.register(t),this._active=t.version,this._activeProvider=t}static extractShouldJoin(t){return(t&1)!==0}static extractWidth(t){return t>>1&3}static extractCharKind(t){return t>>3}static createPropertyValue(t,s,l=!1){return(t&16777215)<<3|(s&3)<<1|(l?1:0)}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(t){if(!this._providers[t])throw new Error(`unknown Unicode version "${t}"`);this._active=t,this._activeProvider=this._providers[t],this._onChange.fire(t)}register(t){this._providers[t.version]=t}wcwidth(t){return this._activeProvider.wcwidth(t)}getStringCellWidth(t){let s=0,l=0,u=t.length;for(let d=0;d<u;++d){let m=t.charCodeAt(d);if(55296<=m&&m<=56319){if(++d>=u)return s+this.wcwidth(m);let L=t.charCodeAt(d);56320<=L&&L<=57343?m=(m-55296)*1024+L-56320+65536:s+=this.wcwidth(L)}let y=this.charProperties(m,l),E=N.extractWidth(y);N.extractShouldJoin(y)&&(E-=N.extractWidth(l)),s+=E,l=y}return s}charProperties(t,s){return this._activeProvider.charProperties(t,s)}},J=[[768,879],[1155,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1541],[1552,1562],[1564,1564],[1611,1631],[1648,1648],[1750,1757],[1759,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2045,2045],[2070,2073],[2075,2083],[2085,2087],[2089,2093],[2137,2139],[2259,2306],[2362,2362],[2364,2364],[2369,2376],[2381,2381],[2385,2391],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2558,2558],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2641,2641],[2672,2673],[2677,2677],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2810,2815],[2817,2817],[2876,2876],[2879,2879],[2881,2884],[2893,2893],[2902,2902],[2914,2915],[2946,2946],[3008,3008],[3021,3021],[3072,3072],[3076,3076],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3170,3171],[3201,3201],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3328,3329],[3387,3388],[3393,3396],[3405,3405],[3426,3427],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3981,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4151],[4153,4154],[4157,4158],[4184,4185],[4190,4192],[4209,4212],[4226,4226],[4229,4230],[4237,4237],[4253,4253],[4448,4607],[4957,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6158],[6277,6278],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6683,6683],[6742,6742],[6744,6750],[6752,6752],[6754,6754],[6757,6764],[6771,6780],[6783,6783],[6832,6846],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7040,7041],[7074,7077],[7080,7081],[7083,7085],[7142,7142],[7144,7145],[7149,7149],[7151,7153],[7212,7219],[7222,7223],[7376,7378],[7380,7392],[7394,7400],[7405,7405],[7412,7412],[7416,7417],[7616,7673],[7675,7679],[8203,8207],[8234,8238],[8288,8292],[8294,8303],[8400,8432],[11503,11505],[11647,11647],[11744,11775],[12330,12333],[12441,12442],[42607,42610],[42612,42621],[42654,42655],[42736,42737],[43010,43010],[43014,43014],[43019,43019],[43045,43046],[43204,43205],[43232,43249],[43263,43263],[43302,43309],[43335,43345],[43392,43394],[43443,43443],[43446,43449],[43452,43453],[43493,43493],[43561,43566],[43569,43570],[43573,43574],[43587,43587],[43596,43596],[43644,43644],[43696,43696],[43698,43700],[43703,43704],[43710,43711],[43713,43713],[43756,43757],[43766,43766],[44005,44005],[44008,44008],[44013,44013],[64286,64286],[65024,65039],[65056,65071],[65279,65279],[65529,65531]],He=[[66045,66045],[66272,66272],[66422,66426],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[68325,68326],[68900,68903],[69446,69456],[69633,69633],[69688,69702],[69759,69761],[69811,69814],[69817,69818],[69821,69821],[69837,69837],[69888,69890],[69927,69931],[69933,69940],[70003,70003],[70016,70017],[70070,70078],[70089,70092],[70191,70193],[70196,70196],[70198,70199],[70206,70206],[70367,70367],[70371,70378],[70400,70401],[70459,70460],[70464,70464],[70502,70508],[70512,70516],[70712,70719],[70722,70724],[70726,70726],[70750,70750],[70835,70840],[70842,70842],[70847,70848],[70850,70851],[71090,71093],[71100,71101],[71103,71104],[71132,71133],[71219,71226],[71229,71229],[71231,71232],[71339,71339],[71341,71341],[71344,71349],[71351,71351],[71453,71455],[71458,71461],[71463,71467],[71727,71735],[71737,71738],[72148,72151],[72154,72155],[72160,72160],[72193,72202],[72243,72248],[72251,72254],[72263,72263],[72273,72278],[72281,72283],[72330,72342],[72344,72345],[72752,72758],[72760,72765],[72767,72767],[72850,72871],[72874,72880],[72882,72883],[72885,72886],[73009,73014],[73018,73018],[73020,73021],[73023,73029],[73031,73031],[73104,73105],[73109,73109],[73111,73111],[73459,73460],[78896,78904],[92912,92916],[92976,92982],[94031,94031],[94095,94098],[113821,113822],[113824,113827],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[121344,121398],[121403,121452],[121461,121461],[121476,121476],[121499,121503],[121505,121519],[122880,122886],[122888,122904],[122907,122913],[122915,122916],[122918,122922],[123184,123190],[123628,123631],[125136,125142],[125252,125258],[917505,917505],[917536,917631],[917760,917999]],K=[[4352,4447],[8986,8987],[9001,9002],[9193,9196],[9200,9200],[9203,9203],[9725,9726],[9748,9749],[9800,9811],[9855,9855],[9875,9875],[9889,9889],[9898,9899],[9917,9918],[9924,9925],[9934,9934],[9940,9940],[9962,9962],[9970,9971],[9973,9973],[9978,9978],[9981,9981],[9989,9989],[9994,9995],[10024,10024],[10060,10060],[10062,10062],[10067,10069],[10071,10071],[10133,10135],[10160,10160],[10175,10175],[11035,11036],[11088,11088],[11093,11093],[11904,11929],[11931,12019],[12032,12245],[12272,12283],[12288,12329],[12334,12350],[12353,12438],[12443,12543],[12549,12591],[12593,12686],[12688,12730],[12736,12771],[12784,12830],[12832,12871],[12880,19903],[19968,42124],[42128,42182],[43360,43388],[44032,55203],[63744,64255],[65040,65049],[65072,65106],[65108,65126],[65128,65131],[65281,65376],[65504,65510]],Ie=[[94176,94179],[94208,100343],[100352,101106],[110592,110878],[110928,110930],[110948,110951],[110960,111355],[126980,126980],[127183,127183],[127374,127374],[127377,127386],[127488,127490],[127504,127547],[127552,127560],[127568,127569],[127584,127589],[127744,127776],[127789,127797],[127799,127868],[127870,127891],[127904,127946],[127951,127955],[127968,127984],[127988,127988],[127992,128062],[128064,128064],[128066,128252],[128255,128317],[128331,128334],[128336,128359],[128378,128378],[128405,128406],[128420,128420],[128507,128591],[128640,128709],[128716,128716],[128720,128722],[128725,128725],[128747,128748],[128756,128762],[128992,129003],[129293,129393],[129395,129398],[129402,129442],[129445,129450],[129454,129482],[129485,129535],[129648,129651],[129656,129658],[129664,129666],[129680,129685],[131072,196605],[196608,262141]],k;function re(e,t){let s=0,l=t.length-1,u;if(e<t[0][0]||e>t[l][1])return!1;for(;l>=s;)if(u=s+l>>1,e>t[u][1])s=u+1;else if(e<t[u][0])l=u-1;else return!0;return!1}var $e=class{constructor(){if(this.version="11",!k){k=new Uint8Array(65536),k.fill(1),k[0]=0,k.fill(0,1,32),k.fill(0,127,160);for(let e=0;e<J.length;++e)k.fill(0,J[e][0],J[e][1]+1);for(let e=0;e<K.length;++e)k.fill(2,K[e][0],K[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?k[e]:re(e,He)?0:re(e,Ie)?2:1}charProperties(e,t){let s=this.wcwidth(e),l=s===0&&t!==0;if(l){let u=z.extractWidth(t);u===0?l=!1:u>s&&(s=u)}return z.createPropertyValue(0,s,l)}},qe=class{activate(e){e.unicode.register(new $e)}dispose(){}};export{qe as Unicode11Addon};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var L=class{constructor(s,e,t,r={}){this._terminal=s,this._regex=e,this._handler=t,this._options=r}provideLinks(s,e){let t=x.computeLink(s,this._regex,this._terminal,this._handler);e(this._addCallbacks(t))}_addCallbacks(s){return s.map(e=>(e.leave=this._options.leave,e.hover=(t,r)=>{if(this._options.hover){let{range:l}=e;this._options.hover(t,r,l)}},e))}};function m(s){try{let e=new URL(s),t=e.password&&e.username?`${e.protocol}//${e.username}:${e.password}@${e.host}`:e.username?`${e.protocol}//${e.username}@${e.host}`:`${e.protocol}//${e.host}`;return s.toLocaleLowerCase().startsWith(t.toLocaleLowerCase())}catch{return!1}}var x=class d{static computeLink(e,t,r,l){let h=new RegExp(t.source,(t.flags||"")+"g"),[i,n]=d._getWindowedLineStrings(e-1,r),a=i.join(""),o,c=[];for(;o=h.exec(a);){let p=o[0];if(!m(p))continue;let[u,g]=d._mapStrIdx(r,n,0,o.index),[f,_]=d._mapStrIdx(r,u,g,p.length);if(u===-1||g===-1||f===-1||_===-1)continue;let v={start:{x:g+1,y:u+1},end:{x:_,y:f+1}};c.push({range:v,text:p,activate:l})}return c}static _getWindowedLineStrings(e,t){let r,l=e,h=e,i=0,n="",a=[];if(r=t.buffer.active.getLine(e)){let o=r.translateToString(!0);if(r.isWrapped&&o[0]!==" "){for(i=0;(r=t.buffer.active.getLine(--l))&&i<2048&&(n=r.translateToString(!0),i+=n.length,a.push(n),!(!r.isWrapped||n.indexOf(" ")!==-1)););a.reverse()}for(a.push(o),i=0;(r=t.buffer.active.getLine(++h))&&r.isWrapped&&i<2048&&(n=r.translateToString(!0),i+=n.length,a.push(n),n.indexOf(" ")===-1););}return[a,l]}static _mapStrIdx(e,t,r,l){let h=e.buffer.active,i=h.getNullCell(),n=r;for(;l;){let a=h.getLine(t);if(!a)return[-1,-1];for(let o=n;o<a.length;++o){a.getCell(o,i);let c=i.getChars();if(i.getWidth()&&(l-=c.length||1,o===a.length-1&&c==="")){let p=h.getLine(t+1);p&&p.isWrapped&&(p.getCell(0,i),i.getWidth()===2&&(l+=1))}if(l<0)return[t,o]}t++,n=0}return[t,n]}},w=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function k(s,e){let t=window.open();if(t){try{t.opener=null}catch{}t.location.href=e}else console.warn("Opening link blocked as opener could not be cleared")}var b=class{constructor(s=k,e={}){this._handler=s,this._options=e}activate(s){this._terminal=s;let e=this._options,t=e.urlRegex||w;this._linkProvider=this._terminal.registerLinkProvider(new L(this._terminal,t,this._handler,e))}dispose(){this._linkProvider?.dispose()}};export{b as WebLinksAddon};
|