@agentproto/runtime 5.10.0 → 5.11.1

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.
@@ -2040,7 +2040,7 @@ declare function isProviderLimitError(message: string | undefined): boolean;
2040
2040
  * and session_monitor MCP tool (long-poll multiplexed).
2041
2041
  */
2042
2042
 
2043
- type SessionEventType = "session:turn-end" | "session:awaiting-input" | "session:awaiting-input-flagged" | "session:awaiting-question-answered" | "session:permission-request" | "session:permission-resolved" | "session:exited" | "session:reaped" | "session:stalled" | "session:stall-cleared" | "session:watcher-attached" | "session:watcher-detached" | "session:bg-tasks-parked" | "session:bg-tasks-cleared" | "session:bg-task" | "session:resumed" | "session:spawned" | "session:provisioning" | "session:command-done" | "session:model-changed" | "session:config-changed" | "session:renamed" | "session:pinned-changed" | "session:pinned-reordered" | "session:artifact-added" | "session:artifact-pinned-changed" | "session:message" | "policy:passed" | "policy:failed" | "policy:commit-ready" | "policy:committed" | "cron:fired" | "cron:succeeded" | "cron:failed" | "cron:unhealthy" | "activity:changed" | "task:changed" | "workflow:gate-report" | "workflow:suspended" | "workflow:suspend-resumed" | "session:harness-warning" | "session:handoff-suggested" | "approval:requested" | "approval:decided" | "approval:consumed" | "approval:expired";
2043
+ type SessionEventType = "session:turn-end" | "session:awaiting-input" | "session:awaiting-input-flagged" | "session:awaiting-question-answered" | "session:permission-request" | "session:permission-resolved" | "session:exited" | "session:reaped" | "session:stalled" | "session:stall-cleared" | "session:watcher-attached" | "session:watcher-detached" | "session:bg-tasks-parked" | "session:bg-tasks-cleared" | "session:bg-task" | "session:resumed" | "session:spawned" | "session:provisioning" | "session:command-done" | "session:model-changed" | "session:config-changed" | "session:renamed" | "session:pinned-changed" | "session:pinned-reordered" | "session:artifact-added" | "session:artifact-pinned-changed" | "session:message" | "policy:passed" | "policy:failed" | "policy:commit-ready" | "policy:committed" | "cron:fired" | "cron:succeeded" | "cron:failed" | "cron:unhealthy" | "activity:changed" | "task:changed" | "workflow:gate-report" | "workflow:suspended" | "workflow:suspend-resumed" | "session:harness-warning" | "mcp:degraded" | "session:handoff-suggested" | "approval:requested" | "approval:decided" | "approval:consumed" | "approval:expired";
2044
2044
  /**
2045
2045
  * Fixed severity vocabulary for a judge-gate finding (WP-D). Deliberately
2046
2046
  * small and fixed so `policy_status` output is comparable across different
@@ -2885,6 +2885,23 @@ interface SessionHarnessWarningEvent {
2885
2885
  label?: string;
2886
2886
  ts: string;
2887
2887
  }
2888
+ /**
2889
+ * Emitted when a session finished a turn while the harness never loaded the
2890
+ * daemon's own `/mcp` tools: `never-listed` (no `tools/list` ever reached the
2891
+ * mount), `zero-tools` (it listed an empty set), or `error` (the handshake or
2892
+ * `tools/list` failed; `detail` carries the JSON-RPC/HTTP error). `server` is
2893
+ * the mount's name in the descriptor's `mcpServers`. Re-emitted only when the
2894
+ * (reason, detail) pair changes. Same bus distribution as every other event.
2895
+ */
2896
+ interface McpDegradedEvent {
2897
+ type: "mcp:degraded";
2898
+ sessionId: string;
2899
+ server: string;
2900
+ reason: "never-listed" | "zero-tools" | "error";
2901
+ detail?: string;
2902
+ label?: string;
2903
+ ts: string;
2904
+ }
2888
2905
  /** Why a handoff is being suggested. */
2889
2906
  type HandoffSuggestionReason = "provider-limit" | "quota-threshold";
