@kodax-ai/kodax 0.7.77 → 0.7.79

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.
Files changed (133) hide show
  1. package/CHANGELOG.md +3651 -3201
  2. package/README.md +317 -110
  3. package/README_CN.md +255 -91
  4. package/config-templates/config.example.jsonc +124 -32
  5. package/config-templates/integrations/a2a.example.jsonc +23 -7
  6. package/dist/builtin/skill-creator/scripts/aggregate-benchmark.js +2 -1
  7. package/dist/builtin/skill-creator/scripts/analyze-benchmark.d.ts +1 -0
  8. package/dist/builtin/skill-creator/scripts/analyze-benchmark.js +4 -3
  9. package/dist/builtin/skill-creator/scripts/compare-runs.d.ts +1 -0
  10. package/dist/builtin/skill-creator/scripts/compare-runs.js +4 -3
  11. package/dist/builtin/skill-creator/scripts/generate-review.js +2 -1
  12. package/dist/builtin/skill-creator/scripts/grade-evals.d.ts +1 -0
  13. package/dist/builtin/skill-creator/scripts/grade-evals.js +4 -3
  14. package/dist/builtin/skill-creator/scripts/improve-description.js +2 -1
  15. package/dist/builtin/skill-creator/scripts/init-skill.d.ts +1 -0
  16. package/dist/builtin/skill-creator/scripts/init-skill.js +4 -3
  17. package/dist/builtin/skill-creator/scripts/install-skill.d.ts +1 -0
  18. package/dist/builtin/skill-creator/scripts/install-skill.js +4 -3
  19. package/dist/builtin/skill-creator/scripts/package-skill.d.ts +1 -0
  20. package/dist/builtin/skill-creator/scripts/package-skill.js +4 -3
  21. package/dist/builtin/skill-creator/scripts/quick-validate.d.ts +1 -0
  22. package/dist/builtin/skill-creator/scripts/quick-validate.js +4 -3
  23. package/dist/builtin/skill-creator/scripts/run-eval.d.ts +1 -0
  24. package/dist/builtin/skill-creator/scripts/run-eval.js +4 -3
  25. package/dist/builtin/skill-creator/scripts/run-loop.js +2 -1
  26. package/dist/builtin/skill-creator/scripts/run-trigger-eval.js +2 -1
  27. package/dist/builtin/skill-creator/scripts/utils.d.ts +3 -0
  28. package/dist/builtin/skill-creator/scripts/utils.js +5 -1
  29. package/dist/chunks/agent-V4AC5JZD.js +2 -0
  30. package/dist/chunks/argument-completer-ZPC2MLES.js +2 -0
  31. package/dist/chunks/chunk-5BNQXXGY.js +1 -0
  32. package/dist/chunks/{chunk-EH7AOMJ7.js → chunk-67THZRM6.js} +1 -1
  33. package/dist/chunks/chunk-6GVQDQTQ.js +292 -0
  34. package/dist/chunks/chunk-B6UY3VHV.js +348 -0
  35. package/dist/chunks/{chunk-HORNWBYR.js → chunk-BBOVVDQJ.js} +1 -1
  36. package/dist/chunks/chunk-CR2IF7VF.js +30 -0
  37. package/dist/chunks/{chunk-FNW2XUL5.js → chunk-CXHEZY5G.js} +1 -1
  38. package/dist/chunks/chunk-EDZ4QILG.js +266 -0
  39. package/dist/chunks/chunk-GEECPO2H.js +218 -0
  40. package/dist/chunks/chunk-H5LLM7DB.js +89 -0
  41. package/dist/chunks/chunk-KLWP7POA.js +467 -0
  42. package/dist/chunks/{chunk-XSA37BVM.js → chunk-M4N2JZTZ.js} +2 -2
  43. package/dist/chunks/chunk-OWQT3FTE.js +5 -0
  44. package/dist/chunks/chunk-Q4M7DJOD.js +319 -0
  45. package/dist/chunks/{chunk-3DD4QEBH.js → chunk-QCZLCLFL.js} +10 -10
  46. package/dist/chunks/chunk-RQPMGRTR.js +810 -0
  47. package/dist/chunks/chunk-SG6P4SZS.js +123 -0
  48. package/dist/chunks/chunk-TSTVAU5E.js +386 -0
  49. package/dist/chunks/chunk-ZCZZUE5E.js +662 -0
  50. package/dist/chunks/compaction-config-AEUGVROL.js +2 -0
  51. package/dist/chunks/{construction-bootstrap-RPRL3L7R.js → construction-bootstrap-K3ZGEN5N.js} +1 -1
  52. package/dist/chunks/dist-GFJFRPAV.js +2 -0
  53. package/dist/chunks/{dist-FDSOIR35.js → dist-JMO47GJV.js} +1 -1
  54. package/dist/chunks/host-23K2Q6RZ.js +2 -0
  55. package/dist/chunks/run-manager-PGIR6ITA.js +2 -0
  56. package/dist/chunks/utils-6LEKJPQN.js +2 -0
  57. package/dist/index.d.ts +22 -21
  58. package/dist/index.js +6 -6
  59. package/dist/kodax_bootstrap.js +2 -1
  60. package/dist/kodax_cli.js +2225 -1468
  61. package/dist/kodax_resume.js +570 -34
  62. package/dist/provider-capabilities.json +85 -50
  63. package/dist/runtime-worker.js +2076 -1343
  64. package/dist/sandbox-workspace-session.js +829 -0
  65. package/dist/sdk-a2a.d.ts +24 -18
  66. package/dist/sdk-a2a.js +8 -8
  67. package/dist/sdk-agent.d.ts +315 -168
  68. package/dist/sdk-agent.js +1 -1
  69. package/dist/sdk-coding.d.ts +42 -205
  70. package/dist/sdk-coding.js +1 -1
  71. package/dist/sdk-experimental-memory.d.ts +3 -3
  72. package/dist/sdk-experimental-memory.js +1 -1
  73. package/dist/sdk-llm.d.ts +7 -6
  74. package/dist/sdk-llm.js +1 -1
  75. package/dist/sdk-mcp.d.ts +1 -1
  76. package/dist/sdk-mcp.js +1 -1
  77. package/dist/sdk-media.d.ts +1 -1
  78. package/dist/sdk-media.js +1 -1
  79. package/dist/sdk-repl.d.ts +77 -36
  80. package/dist/sdk-repl.js +2 -2
  81. package/dist/sdk-runtime.d.ts +406 -163
  82. package/dist/sdk-runtime.js +1 -1
  83. package/dist/sdk-sandbox.d.ts +93 -0
  84. package/dist/sdk-sandbox.js +2 -0
  85. package/dist/sdk-session.d.ts +8 -9
  86. package/dist/sdk-session.js +1 -1
  87. package/dist/sdk-skills.d.ts +2 -2
  88. package/dist/sdk-skills.js +1 -1
  89. package/dist/semantic-worker.js +283 -18
  90. package/dist/types-chunks/{base.d-4e74xDdy.d.ts → base.d-DxG0m09Z.d.ts} +1 -1
  91. package/dist/types-chunks/{bash-prefix-extractor.d-pZdu6qt7.d.ts → bash-prefix-extractor.d-CNSidpmv.d.ts} +149 -10
  92. package/dist/types-chunks/{capability-learning.d-CVsdHw4j.d.ts → capability-learning.d-iPSiAmc_.d.ts} +1 -1
  93. package/dist/types-chunks/{capsule.d-CxCm1KZz.d.ts → capsule.d-B3q98pLQ.d.ts} +9 -7
  94. package/dist/types-chunks/{types.d-RdWRfUEs.d.ts → controller.d-RGV7Pjv9.d.ts} +785 -8
  95. package/dist/types-chunks/{guardrail.d-B0PwAZVR.d.ts → guardrail.d-1NLSFTyN.d.ts} +310 -70
  96. package/dist/types-chunks/{history-retrieval.d-B__aEN62.d.ts → history-retrieval.d-BAegI14A.d.ts} +16 -3
  97. package/dist/types-chunks/{integration-config.d-ojG4swOP.d.ts → integration-config.d-BNowXE8k.d.ts} +23 -8
  98. package/dist/types-chunks/{oauth-login.d-Bgb4rdLN.d.ts → oauth-login.d-6i-vidxv.d.ts} +6 -2
  99. package/dist/types-chunks/{public-api.d--fF88JrC.d.ts → public-api.d-BpJhHoa7.d.ts} +366 -28
  100. package/dist/types-chunks/{commands.d-BccESAMV.d.ts → repl.d-CZ12Ow3X.d.ts} +89 -78
  101. package/dist/types-chunks/{side-query.d-5JvXhuOZ.d.ts → resolver.d-C9IW4fmU.d.ts} +7 -67
  102. package/dist/types-chunks/{run-manager.d-B47hIqnI.d.ts → run-manager.d-CX3AUocA.d.ts} +1 -1
  103. package/dist/types-chunks/{sdk-session-CLWf8Adb.d.ts → sdk-session-B3cfJKqF.d.ts} +3 -3
  104. package/dist/types-chunks/side-query.d-CP1LiRiH.d.ts +83 -0
  105. package/dist/types-chunks/{types-LanCEDj8.d.ts → types-Bf3Y3mW-.d.ts} +42 -3
  106. package/dist/types-chunks/{types.d-CODuyyqy.d.ts → types.d-BZ9oXvTV.d.ts} +2 -2
  107. package/dist/types-chunks/{types.d-DCQVBqVn.d.ts → types.d-BbtGlKZu.d.ts} +25 -3
  108. package/dist/types-chunks/{types.d-DCsKM8aT.d.ts → types.d-C0_rn--1.d.ts} +4 -4
  109. package/dist/types-chunks/{types.d-DIpZJKUl.d.ts → types.d-CgrXrFrq.d.ts} +16 -2
  110. package/dist/types-chunks/{utils.d-CDduqbFw.d.ts → utils.d-CGpHavsU.d.ts} +32 -8
  111. package/docs/SDK_EMBEDDER_GUIDE.md +1117 -227
  112. package/package.json +11 -1
  113. package/dist/chunks/agent-NGSWFE73.js +0 -2
  114. package/dist/chunks/argument-completer-WGGZPEEO.js +0 -2
  115. package/dist/chunks/chunk-27QLRH3D.js +0 -5
  116. package/dist/chunks/chunk-2MQPVY6P.js +0 -770
  117. package/dist/chunks/chunk-6WAPVAGQ.js +0 -74
  118. package/dist/chunks/chunk-AOENDSVN.js +0 -448
  119. package/dist/chunks/chunk-FSXI4MAV.js +0 -78
  120. package/dist/chunks/chunk-HV2GMZUZ.js +0 -343
  121. package/dist/chunks/chunk-IQT4RPCE.js +0 -46
  122. package/dist/chunks/chunk-JS2BHGJP.js +0 -158
  123. package/dist/chunks/chunk-OAMKECRG.js +0 -381
  124. package/dist/chunks/chunk-ON2WG2LG.js +0 -622
  125. package/dist/chunks/chunk-RUGAAHTF.js +0 -321
  126. package/dist/chunks/chunk-TGCG7U2W.js +0 -37
  127. package/dist/chunks/compaction-config-BE7VYWH6.js +0 -2
  128. package/dist/chunks/dist-ZZBNVTKU.js +0 -2
  129. package/dist/chunks/host-QAKQVC4A.js +0 -2
  130. package/dist/chunks/run-manager-N4UFWA2D.js +0 -2
  131. package/dist/chunks/utils-AUHCI4D5.js +0 -2
  132. package/dist/types-chunks/center-types.d-BBT122uJ.d.ts +0 -91
  133. package/dist/types-chunks/guardrail.d-CJx9RRd3.d.ts +0 -156
