@xrkseek/harness 0.5.9 → 0.5.11
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/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +4 -3
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +25 -60
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/llm-retry.d.ts +0 -2
- package/node_modules/@xrkseek/core-agent-loop/dist/llm-retry.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/llm-retry.js +7 -3
- package/node_modules/@xrkseek/core-agent-loop/dist/llm-retry.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/settle-batch.d.ts +16 -3
- package/node_modules/@xrkseek/core-agent-loop/dist/settle-batch.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/settle-batch.js +24 -8
- package/node_modules/@xrkseek/core-agent-loop/dist/settle-batch.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +27 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/core-tools/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/index.js +1 -1
- package/node_modules/@xrkseek/core-tools/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.d.ts +9 -0
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js +45 -12
- package/node_modules/@xrkseek/core-tools/dist/subagent-prompt.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.d.ts +9 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.js +21 -14
- package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/paths.d.ts +11 -0
- package/node_modules/@xrkseek/exec-fs/dist/paths.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/paths.js +40 -0
- package/node_modules/@xrkseek/exec-fs/dist/paths.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/exec-memory/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/index.js +2 -2
- package/node_modules/@xrkseek/exec-memory/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/store.d.ts +18 -0
- package/node_modules/@xrkseek/exec-memory/dist/store.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/store.js +108 -7
- package/node_modules/@xrkseek/exec-memory/dist/store.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/tools.js +17 -1
- package/node_modules/@xrkseek/exec-memory/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts +2 -0
- package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/write-path.js +28 -3
- package/node_modules/@xrkseek/exec-memory/dist/write-path.js.map +1 -1
- package/node_modules/@xrkseek/exec-sandbox/dist/resolve.d.ts +7 -4
- package/node_modules/@xrkseek/exec-sandbox/dist/resolve.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-sandbox/dist/resolve.js +4 -0
- package/node_modules/@xrkseek/exec-sandbox/dist/resolve.js.map +1 -1
- package/node_modules/@xrkseek/exec-sandbox/dist/service.d.ts +7 -0
- package/node_modules/@xrkseek/exec-sandbox/dist/service.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-sandbox/dist/service.js +18 -8
- package/node_modules/@xrkseek/exec-sandbox/dist/service.js.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/tools.d.ts +1 -1
- package/node_modules/@xrkseek/exec-web/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-web/dist/tools.js +10 -0
- package/node_modules/@xrkseek/exec-web/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/llm/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/llm/dist/index.js +8 -2
- package/node_modules/@xrkseek/llm/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +16 -0
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +13 -2
- package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-server/dist/preset.js +4 -1
- package/node_modules/@xrkseek/preset-server/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +5 -0
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.js +5 -0
- package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.js +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/model-route.d.ts +5 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/model-route.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/model-route.js +16 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/model-route.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts +32 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js +87 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js +29 -2
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts +102 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js +495 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-store.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.d.ts +12 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js +141 -0
- package/node_modules/@xrkseek/server-face/dist/agent-roster-tools.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.d.ts +46 -0
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js +150 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-roles.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-tasks.d.ts +5 -0
- package/node_modules/@xrkseek/server-face/dist/agent-team-tasks.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/agent-team-tasks.js +24 -0
- package/node_modules/@xrkseek/server-face/dist/agent-team-tasks.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/capture-member-playbook.d.ts +6 -0
- package/node_modules/@xrkseek/server-face/dist/capture-member-playbook.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/capture-member-playbook.js +43 -0
- package/node_modules/@xrkseek/server-face/dist/capture-member-playbook.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/context.d.ts +21 -4
- package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/dispatch.js +19 -0
- package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/fork-cut.d.ts +3 -2
- package/node_modules/@xrkseek/server-face/dist/fork-cut.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/fork-cut.js +58 -20
- package/node_modules/@xrkseek/server-face/dist/fork-cut.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/job.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/job.js +1 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/job.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js +88 -18
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/subagent.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js +20 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts +11 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/team.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/team.js +268 -0
- package/node_modules/@xrkseek/server-face/dist/handlers/team.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +6 -2
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +5 -1
- package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts +17 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js +46 -1
- package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/presence-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/presence-tools.js +15 -6
- package/node_modules/@xrkseek/server-face/dist/presence-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/presets-catalog.d.ts +16 -0
- package/node_modules/@xrkseek/server-face/dist/presets-catalog.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/presets-catalog.js +5 -0
- package/node_modules/@xrkseek/server-face/dist/presets-catalog.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.d.ts +8 -2
- package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js +14 -12
- package/node_modules/@xrkseek/server-face/dist/projections/units/turn-outline.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/ralph-tool.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/ralph-tool.js +15 -12
- package/node_modules/@xrkseek/server-face/dist/ralph-tool.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +96 -14
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-cwd.d.ts +12 -0
- package/node_modules/@xrkseek/server-face/dist/session-cwd.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-cwd.js +14 -0
- package/node_modules/@xrkseek/server-face/dist/session-cwd.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts +2 -0
- package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-model-store.js +14 -0
- package/node_modules/@xrkseek/server-face/dist/session-model-store.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +16 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.js +47 -6
- package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-thread-publish.d.ts +17 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-publish.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-publish.js +34 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-publish.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-store.d.ts +38 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-store.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-store.js +207 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-store.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts +12 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js +223 -0
- package/node_modules/@xrkseek/server-face/dist/session-thread-tools.js.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/settings-agent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-agent-tools.js +13 -1
- package/node_modules/@xrkseek/server-face/dist/settings-agent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.js +10 -11
- package/node_modules/@xrkseek/server-face/dist/settings-document.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +17 -10
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-registry.d.ts +46 -0
- package/node_modules/@xrkseek/server-face/dist/subagent-registry.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-registry.js +111 -8
- package/node_modules/@xrkseek/server-face/dist/subagent-registry.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +21 -0
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +422 -85
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/types.d.ts +9 -0
- package/node_modules/@xrkseek/server-face/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/paths.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/wire/paths.js +2 -0
- package/node_modules/@xrkseek/server-face/dist/wire/paths.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-face.js +7 -0
- package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts +5 -1
- package/node_modules/@xrkseek/server-host/dist/agent-cache.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/agent-cache.js +29 -3
- package/node_modules/@xrkseek/server-host/dist/agent-cache.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts +21 -0
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +108 -21
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/static.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/static.js +45 -5
- package/node_modules/@xrkseek/server-http/dist/static.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts +8 -0
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js +6 -2
- package/node_modules/@xrkseek/workspace/dist/ecosystem-instructions.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.d.ts +16 -0
- package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.js +17 -8
- package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { canvasWorkspaceIdForSession } from "./canvas-tools.js";
|
|
2
|
+
import { isAgentTeamSpawnRole } from "./agent-team-roles.js";
|
|
3
|
+
import { formatRosterCatalog, parseMemberAppearance, parseMemberToolPolicy, parseRosterScope, rosterPublicFields, } from "./agent-roster-store.js";
|
|
4
|
+
import { captureSessionPlaybook } from "./capture-member-playbook.js";
|
|
5
|
+
function registerTool(tools, tool) {
|
|
6
|
+
if (tools.get(tool.name))
|
|
7
|
+
return;
|
|
8
|
+
tools.register(tool);
|
|
9
|
+
}
|
|
10
|
+
function readArgs(args) {
|
|
11
|
+
if (!args || typeof args !== "object" || Array.isArray(args))
|
|
12
|
+
return {};
|
|
13
|
+
return args;
|
|
14
|
+
}
|
|
15
|
+
/** Register team_list / team_save. Spawn stays `subagent` + member_id. */
|
|
16
|
+
export function bindAgentRosterTools(tools, options) {
|
|
17
|
+
const { runtime, sessionId } = options;
|
|
18
|
+
const ws = () => canvasWorkspaceIdForSession(runtime, sessionId);
|
|
19
|
+
registerTool(tools, {
|
|
20
|
+
name: "team_list",
|
|
21
|
+
description: "List Agent Team members (global + this workspace). A member is the child's " +
|
|
22
|
+
"tools, inject, and playbook — the same three surfaces the parent edits via " +
|
|
23
|
+
"preset / .xrk / the user message. Short catalog only. Spawn with subagent member_id.",
|
|
24
|
+
parameters: { type: "object", properties: {}, additionalProperties: false },
|
|
25
|
+
isConcurrencySafe: () => true,
|
|
26
|
+
presentCall: () => ({
|
|
27
|
+
card: "generic",
|
|
28
|
+
title: "team_list",
|
|
29
|
+
kind: "search",
|
|
30
|
+
rawInput: {},
|
|
31
|
+
}),
|
|
32
|
+
dynamicSchema: () => ({
|
|
33
|
+
description: "List Agent Team members. Spawn with subagent member_id.\n" +
|
|
34
|
+
formatRosterCatalog(runtime.agentRoster.listVisible(ws())),
|
|
35
|
+
}),
|
|
36
|
+
execute: async () => {
|
|
37
|
+
const workspaceId = ws();
|
|
38
|
+
const members = runtime.agentRoster
|
|
39
|
+
.listVisible(workspaceId)
|
|
40
|
+
.map(rosterPublicFields);
|
|
41
|
+
return { content: JSON.stringify({ workspaceId, members }) };
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
registerTool(tools, {
|
|
45
|
+
name: "team_save",
|
|
46
|
+
description: "Publish a child profile onto Agent Team (tools + inject + playbook). " +
|
|
47
|
+
"Use after a repeatable process (release, review, deploy) so later `subagent member_id` " +
|
|
48
|
+
"does not rediscover it. from_session=true fills name/playbook from this chat. " +
|
|
49
|
+
"scope global|workspace. inject minimal (skip home persona + skill catalog) | subagent. " +
|
|
50
|
+
"tools {mode:allow|deny, names:[...]} weakens the parent preset only. " +
|
|
51
|
+
"role worker|researcher|reviewer|lead|default is the deny template under the playbook.",
|
|
52
|
+
parameters: {
|
|
53
|
+
type: "object",
|
|
54
|
+
properties: {
|
|
55
|
+
id: { type: "string" },
|
|
56
|
+
name: { type: "string" },
|
|
57
|
+
playbook: {
|
|
58
|
+
type: "string",
|
|
59
|
+
description: "Standalone instructions a later child can run without this chat.",
|
|
60
|
+
},
|
|
61
|
+
role: { type: "string" },
|
|
62
|
+
from_session: {
|
|
63
|
+
type: "boolean",
|
|
64
|
+
description: "If true, mint name/playbook from this session's user+assistant log.",
|
|
65
|
+
},
|
|
66
|
+
shape: { type: "string" },
|
|
67
|
+
color: { type: "string" },
|
|
68
|
+
brief: { type: "string" },
|
|
69
|
+
scope: {
|
|
70
|
+
type: "string",
|
|
71
|
+
description: "global | workspace (default workspace)",
|
|
72
|
+
},
|
|
73
|
+
inject: {
|
|
74
|
+
type: "string",
|
|
75
|
+
description: "minimal (default, skip home persona + skill catalog) | subagent",
|
|
76
|
+
},
|
|
77
|
+
tools: {
|
|
78
|
+
type: "object",
|
|
79
|
+
description: "Weaken-only tool policy. {mode:'allow'|'deny', names:['bash','read']}.",
|
|
80
|
+
properties: {
|
|
81
|
+
mode: { type: "string" },
|
|
82
|
+
names: { type: "array", items: { type: "string" } },
|
|
83
|
+
},
|
|
84
|
+
additionalProperties: false,
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
additionalProperties: false,
|
|
88
|
+
},
|
|
89
|
+
presentCall: (args) => ({
|
|
90
|
+
card: "generic",
|
|
91
|
+
title: "team_save",
|
|
92
|
+
kind: "execute",
|
|
93
|
+
rawInput: args,
|
|
94
|
+
}),
|
|
95
|
+
execute: async (args) => {
|
|
96
|
+
const a = readArgs(args);
|
|
97
|
+
const captured = a.from_session === true
|
|
98
|
+
? captureSessionPlaybook(runtime, sessionId)
|
|
99
|
+
: undefined;
|
|
100
|
+
const name = String(a.name ?? "").trim() || captured?.name || "";
|
|
101
|
+
const playbook = String(a.playbook ?? "").trim() || captured?.playbook || "";
|
|
102
|
+
const roleRaw = typeof a.role === "string" ? a.role : "worker";
|
|
103
|
+
const canvasId = ws();
|
|
104
|
+
const scope = parseRosterScope(a.scope);
|
|
105
|
+
const tools = parseMemberToolPolicy(a.tools);
|
|
106
|
+
const appearancePatch = {
|
|
107
|
+
...(typeof a.shape === "string" ? { shape: a.shape } : {}),
|
|
108
|
+
...(typeof a.color === "string" ? { color: a.color } : {}),
|
|
109
|
+
};
|
|
110
|
+
const member = runtime.agentRoster.upsertAtScope(canvasId, scope, {
|
|
111
|
+
name,
|
|
112
|
+
playbook,
|
|
113
|
+
role: isAgentTeamSpawnRole(roleRaw) ? roleRaw : "worker",
|
|
114
|
+
...(Object.keys(appearancePatch).length > 0
|
|
115
|
+
? {
|
|
116
|
+
appearance: parseMemberAppearance(appearancePatch, {
|
|
117
|
+
shape: "blob",
|
|
118
|
+
color: "cream",
|
|
119
|
+
}),
|
|
120
|
+
}
|
|
121
|
+
: {}),
|
|
122
|
+
...(typeof a.brief === "string" ? { brief: a.brief } : {}),
|
|
123
|
+
...(a.inject === "subagent" || a.inject === "minimal"
|
|
124
|
+
? { inject: a.inject }
|
|
125
|
+
: {}),
|
|
126
|
+
...(tools ? { tools } : {}),
|
|
127
|
+
...(typeof a.id === "string" ? { id: a.id } : {}),
|
|
128
|
+
});
|
|
129
|
+
if (!member) {
|
|
130
|
+
return { content: "team_save: name and playbook required", isError: true };
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
content: JSON.stringify({
|
|
134
|
+
workspaceId: scope === "global" ? "global" : canvasId,
|
|
135
|
+
member,
|
|
136
|
+
}),
|
|
137
|
+
};
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=agent-roster-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-roster-tools.js","sourceRoot":"","sources":["../src/agent-roster-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Spawn-time role templates for Agent Teams (Codex agent_type · Hermes leaf/orchestrator).
|
|
3
3
|
* Graph `delegator|worker|observer` stays a UI label; these prefix the child prompt.
|
|
4
4
|
*/
|
|
5
|
+
import { type SessionEvent } from "@xrkseek/protocol";
|
|
5
6
|
export type AgentTeamSpawnRole = "default" | "worker" | "researcher" | "reviewer" | "lead";
|
|
6
7
|
export declare const AGENT_TEAM_SPAWN_ROLES: readonly AgentTeamSpawnRole[];
|
|
7
8
|
export declare function isAgentTeamSpawnRole(value: unknown): value is AgentTeamSpawnRole;
|
|
@@ -9,5 +10,50 @@ export declare function isAgentTeamSpawnRole(value: unknown): value is AgentTeam
|
|
|
9
10
|
export declare function parseAgentTeamSpawnRole(value: unknown): AgentTeamSpawnRole | undefined;
|
|
10
11
|
/** Prepend the role reminder when non-empty. */
|
|
11
12
|
export declare function applySpawnRoleReminder(prompt: string, role: AgentTeamSpawnRole | undefined): string;
|
|
13
|
+
export interface SubagentSpawnPreambleInput {
|
|
14
|
+
readonly prompt: string;
|
|
15
|
+
readonly parentSessionId: string;
|
|
16
|
+
readonly childSessionId: string;
|
|
17
|
+
readonly mode: "one-shot" | "continuable";
|
|
18
|
+
readonly label: string;
|
|
19
|
+
readonly role?: AgentTeamSpawnRole;
|
|
20
|
+
readonly inheritContext: boolean;
|
|
21
|
+
readonly cwd: string;
|
|
22
|
+
readonly isolatedWorktree: boolean;
|
|
23
|
+
/** Bounded root-evidence block (see {@link rootUserAuthorizationBlock}). */
|
|
24
|
+
readonly userAuthorization?: string;
|
|
25
|
+
/** Named 干员 this child was spawned as. */
|
|
26
|
+
readonly memberId?: string;
|
|
27
|
+
/** Inject thickness from the 干员 record. */
|
|
28
|
+
readonly inject?: "subagent" | "minimal";
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Identity block every in-process child sees before the parent-written task.
|
|
32
|
+
* Covers parent/child session ids, mode, role, workspace cwd, and whether
|
|
33
|
+
* the parent transcript was seeded — so the child does not guess from AGENTS.md.
|
|
34
|
+
*/
|
|
35
|
+
export declare function applySubagentSpawnPreamble(input: SubagentSpawnPreambleInput): string;
|
|
12
36
|
export declare function listSpawnRoleIds(): readonly AgentTeamSpawnRole[];
|
|
37
|
+
/** Tools denied for one role (empty for default / lead). */
|
|
38
|
+
export declare function roleDeniedTools(role: AgentTeamSpawnRole | undefined): readonly string[];
|
|
39
|
+
/**
|
|
40
|
+
* The human's own recent asks from the parent conversation — the child's only
|
|
41
|
+
* view of what the user actually authorized.
|
|
42
|
+
*
|
|
43
|
+
* Codex does this in `control/user_authorization.rs` (bounded retained root
|
|
44
|
+
* evidence for workers, including after compaction). A child spawned with
|
|
45
|
+
* `inherit_context:false` otherwise sees only the parent's paraphrase of the
|
|
46
|
+
* request, which is how "the subagent did something the user never asked for"
|
|
47
|
+
* happens. These are evidence, not instructions: the parent's task text still
|
|
48
|
+
* wins on conflict.
|
|
49
|
+
*
|
|
50
|
+
* Only real human messages count (`isHumanUserMessageSource` filters out
|
|
51
|
+
* durable context injects such as the skill catalog), and only ones newer than
|
|
52
|
+
* a seeded fork (a forked child already carries them in its own transcript).
|
|
53
|
+
*/
|
|
54
|
+
export declare function rootUserAuthorizationBlock(input: {
|
|
55
|
+
readonly parentEvents: readonly SessionEvent[];
|
|
56
|
+
/** Seed cut of a forked child: anything before it is already in its log. */
|
|
57
|
+
readonly sinceEventCount?: number;
|
|
58
|
+
}): string | undefined;
|
|
13
59
|
//# sourceMappingURL=agent-team-roles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-team-roles.d.ts","sourceRoot":"","sources":["../src/agent-team-roles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,MAAM,CAAC;AAEX,eAAO,MAAM,sBAAsB,EAAE,SAAS,kBAAkB,EAM/D,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAQ7B;
|
|
1
|
+
{"version":3,"file":"agent-team-roles.d.ts","sourceRoot":"","sources":["../src/agent-team-roles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,MAAM,CAAC;AAEX,eAAO,MAAM,sBAAsB,EAAE,SAAS,kBAAkB,EAM/D,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAQ7B;AA4FD,qFAAqF;AACrF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,kBAAkB,GAAG,SAAS,CAOhC;AAED,gDAAgD;AAChD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,kBAAkB,GAAG,SAAS,GACnC,MAAM,CAMR;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAwCR;AAED,wBAAgB,gBAAgB,IAAI,SAAS,kBAAkB,EAAE,CAEhE;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,GAAG,SAAS,GACnC,SAAS,MAAM,EAAE,CAGnB;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/C,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,GAAG,MAAM,GAAG,SAAS,CAwBrB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Spawn-time role templates for Agent Teams (Codex agent_type · Hermes leaf/orchestrator).
|
|
3
3
|
* Graph `delegator|worker|observer` stays a UI label; these prefix the child prompt.
|
|
4
4
|
*/
|
|
5
|
+
import { flattenText, isHumanUserMessageSource, } from "@xrkseek/protocol";
|
|
5
6
|
export const AGENT_TEAM_SPAWN_ROLES = [
|
|
6
7
|
"default",
|
|
7
8
|
"worker",
|
|
@@ -23,15 +24,65 @@ const TEMPLATES = {
|
|
|
23
24
|
},
|
|
24
25
|
worker: {
|
|
25
26
|
id: "worker",
|
|
26
|
-
reminder: "ROLE: worker. Execute the assigned task precisely. Prefer concrete edits and evidence over planning. Ask only when blocked."
|
|
27
|
+
reminder: "ROLE: worker. Execute the assigned task precisely. Prefer concrete edits and evidence over planning. Ask only when blocked. " +
|
|
28
|
+
"You are not the only agent editing this codebase: stay inside the scope you were given and never revert another agent's or the user's changes.",
|
|
29
|
+
// A worker implements; spawning more subagents is the lead's job.
|
|
30
|
+
deniedTools: ["subagent", "ralph", "team_graph"],
|
|
27
31
|
},
|
|
28
32
|
researcher: {
|
|
29
33
|
id: "researcher",
|
|
30
34
|
reminder: "ROLE: researcher. Gather facts with read/search tools. Prefer citations (paths · symbols · quotes). Do not make durable edits unless the task explicitly requires them.",
|
|
35
|
+
// Read-only by construction: no edits, no shell, no delegation.
|
|
36
|
+
deniedTools: [
|
|
37
|
+
"apply_edit",
|
|
38
|
+
"apply_patch",
|
|
39
|
+
"write_file",
|
|
40
|
+
"bash",
|
|
41
|
+
"terminal_open",
|
|
42
|
+
"terminal_send",
|
|
43
|
+
"terminal_read",
|
|
44
|
+
"terminal_list",
|
|
45
|
+
"terminal_close",
|
|
46
|
+
"terminal_signal",
|
|
47
|
+
"subagent",
|
|
48
|
+
"ralph",
|
|
49
|
+
"team_graph",
|
|
50
|
+
"send_message",
|
|
51
|
+
"followup_task",
|
|
52
|
+
"interrupt_agent",
|
|
53
|
+
"wait_agent",
|
|
54
|
+
"list_agents",
|
|
55
|
+
"analytics",
|
|
56
|
+
],
|
|
31
57
|
},
|
|
32
58
|
reviewer: {
|
|
33
59
|
id: "reviewer",
|
|
34
60
|
reminder: "ROLE: reviewer. Critique risks, regressions, and missing tests. Prefer findings with severity and file references. Do not implement fixes unless asked.",
|
|
61
|
+
// Review must never mutate: no writes, no shell, no network (offline
|
|
62
|
+
// evidence only), no delegation, no self-spawn.
|
|
63
|
+
deniedTools: [
|
|
64
|
+
"apply_edit",
|
|
65
|
+
"apply_patch",
|
|
66
|
+
"write_file",
|
|
67
|
+
"bash",
|
|
68
|
+
"terminal_open",
|
|
69
|
+
"terminal_send",
|
|
70
|
+
"terminal_read",
|
|
71
|
+
"terminal_list",
|
|
72
|
+
"terminal_close",
|
|
73
|
+
"terminal_signal",
|
|
74
|
+
"web_search",
|
|
75
|
+
"web_fetch",
|
|
76
|
+
"subagent",
|
|
77
|
+
"ralph",
|
|
78
|
+
"team_graph",
|
|
79
|
+
"send_message",
|
|
80
|
+
"followup_task",
|
|
81
|
+
"interrupt_agent",
|
|
82
|
+
"wait_agent",
|
|
83
|
+
"list_agents",
|
|
84
|
+
"analytics",
|
|
85
|
+
],
|
|
35
86
|
},
|
|
36
87
|
lead: {
|
|
37
88
|
id: "lead",
|
|
@@ -61,7 +112,105 @@ export function applySpawnRoleReminder(prompt, role) {
|
|
|
61
112
|
const body = prompt.trim();
|
|
62
113
|
return body ? `${reminder}\n\n${body}` : reminder;
|
|
63
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Identity block every in-process child sees before the parent-written task.
|
|
117
|
+
* Covers parent/child session ids, mode, role, workspace cwd, and whether
|
|
118
|
+
* the parent transcript was seeded — so the child does not guess from AGENTS.md.
|
|
119
|
+
*/
|
|
120
|
+
export function applySubagentSpawnPreamble(input) {
|
|
121
|
+
const role = input.role && input.role !== "default" ? input.role : "default";
|
|
122
|
+
const modeLine = input.mode === "one-shot"
|
|
123
|
+
? "one-shot (no later human follow-ups on this session)"
|
|
124
|
+
: "continuable (parent may send followup_task / send_message)";
|
|
125
|
+
const inheritLine = input.inheritContext
|
|
126
|
+
? "yes — seeded completed parent turns only (the parent's open turn is not included)"
|
|
127
|
+
: "no — you cannot see the parent transcript. Do not invent parent state.";
|
|
128
|
+
const workspaceLine = input.isolatedWorktree
|
|
129
|
+
? "isolated git worktree (not the parent's checkout). Follow the worktree note in the task."
|
|
130
|
+
: "same as the parent session. File tools and git run here.";
|
|
131
|
+
const header = [
|
|
132
|
+
"[subagent identity]",
|
|
133
|
+
`You are a delegated subagent of parent session \`${input.parentSessionId}\`. You are not that parent conversation.`,
|
|
134
|
+
`- parent_session_id: ${input.parentSessionId}`,
|
|
135
|
+
`- your_session_id: ${input.childSessionId}`,
|
|
136
|
+
`- mode: ${modeLine}`,
|
|
137
|
+
`- label: ${input.label.trim() || "subagent"}`,
|
|
138
|
+
`- role: ${role}`,
|
|
139
|
+
...(input.memberId
|
|
140
|
+
? [
|
|
141
|
+
`- member_id: ${input.memberId}`,
|
|
142
|
+
`- inject: ${input.inject === "subagent" ? "subagent" : "minimal"}`,
|
|
143
|
+
]
|
|
144
|
+
: []),
|
|
145
|
+
`- inherit_context: ${inheritLine}`,
|
|
146
|
+
`- workspace_cwd: ${input.cwd}`,
|
|
147
|
+
`- workspace: ${workspaceLine}`,
|
|
148
|
+
"Delivery: your FINAL assistant message is the result handed back to the parent as a tool result — it is the only thing the parent sees from you.",
|
|
149
|
+
"The parent cannot see your hidden reasoning, intermediate tool output, or this conversation. Anything the parent needs must be in your final message.",
|
|
150
|
+
"Write that message as a standalone deliverable: lead with the answer or the findings, then the evidence (paths · symbols · quotes · commands). Do not ask the user questions and do not end with 'let me know if you need more'.",
|
|
151
|
+
"Do not treat repository AGENTS.md / .agents/AGENTS.md as your persona or as proof of who you are, and do not defer small tasks back to the parent — you were spawned to do this work, not to plan it.",
|
|
152
|
+
"Never spawn your own subagents unless the task explicitly requires it.",
|
|
153
|
+
].join("\n");
|
|
154
|
+
const tasked = applySpawnRoleReminder(input.prompt, input.role);
|
|
155
|
+
const body = tasked.trim();
|
|
156
|
+
const authorization = input.userAuthorization?.trim();
|
|
157
|
+
const head = authorization ? `${header}\n\n${authorization}` : header;
|
|
158
|
+
return body ? `${head}\n\nTask:\n${body}` : head;
|
|
159
|
+
}
|
|
64
160
|
export function listSpawnRoleIds() {
|
|
65
161
|
return AGENT_TEAM_SPAWN_ROLES;
|
|
66
162
|
}
|
|
163
|
+
/** Tools denied for one role (empty for default / lead). */
|
|
164
|
+
export function roleDeniedTools(role) {
|
|
165
|
+
if (!role || role === "default" || role === "lead")
|
|
166
|
+
return [];
|
|
167
|
+
return TEMPLATES[role].deniedTools ?? [];
|
|
168
|
+
}
|
|
169
|
+
/** Bounded root-evidence ceiling (mirrors Codex `MAX_ROOT_MESSAGES`). */
|
|
170
|
+
const MAX_USER_AUTHORIZATION_MESSAGES = 4;
|
|
171
|
+
/** Per-message text cap, so one long paste cannot crowd out the rest. */
|
|
172
|
+
const MAX_USER_AUTHORIZATION_CHARS = 600;
|
|
173
|
+
/**
|
|
174
|
+
* The human's own recent asks from the parent conversation — the child's only
|
|
175
|
+
* view of what the user actually authorized.
|
|
176
|
+
*
|
|
177
|
+
* Codex does this in `control/user_authorization.rs` (bounded retained root
|
|
178
|
+
* evidence for workers, including after compaction). A child spawned with
|
|
179
|
+
* `inherit_context:false` otherwise sees only the parent's paraphrase of the
|
|
180
|
+
* request, which is how "the subagent did something the user never asked for"
|
|
181
|
+
* happens. These are evidence, not instructions: the parent's task text still
|
|
182
|
+
* wins on conflict.
|
|
183
|
+
*
|
|
184
|
+
* Only real human messages count (`isHumanUserMessageSource` filters out
|
|
185
|
+
* durable context injects such as the skill catalog), and only ones newer than
|
|
186
|
+
* a seeded fork (a forked child already carries them in its own transcript).
|
|
187
|
+
*/
|
|
188
|
+
export function rootUserAuthorizationBlock(input) {
|
|
189
|
+
const since = input.sinceEventCount ?? 0;
|
|
190
|
+
const out = [];
|
|
191
|
+
for (let i = input.parentEvents.length - 1; i >= since; i -= 1) {
|
|
192
|
+
const ev = input.parentEvents[i];
|
|
193
|
+
if (ev.type !== "user/message")
|
|
194
|
+
continue;
|
|
195
|
+
if (!isHumanUserMessageSource(ev.source))
|
|
196
|
+
continue;
|
|
197
|
+
const text = flattenText(ev.content).trim();
|
|
198
|
+
if (!text)
|
|
199
|
+
continue;
|
|
200
|
+
out.push(text.length > MAX_USER_AUTHORIZATION_CHARS
|
|
201
|
+
? `${text.slice(0, MAX_USER_AUTHORIZATION_CHARS)}…`
|
|
202
|
+
: text);
|
|
203
|
+
if (out.length >= MAX_USER_AUTHORIZATION_MESSAGES)
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
if (out.length === 0)
|
|
207
|
+
return undefined;
|
|
208
|
+
// Oldest first so the chronology reads naturally.
|
|
209
|
+
out.reverse();
|
|
210
|
+
return [
|
|
211
|
+
"[what the user asked for]",
|
|
212
|
+
"Recent messages from the human in the parent conversation, oldest first. Evidence of what was authorized — the task below still wins on conflict. Do not invent requests beyond these.",
|
|
213
|
+
...out.map((text) => `- ${text.replace(/\n+/g, " ")}`),
|
|
214
|
+
].join("\n");
|
|
215
|
+
}
|
|
67
216
|
//# sourceMappingURL=agent-team-roles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-team-roles.js","sourceRoot":"","sources":["../src/agent-team-roles.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"agent-team-roles.js","sourceRoot":"","sources":["../src/agent-team-roles.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,11 @@ export declare class AgentTeamTaskBoard {
|
|
|
40
40
|
/** Bind a child session after create (when id was known before spawn). */
|
|
41
41
|
bindChild(taskId: string, childSessionId: string, now?: number): AgentTeamTask | undefined;
|
|
42
42
|
findByChild(childSessionId: string): AgentTeamTask | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Forget the card bound to one child (a spawn that failed after `open`).
|
|
45
|
+
* Without this a dead child leaves an `in_progress` card on the board.
|
|
46
|
+
*/
|
|
47
|
+
forgetByChild(childSessionId: string): boolean;
|
|
43
48
|
/** Attach managed worktree lease fields to a Teams task. */
|
|
44
49
|
bindWorktree(taskId: string, worktree: {
|
|
45
50
|
readonly path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-team-tasks.d.ts","sourceRoot":"","sources":["../src/agent-team-tasks.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,aAAa,GACb,WAAW,GACX,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAUD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAC1D,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwD;IAChF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,WAAW,CAAC,EAAE,MAAM;IAKhC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9C,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE;IAOvD,kEAAkE;IAClE,IAAI,CAAC,KAAK,EAAE;QACV,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"agent-team-tasks.d.ts","sourceRoot":"","sources":["../src/agent-team-tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,17 @@ export class AgentTeamTaskBoard {
|
|
|
33
33
|
const id = (input.taskId?.trim() || newTaskId()).slice(0, 80);
|
|
34
34
|
const existing = this.tasks.get(id);
|
|
35
35
|
if (existing) {
|
|
36
|
+
const boundChild = existing.childSessionId;
|
|
37
|
+
const incomingChild = input.childSessionId?.trim();
|
|
38
|
+
if (boundChild &&
|
|
39
|
+
incomingChild &&
|
|
40
|
+
boundChild !== incomingChild) {
|
|
41
|
+
// A caller-supplied `task_id` that already belongs to another child:
|
|
42
|
+
// silently rebinding would hand the old child's later idle notice to
|
|
43
|
+
// the new one (`completeByChild` keys on childSessionId). Refuse and
|
|
44
|
+
// tell the caller to mint a fresh id instead.
|
|
45
|
+
throw new Error(`task_id ${id} is already bound to child ${boundChild}; use a different task_id for a new child`);
|
|
46
|
+
}
|
|
36
47
|
const next = {
|
|
37
48
|
...existing,
|
|
38
49
|
title: input.title.trim() || existing.title,
|
|
@@ -91,6 +102,19 @@ export class AgentTeamTaskBoard {
|
|
|
91
102
|
}
|
|
92
103
|
return undefined;
|
|
93
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Forget the card bound to one child (a spawn that failed after `open`).
|
|
107
|
+
* Without this a dead child leaves an `in_progress` card on the board.
|
|
108
|
+
*/
|
|
109
|
+
forgetByChild(childSessionId) {
|
|
110
|
+
const task = this.findByChild(childSessionId);
|
|
111
|
+
if (!task)
|
|
112
|
+
return false;
|
|
113
|
+
this.tasks.delete(task.id);
|
|
114
|
+
this.schemas.delete(task.id);
|
|
115
|
+
this.save();
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
94
118
|
/** Attach managed worktree lease fields to a Teams task. */
|
|
95
119
|
bindWorktree(taskId, worktree, now = Date.now()) {
|
|
96
120
|
const prev = this.tasks.get(taskId.trim());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-team-tasks.js","sourceRoot":"","sources":["../src/agent-team-tasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-team-tasks.js","sourceRoot":"","sources":["../src/agent-team-tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-member-playbook.d.ts","sourceRoot":"","sources":["../src/capture-member-playbook.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAehD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAqBhD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capture a reusable 干员 playbook from a session log.
|
|
3
|
+
*/
|
|
4
|
+
import { readSessionEvents } from "@xrkseek/core-session";
|
|
5
|
+
import { flattenText } from "@xrkseek/protocol";
|
|
6
|
+
import { lastAssistantBodyText } from "./adapt/subagent-notice.js";
|
|
7
|
+
import { MEMBER_NAME_MAX, MEMBER_PLAYBOOK_MAX } from "./agent-roster-store.js";
|
|
8
|
+
function lastUserTexts(events, limit = 3) {
|
|
9
|
+
const out = [];
|
|
10
|
+
for (let i = events.length - 1; i >= 0 && out.length < limit; i -= 1) {
|
|
11
|
+
const ev = events[i];
|
|
12
|
+
if (ev.type !== "user/message")
|
|
13
|
+
continue;
|
|
14
|
+
const text = flattenText(ev.content).trim();
|
|
15
|
+
if (text)
|
|
16
|
+
out.unshift(text);
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
export function captureSessionPlaybook(runtime, sessionId) {
|
|
21
|
+
const events = readSessionEvents(runtime.store, sessionId);
|
|
22
|
+
const users = lastUserTexts(events);
|
|
23
|
+
if (users.length === 0)
|
|
24
|
+
return undefined;
|
|
25
|
+
const goal = users[0].replace(/\s+/g, " ").trim();
|
|
26
|
+
const name = goal.slice(0, MEMBER_NAME_MAX) || "会话干员";
|
|
27
|
+
const assistant = lastAssistantBodyText(events).slice(0, 2_400);
|
|
28
|
+
const playbook = [
|
|
29
|
+
"You are a reusable workspace 干员 captured from a finished session.",
|
|
30
|
+
"Follow this workflow for the next TASK without rediscovering the process.",
|
|
31
|
+
"",
|
|
32
|
+
"GOAL (from the human):",
|
|
33
|
+
users.join("\n---\n"),
|
|
34
|
+
"",
|
|
35
|
+
...(assistant
|
|
36
|
+
? ["HOW YOU WORKED (evidence, truncated):", assistant]
|
|
37
|
+
: ["HOW YOU WORKED: not yet written; infer from GOAL and the TASK."]),
|
|
38
|
+
]
|
|
39
|
+
.join("\n")
|
|
40
|
+
.slice(0, MEMBER_PLAYBOOK_MAX);
|
|
41
|
+
return { name, playbook };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=capture-member-playbook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-member-playbook.js","sourceRoot":"","sources":["../src/capture-member-playbook.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,SAAS,aAAa,CAAC,MAA+B,EAAE,KAAK,GAAG,CAAC;IAC/D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACtB,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc;YAAE,SAAS;QACzC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAoB,EACpB,SAAiB;IAEjB,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC;IACtD,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG;QACf,mEAAmE;QACnE,2EAA2E;QAC3E,EAAE;QACF,wBAAwB;QACxB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QACrB,EAAE;QACF,GAAG,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,uCAAuC,EAAE,SAAS,CAAC;YACtD,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC;KACxE;SACE,IAAI,CAAC,IAAI,CAAC;SACV,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACjC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -47,6 +47,12 @@ export interface FaceDrain {
|
|
|
47
47
|
/** Wait until the session drain settles (Host hub.run). */
|
|
48
48
|
run?(sessionId: string): Promise<void>;
|
|
49
49
|
}
|
|
50
|
+
/** Client echo waiting to stamp the next human `user/message`. */
|
|
51
|
+
export interface FacePendingUserEcho {
|
|
52
|
+
readonly rpc: string;
|
|
53
|
+
/** True when the matching admit used `delivery: "steer"`. */
|
|
54
|
+
readonly steer: boolean;
|
|
55
|
+
}
|
|
50
56
|
export interface FaceRuntime {
|
|
51
57
|
/** Durable image blobs; omit → image prompt / session.attachment unavailable. */
|
|
52
58
|
readonly attachments?: AttachmentStore;
|
|
@@ -91,11 +97,11 @@ export interface FaceRuntime {
|
|
|
91
97
|
/** admitId → rpcId (reverse for queue / stamp) */
|
|
92
98
|
readonly admitRpcMap: Map<string, string>;
|
|
93
99
|
/**
|
|
94
|
-
* FIFO of client echo
|
|
95
|
-
*
|
|
96
|
-
*
|
|
100
|
+
* FIFO of client echo ids awaiting the next human `user/message` stamp.
|
|
101
|
+
* Consecutive steers drain onto one coalesced row (`rpcId` + `rpcIds`);
|
|
102
|
+
* queue items stay one-to-one with later human rows.
|
|
97
103
|
*/
|
|
98
|
-
readonly pendingUserRpc: Map<string,
|
|
104
|
+
readonly pendingUserRpc: Map<string, FacePendingUserEcho[]>;
|
|
99
105
|
readonly sessionModels: Map<string, {
|
|
100
106
|
provider: string;
|
|
101
107
|
model: string;
|
|
@@ -138,6 +144,10 @@ export interface FaceRuntime {
|
|
|
138
144
|
readonly goals: FaceGoalStore;
|
|
139
145
|
/** Workspace-scoped Canvas documents (`{XRK_HOME}/canvases/<workspaceId>/`). */
|
|
140
146
|
readonly canvases: FaceCanvasStore;
|
|
147
|
+
/** Workspace 主线 catalog + per-session 支线. */
|
|
148
|
+
readonly sessionThreads: import("./session-thread-store.js").FaceSessionThreadStore;
|
|
149
|
+
/** Workspace Agent Team 干员 roster. */
|
|
150
|
+
readonly agentRoster: import("./agent-roster-store.js").FaceAgentRosterStore;
|
|
141
151
|
/** Per-session Overview emotion-ball sticky state (`presence_set`). */
|
|
142
152
|
readonly presence: FacePresenceStore;
|
|
143
153
|
/** Session-scoped turn/step numbers for DSH wire events. */
|
|
@@ -294,6 +304,13 @@ export interface FaceRuntime {
|
|
|
294
304
|
publishJobs(sessionId: string, opts?: {
|
|
295
305
|
baseline?: boolean;
|
|
296
306
|
}): void;
|
|
307
|
+
/**
|
|
308
|
+
* Stop / cancel published `running:false` while the drain latch may still
|
|
309
|
+
* be joining. Status `delivery.turnActive` follows this bit so Overview
|
|
310
|
+
* presence matches the session list; compact still keys off `drain.isActive`.
|
|
311
|
+
*/
|
|
312
|
+
markTurnUiIdle(sessionId: string): void;
|
|
313
|
+
isTurnUiIdle(sessionId: string): boolean;
|
|
297
314
|
/**
|
|
298
315
|
* Copy parent log into a new session without inventing title/fallback rows
|
|
299
316
|
* (replay path).
|