2890
2907
  /**
@@ -2958,7 +2975,7 @@ interface ApprovalExpiredEvent {
2958
2975
  taskId?: string;
2959
2976
  ts: string;
2960
2977
  }
2961
- type SessionEvent = SessionTurnEndEvent | SessionAwaitingInputEvent | SessionAwaitingInputFlaggedEvent | SessionAwaitingQuestionAnsweredEvent | SessionPermissionRequestEvent | SessionPermissionResolvedEvent | SessionExitedEvent | SessionReapedEvent | SessionStalledEvent | SessionStallClearedEvent | SessionHandoffSuggestedEvent | SessionWatcherAttachedEvent | SessionWatcherDetachedEvent | SessionBgTasksParkedEvent | SessionBgTasksClearedEvent | SessionBgTaskEvent | SessionResumedEvent | SessionSpawnedEvent | SessionProvisioningEvent | SessionCommandDoneEvent | SessionModelChangedEvent | SessionConfigChangedEvent | SessionRenamedEvent | SessionPinnedEvent | SessionPinnedReorderedEvent | SessionArtifactAddedEvent | SessionArtifactPinnedEvent | SessionMessageEvent | PolicyPassedEvent | PolicyFailedEvent | PolicyCommitReadyEvent | PolicyCommittedEvent | CronFiredEvent | CronSucceededEvent | CronFailedEvent | CronUnhealthyEvent | ActivityChangedEvent | TaskChangedEvent | WorkflowGateReportEvent | WorkflowApprovalRequestedEvent | WorkflowApprovalResolvedEvent | WorkflowSuspendedEvent | WorkflowSuspendResumedEvent | SessionHarnessWarningEvent | ApprovalRequestedEvent | ApprovalDecidedEvent | ApprovalConsumedEvent | ApprovalExpiredEvent;
2978
+ type SessionEvent = SessionTurnEndEvent | SessionAwaitingInputEvent | SessionAwaitingInputFlaggedEvent | SessionAwaitingQuestionAnsweredEvent | SessionPermissionRequestEvent | SessionPermissionResolvedEvent | SessionExitedEvent | SessionReapedEvent | SessionStalledEvent | SessionStallClearedEvent | SessionHandoffSuggestedEvent | SessionWatcherAttachedEvent | SessionWatcherDetachedEvent | SessionBgTasksParkedEvent | SessionBgTasksClearedEvent | SessionBgTaskEvent | SessionResumedEvent | SessionSpawnedEvent | SessionProvisioningEvent | SessionCommandDoneEvent | SessionModelChangedEvent | SessionConfigChangedEvent | SessionRenamedEvent | SessionPinnedEvent | SessionPinnedReorderedEvent | SessionArtifactAddedEvent | SessionArtifactPinnedEvent | SessionMessageEvent | PolicyPassedEvent | PolicyFailedEvent | PolicyCommitReadyEvent | PolicyCommittedEvent | CronFiredEvent | CronSucceededEvent | CronFailedEvent | CronUnhealthyEvent | ActivityChangedEvent | TaskChangedEvent | WorkflowGateReportEvent | WorkflowApprovalRequestedEvent | WorkflowApprovalResolvedEvent | WorkflowSuspendedEvent | WorkflowSuspendResumedEvent | SessionHarnessWarningEvent | McpDegradedEvent | ApprovalRequestedEvent | ApprovalDecidedEvent | ApprovalConsumedEvent | ApprovalExpiredEvent;
2962
2979
  interface SessionEventBus {
2963
2980
  emit(ev: SessionEvent): void;
2964
2981
  /** Subscribe to a specific event type. Returns an unsubscribe fn. */
@@ -1,7 +1,7 @@
1
1
  import 'zod';
2
2
  import './session-config-BUDM7T1B.js';
3
3
  import './spawn-defaults-Dm7nbxcP.js';
4
- export { c8 as RecentSpawnConfig, U as UserPreset, bb as UserPresetsFile, bs as deleteUserPreset, c9 as deriveRecentSpawnConfigs, bz as getUserPreset, bF as listUserPresets, bH as loadUserPresets, c3 as saveUserPreset, ca as touchUserPreset, cb as userPresetSchema, c6 as userPresetsPath } from './sessions-BdgU9X6P.js';
4
+ export { c8 as RecentSpawnConfig, U as UserPreset, bb as UserPresetsFile, bs as deleteUserPreset, c9 as deriveRecentSpawnConfigs, bz as getUserPreset, bF as listUserPresets, bH as loadUserPresets, c3 as saveUserPreset, ca as touchUserPreset, cb as userPresetSchema, c6 as userPresetsPath } from './sessions-Cv4XNQXv.js';
5
5
  import '@agentproto/auth';
6
6
  import '@agentproto/acp';
7
7
  import '@agentproto/command-sandbox';
@@ -270,8 +270,11 @@ A `mcpServers` entry in the descriptor (or the daemon self-mount) only
270
270
  means the mount was *requested*: it does not guarantee the child actually
271
271
  loaded any tools. A client can connect yet end up with 0 tools if the
272
272
  server's MCP handshake is not one it can use (e.g. a protocol-era mismatch
273
- on `server/discover` / `tools/list`). Verify from inside the session (list
274
- its tools) before relying on a mount.
273
+ on `server/discover` / `tools/list`). The daemon watches its own `/mcp` mount
274
+ per session: read `session_capabilities` (`mcpServers[].status`, `toolCount`,
275
+ `tools`) to see what the harness actually listed, and watch `session_events_poll`
276
+ for `mcp:degraded` (a turn ended with the mount never listed, listing zero
277
+ tools, or failing).
275
278
 
276
279
  Each entry's `headers` are static HTTP headers sent with every request to
277
280
  an `http`/`sse` server (ignored for `stdio`). `credentialRef` resolves a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentproto/runtime",
3
- "version": "5.10.0",
3
+ "version": "5.11.1",
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",
@@ -143,6 +143,21 @@
143
143
  "types": "./dist/app-ui-placeholder.d.ts",
144
144
  "import": "./dist/app-ui-placeholder.mjs",
145
145
  "default": "./dist/app-ui-placeholder.mjs"