@@ -198,7 +198,7 @@ interface KodaXToolDefinition {
198
198
  type KodaXReasoningCapability = 'native-effort' | 'native-budget' | 'native-toggle' | 'native-adaptive' | 'none' | 'prompt-only' | 'unknown';
199
199
  type KodaXStableEffortIntent = 'auto' | 'none' | 'low' | 'medium' | 'high';
200
200
  type KodaXWireReasoningEffort = string;
201
- type KodaXReasoningPresetName = 'zai-glm-5.2' | 'zai-glm-toggle' | 'deepseek-v4-openai' | 'deepseek-v4-anthropic' | 'deepseek-toggle' | 'kimi-k3' | 'kimi-k2.7-code' | 'kimi-hybrid-toggle' | 'minimax-m3' | 'minimax-m2-always' | 'mimo-v2.5-toggle' | 'qwen-hybrid-thinking' | 'openai-chat-reasoning' | 'openai-responses-reasoning' | 'codex-cli-effort' | 'claude-adaptive-xhigh' | 'claude-adaptive-max' | 'anthropic-budget' | 'generic-thinking-toggle' | 'none';
201
+ type KodaXReasoningPresetName = 'zai-glm-5.2' | 'zai-glm-toggle' | 'deepseek-v4-flash-openai' | 'deepseek-v4-pro-openai' | 'deepseek-v4-openai' | 'deepseek-v4-anthropic' | 'deepseek-toggle' | 'kimi-k3' | 'kimi-k2.7-code' | 'kimi-hybrid-toggle' | 'minimax-m3' | 'minimax-m2-always' | 'mimo-v2.5-toggle' | 'qwen-hybrid-thinking' | 'openai-chat-reasoning' | 'openai-responses-reasoning' | 'codex-cli-effort' | 'claude-adaptive-xhigh' | 'claude-adaptive-max' | 'anthropic-budget' | 'generic-thinking-toggle' | 'none';
202
202
  interface KodaXReasoningEffortRequest {
203
203
  readonly value: KodaXWireReasoningEffort;
204
204
  readonly isExplicit: boolean;
@@ -341,6 +341,11 @@ interface KodaXModelDescriptor {
341
341
  displayName?: string;
342
342
  contextWindow?: number;
343
343
  maxOutputTokens?: number;
344
+ /**
345
+ * Per-model OpenAI Chat Completions field for the output-token limit.
346
+ * Defaults to the provider-level value, then `max_completion_tokens`.
347
+ */
348
+ maxOutputTokensField?: KodaXOpenAICompatMaxOutputTokensField;
344
349
  thinkingBudgetCap?: number;
345
350
  /** @deprecated Auto-migrated on load. Prefer `reasoning: { efforts, default }`. */
346
351
  reasoningCapability?: KodaXReasoningCapability;
@@ -374,6 +379,7 @@ interface KodaXModelDescriptor {
374
379
  }
375
380
  type KodaXProtocolFamily = 'anthropic' | 'openai';
376
381
  type KodaXProviderUserAgentMode = 'compat' | 'sdk';
382
+ type KodaXOpenAICompatMaxOutputTokensField = 'max_tokens' | 'max_completion_tokens';
377
383
  /**
378
384
  * FEATURE_216 v0.7.45 — Strategy KodaX uses to verify a provider's API
379
385
  * credentials. Per-provider data-driven (set in `provider-capabilities.json`)
@@ -472,6 +478,12 @@ interface KodaXCustomProviderConfig {
472
478
  capabilityProfile?: KodaXProviderCapabilityProfile;
473
479
  contextWindow?: number;
474
480
  maxOutputTokens?: number;
481
+ /**
482
+ * OpenAI Chat Completions field used for the output-token limit. Set to
483
+ * `max_tokens` for DeepSeek-compatible endpoints. Defaults to
484
+ * `max_completion_tokens`; model descriptors may override it.
485
+ */
486
+ maxOutputTokensField?: KodaXOpenAICompatMaxOutputTokensField;
475
487
  thinkingBudgetCap?: number;
476
488
  /**
477
489
  * Opt in only when this exact endpoint is known to accept the protocol's
@@ -529,6 +541,8 @@ interface KodaXProviderConfig {
529
541
  contextWindow?: number;
530
542
  /** Provider 允许的最大输出 token */
531
543
  maxOutputTokens?: number;
544
+ /** OpenAI Chat Completions output-token field; model descriptors override it. */
545
+ maxOutputTokensField?: KodaXOpenAICompatMaxOutputTokensField;
532
546
  /** Provider thinking budget 上限 */
533
547
  thinkingBudgetCap?: number;
534
548
  /** Whether this verified endpoint accepts the protocol cache-affinity field. */
@@ -657,4 +671,4 @@ interface KodaXProviderStreamOptions {
657
671
  signal?: AbortSignal;
658
672
  }
659
673
 
660
- export type { KodaXThinkingWireStrategy as $, KodaXProviderTransport as A, KodaXReasoningCapability as B, KodaXReasoningEffortPreset as C, KodaXReasoningEffortRequest as D, KodaXReasoningEffortWireStrategy as E, KodaXReasoningMode as F, KodaXReasoningProfile as G, KodaXReasoningRequest as H, KodaXRedactedThinkingBlock as I, KodaXReviewScale as J, KodaXAssuranceIntent as K, KodaXRiskLevel as L, KodaXStableEffortIntent as M, KodaXStreamResult as N, KodaXTaskActionability as O, KodaXTaskBudgetOverrides as P, KodaXTaskComplexity as Q, KodaXTaskFamily as R, KodaXTaskResultMetadata as S, KodaXTaskResultSource as T, KodaXTaskRoutingDecision as U, KodaXTaskType as V, KodaXTaskWorkIntent as W, KodaXTextBlock as X, KodaXThinkingBlock as Y, KodaXThinkingBudgetMap as Z, KodaXThinkingDepth as _, KodaXCacheBoundary as a, KodaXTokenUsage as a0, KodaXToolDefinition as a1, KodaXToolResultBlock as a2, KodaXToolResultContentItem as a3, KodaXToolResultImageItem as a4, KodaXToolResultTextItem as a5, KodaXToolUseBlock as a6, KodaXVerifyCredentialResult as a7, KodaXVerifyStrategy as a8, KodaXWireReasoningEffort as a9, KodaXChildFanoutClass as b, KodaXContentBlock as c, KodaXCustomProviderConfig as d, KodaXEphemeralSuffix as e, KodaXExecutionMode as f, KodaXExecutionPattern as g, KodaXHarnessProfile as h, KodaXImageBlock as i, KodaXListModelsResult as j, KodaXMessage as k, KodaXModelDescriptor as l, KodaXMutationSurface as m, KodaXNormalizedReasoningRequest as n, KodaXProtocolFamily as o, KodaXProviderCapabilityProfile as p, KodaXProviderConfig as q, KodaXProviderContextFidelity as r, KodaXProviderConversationSemantics as s, KodaXProviderEvidenceSupport as t, KodaXProviderLongRunningSupport as u, KodaXProviderMcpSupport as v, KodaXProviderMultimodalSupport as w, KodaXProviderSessionSupport as x, KodaXProviderStreamOptions as y, KodaXProviderToolCallingFidelity as z };
674
+ export type { KodaXThinkingDepth as $, KodaXProviderToolCallingFidelity as A, KodaXProviderTransport as B, KodaXReasoningCapability as C, KodaXReasoningEffortPreset as D, KodaXReasoningEffortRequest as E, KodaXReasoningEffortWireStrategy as F, KodaXReasoningMode as G, KodaXReasoningProfile as H, KodaXReasoningRequest as I, KodaXRedactedThinkingBlock as J, KodaXAssuranceIntent as K, KodaXReviewScale as L, KodaXRiskLevel as M, KodaXStableEffortIntent as N, KodaXStreamResult as O, KodaXTaskActionability as P, KodaXTaskBudgetOverrides as Q, KodaXTaskComplexity as R, KodaXTaskFamily as S, KodaXTaskResultMetadata as T, KodaXTaskResultSource as U, KodaXTaskRoutingDecision as V, KodaXTaskType as W, KodaXTaskWorkIntent as X, KodaXTextBlock as Y, KodaXThinkingBlock as Z, KodaXThinkingBudgetMap as _, KodaXCacheBoundary as a, KodaXThinkingWireStrategy as a0, KodaXTokenUsage as a1, KodaXToolDefinition as a2, KodaXToolResultBlock as a3, KodaXToolResultContentItem as a4, KodaXToolResultImageItem as a5, KodaXToolResultTextItem as a6, KodaXToolUseBlock as a7, KodaXVerifyCredentialResult as a8, KodaXVerifyStrategy as a9, KodaXWireReasoningEffort as aa, KodaXChildFanoutClass as b, KodaXContentBlock as c, KodaXCustomProviderConfig as d, KodaXEphemeralSuffix as e, KodaXExecutionMode as f, KodaXExecutionPattern as g, KodaXHarnessProfile as h, KodaXImageBlock as i, KodaXListModelsResult as j, KodaXMessage as k, KodaXModelDescriptor as l, KodaXMutationSurface as m, KodaXNormalizedReasoningRequest as n, KodaXOpenAICompatMaxOutputTokensField as o, KodaXProtocolFamily as p, KodaXProviderCapabilityProfile as q, KodaXProviderConfig as r, KodaXProviderContextFidelity as s, KodaXProviderConversationSemantics as t, KodaXProviderEvidenceSupport as u, KodaXProviderLongRunningSupport as v, KodaXProviderMcpSupport as w, KodaXProviderMultimodalSupport as x, KodaXProviderSessionSupport as y, KodaXProviderStreamOptions as z };
@@ -1,9 +1,9 @@
1
- import { k as KodaXMessage, F as KodaXReasoningMode, d as KodaXCustomProviderConfig, p as KodaXProviderCapabilityProfile } from './types.d-DIpZJKUl.js';
2
- import { O as KodaXContextTokenSnapshot, an as KodaXSkillDynamicContextPolicy, t as KodaXAgentMode, a7 as KodaXRepoIntelligenceMode, a1 as KodaXOptions, ao as KodaXSkillInvocationContext } from './bash-prefix-extractor.d-pZdu6qt7.js';
3
- import { bX as KodaXSessionUiHistoryItem, bM as KodaXSessionLineage, bD as KodaXSessionArtifactLedgerEntry, bn as KodaXExtensionSessionState, bm as KodaXExtensionSessionRecord, bT as KodaXSessionRuntimeInfo, eb as WorkflowProcessSource } from './types.d-RdWRfUEs.js';
4
- import { d as AgentsFile, r as AutoModeStats, x as KodaXMcpServersConfig } from './guardrail.d-B0PwAZVR.js';
1
+ import { k as KodaXMessage, G as KodaXReasoningMode, d as KodaXCustomProviderConfig, q as KodaXProviderCapabilityProfile } from './types.d-CgrXrFrq.js';
2
+ import { cc as KodaXSessionUiHistoryItem, c1 as KodaXSessionLineage, bU as KodaXSessionArtifactLedgerEntry, bD as KodaXExtensionSessionState, bC as KodaXExtensionSessionRecord, c8 as KodaXSessionRuntimeInfo, fb as WorkflowProcessSource } from './controller.d-RGV7Pjv9.js';
3
+ import { O as KodaXContextTokenSnapshot, at as KodaXSkillDynamicContextPolicy, t as KodaXAgentMode, a8 as KodaXRepoIntelligenceMode, a1 as KodaXOptions, au as KodaXSkillInvocationContext } from './bash-prefix-extractor.d-CNSidpmv.js';
4
+ import { d as AgentsFile, s as AutoModeStats, R as KodaXMcpServersConfig } from './guardrail.d-1NLSFTyN.js';
5
5
  import * as readline from 'readline';
6
- import { R as PermissionMode, L as LearningBinding, E as LearningSurfaceSnapshot } from './public-api.d--fF88JrC.js';
6
+ import { T as PermissionMode, L as LearningBinding, J as LearningSurfaceSnapshot } from './public-api.d-BpJhHoa7.js';
7
7
  import { SpawnSyncReturns } from 'child_process';
8
8
 
9
9
  /**
@@ -41,7 +41,7 @@ interface AutoModeSettings {
41
41
  * inherits from the main session). Feeds layer 4 of `resolveClassifierModel`.
42
42
  */
43
43
  classifierModel?: string;
44
- /** sideQuery timeout in ms. Default 20_000. */
44
+ /** sideQuery timeout in ms. Default 30_000. */
45
45
  timeoutMs?: number;
46
46
  /**
47
47
  * Issue 143 (WS3): speculative-classify quiet window in ms. Default 500.
@@ -104,6 +104,8 @@ interface InteractiveContext {
104
104
  extensionRecords?: KodaXExtensionSessionRecord[];
105
105
  extensionStateDirty?: boolean;
106
106
  extensionRecordsDirty?: boolean;
107
+ /** Internal fence: a non-tail Session field changed since the last exact write. */
108
+ sessionSnapshotDirty?: boolean;
107
109
  sessionId: string;
108
110
  title: string;
109
111
  gitRoot?: string;
@@ -310,6 +312,22 @@ interface CommandCallbacks {
310
312
  rewindSession?: (selector?: string) => Promise<SessionRewindStatus>;
311
313
  getCostReport?: () => string | null;
312
314
  getRuntimeStatus?: () => Promise<RuntimeSurfaceStatus | undefined>;
315
+ /** Canonical host parser used by `/setup` for the root-owned A2A schema. */
316
+ validateSetupA2AConfig?: (value: unknown) => unknown;
317
+ /** Root-owned sandbox activation because ASRT is distributed by the host package. */
318
+ prepareSetupSandbox?: () => Promise<{
319
+ readonly status: 'ready' | 'cancelled' | 'unavailable';
320
+ readonly lines: readonly string[];
321
+ }>;
322
+ /** Explicit read-only `/sandbox` probe. Ordinary startup never calls it. */
323
+ inspectSandbox?: () => Promise<{
324
+ readonly ready: boolean;
325
+ readonly platform: string;
326
+ readonly version: string;
327
+ readonly backend: string;
328
+ readonly diagnostics: readonly string[];
329
+ readonly guidance: readonly string[];
330
+ }>;
313
331
  learning?: LearningBinding;
314
332
  getLearningSummary?: () => Promise<LearningSurfaceSnapshot>;
315
333
  openLearningCenter?: (nameOrSlug?: string) => Promise<void>;
@@ -364,7 +382,7 @@ interface CommandDefinition {
364
382
  aliases?: string[];
365
383
  description: string;
366
384
  usage?: string;
367
- detailedHelp?: () => void;
385
+ detailedHelp?: (args?: readonly string[]) => void;
368
386
  handler: CommandHandler;
369
387
  source?: CommandSource;
370
388
  priority?: CommandPriority;
@@ -406,7 +424,7 @@ interface Command {
406
424
  description: string;
407
425
  usage?: string;
408
426
  handler: CommandHandler;
409
- detailedHelp?: () => void;
427
+ detailedHelp?: (args?: readonly string[]) => void;
410
428
  source?: CommandSource;
411
429
  priority?: CommandPriority;
412
430
  location?: 'user' | 'project' | 'path';
@@ -578,6 +596,9 @@ declare function loadConfig(): {
578
596
  workflow?: {
579
597
  maxConcurrency?: number;
580
598
  };
599
+ sandbox?: {
600
+ envPass?: string[];
601
+ };
581
602
  };
582
603
  /**
583
604
  * F1 — first-launch onboarding. config.json must be STRICT JSON (no comments), so we
@@ -647,6 +668,9 @@ declare function saveConfig(config: {
647
668
  workflow?: {
648
669
  maxConcurrency?: number;
649
670
  };
671
+ sandbox?: {
672
+ envPass?: string[];
673
+ };
650
674
  }): void;
651
675
  declare function resolveRuntimeProviderSelection(input: {
652
676
  explicitProvider?: string;