@agentproto/runtime 4.1.0 → 5.1.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.
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { DaemonConfig, TunnelConfig, FeaturesConfig, PairingConfig, WorktreesConfig, SpawnConfig, SessionsConfig, ProvenanceConfig, AgentsMdConfig, TitlerConfig, ProfileConfig, AcpAgentConfigEntry, TerminalPreset } from './config.js';
3
- import { S as SpawnDefaultsConfig } from './spawn-defaults-CZj39Znq.js';
3
+ import { S as SpawnDefaultsConfig } from './spawn-defaults-wQV9AeiG.js';
4
4
  import './context-continuity-Bn99UtVC.js';
5
5
  import '@agentproto/acp';
6
6
  import '@agentproto/command-sandbox';
@@ -1949,6 +1949,29 @@ var init_worktree_identity = __esm({
1949
1949
  z.object({ worktreeId: z.string() });
1950
1950
  }
1951
1951
  });
1952
+ var init_mcp_imports = __esm({
1953
+ "src/mcp-imports.ts"() {
1954
+ }
1955
+ });
1956
+ var bundleIdSchema, bundleSchema;
1957
+ var init_bundles = __esm({
1958
+ "src/bundles.ts"() {
1959
+ init_mcp_imports();
1960
+ bundleIdSchema = z.string().regex(/^[a-z0-9][a-z0-9-]*$/, "id must be lowercase kebab-case (letters, digits, hyphens)");
1961
+ bundleSchema = z.object({
1962
+ id: bundleIdSchema,
1963
+ label: z.string().min(1),
1964
+ description: z.string().min(1).optional(),
1965
+ mcpImports: z.array(z.string().min(1)),
1966
+ includeDaemon: z.boolean().optional(),
1967
+ skills: z.array(z.string().min(1))
1968
+ });
1969
+ z.object({
1970
+ version: z.literal(1),
1971
+ bundles: z.array(bundleSchema)
1972
+ });
1973
+ }
1974
+ });
1952
1975
  var init_catalog_models = __esm({
1953
1976
  "src/catalog-models.ts"() {
1954
1977
  init_spawn_defaults();
@@ -2152,10 +2175,13 @@ var init_sandbox_adapters = __esm({
2152
2175
  var init_session_spawn = __esm({
2153
2176
  "src/session-spawn.ts"() {
2154
2177
  init_sessions();
2178
+ init_transcript_writer();
2155
2179
  init_workspaces_config();
2156
2180
  init_config();
2157
2181
  init_worktree_identity();
2158
2182
  init_spawn_defaults();
2183
+ init_bundles();
2184
+ init_mcp_imports();
2159
2185
  init_launch_config();
2160
2186
  init_claude_code_oauth_source();
2161
2187
  init_providers_store();
@@ -2301,6 +2327,9 @@ var init_agent_start_schema = __esm({
2301
2327
  notifyParentOnCrash: mcpBool.optional().describe(
2302
2328
  `Notify this session's parent directly (in-band) if it later crashes. Independent of the global \`notifyUrl\` webhook, which fires either way. ${help("notifyParentOnCrash")}`
2303
2329
  ),
2330
+ sentinel: mcpBool.optional().describe(
2331
+ `Set false to opt this spawn OUT of sentinel auto-link: a PR this session opens will never get an automatic AIP-60 sentinel watching it, regardless of the daemon's \`sentinel.autoWatchPrs\` config. ${help("sentinel")}`
2332
+ ),
2304
2333
  allowSharedCwd: mcpBool.optional().describe(
2305
2334
  "Acknowledge running a nested spawn in the parent's dirty working tree, silencing the shared-dirty-cwd warning. Only relevant with no `worktree`/`sandbox`; default false = warn."
2306
2335
  ),
@@ -2315,6 +2344,12 @@ var init_agent_start_schema = __esm({
2315
2344
  skills: jsonTolerant(z.array(z.string())).optional().describe(
2316
2345
  `Normalized skill ids for this session (e.g. ['agentproto']). REPLACES (not unions) config defaults when set. Adapters with no \`skills\` option (e.g. claude-code) ignore it. ${help("skills")}`
2317
2346
  ),
2347
+ bundles: jsonTolerant(z.array(z.string())).optional().describe(
2348
+ `Capability bundle ids (\`bundle_list\`) to attach \u2014 each expands to its imported MCPs (mounted as native MCP servers, never via the mcp_imported_* indirection) + skills, and optionally the daemon's own /mcp. REPLACES (not unions) config defaults when set. ${help("bundles")}`
2349
+ ),
2350
+ daemonMount: mcpBool.optional().describe(
2351
+ `Explicitly mount the daemon's own scoped /mcp gateway for this spawn \u2014 the only way an adapter outside the default self-mount set (opencode, codex, gemini, \u2026) gets it. Default false. ${help("daemonMount")}`
2352
+ ),
2318
2353
  model: z.string().optional().describe(
2319
2354
  "Model identifier to pass to the adapter. For claude-code, applied via session/set_config_option \u2014 NOT a CLI flag."
2320
2355
  ),
@@ -2487,6 +2522,7 @@ var init_user_presets = __esm({
2487
2522
  contextProfile: z.string().min(1).optional(),
2488
2523
  cwd: z.string().min(1).optional(),
2489
2524
  skills: z.array(z.string().min(1)).optional(),
2525
+ bundles: z.array(z.string().min(1)).optional(),
2490
2526
  browser: z.union([z.literal("headless"), z.literal(false)]).optional()
2491
2527
  });
2492
2528
  z.object({
@@ -2579,6 +2615,11 @@ var init_session_observer = __esm({
2579
2615
  "src/session-observer.ts"() {
2580
2616
  }
2581
2617
  });
2618
+ var init_session_artifacts = __esm({
2619
+ "src/session-artifacts.ts"() {
2620
+ init_transcript_writer();
2621
+ }
2622
+ });
2582
2623
  var DEFAULT_TITLER_MODEL;
2583
2624
  var init_session_titler = __esm({
2584
2625
  "src/session-titler.ts"() {
@@ -2654,6 +2695,7 @@ var init_sessions = __esm({
2654
2695
  init_session_observer();
2655
2696
  init_tool_presenter();
2656
2697
  init_transcript_writer();
2698
+ init_session_artifacts();
2657
2699
  init_session_titler();
2658
2700
  init_resume_context_digest();
2659
2701
  init_conversation_index();
@@ -2821,7 +2863,9 @@ var init_config_schema = __esm({
2821
2863
  skills: z.array(z.string()).optional(),
2822
2864
  options: optionsMapSchema.optional(),
2823
2865
  auth: defaultsAdapterAuthConfigSchema.optional(),
2824
- contextContinuity: contextContinuityPolicySchema.optional()
2866
+ contextContinuity: contextContinuityPolicySchema.optional(),
2867
+ bundles: z.array(z.string()).optional(),
2868
+ daemonMount: z.boolean().optional()
2825
2869
  }).passthrough();
2826
2870
  mcpDefaultsConfigSchema = z.object({
2827
2871
  deferredTools: deferredToolsConfigSchema.optional()
@@ -2830,6 +2874,7 @@ var init_config_schema = __esm({
2830
2874
  skills: z.array(z.string()).optional(),
2831
2875
  options: optionsMapSchema.optional(),
2832
2876
  adapters: z.record(z.string(), defaultsAdapterConfigSchema).optional(),
2877
+ bundles: z.array(z.string()).optional(),
2833
2878
  contextContinuity: contextContinuityPolicySchema.optional(),
2834
2879
  defaultRoleDepthCutoff: z.number().optional(),
2835
2880
  maxGrantableDelegation: z.number().optional(),
@@ -2871,7 +2916,8 @@ var init_config_schema = __esm({
2871
2916
  }).passthrough();
2872
2917
  featuresConfigSchema = z.object({
2873
2918
  pty: z.boolean().optional(),
2874
- llmEndpoint: z.boolean().optional()
2919
+ llmEndpoint: z.boolean().optional(),
2920
+ deviceInferenceShare: z.boolean().optional()
2875
2921
  }).passthrough();
2876
2922
  worktreesConfigSchema = z.object({
2877
2923
  root: z.string().optional(),
@@ -3211,6 +3257,15 @@ var init_config_schema = __esm({
3211
3257
  label: "Default options",
3212
3258
  help: "AIP-45 options auto-applied to every agent_start spawn."
3213
3259
  },
3260
+ {
3261
+ path: "defaults.bundles",
3262
+ schema: strArray,
3263
+ apply: "hot",
3264
+ writable: true,
3265
+ section: "defaults",
3266
+ label: "Default capability bundles",
3267
+ help: "Bundle ids (bundle_list) auto-attached to every agent_start spawn (unioned with per-adapter bundles)."
3268
+ },
3214
3269
  {
3215
3270
  path: "defaults.defaultRoleDepthCutoff",
3216
3271
  schema: num,
@@ -3437,6 +3492,25 @@ var init_config_schema = __esm({
3437
3492
  label: "Adapter default options",
3438
3493
  help: "AIP-45 options auto-applied to spawns of this adapter."
3439
3494
  },
3495
+ {
3496
+ path: "defaults.adapters.*.bundles",
3497
+ schema: strArray,
3498
+ apply: "hot",
3499
+ writable: true,
3500
+ section: "harnesses",
3501
+ label: "Adapter default capability bundles",
3502
+ help: "Bundle ids (bundle_list) auto-attached to spawns of this adapter (unioned with the global default)."
3503
+ },
3504
+ {
3505
+ path: "defaults.adapters.*.daemonMount",
3506
+ schema: z.boolean(),
3507
+ apply: "hot",
3508
+ writable: true,
3509
+ section: "harnesses",
3510
+ label: "Adapter daemon self-mount opt-in",
3511
+ help: "Explicitly mount the daemon's own scoped /mcp for spawns of this adapter, for harnesses outside the default self-mount allowlist (opencode, codex, gemini, \u2026).",
3512
+ default: false
3513
+ },
3440
3514
  {
3441
3515
  path: "defaults.adapters.*.contextContinuity",
3442
3516
  schema: contextContinuityPolicySchema,
@@ -3680,6 +3754,16 @@ var init_config_schema = __esm({
3680
3754
  label: "LLM Endpoint feature",
3681
3755
  help: "Enable the local LLM Endpoint proxy sidecar (route + MCP tools + child-process lifecycle).",
3682
3756
  default: false
3757
+ },
3758
+ {
3759
+ path: "features.deviceInferenceShare",
3760
+ schema: bool,
3761
+ apply: "restart",
3762
+ writable: true,
3763
+ section: "daemon",
3764
+ label: "Device inference sharing",
3765
+ help: "Expose this daemon's local inference endpoint(s) to a paired HOST-scoped controller. Toggle via `agentproto devices share-inference on|off`.",
3766
+ default: false
3683
3767
  }
3684
3768
  ];
3685
3769
  CONFIG_KEYS_NOT_EXPOSED = [