@agentproto/runtime 5.8.0 → 5.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3685,8 +3685,11 @@ interface SessionOutcome {
3685
3685
  * `empty` — no assistant text and no artifacts. */
3686
3686
  status: "produced" | "empty";
3687
3687
  /** Level 2 only: what a judge/declaration decided the session's work
3688
- * amounted to. Absent on a plain Level 1 `"derived"` outcome. */
3689
- verdict?: "done" | "abandoned" | "blocked" | "needs-input";
3688
+ * amounted to. `blocked`/`needs-input` never close (flagged instead);
3689
+ * `abandoned`/`partial`/`failed` all close as not-completed
3690
+ * (`endedReason:"steward-abandoned"`), the verdict nuance kept here.
3691
+ * Absent on a plain Level 1 `"derived"` outcome. */
3692
+ verdict?: "done" | "abandoned" | "partial" | "failed" | "blocked" | "needs-input";
3690
3693
  /** Level 2 only: who reached `verdict` — a session id (a judge agent) or
3691
3694
  * the literal `"steward-rules"` for a deterministic close with no judge
3692
3695
  * in the loop. Absent on a plain Level 1 `"derived"` outcome. */
@@ -3771,6 +3774,36 @@ interface AgentSessionLike {
3771
3774
  * adapter-specific forensics. Undefined for drivers that don't
3772
3775
  * expose a process (e.g. a future non-subprocess transport). */
3773
3776
  pid?: number;
3777
+ /** Whether the driver's transport to the adapter is still usable, read
3778
+ * fresh at call time — mirrors `@agentproto/driver-agent-cli`'s
3779
+ * `AgentCliRuntimeSession.isConnected` without importing it (same
3780
+ * driver-decoupled structural-mirror reasoning as `setModel` below).
3781
+ *
3782
+ * The liveness axis `pid` can't cover: an ACP wrapper process commonly
3783
+ * survives its own JSON-RPC stream, so `processAlive` says "alive" while
3784
+ * every RPC rejects with "ACP connection closed". Projected onto
3785
+ * `SessionDescriptor.adapterConnected` at read time and read by the
3786
+ * crash-detect sweep.
3787
+ *
3788
+ * Optional, and `true`-by-absence on purpose: a sandbox proxy or a
3789
+ * print-arm session has no long-lived connection to lose, so only an
3790
+ * explicit `false` is evidence of death. */
3791
+ isConnected?(): boolean;
3792
+ /** Subscribe to transport death — the push half of the axis `isConnected`
3793
+ * polls. Fires at most once, and SYNCHRONOUSLY if the transport is
3794
+ * already gone when the listener is attached, which is what lets the
3795
+ * registry wire this up at bind time without racing a connection that
3796
+ * died during spawn.
3797
+ *
3798
+ * It fires on an ORDERLY teardown too (the host's own `close()` aborts
3799
+ * the same signal). The registry's listener is safe against that by
3800
+ * construction: it routes into `markCrashed`, which refuses any row that
3801
+ * isn't still `running` — and `kill()`/`reapIdle` both flip `status`
3802
+ * before they close the connection.
3803
+ *
3804
+ * Absent for session shapes with no long-lived connection (sandbox
3805
+ * proxy, print arm, future transports). */
3806
+ onDisconnect?(listener: (err: Error) => void): void;
3774
3807
  send(message: unknown): AsyncIterable<AgentStreamEvent>;
3775
3808
  cancel(): Promise<void>;
3776
3809
  /** Resolve a permission request the driver parked in permission-hold mode
@@ -4394,6 +4427,26 @@ interface SessionDescriptor {
4394
4427
  * every process. Ephemeral and opt-in (`session_list`/`agent_sessions_list`
4395
4428
  * `stats`), never persisted; absent for a row with no live process. */
4396
4429
  stats?: Omit<SessionResourceStats, "sessionId">;
4430
+ /** Whether the LIVE agent session's transport to its adapter is still
4431
+ * usable — `AgentCliRuntimeSession.isConnected()`, read at the same
4432
+ * points and with the same ephemeral, never-persisted contract as
4433
+ * {@link processAlive}.
4434
+ *
4435
+ * This is the second, independent liveness axis, and the one `pid` alone
4436
+ * cannot answer. An ACP adapter's wrapper process routinely OUTLIVES its
4437
+ * own JSON-RPC stream: the stream ends (the wrapper closed stdout, the
4438
+ * child it fronts died, the transport errored), `process.kill(pid, 0)`
4439
+ * still succeeds, and the row keeps reporting `running`/`alive` forever
4440
+ * while every prompt rejects with "ACP connection closed". Observed live
4441
+ * on 2026-09-25 (`sess_950d1251`), 40+ minutes after the connection
4442
+ * died, with UIs still showing "Idle · live".
4443
+ *
4444
+ * `false` ⇒ provably dead transport, and the crash-detect sweep's second
4445
+ * ground for marking a row crashed. Absent ⇒ no live binding to ask (a
4446
+ * terminal row, or one whose adapter models no long-lived connection) —
4447
+ * absent is NOT "disconnected", exactly as absent `processAlive` is not
4448
+ * "dead". */
4449
+ adapterConnected?: boolean;
4397
4450
  /** Count of live supervisors currently blocked waiting on this session —
4398
4451
  * HTTP `GET /sessions/:id/wait` long-polls and `session_monitor`
4399
4452
  * subscriptions, both via `monitorSessionWait` (#session-visibility).
@@ -5431,6 +5484,14 @@ interface SessionSummary {
5431
5484
  * `unarchiveSession`. Absent on rows archived before this field existed. */
5432
5485
  archivedAt?: string;
5433
5486
  keepAlive?: boolean;
5487
+ /** Steward wrap-up flag — a blocked/needs-input verdict that deliberately
5488
+ * left the session running; see `SessionDescriptor.wrapupFlag`. */
5489
+ wrapupFlag?: {
5490
+ verdict: "blocked" | "needs-input";
5491
+ note?: string;
5492
+ judgedBy?: string;
5493
+ at: string;
5494
+ };
5434
5495
  pinned?: boolean;
5435
5496
  pty?: boolean;
5436
5497
  name?: string;
@@ -5519,6 +5580,20 @@ interface SessionSummary {
5519
5580
  * (i.e. never wrap) to avoid a regression for sessions/shells that don't
5520
5581
  * use bracketed paste at all. */
5521
5582
  type BracketedPasteMode = "on" | "off" | "unknown";
5583
+ /**
5584
+ * Which death `markCrashed` is recording. Both leave the row equally dead
5585
+ * and equally lazy-resumable — this only picks the `lastError`/banner
5586
+ * wording, so whoever reads the row afterwards knows which liveness axis
5587
+ * actually failed.
5588
+ *
5589
+ * - `"process-gone"` — the pid probe came back dead (`processAlive:
5590
+ * false`). The original, and still the common, crash shape.
5591
+ * - `"transport-closed"` — the adapter's JSON-RPC stream is closed while
5592
+ * its process is (or may be) alive: `AgentSessionLike.isConnected()`
5593
+ * returned false. Invisible to the pid probe, which is exactly why this
5594
+ * ground exists.
5595
+ */
5596
+ type SessionCrashReason = "process-gone" | "transport-closed";
5522
5597
  /**
5523
5598
  * Thrown by the lazy resume path when a resumable session has already failed to
5524
5599
  * resume `MAX_RESUME_ATTEMPTS` times in a row (`canResume` false on a row that
@@ -5681,7 +5756,7 @@ type PermissionRespondResult = {
5681
5756
  * SessionOutcome} / {@link SessionDescriptor.wrapupFlag} for the field
5682
5757
  * meanings. */
5683
5758
  interface CloseWithOutcomeInput {
5684
- verdict: "done" | "abandoned" | "blocked" | "needs-input";
5759
+ verdict: "done" | "abandoned" | "partial" | "failed" | "blocked" | "needs-input";
5685
5760
  /** Overrides the outcome's derived summary when given (e.g. a judge's own
5686
5761
  * written summary) — trimmed the same way `deriveSessionOutcome` trims
5687
5762
  * `lastAssistantText`. Omitted keeps whatever `deriveSessionOutcome`
@@ -6012,6 +6087,16 @@ interface SessionsRegistry {
6012
6087
  * so `interruptedAtBoot === bootId` means "interrupted by the restart that
6013
6088
  * preceded THIS boot" (continue-interrupted). */
6014
6089
  readonly bootId: string;
6090
+ /** Absolute base dir this registry's per-session transcripts AND index
6091
+ * sidecars live under — the SAME dir the writers use (`sessions.eventsDir`
6092
+ * config > default). Exposed so `session_search`/`session_recap` (and a
6093
+ * daemon-startup backfill) read the sidecars this registry writes without
6094
+ * re-deriving the path. */
6095
+ readonly transcriptBaseDir: string;
6096
+ /** Flush any throttled index-sidecar writes immediately. Called at
6097
+ * shutdown; exposed so a test can assert a trailing write landed without
6098
+ * waiting out the throttle window. Best-effort and synchronous. */
6099
+ flushSessionIndexes(): void;
6015
6100
  /** Book one automatic continue prompt against `id` (increment
6016
6101
  * `autoContinueAttempts`, stamp `lastAutoContinueBoot = bootId`) and
6017
6102
  * persist. Called by the continue-on-boot pass BEFORE it sends, so the
@@ -6411,8 +6496,19 @@ interface SessionsRegistry {
6411
6496
  * violate — it refuses (returns false, no-op) a session that is not a
6412
6497
  * live (`running`) agent-cli row, so it is idempotent and safe to call on
6413
6498
  * an already-terminal or non-agent-cli row. Returns true iff a row was
6414
- * actually marked crashed. */
6415
- markCrashed(id: string): boolean;
6499
+ * actually marked crashed.
6500
+ *
6501
+ * `reason` names WHICH death was discovered, and is the only thing that
6502
+ * differs between the sweep's two grounds. Omitted ⇒ `"process-gone"`,
6503
+ * the original pid-probe wording ("adapter process gone (pid N) — session
6504
+ * crashed"). `"transport-closed"` is the case a pid probe cannot see: the
6505
+ * wrapper process is still alive but its ACP stream ended, so the row
6506
+ * would otherwise sit `running`/`alive` forever while every prompt
6507
+ * rejects with "ACP connection closed". Only the `lastError`/banner text
6508
+ * changes — every other effect (status, endedReason, cleared binding,
6509
+ * `session:exited`) is identical, because in both cases the session is
6510
+ * equally dead and equally resumable. */
6511
+ markCrashed(id: string, reason?: SessionCrashReason): boolean;
6416
6512
  /** Flip a LIVE, mid-turn agent-cli row to `stalledSinceMs:<ts>` — the
6417
6513
  * primitive the turn-liveness watchdog (`runStallWatchdogPass`) drives on
6418
6514
  * a periodic sweep when a turn's adapter stream has gone silent past the
@@ -6943,4 +7039,4 @@ interface RecordOpenedPrInput {
6943
7039
  url: string;
6944
7040
  }
6945
7041
 
6946
- export { DEFAULT_WORKTREE_PROVISION_CONCURRENCY as $, type ActivityPolicySlice as A, type UsageRollup as B, type CompletionPolicySupervisor as C, type RemainingQuotaReader as D, type UsageSnapshotRecord as E, type SessionAwaitingQuestion as F, type PolicyRunState as G, type PtyFactory as H, type WorktreeAutoReclaimer as I, type ActivityKind as J, type ActivitySource as K, type ActivityState as L, type MessageUrgency as M, type ActivityWaitingOn as N, type AnthropicReaderConfig as O, type PrResolvedState as P, type QuotaReadableProfile as Q, type RestartPolicy as R, type SessionEvent as S, type TaskLedger as T, type UserPreset as U, AnthropicRemainingQuotaReader as V, type WorktreeProvisioner as W, type AttachPolicyInput as X, type CommandGroupStats as Y, type CommitSpec as Z, DEFAULT_WORKTREE_ISOLATION as _, type SessionEventType as a, type TaskUpdateInput as a$, type EagerResumeFailReason as a0, type EagerResumeOutcome as a1, type EagerResumeSkipReason as a2, type GateSpec as a3, type HostInfo as a4, type JudgeGateSpec as a5, type LabeledProcessStatsReport as a6, type LabeledSessionStats as a7, MAX_MESSAGE_DATA_BYTES as a8, MESSAGE_KINDS as a9, type SessionCurrentPhase as aA, type SessionKind as aB, type SessionMessageFrom as aC, type SessionOutcome as aD, type SessionOutcomeArtifact as aE, type SessionOutcomeCompact as aF, type SessionOutcomeLink as aG, type SessionResourceStats as aH, type SessionSnapshots as aI, type SessionStatus as aJ, type ShellGateSpec as aK, type SpawnAgentInput as aL, type SpawnSessionInput as aM, type StatsDetail as aN, type StoredProfileQuota as aO, TASK_STATUSES as aP, type TaskCaller as aQ, type TaskChangedEvent as aR, type TaskClaimInput as aS, type TaskCreateInput as aT, type TaskGateOutcome as aU, type TaskGateRunner as aV, type TaskLedgerRegistry as aW, type TaskLedgerSessionSlice as aX, type TaskListFilter as aY, type TaskRecord as aZ, type TaskStatus as a_, MESSAGE_PREAMBLE as aa, MESSAGE_TAG as ab, MESSAGE_URGENCIES as ac, type MessageDeliveryVia as ad, type MessageFilter as ae, type MessageRelation as af, type MessageTreeNode as ag, type OnFailSpec as ah, type OrphanGroup as ai, type PendingPermission as aj, type PermissionRespondInput as ak, type PermissionRespondResult as al, type PolicyRunStatus as am, type PricingResolver as an, type ProcessDetail as ao, type ProcessStatsReport as ap, type ProcessStatsService as aq, type QuotaStoreFile as ar, type QuotaStoreOptions as as, type RegisterBrowserInput as at, type RegisterSessionInput as au, type RemainingQuota as av, type ResourceStats as aw, ResumeDisabledError as ax, SESSION_END_REASONS as ay, SESSION_ID_ENV as az, type SessionEventBus as b, sanitizeLabel as b$, type TaskVerification as b0, type TaskVerifySupervisor as b1, type TaskWriteResult as b2, type TokenPricing as b3, type UsageBucket as b4, type UsageComputeInput as b5, type UsageDetail as b6, type UsageSource as b7, type UserPresetsFile as b8, WORKSPACE_SLUG_ENV as b9, isProviderLimitError as bA, isTerminalActivityState as bB, listUserPresets as bC, loadQuotaStore as bD, loadUserPresets as bE, loadWorktreeIsolation as bF, matchesMessageFilter as bG, messageFrom as bH, mintMessageId as bI, normalizeCommand as bJ, normalizeWorktreeField as bK, parseAnthropicRateLimitHeaders as bL, parseTaskStatus as bM, parseWindow as bN, parseWorktreeIsolationMode as bO, pickUsageDetail as bP, policyToActivities as bQ, policyWatchesSession as bR, prToActivities as bS, projectSessionUsage as bT, readProfileQuota as bU, recordProfileQuota as bV, renderInboxDigest as bW, renderSessionMessage as bX, renderSessionMessages as bY, resolveRelation as bZ, rollupUsage as b_, WORKTREE_ISOLATION_ENV as ba, WORKTREE_PROVISION_CONCURRENCY_ENV as bb, type WorktreeDecision as bc, type WorktreeProvisionOutcome as bd, type WorktreeProvisionPhase as be, type WorktreeProvisionProgress as bf, type WorktreeProvisionRequest as bg, type WorktreeRequest as bh, activityCounts as bi, compactOutcome as bj, createProcessStatsService as bk, createSessionMessage as bl, createSupervisorTaskGateRunner as bm, createTaskLedger as bn, decideWorktreeIsolation as bo, deleteUserPreset as bp, deriveSessionOutcome as bq, deriveSessionUsage as br, escapeHumanPrompt as bs, escapeMessageBody as bt, filterActivities as bu, getProcessStatsService as bv, getUserPreset as bw, isClosedTaskStatus as bx, isKnownSessionEndReason as by, isMessageAllowed as bz, type SessionsRegistry as c, saveUserPreset as c0, trackWorktreeProvision as c1, turnToActivities as c2, userPresetsPath as c3, workflowToActivities as c4, type RecentSpawnConfig as c5, deriveRecentSpawnConfigs as c6, touchUserPreset as c7, userPresetSchema as c8, type SessionDescriptor as d, type SessionEndReason as e, type ActivityListFilter as f, type ActivityRecord as g, type ActivityTurnSession as h, type ActivityPrSession as i, type ActivityWorkflowRunSlice as j, type ActivityTaskSlice as k, type AgentsMdResolution as l, type SandboxAppServeSpec as m, type WorktreeField as n, type AgentSessionLike as o, type UsageReadContext as p, type UsageReadResult as q, type MessageKind as r, type SessionMessage as s, type AgentStreamEvent as t, type SessionUsage as u, type ToolCallRecord as v, type StatsSessionDescriptor as w, type ProcRow as x, type ProvisionInFlight as y, type ProvisionTracker as z };
7042
+ export { DEFAULT_WORKTREE_ISOLATION as $, type ActivityPolicySlice as A, type SessionCrashReason as B, type CompletionPolicySupervisor as C, type UsageRollup as D, type RemainingQuotaReader as E, type UsageSnapshotRecord as F, type SessionAwaitingQuestion as G, type PolicyRunState as H, type PtyFactory as I, type WorktreeAutoReclaimer as J, type ActivityKind as K, type ActivitySource as L, type MessageUrgency as M, type ActivityState as N, type ActivityWaitingOn as O, type PrResolvedState as P, type QuotaReadableProfile as Q, type RestartPolicy as R, type SessionEvent as S, type TaskLedger as T, type UserPreset as U, type AnthropicReaderConfig as V, type WorktreeProvisioner as W, AnthropicRemainingQuotaReader as X, type AttachPolicyInput as Y, type CommandGroupStats as Z, type CommitSpec as _, type SessionEventType as a, type TaskStatus as a$, DEFAULT_WORKTREE_PROVISION_CONCURRENCY as a0, type EagerResumeFailReason as a1, type EagerResumeOutcome as a2, type EagerResumeSkipReason as a3, type GateSpec as a4, type HostInfo as a5, type JudgeGateSpec as a6, type LabeledProcessStatsReport as a7, type LabeledSessionStats as a8, MAX_MESSAGE_DATA_BYTES as a9, SESSION_ID_ENV as aA, type SessionCurrentPhase as aB, type SessionKind as aC, type SessionMessageFrom as aD, type SessionOutcome as aE, type SessionOutcomeArtifact as aF, type SessionOutcomeCompact as aG, type SessionOutcomeLink as aH, type SessionResourceStats as aI, type SessionSnapshots as aJ, type SessionStatus as aK, type ShellGateSpec as aL, type SpawnAgentInput as aM, type SpawnSessionInput as aN, type StatsDetail as aO, type StoredProfileQuota as aP, TASK_STATUSES as aQ, type TaskCaller as aR, type TaskChangedEvent as aS, type TaskClaimInput as aT, type TaskCreateInput as aU, type TaskGateOutcome as aV, type TaskGateRunner as aW, type TaskLedgerRegistry as aX, type TaskLedgerSessionSlice as aY, type TaskListFilter as aZ, type TaskRecord as a_, MESSAGE_KINDS as aa, MESSAGE_PREAMBLE as ab, MESSAGE_TAG as ac, MESSAGE_URGENCIES as ad, type MessageDeliveryVia as ae, type MessageFilter as af, type MessageRelation as ag, type MessageTreeNode as ah, type OnFailSpec as ai, type OrphanGroup as aj, type PendingPermission as ak, type PermissionRespondInput as al, type PermissionRespondResult as am, type PolicyRunStatus as an, type PricingResolver as ao, type ProcessDetail as ap, type ProcessStatsReport as aq, type ProcessStatsService as ar, type QuotaStoreFile as as, type QuotaStoreOptions as at, type RegisterBrowserInput as au, type RegisterSessionInput as av, type RemainingQuota as aw, type ResourceStats as ax, ResumeDisabledError as ay, SESSION_END_REASONS as az, type SessionEventBus as b, rollupUsage as b$, type TaskUpdateInput as b0, type TaskVerification as b1, type TaskVerifySupervisor as b2, type TaskWriteResult as b3, type TokenPricing as b4, type UsageBucket as b5, type UsageComputeInput as b6, type UsageDetail as b7, type UsageSource as b8, type UserPresetsFile as b9, isMessageAllowed as bA, isProviderLimitError as bB, isTerminalActivityState as bC, listUserPresets as bD, loadQuotaStore as bE, loadUserPresets as bF, loadWorktreeIsolation as bG, matchesMessageFilter as bH, messageFrom as bI, mintMessageId as bJ, normalizeCommand as bK, normalizeWorktreeField as bL, parseAnthropicRateLimitHeaders as bM, parseTaskStatus as bN, parseWindow as bO, parseWorktreeIsolationMode as bP, pickUsageDetail as bQ, policyToActivities as bR, policyWatchesSession as bS, prToActivities as bT, projectSessionUsage as bU, readProfileQuota as bV, recordProfileQuota as bW, renderInboxDigest as bX, renderSessionMessage as bY, renderSessionMessages as bZ, resolveRelation as b_, WORKSPACE_SLUG_ENV as ba, WORKTREE_ISOLATION_ENV as bb, WORKTREE_PROVISION_CONCURRENCY_ENV as bc, type WorktreeDecision as bd, type WorktreeProvisionOutcome as be, type WorktreeProvisionPhase as bf, type WorktreeProvisionProgress as bg, type WorktreeProvisionRequest as bh, type WorktreeRequest as bi, activityCounts as bj, compactOutcome as bk, createProcessStatsService as bl, createSessionMessage as bm, createSupervisorTaskGateRunner as bn, createTaskLedger as bo, decideWorktreeIsolation as bp, deleteUserPreset as bq, deriveSessionOutcome as br, deriveSessionUsage as bs, escapeHumanPrompt as bt, escapeMessageBody as bu, filterActivities as bv, getProcessStatsService as bw, getUserPreset as bx, isClosedTaskStatus as by, isKnownSessionEndReason as bz, type SessionsRegistry as c, sanitizeLabel as c0, saveUserPreset as c1, trackWorktreeProvision as c2, turnToActivities as c3, userPresetsPath as c4, workflowToActivities as c5, type RecentSpawnConfig as c6, deriveRecentSpawnConfigs as c7, touchUserPreset as c8, userPresetSchema as c9, type SessionDescriptor as d, type SessionEndReason as e, type ActivityListFilter as f, type ActivityRecord as g, type ActivityTurnSession as h, type ActivityPrSession as i, type ActivityWorkflowRunSlice as j, type ActivityTaskSlice as k, type AgentsMdResolution as l, type SandboxAppServeSpec as m, type WorktreeField as n, type AgentSessionLike as o, type UsageReadContext as p, type UsageReadResult as q, type MessageKind as r, type SessionMessage as s, type AgentStreamEvent as t, type SessionUsage as u, type ToolCallRecord as v, type StatsSessionDescriptor as w, type ProcRow as x, type ProvisionInFlight as y, type ProvisionTracker as z };
@@ -1,7 +1,7 @@
1
1
  import 'zod';
2
2
  import './session-config-DxIIuJFY.js';
3
3
  import './spawn-defaults-Cp9SGZex.js';
4
- export { c5 as RecentSpawnConfig, U as UserPreset, b8 as UserPresetsFile, bp as deleteUserPreset, c6 as deriveRecentSpawnConfigs, bw as getUserPreset, bC as listUserPresets, bE as loadUserPresets, c0 as saveUserPreset, c7 as touchUserPreset, c8 as userPresetSchema, c3 as userPresetsPath } from './sessions-SrISpFsH.js';
4
+ export { c6 as RecentSpawnConfig, U as UserPreset, b9 as UserPresetsFile, bq as deleteUserPreset, c7 as deriveRecentSpawnConfigs, bx as getUserPreset, bD as listUserPresets, bF as loadUserPresets, c1 as saveUserPreset, c8 as touchUserPreset, c9 as userPresetSchema, c4 as userPresetsPath } from './sessions-Cse9PhLG.js';
5
5
  import '@agentproto/auth';
6
6
  import '@agentproto/acp';
7
7
  import '@agentproto/command-sandbox';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentproto/runtime",
3
- "version": "5.8.0",
3
+ "version": "5.9.0",
4
4
  "description": "@agentproto/runtime — long-running gateway that turns an agentproto workspace into a live runtime. Composes @agentproto/mcp-server (CRUD verbs) with HTTP transport, HEARTBEAT.md autonomy loop, and append-only conversation persistence. Drop a workspace dir, point your MCP client at it, and the agent ticks on its own.",
5
5
  "keywords": [
6
6
  "agentproto",
@@ -162,39 +162,39 @@
162
162
  "ws": "^8.21.3",
163
163
  "zod": "^4.6.5",
164
164
  "@agentproto/a2a": "0.1.0",
165
- "@agentproto/acp": "0.9.2",
166
165
  "@agentproto/adapter-browser": "0.3.0",
166
+ "@agentproto/acp": "0.10.0",
167
167
  "@agentproto/agent": "0.2.5",
168
168
  "@agentproto/app-client": "0.4.1",
169
- "@agentproto/app-kit": "1.5.0",
170
169
  "@agentproto/apps": "0.18.0",
171
170
  "@agentproto/auth": "1.1.2",
172
- "@agentproto/command-sandbox": "0.3.0",
173
171
  "@agentproto/driver": "0.3.0",
174
- "@agentproto/driver-agent-cli": "2.7.0",
172
+ "@agentproto/command-sandbox": "0.3.0",
173
+ "@agentproto/driver-agent-cli": "2.7.1",
175
174
  "@agentproto/driver-browser": "0.2.0",
175
+ "@agentproto/app-kit": "1.5.0",
176
176
  "@agentproto/driver-http": "0.1.10",
177
177
  "@agentproto/eval-reporters": "0.2.20",
178
178
  "@agentproto/governance": "0.1.5",
179
179
  "@agentproto/governance-engine": "0.1.10",
180
180
  "@agentproto/llm-endpoint": "0.11.3",
181
181
  "@agentproto/manifest": "0.2.3",
182
- "@agentproto/mcp-server": "0.5.0",
183
- "@agentproto/model-catalog": "0.11.3",
184
- "@agentproto/pairing-host": "0.2.2",
185
182
  "@agentproto/plugin-local-browser": "0.3.2",
186
183
  "@agentproto/provider-kit": "0.4.6",
184
+ "@agentproto/model-catalog": "0.11.3",
187
185
  "@agentproto/provider-presets": "0.7.0",
186
+ "@agentproto/mcp-server": "0.6.0",
188
187
  "@agentproto/providers-store": "0.3.21",
189
188
  "@agentproto/redaction": "0.2.3",
189
+ "@agentproto/secrets": "1.2.1",
190
190
  "@agentproto/review": "0.4.0",
191
191
  "@agentproto/routine": "0.3.1",
192
192
  "@agentproto/sandbox": "0.8.1",
193
- "@agentproto/secrets": "1.2.1",
194
193
  "@agentproto/telemetry-langfuse": "0.2.18",
195
194
  "@agentproto/tool": "0.4.0",
196
195
  "@agentproto/workflow": "0.7.1",
197
196
  "@agentproto/workflow-loader": "0.2.5",
197
+ "@agentproto/pairing-host": "0.2.3",
198
198
  "@agentproto/workflow-runtime": "0.16.0",
199
199
  "@agentproto/workspace-brain": "0.4.10"
200
200
  },