@elizaos/plugin-agent-orchestrator 2.0.0-beta.1 → 2.0.3-beta.3
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 +6 -8
- package/README.md +102 -30
- package/dist/cjs/index.node.cjs +17539 -17068
- package/dist/cjs/index.node.js.map +71 -61
- package/dist/node/index.node.js +17545 -17070
- package/dist/node/index.node.js.map +71 -61
- package/dist/node/src/actions/common.d.ts +62 -4
- package/dist/node/src/actions/common.d.ts.map +1 -1
- package/dist/node/src/actions/elizaos-capability.d.ts +3 -0
- package/dist/node/src/actions/elizaos-capability.d.ts.map +1 -0
- package/dist/node/src/actions/sandbox-stub.d.ts +9 -5
- package/dist/node/src/actions/sandbox-stub.d.ts.map +1 -1
- package/dist/node/src/actions/tasks.d.ts +22 -2
- package/dist/node/src/actions/tasks.d.ts.map +1 -1
- package/dist/node/src/api/agent-routes.d.ts +1 -1
- package/dist/node/src/api/agent-routes.d.ts.map +1 -1
- package/dist/node/src/api/bridge-routes.d.ts +57 -19
- package/dist/node/src/api/bridge-routes.d.ts.map +1 -1
- package/dist/node/src/api/credential-prompt.d.ts +38 -0
- package/dist/node/src/api/credential-prompt.d.ts.map +1 -0
- package/dist/node/src/api/orchestrator-routes.d.ts +25 -0
- package/dist/node/src/api/orchestrator-routes.d.ts.map +1 -0
- package/dist/node/src/api/parent-context-routes.d.ts.map +1 -1
- package/dist/node/src/api/route-utils.d.ts +23 -7
- package/dist/node/src/api/route-utils.d.ts.map +1 -1
- package/dist/node/src/api/routes.d.ts +1 -2
- package/dist/node/src/api/routes.d.ts.map +1 -1
- package/dist/node/src/evaluators/sub-agent-completion.d.ts +3 -0
- package/dist/node/src/evaluators/sub-agent-completion.d.ts.map +1 -0
- package/dist/node/src/index.d.ts +33 -8
- package/dist/node/src/index.d.ts.map +1 -1
- package/dist/node/src/providers/action-examples.d.ts.map +1 -1
- package/dist/node/src/providers/active-sub-agents.d.ts.map +1 -1
- package/dist/node/src/providers/active-workspace-context.d.ts +2 -2
- package/dist/node/src/providers/active-workspace-context.d.ts.map +1 -1
- package/dist/node/src/providers/available-agents.d.ts.map +1 -1
- package/dist/node/src/providers/coding-session-changes.d.ts +17 -0
- package/dist/node/src/providers/coding-session-changes.d.ts.map +1 -0
- package/dist/node/src/register-routes.d.ts +21 -1
- package/dist/node/src/register-routes.d.ts.map +1 -1
- package/dist/node/src/services/acceptance-criteria.d.ts +84 -0
- package/dist/node/src/services/acceptance-criteria.d.ts.map +1 -0
- package/dist/node/src/services/acp-native-transport.d.ts +111 -0
- package/dist/node/src/services/acp-native-transport.d.ts.map +1 -0
- package/dist/node/src/services/acp-service.d.ts +169 -4
- package/dist/node/src/services/acp-service.d.ts.map +1 -1
- package/dist/node/src/services/active-session-forward.d.ts +31 -0
- package/dist/node/src/services/active-session-forward.d.ts.map +1 -0
- package/dist/node/src/services/agent-name-assignment.d.ts +50 -0
- package/dist/node/src/services/agent-name-assignment.d.ts.map +1 -0
- package/dist/node/src/services/ansi-utils.d.ts +1 -1
- package/dist/node/src/services/app-deploy-guidance.d.ts +52 -0
- package/dist/node/src/services/app-deploy-guidance.d.ts.map +1 -0
- package/dist/node/src/services/audit.d.ts +18 -0
- package/dist/node/src/services/audit.d.ts.map +1 -0
- package/dist/node/src/services/coding-account-selection.d.ts +79 -0
- package/dist/node/src/services/coding-account-selection.d.ts.map +1 -0
- package/dist/node/src/services/completion-envelope.d.ts +63 -0
- package/dist/node/src/services/completion-envelope.d.ts.map +1 -0
- package/dist/node/src/services/completion-evidence.d.ts +144 -0
- package/dist/node/src/services/completion-evidence.d.ts.map +1 -0
- package/dist/node/src/services/config-env.d.ts +11 -7
- package/dist/node/src/services/config-env.d.ts.map +1 -1
- package/dist/node/src/services/goal-contract.d.ts +25 -0
- package/dist/node/src/services/goal-contract.d.ts.map +1 -0
- package/dist/node/src/services/goal-llm-verifier.d.ts +157 -0
- package/dist/node/src/services/goal-llm-verifier.d.ts.map +1 -0
- package/dist/node/src/services/goal-prompt.d.ts +82 -0
- package/dist/node/src/services/goal-prompt.d.ts.map +1 -0
- package/dist/node/src/services/independent-verifier.d.ts +58 -0
- package/dist/node/src/services/independent-verifier.d.ts.map +1 -0
- package/dist/node/src/services/interruption-decider.d.ts +43 -0
- package/dist/node/src/services/interruption-decider.d.ts.map +1 -0
- package/dist/node/src/services/opencode-config.d.ts +21 -0
- package/dist/node/src/services/opencode-config.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-device-support-matrix.d.ts +46 -0
- package/dist/node/src/services/orchestrator-device-support-matrix.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-task-mapper.d.ts +192 -0
- package/dist/node/src/services/orchestrator-task-mapper.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-task-service.d.ts +370 -0
- package/dist/node/src/services/orchestrator-task-service.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-task-store.d.ts +156 -0
- package/dist/node/src/services/orchestrator-task-store.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-task-types.d.ts +334 -0
- package/dist/node/src/services/orchestrator-task-types.d.ts.map +1 -0
- package/dist/node/src/services/parent-agent-broker.d.ts +5 -3
- package/dist/node/src/services/parent-agent-broker.d.ts.map +1 -1
- package/dist/node/src/services/parent-agent-dispatch.d.ts +62 -0
- package/dist/node/src/services/parent-agent-dispatch.d.ts.map +1 -0
- package/dist/node/src/services/screenshot-delivery.d.ts +38 -0
- package/dist/node/src/services/screenshot-delivery.d.ts.map +1 -0
- package/dist/node/src/services/session-event-queue.d.ts +1 -8
- package/dist/node/src/services/session-event-queue.d.ts.map +1 -1
- package/dist/node/src/services/session-store.d.ts +2 -1
- package/dist/node/src/services/session-store.d.ts.map +1 -1
- package/dist/node/src/services/skill-lifeops-context-broker.d.ts +1 -1
- package/dist/node/src/services/skill-lifeops-context-broker.d.ts.map +1 -1
- package/dist/node/src/services/skill-manifest.d.ts +1 -1
- package/dist/node/src/services/skill-recommender.d.ts +2 -0
- package/dist/node/src/services/skill-recommender.d.ts.map +1 -1
- package/dist/node/src/services/smithers-task-executor.d.ts +73 -0
- package/dist/node/src/services/smithers-task-executor.d.ts.map +1 -0
- package/dist/node/src/services/smithers-task-integration.d.ts +52 -0
- package/dist/node/src/services/smithers-task-integration.d.ts.map +1 -0
- package/dist/node/src/services/smithers-task-runner.d.ts +27 -0
- package/dist/node/src/services/smithers-task-runner.d.ts.map +1 -0
- package/dist/node/src/services/smithers-task-types.d.ts +96 -0
- package/dist/node/src/services/smithers-task-types.d.ts.map +1 -0
- package/dist/node/src/services/spawn-trajectory.d.ts +2 -2
- package/dist/node/src/services/spawn-trajectory.d.ts.map +1 -1
- package/dist/node/src/services/spend-allowance.d.ts +143 -0
- package/dist/node/src/services/spend-allowance.d.ts.map +1 -0
- package/dist/node/src/services/ssrf-guard.d.ts +66 -0
- package/dist/node/src/services/ssrf-guard.d.ts.map +1 -0
- package/dist/node/src/services/sub-agent-identity.d.ts +27 -0
- package/dist/node/src/services/sub-agent-identity.d.ts.map +1 -0
- package/dist/node/src/services/sub-agent-inbox.d.ts +26 -0
- package/dist/node/src/services/sub-agent-inbox.d.ts.map +1 -0
- package/dist/node/src/services/sub-agent-router.d.ts +142 -2
- package/dist/node/src/services/sub-agent-router.d.ts.map +1 -1
- package/dist/node/src/services/task-agent-frameworks.d.ts +21 -8
- package/dist/node/src/services/task-agent-frameworks.d.ts.map +1 -1
- package/dist/node/src/services/task-agent-routing.d.ts +33 -0
- package/dist/node/src/services/task-agent-routing.d.ts.map +1 -0
- package/dist/node/src/services/task-supervisor-service.d.ts +65 -0
- package/dist/node/src/services/task-supervisor-service.d.ts.map +1 -0
- package/dist/node/src/services/task-watchdog-service.d.ts +50 -0
- package/dist/node/src/services/task-watchdog-service.d.ts.map +1 -0
- package/dist/node/src/services/terminal-capabilities.d.ts +48 -0
- package/dist/node/src/services/terminal-capabilities.d.ts.map +1 -0
- package/dist/node/src/services/trajectory-context.d.ts +4 -8
- package/dist/node/src/services/trajectory-context.d.ts.map +1 -1
- package/dist/node/src/services/trajectory-feedback.d.ts +1 -1
- package/dist/node/src/services/types.d.ts +38 -2
- package/dist/node/src/services/types.d.ts.map +1 -1
- package/dist/node/src/services/view-deploy-guidance.d.ts +14 -0
- package/dist/node/src/services/view-deploy-guidance.d.ts.map +1 -0
- package/dist/node/src/services/workdir-validation.d.ts +10 -0
- package/dist/node/src/services/workdir-validation.d.ts.map +1 -0
- package/dist/node/src/services/workspace-diff.d.ts +50 -0
- package/dist/node/src/services/workspace-diff.d.ts.map +1 -0
- package/dist/node/src/services/workspace-git-ops.d.ts +2 -2
- package/dist/node/src/services/workspace-git-ops.d.ts.map +1 -1
- package/dist/node/src/services/workspace-github.d.ts +7 -7
- package/dist/node/src/services/workspace-github.d.ts.map +1 -1
- package/dist/node/src/services/workspace-lifecycle.d.ts +2 -15
- package/dist/node/src/services/workspace-lifecycle.d.ts.map +1 -1
- package/dist/node/src/services/workspace-service.d.ts +6 -2
- package/dist/node/src/services/workspace-service.d.ts.map +1 -1
- package/dist/node/src/setup-routes.d.ts.map +1 -1
- package/docs/SUBAGENT_FLOW_AND_PARITY.md +138 -0
- package/docs/default-eliza-skills-and-agent-bridge-plan.md +9 -15
- package/docs/economics-goal-runbook.md +140 -0
- package/docs/multi-account-orchestration.md +76 -0
- package/docs/orchestrator-buildout-followups.md +124 -0
- package/docs/orchestrator-dashboard-task-widget-secrets-assessment.md +174 -0
- package/docs/orchestrator-dashboard-task-widget-secrets-design.md +301 -0
- package/docs/research/orchestrator-view-research-report.md +273 -0
- package/docs/sub-agent-routing.md +53 -23
- package/package.json +111 -25
- package/PROJECT.md +0 -119
- package/dist/browser/index.browser.js +0 -21051
- package/dist/browser/index.browser.js.map +0 -29
- package/dist/browser/index.d.ts +0 -2
- package/dist/node/index.browser.d.ts +0 -3
- package/dist/node/index.browser.d.ts.map +0 -1
- package/dist/node/src/actions/cancel-task.d.ts +0 -3
- package/dist/node/src/actions/cancel-task.d.ts.map +0 -1
- package/dist/node/src/actions/coding-task-handlers.d.ts +0 -69
- package/dist/node/src/actions/coding-task-handlers.d.ts.map +0 -1
- package/dist/node/src/actions/coding-task-helpers.d.ts +0 -35
- package/dist/node/src/actions/coding-task-helpers.d.ts.map +0 -1
- package/dist/node/src/actions/create-task.d.ts +0 -8
- package/dist/node/src/actions/create-task.d.ts.map +0 -1
- package/dist/node/src/actions/eval-metadata.d.ts +0 -11
- package/dist/node/src/actions/eval-metadata.d.ts.map +0 -1
- package/dist/node/src/actions/finalize-workspace.d.ts +0 -11
- package/dist/node/src/actions/finalize-workspace.d.ts.map +0 -1
- package/dist/node/src/actions/list-agents.d.ts +0 -4
- package/dist/node/src/actions/list-agents.d.ts.map +0 -1
- package/dist/node/src/actions/manage-issues.d.ts +0 -11
- package/dist/node/src/actions/manage-issues.d.ts.map +0 -1
- package/dist/node/src/actions/provision-workspace.d.ts +0 -11
- package/dist/node/src/actions/provision-workspace.d.ts.map +0 -1
- package/dist/node/src/actions/send-to-agent.d.ts +0 -4
- package/dist/node/src/actions/send-to-agent.d.ts.map +0 -1
- package/dist/node/src/actions/spawn-agent.d.ts +0 -8
- package/dist/node/src/actions/spawn-agent.d.ts.map +0 -1
- package/dist/node/src/actions/stop-agent.d.ts +0 -4
- package/dist/node/src/actions/stop-agent.d.ts.map +0 -1
- package/dist/node/src/actions/task-control.d.ts +0 -3
- package/dist/node/src/actions/task-control.d.ts.map +0 -1
- package/dist/node/src/actions/task-history.d.ts +0 -3
- package/dist/node/src/actions/task-history.d.ts.map +0 -1
- package/dist/node/src/actions/task-share.d.ts +0 -3
- package/dist/node/src/actions/task-share.d.ts.map +0 -1
- package/dist/node/src/actions/task-thread-target.d.ts +0 -11
- package/dist/node/src/actions/task-thread-target.d.ts.map +0 -1
- package/dist/node/src/api/coordinator-routes.d.ts +0 -22
- package/dist/node/src/api/coordinator-routes.d.ts.map +0 -1
- package/dist/node/src/api/hook-routes.d.ts +0 -18
- package/dist/node/src/api/hook-routes.d.ts.map +0 -1
- package/dist/node/src/routes/coding-agents-fallback-routes.d.ts +0 -19
- package/dist/node/src/routes/coding-agents-fallback-routes.d.ts.map +0 -1
- package/dist/node/src/services/acpx-subprocess.d.ts +0 -3
- package/dist/node/src/services/acpx-subprocess.d.ts.map +0 -1
- package/dist/node/src/services/agent-credentials.d.ts +0 -23
- package/dist/node/src/services/agent-credentials.d.ts.map +0 -1
- package/dist/node/src/services/agent-metrics.d.ts +0 -30
- package/dist/node/src/services/agent-metrics.d.ts.map +0 -1
- package/dist/node/src/services/agent-selection.d.ts +0 -53
- package/dist/node/src/services/agent-selection.d.ts.map +0 -1
- package/dist/node/src/services/claude-code-skill-installer.d.ts +0 -33
- package/dist/node/src/services/claude-code-skill-installer.d.ts.map +0 -1
- package/dist/node/src/services/coordinator-event-normalizer.d.ts +0 -50
- package/dist/node/src/services/coordinator-event-normalizer.d.ts.map +0 -1
- package/dist/node/src/services/custom-validator-runner.d.ts +0 -66
- package/dist/node/src/services/custom-validator-runner.d.ts.map +0 -1
- package/dist/node/src/services/debug-capture.d.ts +0 -38
- package/dist/node/src/services/debug-capture.d.ts.map +0 -1
- package/dist/node/src/services/pty-auto-response.d.ts +0 -30
- package/dist/node/src/services/pty-auto-response.d.ts.map +0 -1
- package/dist/node/src/services/pty-init.d.ts +0 -55
- package/dist/node/src/services/pty-init.d.ts.map +0 -1
- package/dist/node/src/services/pty-service.d.ts +0 -218
- package/dist/node/src/services/pty-service.d.ts.map +0 -1
- package/dist/node/src/services/pty-session-io.d.ts +0 -49
- package/dist/node/src/services/pty-session-io.d.ts.map +0 -1
- package/dist/node/src/services/pty-spawn.d.ts +0 -104
- package/dist/node/src/services/pty-spawn.d.ts.map +0 -1
- package/dist/node/src/services/pty-types.d.ts +0 -94
- package/dist/node/src/services/pty-types.d.ts.map +0 -1
- package/dist/node/src/services/skill-callback-bridge.d.ts +0 -78
- package/dist/node/src/services/skill-callback-bridge.d.ts.map +0 -1
- package/dist/node/src/services/skill-essentials.d.ts +0 -16
- package/dist/node/src/services/skill-essentials.d.ts.map +0 -1
- package/dist/node/src/services/stall-classifier.d.ts +0 -69
- package/dist/node/src/services/stall-classifier.d.ts.map +0 -1
- package/dist/node/src/services/structured-proof-bridge.d.ts +0 -99
- package/dist/node/src/services/structured-proof-bridge.d.ts.map +0 -1
- package/dist/node/src/services/swarm-coordinator-prompts.d.ts +0 -93
- package/dist/node/src/services/swarm-coordinator-prompts.d.ts.map +0 -1
- package/dist/node/src/services/swarm-coordinator.d.ts +0 -473
- package/dist/node/src/services/swarm-coordinator.d.ts.map +0 -1
- package/dist/node/src/services/swarm-decision-loop.d.ts +0 -69
- package/dist/node/src/services/swarm-decision-loop.d.ts.map +0 -1
- package/dist/node/src/services/swarm-event-triage.d.ts +0 -49
- package/dist/node/src/services/swarm-event-triage.d.ts.map +0 -1
- package/dist/node/src/services/swarm-history.d.ts +0 -27
- package/dist/node/src/services/swarm-history.d.ts.map +0 -1
- package/dist/node/src/services/swarm-idle-watchdog.d.ts +0 -22
- package/dist/node/src/services/swarm-idle-watchdog.d.ts.map +0 -1
- package/dist/node/src/services/task-acceptance.d.ts +0 -8
- package/dist/node/src/services/task-acceptance.d.ts.map +0 -1
- package/dist/node/src/services/task-agent-auth.d.ts +0 -69
- package/dist/node/src/services/task-agent-auth.d.ts.map +0 -1
- package/dist/node/src/services/task-kind.d.ts +0 -3
- package/dist/node/src/services/task-kind.d.ts.map +0 -1
- package/dist/node/src/services/task-registry.d.ts +0 -550
- package/dist/node/src/services/task-registry.d.ts.map +0 -1
- package/dist/node/src/services/task-share.d.ts +0 -18
- package/dist/node/src/services/task-share.d.ts.map +0 -1
- package/dist/node/src/services/task-validation.d.ts +0 -69
- package/dist/node/src/services/task-validation.d.ts.map +0 -1
- package/dist/node/src/services/task-verifier-runner.d.ts +0 -5
- package/dist/node/src/services/task-verifier-runner.d.ts.map +0 -1
- package/dist/node/vitest.config.d.ts +0 -3
- package/dist/node/vitest.config.d.ts.map +0 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM-based goal verifier.
|
|
3
|
+
*
|
|
4
|
+
* On `task_complete` an orchestrator task advances to status `validating`
|
|
5
|
+
* (see {@link OrchestratorTaskService.recordSessionEvent}) and waits for a
|
|
6
|
+
* caller to invoke {@link OrchestratorTaskService.validateTask} with a
|
|
7
|
+
* pass/fail judgment. Historically the only validators were a human
|
|
8
|
+
* pressing a button in the orchestrator UI and the pattern-based
|
|
9
|
+
* sub-agent-completion response evaluator (which only routes back through
|
|
10
|
+
* TASKS when the completion text contains explicit failure markers, not
|
|
11
|
+
* when the work simply doesn't meet the goal).
|
|
12
|
+
*
|
|
13
|
+
* This service is the third validator: a small-model judge that reads the
|
|
14
|
+
* task's `acceptanceCriteria` and the sub-agent's completion evidence and
|
|
15
|
+
* returns a structured `{ passed, summary, missing }` verdict. Callers
|
|
16
|
+
* (HTTP route, orchestrator UI button, future automatic hook) forward the
|
|
17
|
+
* verdict to {@link OrchestratorTaskService.validateTask} using
|
|
18
|
+
* `verifier: "llm-goal-verifier"`.
|
|
19
|
+
*
|
|
20
|
+
* Design constraints:
|
|
21
|
+
*
|
|
22
|
+
* - **No automatic firing.** The verifier is opt-in per task so an LLM
|
|
23
|
+
* call cannot be triggered without an explicit caller — protects users
|
|
24
|
+
* from surprise model spend.
|
|
25
|
+
* - **Small model only.** `ModelType.TEXT_SMALL` is sufficient for a
|
|
26
|
+
* yes/no judgment against a short criteria list and keeps the per-task
|
|
27
|
+
* cost bounded.
|
|
28
|
+
* - **Defensive parse.** A malformed model response always resolves to
|
|
29
|
+
* `passed: false` with an explanatory summary, never crashes the route.
|
|
30
|
+
*
|
|
31
|
+
* Refs: elizaOS/eliza#8124
|
|
32
|
+
*
|
|
33
|
+
* @module services/goal-llm-verifier
|
|
34
|
+
*/
|
|
35
|
+
import { type IAgentRuntime } from "@elizaos/core";
|
|
36
|
+
/** Stable identifier the verifier stamps onto the `validateTask` payload so
|
|
37
|
+
* callers can distinguish LLM judgments from human approvals or pattern
|
|
38
|
+
* evaluators in the orchestrator audit log. */
|
|
39
|
+
export declare const LLM_GOAL_VERIFIER_NAME = "llm-goal-verifier";
|
|
40
|
+
/**
|
|
41
|
+
* Whether the orchestrator automatically runs {@link verifyGoalCompletion} when
|
|
42
|
+
* a sub-agent reports a task complete (status → `validating`). Default ON; set
|
|
43
|
+
* `ELIZA_ORCHESTRATOR_AUTO_GOAL_VERIFY=0` to disable, falling back to the
|
|
44
|
+
* manual `POST /tasks/:id/auto-validate` opt-in path. Mirrors the
|
|
45
|
+
* `ELIZA_ORCHESTRATOR_SMITHERS` flag convention.
|
|
46
|
+
*
|
|
47
|
+
* Auto-firing is additionally gated on the task actually having acceptance
|
|
48
|
+
* criteria (see {@link OrchestratorTaskService}), so a flag-on task with no
|
|
49
|
+
* criteria still incurs no model spend.
|
|
50
|
+
*/
|
|
51
|
+
export declare function shouldAutoVerifyGoal(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Maximum number of automatic corrective re-sends to a failing sub-agent before
|
|
54
|
+
* the orchestrator stops looping and hands the task to a human
|
|
55
|
+
* (`waiting_on_user`). Prevents a perpetually-failing worker from burning model
|
|
56
|
+
* spend in an unbounded verify→correct→verify cycle.
|
|
57
|
+
*/
|
|
58
|
+
export declare const MAX_AUTO_VERIFY_ATTEMPTS = 3;
|
|
59
|
+
/**
|
|
60
|
+
* Compose the corrective message body sent back to a sub-agent when automatic
|
|
61
|
+
* verification did not confirm every acceptance criterion. The
|
|
62
|
+
* goal/acceptance-criteria envelope is re-applied by `buildGoalFollowUp`
|
|
63
|
+
* (reason `validation_failed`); this is just the human-readable gap report.
|
|
64
|
+
*
|
|
65
|
+
* Behaves like a demanding manager whose tone ESCALATES per attempt — a
|
|
66
|
+
* manager who has been fobbed off twice does not keep asking nicely:
|
|
67
|
+
*
|
|
68
|
+
* - **Attempt 1** — collegial: "verification didn't confirm X; here's the
|
|
69
|
+
* proof to produce" (the per-criterion proof demands).
|
|
70
|
+
* - **Attempt 2** — pointed/socratic: direct questions per unmet criterion
|
|
71
|
+
* ("which command did you run, and what was its output? Paste it."), and a
|
|
72
|
+
* note that a prior attempt already failed.
|
|
73
|
+
* - **Attempt 3+ (final)** — firm last-chance: this is the final automated
|
|
74
|
+
* attempt before the task is parked for a human; every checklist item must be
|
|
75
|
+
* proven inline or the task is escalated.
|
|
76
|
+
*
|
|
77
|
+
* For EACH unmet criterion it names the specific proof the worker must produce
|
|
78
|
+
* and re-report WITH (a passing build/test line, a screenshot for UI, a
|
|
79
|
+
* scenario trajectory for agent behavior, a reachable URL for a deploy), and
|
|
80
|
+
* appends an explicit {@link buildEvidenceChecklist} the worker must tick with
|
|
81
|
+
* the artifact, so the next completion arrives with verifiable evidence instead
|
|
82
|
+
* of another plausible-but-unproven claim.
|
|
83
|
+
*
|
|
84
|
+
* @param missing unmet acceptance criteria the verifier could not confirm.
|
|
85
|
+
* @param attempt 1-based correction attempt (defaults to 1 so callers that
|
|
86
|
+
* don't track attempts keep the collegial behavior). Clamped to
|
|
87
|
+
* `[1, MAX_AUTO_VERIFY_ATTEMPTS]`; attempt `MAX_AUTO_VERIFY_ATTEMPTS`
|
|
88
|
+
* is the final-chance phrasing before escalation to a human.
|
|
89
|
+
*/
|
|
90
|
+
export declare function buildAutoVerifyCorrection(missing: readonly string[], attempt?: number): string;
|
|
91
|
+
export interface GoalVerificationInput {
|
|
92
|
+
/** The durable task goal — the "what" the worker owns. */
|
|
93
|
+
goal: string;
|
|
94
|
+
/** Explicit acceptance criteria from the task record. May be empty when
|
|
95
|
+
* the task was opened without any. */
|
|
96
|
+
acceptanceCriteria: readonly string[];
|
|
97
|
+
/** Concatenated completion evidence: sub-agent final reply, test output,
|
|
98
|
+
* files touched, etc. The caller decides what to include. */
|
|
99
|
+
completionEvidence: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Optional recording context for {@link verifyGoalCompletion}. When
|
|
103
|
+
* `recordTrajectory` is supplied AND trajectory recording is enabled
|
|
104
|
+
* (`ELIZA_TRAJECTORY_RECORDING` != 0), the single grill model call is written
|
|
105
|
+
* as a one-stage trajectory under the active trajectory dir
|
|
106
|
+
* (`ELIZA_TRAJECTORY_DIR` → state-dir/trajectories). That stage carries the
|
|
107
|
+
* verifier prompt and the model's verdict — exactly the model-boundary record
|
|
108
|
+
* the scenario native-export converts to an `eliza_native_v1` training row and
|
|
109
|
+
* the production observability stack reads. Pure unit tests pass no context, so
|
|
110
|
+
* they record nothing.
|
|
111
|
+
*/
|
|
112
|
+
export interface GoalVerificationOptions {
|
|
113
|
+
recordTrajectory?: {
|
|
114
|
+
/** Durable task room id, used as the trajectory roomId for correlation. */
|
|
115
|
+
roomId?: string;
|
|
116
|
+
/** Durable task id, used to label the recorded root message. */
|
|
117
|
+
taskId?: string;
|
|
118
|
+
/** Reporting sub-agent session id, used to label the recorded root message. */
|
|
119
|
+
sessionId?: string;
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
export interface GoalVerificationResult {
|
|
123
|
+
/** True when every acceptance criterion appears to be met AND no stated
|
|
124
|
+
* constraint was violated. */
|
|
125
|
+
passed: boolean;
|
|
126
|
+
/** One-sentence human-readable summary suitable for the
|
|
127
|
+
* `OrchestratorTaskEvent.summary` field. */
|
|
128
|
+
summary: string;
|
|
129
|
+
/** Each criterion the verifier could not confirm from the evidence. Empty
|
|
130
|
+
* when `passed` is true. Used by the orchestrator to compose a
|
|
131
|
+
* corrective follow-up prompt. */
|
|
132
|
+
missing: string[];
|
|
133
|
+
/** Raw model response text, kept for the audit log and for tests. */
|
|
134
|
+
rawResponse: string;
|
|
135
|
+
}
|
|
136
|
+
/** The judge prompt. Kept deliberately small and structured so a small
|
|
137
|
+
* model can produce parseable JSON reliably, but written as a demanding,
|
|
138
|
+
* evidence-first manager: each criterion must be backed by CONCRETE PROOF in
|
|
139
|
+
* the evidence, not a plausible-sounding claim. */
|
|
140
|
+
export declare function buildVerificationPrompt(input: GoalVerificationInput): string;
|
|
141
|
+
interface ParsedJudgeResponse {
|
|
142
|
+
passed: boolean;
|
|
143
|
+
summary: string;
|
|
144
|
+
missing: string[];
|
|
145
|
+
}
|
|
146
|
+
export declare function parseJudgeResponse(raw: string, acceptanceCriteria: readonly string[]): ParsedJudgeResponse;
|
|
147
|
+
/**
|
|
148
|
+
* Ask a small model to judge whether the sub-agent's completion evidence
|
|
149
|
+
* satisfies every acceptance criterion. Returns a structured verdict the
|
|
150
|
+
* caller can forward to {@link OrchestratorTaskService.validateTask}.
|
|
151
|
+
*
|
|
152
|
+
* Pure with respect to filesystem and network state — the only side effect
|
|
153
|
+
* is one `runtime.useModel` call.
|
|
154
|
+
*/
|
|
155
|
+
export declare function verifyGoalCompletion(runtime: IAgentRuntime, input: GoalVerificationInput, options?: GoalVerificationOptions): Promise<GoalVerificationResult>;
|
|
156
|
+
export {};
|
|
157
|
+
//# sourceMappingURL=goal-llm-verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-llm-verifier.d.ts","sourceRoot":"","sources":["../../../../src/services/goal-llm-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,eAAe,CAAC;AAEvB;;gDAEgD;AAChD,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAyD1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,SAAI,GACV,MAAM,CAqER;AAED,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb;2CACuC;IACvC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;kEAC8D;IAC9D,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,CAAC,EAAE;QACjB,2EAA2E;QAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,gEAAgE;QAChE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,+EAA+E;QAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC;mCAC+B;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB;iDAC6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB;;uCAEmC;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;CACrB;AAsBD;;;oDAGoD;AACpD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAmC5E;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAiBD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,SAAS,MAAM,EAAE,GACpC,mBAAmB,CA6CrB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,qBAAqB,EAC5B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,sBAAsB,CAAC,CAgDjC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Goal-wrapper prompt builders.
|
|
3
|
+
*
|
|
4
|
+
* Every sub-agent spawn and follow-up — whether it originates from the
|
|
5
|
+
* `TASKS_*` planner action, a direct `/api/coding-agents/*` call, or an
|
|
6
|
+
* `/api/orchestrator/*` route — must pass its raw text through one of these
|
|
7
|
+
* builders. Centralising the envelope is what makes worker behaviour
|
|
8
|
+
* consistent: the same goal, acceptance criteria, room wiring, capability
|
|
9
|
+
* fence, and completion contract reach Claude, Codex, OpenCode, ElizaOS, and
|
|
10
|
+
* Pi Agent regardless of entry point. The wording is the formalised version of
|
|
11
|
+
* the swarm-coordination block that `TASKS_SPAWN_AGENT` already emits.
|
|
12
|
+
*
|
|
13
|
+
* @module services/goal-prompt
|
|
14
|
+
*/
|
|
15
|
+
import type { AttemptReflection } from "./orchestrator-task-types.js";
|
|
16
|
+
/** The coding-relevant capability fence applied when a caller does not pass an
|
|
17
|
+
* explicit allow-list. Keeps a worker from reaching for unrelated connectors or
|
|
18
|
+
* broad personal-data tools. */
|
|
19
|
+
export declare const DEFAULT_GOAL_CAPABILITIES: readonly string[];
|
|
20
|
+
/**
|
|
21
|
+
* Capability fence for goal tasks that build and monetize an Eliza Cloud app.
|
|
22
|
+
* Extends the coding capabilities with the parent-agent Cloud command bridge so
|
|
23
|
+
* a `/goal` sub-agent can drive the create-app → deploy → monetize → buy-domain
|
|
24
|
+
* loop. Paid Cloud commands are still gated server-side and by the broker's
|
|
25
|
+
* capped self-spend allowance (see `spend-allowance.ts`).
|
|
26
|
+
*/
|
|
27
|
+
export declare const ECONOMICS_GOAL_CAPABILITIES: readonly string[];
|
|
28
|
+
/** Named capability fences a goal task can run under. */
|
|
29
|
+
export type GoalCapabilityProfile = "default" | "economics";
|
|
30
|
+
/** Resolve a capability profile name to its allow-list. Unknown / undefined
|
|
31
|
+
* profiles fall back to the coding-only default fence. */
|
|
32
|
+
export declare function resolveGoalCapabilities(profile?: GoalCapabilityProfile): readonly string[];
|
|
33
|
+
/** Coerce an untyped value (e.g. a task metadata field) to a known profile, or
|
|
34
|
+
* `undefined` when it is not a recognized profile name. */
|
|
35
|
+
export declare function coerceGoalCapabilityProfile(value: unknown): GoalCapabilityProfile | undefined;
|
|
36
|
+
export interface GoalPromptInput {
|
|
37
|
+
/** The distinct person-name this sub-agent is given on spawn, so it knows its
|
|
38
|
+
* own identity within the swarm (the way the main agent is named). */
|
|
39
|
+
agentName: string;
|
|
40
|
+
/** The durable objective the worker owns until it is met or blocked. */
|
|
41
|
+
goal: string;
|
|
42
|
+
/** The concrete first instruction. Defaults to {@link GoalPromptInput.goal}. */
|
|
43
|
+
task?: string;
|
|
44
|
+
acceptanceCriteria?: string[];
|
|
45
|
+
/** Task-wide room for status, final handoff, and questions to the creator. */
|
|
46
|
+
taskRoomId?: string;
|
|
47
|
+
/** Room shared by agents touching the same worktree, when distinct. */
|
|
48
|
+
worktreeRoomId?: string;
|
|
49
|
+
workdir?: string;
|
|
50
|
+
repo?: string;
|
|
51
|
+
/** Named capability fence to apply when `allowedCapabilities` is not given.
|
|
52
|
+
* Defaults to `"default"` (the coding-only fence). */
|
|
53
|
+
capabilityProfile?: GoalCapabilityProfile;
|
|
54
|
+
/** Explicit capability fence; overrides {@link GoalPromptInput.capabilityProfile}
|
|
55
|
+
* and defaults to {@link DEFAULT_GOAL_CAPABILITIES}. */
|
|
56
|
+
allowedCapabilities?: readonly string[];
|
|
57
|
+
/** Reflexion-style post-mortems from prior failed verification attempts of
|
|
58
|
+
* this same task. Injected on re-spawn so the worker doesn't repeat them. */
|
|
59
|
+
attemptReflections?: readonly AttemptReflection[];
|
|
60
|
+
}
|
|
61
|
+
export type GoalFollowUpReason = "user_message" | "orchestrator" | "incomplete_completion" | "validation_failed" | "resume";
|
|
62
|
+
export interface GoalFollowUpInput {
|
|
63
|
+
goal: string;
|
|
64
|
+
/** The raw follow-up text from the user, orchestrator, or planner. */
|
|
65
|
+
message: string;
|
|
66
|
+
acceptanceCriteria?: string[];
|
|
67
|
+
reason?: GoalFollowUpReason;
|
|
68
|
+
taskRoomId?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Build the initial sub-agent prompt. The returned string wraps the concrete
|
|
72
|
+
* task in the durable goal, acceptance criteria, room wiring, capability fence,
|
|
73
|
+
* and completion contract.
|
|
74
|
+
*/
|
|
75
|
+
export declare function buildGoalPrompt(input: GoalPromptInput): string;
|
|
76
|
+
/**
|
|
77
|
+
* Build a follow-up prompt for an in-flight session. Re-anchors the worker to
|
|
78
|
+
* the durable goal and completion contract so a stray user message cannot
|
|
79
|
+
* derail it into treating the follow-up as a fresh, unbounded task.
|
|
80
|
+
*/
|
|
81
|
+
export declare function buildGoalFollowUp(input: GoalFollowUpInput): string;
|
|
82
|
+
//# sourceMappingURL=goal-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-prompt.d.ts","sourceRoot":"","sources":["../../../../src/services/goal-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;gCAEgC;AAChC,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAMtD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAYxD,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,WAAW,CAAC;AAE5D;0DAC0D;AAC1D,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,SAAS,MAAM,EAAE,CAInB;AAED;2DAC2D;AAC3D,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,qBAAqB,GAAG,SAAS,CAMnC;AAED,MAAM,WAAW,eAAe;IAC9B;0EACsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;0DACsD;IACtD,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C;4DACwD;IACxD,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;iFAC6E;IAC7E,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACnD;AAED,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,cAAc,GACd,uBAAuB,GACvB,mBAAmB,GACnB,QAAQ,CAAC;AAEb,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAcD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA0E9D;AAeD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CA8BlE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Independent read-only verifier sub-agent (#8898, EPIC #8884).
|
|
3
|
+
*
|
|
4
|
+
* The goal verifier judges only what the coding sub-agent narrated — it can't
|
|
5
|
+
* independently run `bun test`, read a file, or inspect the diff. Best practice
|
|
6
|
+
* (Agent-as-a-Judge / Validation Chain) spawns a SEPARATE read-only agent that
|
|
7
|
+
* verifies by execution. This module builds that verifier's spawn prompt, runs
|
|
8
|
+
* it (via an injected spawn-and-await so it unit-tests without ACP), and turns
|
|
9
|
+
* its CompletionEnvelope into an execution-grounded verdict for `validateTask`.
|
|
10
|
+
*
|
|
11
|
+
* "Read-only" is enforced by the prompt + the spawn's approval preset (the spawn
|
|
12
|
+
* API has no hard tool whitelist): the verifier is told to run/read/inspect only,
|
|
13
|
+
* never edit.
|
|
14
|
+
*/
|
|
15
|
+
import { type CompletionEnvelope } from "./completion-envelope.js";
|
|
16
|
+
/** Build the independent verifier's spawn prompt. */
|
|
17
|
+
export declare function buildIndependentVerifierPrompt(input: {
|
|
18
|
+
goal: string;
|
|
19
|
+
acceptanceCriteria: string[];
|
|
20
|
+
diffSummary?: string;
|
|
21
|
+
}): string;
|
|
22
|
+
export interface IndependentVerifierVerdict {
|
|
23
|
+
/** True only when every criterion is met AND every test command exited 0. */
|
|
24
|
+
passed: boolean;
|
|
25
|
+
/** Criteria the verifier marked unmet (or all, when the envelope was unusable). */
|
|
26
|
+
unmet: string[];
|
|
27
|
+
/** Test commands that exited non-zero. */
|
|
28
|
+
failedCommands: string[];
|
|
29
|
+
/** One-line human summary. */
|
|
30
|
+
summary: string;
|
|
31
|
+
/** True when no usable envelope came back (caller should not auto-pass). */
|
|
32
|
+
inconclusive: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** Turn the verifier's parsed envelope into an execution-grounded verdict. */
|
|
35
|
+
export declare function verifierVerdict(completionText: string): IndependentVerifierVerdict;
|
|
36
|
+
/** Verdict directly from a (already-parsed) envelope. */
|
|
37
|
+
export declare function verdictFromEnvelope(env: CompletionEnvelope): IndependentVerifierVerdict;
|
|
38
|
+
/** Default-on for code-change tasks; gated by ELIZA_ORCHESTRATOR_INDEPENDENT_VERIFY. */
|
|
39
|
+
export declare function shouldRunIndependentVerify(getSetting: (key: string) => string | undefined | null, hasCodeChanges: boolean): boolean;
|
|
40
|
+
export interface IndependentVerifyDeps {
|
|
41
|
+
/**
|
|
42
|
+
* Spawn the read-only verifier with `prompt` and resolve its final completion
|
|
43
|
+
* text. The caller wires this to AcpService.spawnSession + awaiting the
|
|
44
|
+
* session's task_complete; tests inject a stub.
|
|
45
|
+
*/
|
|
46
|
+
spawnAndAwait: (prompt: string) => Promise<string>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Run an independent verification pass and return the verdict. A spawn failure
|
|
50
|
+
* is inconclusive (never a false pass) so the caller keeps the task in
|
|
51
|
+
* validating rather than promoting it on a verifier crash.
|
|
52
|
+
*/
|
|
53
|
+
export declare function runIndependentVerification(input: {
|
|
54
|
+
goal: string;
|
|
55
|
+
acceptanceCriteria: string[];
|
|
56
|
+
diffSummary?: string;
|
|
57
|
+
}, deps: IndependentVerifyDeps): Promise<IndependentVerifierVerdict>;
|
|
58
|
+
//# sourceMappingURL=independent-verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"independent-verifier.d.ts","sourceRoot":"","sources":["../../../../src/services/independent-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,0BAA0B,CAAC;AAElC,qDAAqD;AACrD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAmBT;AAED,MAAM,WAAW,0BAA0B;IACzC,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,GACrB,0BAA0B,CAa5B;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,kBAAkB,GACtB,0BAA0B,CAiB5B;AAED,wFAAwF;AACxF,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,EACtD,cAAc,EAAE,OAAO,GACtB,OAAO,CAMT;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3E,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,0BAA0B,CAAC,CAiBrC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interruption decider for sub-agents sharing a task room.
|
|
3
|
+
*
|
|
4
|
+
* When a human posts in a task room while sub-agents are working, we must
|
|
5
|
+
* decide — per participant — whether that message should INTERRUPT the
|
|
6
|
+
* in-flight turn, be QUEUED for after it, be DELIVERED now (idle agent), or be
|
|
7
|
+
* IGNORED (ambient chatter not meant for this agent).
|
|
8
|
+
*
|
|
9
|
+
* Eliza participants already have this faculty: the core `shouldRespond`
|
|
10
|
+
* evaluator (RESPOND / IGNORE / STOP). Coding sub-agents (Claude Code, Codex,
|
|
11
|
+
* OpenCode) have no such gate — left alone, every keystroke in the room is
|
|
12
|
+
* injected into a running turn, derailing it. This module gives them an
|
|
13
|
+
* equivalent structural decision, and threads an Eliza participant's
|
|
14
|
+
* `shouldRespond` verdict through unchanged when one is supplied.
|
|
15
|
+
*
|
|
16
|
+
* Bias: a working sub-agent keeps working. We only INTERRUPT on an explicit
|
|
17
|
+
* stop/redirect; otherwise relevant messages QUEUE and ambient ones are IGNORE.
|
|
18
|
+
*/
|
|
19
|
+
export type InterruptionAction = "deliver" | "queue" | "interrupt" | "ignore";
|
|
20
|
+
export interface InterruptionDecision {
|
|
21
|
+
action: InterruptionAction;
|
|
22
|
+
reason: string;
|
|
23
|
+
}
|
|
24
|
+
export interface InterruptionInput {
|
|
25
|
+
/** The incoming user message text. */
|
|
26
|
+
text: string;
|
|
27
|
+
/** Sub-agent framework: claude / codex / opencode / elizaos / … */
|
|
28
|
+
agentType: string;
|
|
29
|
+
/** True when the sub-agent is mid-turn (ACP status `busy`). */
|
|
30
|
+
sessionBusy: boolean;
|
|
31
|
+
/** The sub-agent's person-name label, for addressing detection. */
|
|
32
|
+
agentLabel?: string;
|
|
33
|
+
/** An Eliza participant's core shouldRespond verdict, when available. */
|
|
34
|
+
shouldRespond?: "RESPOND" | "IGNORE" | "STOP";
|
|
35
|
+
/** True when the room has participants beyond the user + this sub-agent. */
|
|
36
|
+
multiParty?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Decide what to do with a room message destined for a running sub-agent.
|
|
40
|
+
* Pure and synchronous — the caller supplies the (already known) session state.
|
|
41
|
+
*/
|
|
42
|
+
export declare function decideInterruption(input: InterruptionInput): InterruptionDecision;
|
|
43
|
+
//# sourceMappingURL=interruption-decider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interruption-decider.d.ts","sourceRoot":"","sources":["../../../../src/services/interruption-decider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA6BD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,GACvB,oBAAoB,CAmDtB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
2
|
+
type RuntimeLike = Pick<IAgentRuntime, "getSetting">;
|
|
3
|
+
export interface OpencodeSpawnConfig {
|
|
4
|
+
configContent: string;
|
|
5
|
+
providerLabel: string;
|
|
6
|
+
providerId: string;
|
|
7
|
+
model: string;
|
|
8
|
+
smallModel?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface OpencodeAcpEnvResult {
|
|
11
|
+
env: Record<string, string>;
|
|
12
|
+
config?: OpencodeSpawnConfig;
|
|
13
|
+
vendoredShimDir?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function buildOpencodeSpawnConfig(runtime: RuntimeLike | undefined, env?: NodeJS.ProcessEnv | Record<string, string | undefined>, overrideModel?: string): OpencodeSpawnConfig | null;
|
|
16
|
+
export declare function resolveVendoredOpencodeShim(): string | undefined;
|
|
17
|
+
export declare function resolveVendoredOpencodeAcpCommand(): string | undefined;
|
|
18
|
+
export declare function prependPathDir(currentPath: string | undefined, dir: string): string;
|
|
19
|
+
export declare function buildOpencodeAcpEnv(runtime: RuntimeLike | undefined, env?: NodeJS.ProcessEnv | Record<string, string | undefined>, model?: string): OpencodeAcpEnvResult;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=opencode-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-config.d.ts","sourceRoot":"","sources":["../../../../src/services/opencode-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkCnD,KAAK,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA6ED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,GAAG,GAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACzE,aAAa,CAAC,EAAE,MAAM,GACrB,mBAAmB,GAAG,IAAI,CAkF5B;AAqBD,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,SAAS,CAehE;AAMD,wBAAgB,iCAAiC,IAAI,MAAM,GAAG,SAAS,CAKtE;AAED,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,GAAG,EAAE,MAAM,GACV,MAAM,CAMR;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,GAAG,GAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACzE,KAAK,CAAC,EAAE,MAAM,GACb,oBAAoB,CA4BtB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type OrchestratorTerminalSupport, type TerminalSupportEnv } from "./terminal-capabilities.js";
|
|
2
|
+
/**
|
|
3
|
+
* Static device × backend × auth-mode support matrix for multi-subscription
|
|
4
|
+
* coding-agent orchestration. Single checked-in source of truth that mirrors
|
|
5
|
+
* the live gate (`detectOrchestratorTerminalSupport` /
|
|
6
|
+
* `classifyTerminalSupport` in terminal-capabilities.ts) — see issue #9146.
|
|
7
|
+
*
|
|
8
|
+
* Each row's `support` is computed by the SAME pure classifier the runtime
|
|
9
|
+
* uses, so this object cannot silently drift from the gate: a change to the
|
|
10
|
+
* device gating that affects any documented profile fails this package's tests.
|
|
11
|
+
*
|
|
12
|
+
* Backend → auth-mode reach mirrors AGENT_PROVIDER_CANDIDATES in
|
|
13
|
+
* packages/app-core/src/services/coding-account-bridge.ts (the auth pairing
|
|
14
|
+
* lives there because the plugin depends only on @elizaos/core and reads the
|
|
15
|
+
* selector over a globalThis bridge). When a device supports coding agents,
|
|
16
|
+
* every backend below is reachable on it; when unsupported, none are.
|
|
17
|
+
*/
|
|
18
|
+
/** Coding backends with a first-party spawnable CLI (post #9167 cleanup). */
|
|
19
|
+
export declare const ORCHESTRATOR_BACKENDS: readonly ["elizaos", "pi-agent", "claude", "codex", "opencode"];
|
|
20
|
+
export type OrchestratorBackend = (typeof ORCHESTRATOR_BACKENDS)[number];
|
|
21
|
+
/** Ordered auth modes per backend; subscription is preferred over API key. */
|
|
22
|
+
export declare const ORCHESTRATOR_BACKEND_AUTH: Readonly<Record<OrchestratorBackend, readonly string[]>>;
|
|
23
|
+
export interface DeviceSupportProfile {
|
|
24
|
+
/** Stable id for the device/runtime profile. */
|
|
25
|
+
id: string;
|
|
26
|
+
/** Human-readable description for the support-matrix doc. */
|
|
27
|
+
label: string;
|
|
28
|
+
/** The env snapshot that characterizes this profile. */
|
|
29
|
+
env: TerminalSupportEnv;
|
|
30
|
+
/** For Android profiles, whether a staged shell is present. */
|
|
31
|
+
androidShellAvailable?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/** Documented device/runtime profiles, mirroring terminal-capabilities.ts. */
|
|
34
|
+
export declare const ORCHESTRATOR_DEVICE_PROFILES: readonly DeviceSupportProfile[];
|
|
35
|
+
export interface DeviceSupportMatrixRow {
|
|
36
|
+
id: string;
|
|
37
|
+
label: string;
|
|
38
|
+
support: OrchestratorTerminalSupport;
|
|
39
|
+
/** Backends reachable on this device (all when supported, none otherwise). */
|
|
40
|
+
backends: readonly OrchestratorBackend[];
|
|
41
|
+
}
|
|
42
|
+
/** Compute the full matrix through the same pure gate the runtime uses. */
|
|
43
|
+
export declare function buildOrchestratorDeviceSupportMatrix(): DeviceSupportMatrixRow[];
|
|
44
|
+
/** Eagerly-evaluated matrix snapshot for docs/consumers. */
|
|
45
|
+
export declare const ORCHESTRATOR_DEVICE_SUPPORT_MATRIX: readonly DeviceSupportMatrixRow[];
|
|
46
|
+
//# sourceMappingURL=orchestrator-device-support-matrix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-device-support-matrix.d.ts","sourceRoot":"","sources":["../../../../src/services/orchestrator-device-support-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;;;;;;;;GAeG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,iEAMxB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,8EAA8E;AAC9E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAC9C,MAAM,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC,CAO/C,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,GAAG,EAAE,kBAAkB,CAAC;IACxB,+DAA+D;IAC/D,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,EAAE,SAAS,oBAAoB,EA2BvE,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,2BAA2B,CAAC;IACrC,8EAA8E;IAC9E,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC1C;AAED,2EAA2E;AAC3E,wBAAgB,oCAAoC,IAAI,sBAAsB,EAAE,CAY/E;AAED,4DAA4D;AAC5D,eAAO,MAAM,kCAAkC,EAAE,SAAS,sBAAsB,EACxC,CAAC"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps the durable {@link OrchestratorTaskDocument} into the wire DTOs the
|
|
3
|
+
* `/orchestrator` frontend consumes. These shapes mirror
|
|
4
|
+
* `packages/ui/src/api/client-types-cloud.ts` (`CodingAgentTaskThread` /
|
|
5
|
+
* `CodingAgentTaskThreadDetail`) and extend them with the orchestrator-native
|
|
6
|
+
* fields the research report calls for: priority, pause state, provider policy,
|
|
7
|
+
* the full room-message timeline, and a token/cost usage summary. The plugin
|
|
8
|
+
* and `packages/ui` are separate packages communicating over HTTP, so the
|
|
9
|
+
* structural agreement between these DTOs and the client types is enforced by
|
|
10
|
+
* a contract test rather than a shared import.
|
|
11
|
+
*
|
|
12
|
+
* @module services/orchestrator-task-mapper
|
|
13
|
+
*/
|
|
14
|
+
import type { ArtifactVerificationStatus, OrchestratorTaskDocument, OrchestratorTaskPriority, OrchestratorTaskStatus, OrchestratorTaskUsage, TaskMessageDirection, TaskMessageSenderKind, TaskProviderPolicy, TaskUsageSummary, UsageState } from "./orchestrator-task-types.js";
|
|
15
|
+
export interface TaskThreadDto {
|
|
16
|
+
id: string;
|
|
17
|
+
title: string;
|
|
18
|
+
kind: string;
|
|
19
|
+
status: OrchestratorTaskStatus;
|
|
20
|
+
priority: OrchestratorTaskPriority;
|
|
21
|
+
paused: boolean;
|
|
22
|
+
originalRequest: string;
|
|
23
|
+
summary?: string;
|
|
24
|
+
sessionCount: number;
|
|
25
|
+
activeSessionCount: number;
|
|
26
|
+
latestSessionId: string | null;
|
|
27
|
+
latestSessionLabel: string | null;
|
|
28
|
+
latestWorkdir: string | null;
|
|
29
|
+
latestRepo: string | null;
|
|
30
|
+
latestActivityAt: number | null;
|
|
31
|
+
decisionCount: number;
|
|
32
|
+
usage: TaskUsageSummary;
|
|
33
|
+
createdAt: string;
|
|
34
|
+
updatedAt: string;
|
|
35
|
+
closedAt: string | null;
|
|
36
|
+
archivedAt: string | null;
|
|
37
|
+
}
|
|
38
|
+
export interface TaskSessionDto {
|
|
39
|
+
id: string;
|
|
40
|
+
threadId: string;
|
|
41
|
+
sessionId: string;
|
|
42
|
+
framework: string;
|
|
43
|
+
providerSource: string | null;
|
|
44
|
+
model: string | null;
|
|
45
|
+
accountProviderId: string | null;
|
|
46
|
+
accountId: string | null;
|
|
47
|
+
accountLabel: string | null;
|
|
48
|
+
label: string;
|
|
49
|
+
originalTask: string;
|
|
50
|
+
workdir: string;
|
|
51
|
+
repo: string | null;
|
|
52
|
+
status: string;
|
|
53
|
+
activeTool: string | null;
|
|
54
|
+
decisionCount: number;
|
|
55
|
+
autoResolvedCount: number;
|
|
56
|
+
registeredAt: number;
|
|
57
|
+
lastActivityAt: number;
|
|
58
|
+
idleCheckCount: number;
|
|
59
|
+
taskDelivered: boolean;
|
|
60
|
+
completionSummary: string | null;
|
|
61
|
+
lastSeenDecisionIndex: number;
|
|
62
|
+
lastInputSentAt: number | null;
|
|
63
|
+
stoppedAt: number | null;
|
|
64
|
+
inputTokens: number;
|
|
65
|
+
outputTokens: number;
|
|
66
|
+
reasoningTokens: number;
|
|
67
|
+
totalTokens: number;
|
|
68
|
+
cacheTokens: number;
|
|
69
|
+
costUsd: number;
|
|
70
|
+
usageState: UsageState;
|
|
71
|
+
metadata: Record<string, unknown>;
|
|
72
|
+
createdAt: string;
|
|
73
|
+
updatedAt: string;
|
|
74
|
+
}
|
|
75
|
+
export interface TaskDecisionDto {
|
|
76
|
+
id: string;
|
|
77
|
+
threadId: string;
|
|
78
|
+
sessionId: string;
|
|
79
|
+
event: string;
|
|
80
|
+
promptText: string;
|
|
81
|
+
decision: string;
|
|
82
|
+
response: string | null;
|
|
83
|
+
reasoning: string;
|
|
84
|
+
timestamp: number;
|
|
85
|
+
createdAt: string;
|
|
86
|
+
}
|
|
87
|
+
export interface TaskEventDto {
|
|
88
|
+
id: string;
|
|
89
|
+
threadId: string;
|
|
90
|
+
sessionId: string | null;
|
|
91
|
+
eventType: string;
|
|
92
|
+
timestamp: number;
|
|
93
|
+
summary: string;
|
|
94
|
+
data: Record<string, unknown>;
|
|
95
|
+
createdAt: string;
|
|
96
|
+
}
|
|
97
|
+
export interface TaskArtifactDto {
|
|
98
|
+
id: string;
|
|
99
|
+
threadId: string;
|
|
100
|
+
sessionId: string | null;
|
|
101
|
+
artifactType: string;
|
|
102
|
+
title: string;
|
|
103
|
+
path: string | null;
|
|
104
|
+
uri: string | null;
|
|
105
|
+
mimeType: string | null;
|
|
106
|
+
verificationStatus: ArtifactVerificationStatus;
|
|
107
|
+
metadata: Record<string, unknown>;
|
|
108
|
+
createdAt: string;
|
|
109
|
+
}
|
|
110
|
+
export interface TaskMessageDto {
|
|
111
|
+
id: string;
|
|
112
|
+
threadId: string;
|
|
113
|
+
sessionId: string | null;
|
|
114
|
+
senderKind: TaskMessageSenderKind;
|
|
115
|
+
direction: TaskMessageDirection;
|
|
116
|
+
content: string;
|
|
117
|
+
timestamp: number;
|
|
118
|
+
metadata: Record<string, unknown>;
|
|
119
|
+
createdAt: string;
|
|
120
|
+
}
|
|
121
|
+
export type TaskTimelineItemDto = {
|
|
122
|
+
id: string;
|
|
123
|
+
kind: "message";
|
|
124
|
+
threadId: string;
|
|
125
|
+
sessionId: string | null;
|
|
126
|
+
timestamp: number;
|
|
127
|
+
createdAt: string;
|
|
128
|
+
message: TaskMessageDto;
|
|
129
|
+
} | {
|
|
130
|
+
id: string;
|
|
131
|
+
kind: "event";
|
|
132
|
+
threadId: string;
|
|
133
|
+
sessionId: string | null;
|
|
134
|
+
timestamp: number;
|
|
135
|
+
createdAt: string;
|
|
136
|
+
event: TaskEventDto;
|
|
137
|
+
};
|
|
138
|
+
export interface TaskTranscriptDto {
|
|
139
|
+
id: string;
|
|
140
|
+
threadId: string;
|
|
141
|
+
sessionId: string;
|
|
142
|
+
timestamp: number;
|
|
143
|
+
direction: TaskMessageDirection;
|
|
144
|
+
content: string;
|
|
145
|
+
metadata: Record<string, unknown>;
|
|
146
|
+
createdAt: string;
|
|
147
|
+
}
|
|
148
|
+
export interface TaskPlanRevisionDto {
|
|
149
|
+
id: string;
|
|
150
|
+
threadId: string;
|
|
151
|
+
plan: Record<string, unknown>;
|
|
152
|
+
basePlanRevisionId: string | null;
|
|
153
|
+
editSummary: string | null;
|
|
154
|
+
createdBy: string;
|
|
155
|
+
metadata: Record<string, unknown>;
|
|
156
|
+
timestamp: number;
|
|
157
|
+
createdAt: string;
|
|
158
|
+
}
|
|
159
|
+
export interface TaskThreadDetailDto extends TaskThreadDto {
|
|
160
|
+
goal: string;
|
|
161
|
+
roomId: string | null;
|
|
162
|
+
taskRoomId: string | null;
|
|
163
|
+
worldId: string | null;
|
|
164
|
+
ownerUserId: string | null;
|
|
165
|
+
parentTaskId: string | null;
|
|
166
|
+
acceptanceCriteria: string[];
|
|
167
|
+
currentPlan: Record<string, unknown> | null;
|
|
168
|
+
providerPolicy: TaskProviderPolicy | null;
|
|
169
|
+
lastUserTurnAt: string | null;
|
|
170
|
+
lastCoordinatorTurnAt: string | null;
|
|
171
|
+
metadata: Record<string, unknown>;
|
|
172
|
+
sessions: TaskSessionDto[];
|
|
173
|
+
decisions: TaskDecisionDto[];
|
|
174
|
+
events: TaskEventDto[];
|
|
175
|
+
artifacts: TaskArtifactDto[];
|
|
176
|
+
messages: TaskMessageDto[];
|
|
177
|
+
transcripts: TaskTranscriptDto[];
|
|
178
|
+
planRevisions: TaskPlanRevisionDto[];
|
|
179
|
+
}
|
|
180
|
+
export declare function toTaskEventDto(event: OrchestratorTaskDocument["events"][number]): TaskEventDto;
|
|
181
|
+
export declare function toTaskMessageDto(message: OrchestratorTaskDocument["messages"][number]): TaskMessageDto;
|
|
182
|
+
export declare function toTaskTimelineMessageDto(message: OrchestratorTaskDocument["messages"][number]): TaskTimelineItemDto;
|
|
183
|
+
export declare function toTaskTimelineEventDto(event: OrchestratorTaskDocument["events"][number]): TaskTimelineItemDto;
|
|
184
|
+
export declare function toTaskPlanRevisionDto(revision: OrchestratorTaskDocument["planRevisions"][number]): TaskPlanRevisionDto;
|
|
185
|
+
/** Aggregate per-session usage into the by-provider breakdown plus a total. The
|
|
186
|
+
* state is rolled up so the UI can render measured / estimated / unavailable
|
|
187
|
+
* distinctly instead of showing a confident `0`. */
|
|
188
|
+
export declare function summarizeUsageRows(usage: readonly OrchestratorTaskUsage[]): TaskUsageSummary;
|
|
189
|
+
export declare function summarizeUsage(doc: OrchestratorTaskDocument): TaskUsageSummary;
|
|
190
|
+
export declare function toTaskThread(doc: OrchestratorTaskDocument): TaskThreadDto;
|
|
191
|
+
export declare function toTaskThreadDetail(doc: OrchestratorTaskDocument): TaskThreadDetailDto;
|
|
192
|
+
//# sourceMappingURL=orchestrator-task-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-task-mapper.d.ts","sourceRoot":"","sources":["../../../../src/services/orchestrator-task-mapper.ts"],"names":[],"mappings":"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"}
|