146
+ },
147
+ "./app-catalog": {
148
+ "types": "./dist/app-catalog.d.ts",
149
+ "import": "./dist/app-catalog.mjs",
150
+ "default": "./dist/app-catalog.mjs"
151
+ },
152
+ "./first-party-catalog-gen": {
153
+ "types": "./dist/first-party-catalog-gen.d.ts",
154
+ "import": "./dist/first-party-catalog-gen.mjs",
155
+ "default": "./dist/first-party-catalog-gen.mjs"
156
+ },
157
+ "./app-remote-install": {
158
+ "types": "./dist/app-remote-install.d.ts",
159
+ "import": "./dist/app-remote-install.mjs",
160
+ "default": "./dist/app-remote-install.mjs"
146
161
  }
147
162
  },
148
163
  "files": [
@@ -169,36 +184,36 @@
169
184
  "@agentproto/agent": "0.2.5",
170
185
  "@agentproto/app-client": "0.4.1",
171
186
  "@agentproto/app-kit": "1.6.0",
172
- "@agentproto/apps": "0.19.0",
187
+ "@agentproto/apps": "0.20.1",
173
188
  "@agentproto/auth": "1.1.2",
174
- "@agentproto/command-sandbox": "0.3.0",
175
189
  "@agentproto/driver": "0.3.0",
176
- "@agentproto/driver-agent-cli": "2.8.0",
177
- "@agentproto/driver-browser": "0.2.0",
190
+ "@agentproto/command-sandbox": "0.3.0",
178
191
  "@agentproto/driver-http": "0.1.10",
179
- "@agentproto/eval-reporters": "0.2.20",
192
+ "@agentproto/driver-agent-cli": "2.8.0",
180
193
  "@agentproto/governance": "0.1.5",
194
+ "@agentproto/eval-reporters": "0.2.20",
181
195
  "@agentproto/governance-engine": "0.1.10",
182
- "@agentproto/llm-endpoint": "0.11.3",
196
+ "@agentproto/driver-browser": "0.2.0",
197
+ "@agentproto/llm-endpoint": "0.11.4",
183
198
  "@agentproto/manifest": "0.2.3",
184
199
  "@agentproto/mcp-server": "0.6.1",
185
- "@agentproto/model-catalog": "0.11.3",
186
- "@agentproto/pairing-host": "0.2.4",
200
+ "@agentproto/model-catalog": "0.11.4",
187
201
  "@agentproto/plugin-local-browser": "0.3.2",
202
+ "@agentproto/pairing-host": "0.2.4",
188
203
  "@agentproto/provider-kit": "0.4.6",
189
- "@agentproto/provider-presets": "0.7.0",
190
- "@agentproto/providers-store": "0.3.21",
204
+ "@agentproto/providers-store": "0.3.22",
191
205
  "@agentproto/redaction": "0.2.3",
192
206
  "@agentproto/review": "0.5.0",
193
- "@agentproto/routine": "0.3.1",
207
+ "@agentproto/provider-presets": "0.7.0",
194
208
  "@agentproto/sandbox": "0.8.2",
209
+ "@agentproto/routine": "0.3.1",
195
210
  "@agentproto/secrets": "1.3.0",
196
211
  "@agentproto/telemetry-langfuse": "0.2.18",
197
212
  "@agentproto/tool": "0.4.0",
198
- "@agentproto/workflow": "0.7.1",
199
213
  "@agentproto/workflow-loader": "0.2.5",
200
- "@agentproto/workflow-runtime": "0.16.0",
201
- "@agentproto/workspace-brain": "0.4.10"
214
+ "@agentproto/workflow": "0.7.1",
215
+ "@agentproto/workspace-brain": "0.4.10",
216
+ "@agentproto/workflow-runtime": "0.16.0"
202
217
  },
203
218
  "optionalDependencies": {
204
219
  "@agentproto/sandbox-e2b": "0.5.14"
@@ -211,9 +226,9 @@
211
226
  "typescript": "^5.9.3",
212
227
  "vite-node": "^3.2.4",
213
228
  "vitest": "^3.2.7",
214
- "@agentproto/rendezvous": "0.2.3",
215
229
  "@agentproto/tooling": "0.1.0",
216
- "@agentproto/transcript-fixtures": "0.3.0"
230
+ "@agentproto/transcript-fixtures": "0.3.0",
231
+ "@agentproto/rendezvous": "0.2.3"
217
232
  },
218
233
  "scripts": {
219
234
  "dev": "tsup --watch",
@@ -225,6 +240,7 @@
225
240
  "gen:checkpoint-schema": "vite-node scripts/gen-checkpoint-schema.mjs",
226
241
  "sim:inbound": "vite-node scripts/simulate-inbound.mjs",
227
242
  "telegram:proxy": "vite-node scripts/telegram-proxy.mjs",
228
- "bench:review-ledger": "vite-node scripts/bench-review-ledger.mjs"
243
+ "bench:review-ledger": "vite-node scripts/bench-review-ledger.mjs",
244
+ "catalog:first-party": "node scripts/sync-first-party-catalog.mjs"
229
245
  }
230
246
  }