@skaile/workspaces 0.9.1 → 0.10.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.
Files changed (102) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +2 -2
  3. package/dist/asset-manager/index.js +2 -2
  4. package/dist/asset-manager/scaffold.js +1 -1
  5. package/dist/base-assets/connectors/deploy.js +1 -1
  6. package/dist/base-assets/connectors/devserver.js +1 -1
  7. package/dist/base-assets/connectors/flow/adapter.js +1 -1
  8. package/dist/base-assets/connectors/flow/run-flow.js +2 -2
  9. package/dist/base-assets/connectors/flow.js +1 -1
  10. package/dist/base-assets/connectors/git.js +1 -1
  11. package/dist/base-assets/connectors/gmail.js +1 -1
  12. package/dist/base-assets/connectors/local.js +1 -1
  13. package/dist/base-assets/connectors/mattermost.js +1 -1
  14. package/dist/base-assets/connectors/memory.js +1 -1
  15. package/dist/base-assets/connectors/minio.js +1 -1
  16. package/dist/base-assets/connectors/postgres.js +1 -1
  17. package/dist/base-assets/connectors/redis.js +1 -1
  18. package/dist/base-assets/connectors/s3.js +1 -1
  19. package/dist/base-assets/connectors/sharepoint.js +1 -1
  20. package/dist/base-assets/connectors/sqlite.js +1 -1
  21. package/dist/base-assets/connectors/static-server.js +1 -1
  22. package/dist/base-assets/connectors/tunnel.js +1 -1
  23. package/dist/base-assets/connectors/webdav.js +1 -1
  24. package/dist/base-assets/connectors/xstate-store.js +1 -1
  25. package/dist/base-assets/connectors/xstate.js +1 -1
  26. package/dist/base-assets/connectors/yjs.js +1 -1
  27. package/dist/bridge/drivers/claude-sdk.js +53 -3
  28. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  29. package/dist/bridge/drivers/codex.js +1 -1
  30. package/dist/bridge/drivers/echo.js +1 -1
  31. package/dist/bridge/drivers/omp.js +1 -1
  32. package/dist/bridge/index.js +2 -2
  33. package/dist/bridge/src/drivers/claude-sdk.d.ts +23 -0
  34. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  35. package/dist/{chunk-5IC6CJL4.js → chunk-BTKNSMLK.js} +2 -2
  36. package/dist/{chunk-5IC6CJL4.js.map → chunk-BTKNSMLK.js.map} +1 -1
  37. package/dist/{chunk-TODD4VNR.js → chunk-D3VO6WNC.js} +85 -3
  38. package/dist/chunk-D3VO6WNC.js.map +1 -0
  39. package/dist/{chunk-I3S4BAAR.js → chunk-FEBLE7QX.js} +2 -2
  40. package/dist/{chunk-I3S4BAAR.js.map → chunk-FEBLE7QX.js.map} +1 -1
  41. package/dist/{chunk-DTL7S57T.js → chunk-IFRUVHOQ.js} +3 -3
  42. package/dist/{chunk-DTL7S57T.js.map → chunk-IFRUVHOQ.js.map} +1 -1
  43. package/dist/{chunk-XIVOEUAF.js → chunk-OQIBHB4F.js} +2 -2
  44. package/dist/{chunk-XIVOEUAF.js.map → chunk-OQIBHB4F.js.map} +1 -1
  45. package/dist/{chunk-K3TMZI6D.js → chunk-OSJH4SPO.js} +3 -3
  46. package/dist/{chunk-K3TMZI6D.js.map → chunk-OSJH4SPO.js.map} +1 -1
  47. package/dist/{chunk-QZ6PY73K.js → chunk-OVM36NYF.js} +18 -23
  48. package/dist/chunk-OVM36NYF.js.map +1 -0
  49. package/dist/{chunk-AE6GCXGL.js → chunk-S7RACIZI.js} +2 -2
  50. package/dist/{chunk-AE6GCXGL.js.map → chunk-S7RACIZI.js.map} +1 -1
  51. package/dist/{chunk-O5AE4QDX.js → chunk-TDSRLMDB.js} +4 -4
  52. package/dist/chunk-TDSRLMDB.js.map +1 -0
  53. package/dist/{chunk-EPGHAOEU.js → chunk-UHSC75L7.js} +19 -3
  54. package/dist/chunk-UHSC75L7.js.map +1 -0
  55. package/dist/chunk-W3UDISS2.js +31 -0
  56. package/dist/chunk-W3UDISS2.js.map +1 -0
  57. package/dist/cli/index.js +11 -10
  58. package/dist/cli/index.js.map +1 -1
  59. package/dist/connectors/index.js +1 -1
  60. package/dist/connectors/src/connector-manager.d.ts +7 -0
  61. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  62. package/dist/runner/index.js +7 -6
  63. package/dist/runner/prompt-assembly.js +4 -0
  64. package/dist/runner/prompt-assembly.js.map +1 -0
  65. package/dist/runner/src/capability-registry.d.ts.map +1 -1
  66. package/dist/runner/src/capability-roundtrip.d.ts +18 -0
  67. package/dist/runner/src/capability-roundtrip.d.ts.map +1 -1
  68. package/dist/runner/src/define-capability.d.ts +7 -0
  69. package/dist/runner/src/define-capability.d.ts.map +1 -1
  70. package/dist/runner/src/prompt-assembly.d.ts +39 -0
  71. package/dist/runner/src/prompt-assembly.d.ts.map +1 -1
  72. package/dist/runner/src/serve.d.ts.map +1 -1
  73. package/dist/sdk/asset-manager.js +2 -2
  74. package/dist/sdk/bridge.js +2 -2
  75. package/dist/sdk/index.js +7 -6
  76. package/dist/sdk/index.js.map +1 -1
  77. package/dist/sdk/runner.js +7 -6
  78. package/dist/sdk/session.js +2 -2
  79. package/dist/sdk/types.js +1 -1
  80. package/dist/session/index.js +2 -2
  81. package/dist/session/src/dispatcher.d.ts +57 -0
  82. package/dist/session/src/dispatcher.d.ts.map +1 -1
  83. package/dist/{setup-PHFPBDBI.js → setup-QIEPIYH2.js} +4 -4
  84. package/dist/{setup-PHFPBDBI.js.map → setup-QIEPIYH2.js.map} +1 -1
  85. package/dist/tui/index.js +7 -6
  86. package/dist/tui/index.js.map +1 -1
  87. package/dist/types/index.js +1 -1
  88. package/dist/types/src/capabilities.d.ts +13 -0
  89. package/dist/types/src/capabilities.d.ts.map +1 -1
  90. package/dist/types/src/events.d.ts +29 -1
  91. package/dist/types/src/events.d.ts.map +1 -1
  92. package/dist/types/src/index.d.ts +1 -1
  93. package/dist/types/src/index.d.ts.map +1 -1
  94. package/dist/types/src/version.d.ts +19 -1
  95. package/dist/types/src/version.d.ts.map +1 -1
  96. package/dist/workspace-plugin/adapters/mcp.js +2 -2
  97. package/dist/workspace-plugin/index.js +1 -1
  98. package/package.json +7 -1
  99. package/dist/chunk-EPGHAOEU.js.map +0 -1
  100. package/dist/chunk-O5AE4QDX.js.map +0 -1
  101. package/dist/chunk-QZ6PY73K.js.map +0 -1
  102. package/dist/chunk-TODD4VNR.js.map +0 -1
@@ -1,4 +1,4 @@
1
- export { AbstractConnector, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, createFsWatcher, createWorktree, defaultSpawn, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, registerConnector, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock } from '../chunk-EPGHAOEU.js';
1
+ export { AbstractConnector, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, createFsWatcher, createWorktree, defaultSpawn, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, registerConnector, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock } from '../chunk-UHSC75L7.js';
2
2
  export { EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, loadConnectorDeclarations, resolveAuth, resolveAuthRef, resolveBackendAuthFor } from '../chunk-W75ASXH4.js';
3
3
  export { PortPool, RcloneProcessManager } from '../chunk-EBMFCF4P.js';
4
4
  export { renderOneDriveConfig, renderWebDAVConfig } from '../chunk-GCRKAFH7.js';
@@ -103,6 +103,13 @@ export declare class ConnectorManager {
103
103
  * Wrap the user-supplied `TokenMediator` so `reason: 'initial'` calls for an
104
104
  * `auth: backend` connector first consult the pre-minted credentials. Falls
105
105
  * back to the original mediator for refresh / retry-401 paths.
106
+ *
107
+ * Namespace fallback: when no `connector:<id>` pre-mint entry exists, the
108
+ * lookup retries under the legacy `mount:<id>` key. This is a defence-in-depth
109
+ * companion to the platform-side pre-mint namespace alignment — see the
110
+ * 2026-05-19 incident notes and `_devlog/specs/2026-05-07-unified-credential-mediation.md`.
111
+ * When the fallback fires, a `warn` log signals that the platform writer is
112
+ * filing credentials under the pre-unified namespace key.
106
113
  */
107
114
  private buildWrappedMediator;
108
115
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"connector-manager.d.ts","sourceRoot":"","sources":["../../../connectors/src/connector-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAU,MAAM,0BAA0B,CAAC;AAE7E,OAAO,KAAK,EAEV,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EAEpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAI3B;;GAEG;AACH,UAAU,eAAe;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,oBAAoB,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmID;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAAC;IAE/C;;OAEG;IACH,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAEhC;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAE3C;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAEvD,4DAA4D;IAC5D,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAE9B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAID;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAkBzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjBvB,OAAO,CAAC,MAAM,CAAsC;IACpD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAA0B;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;;;OAKG;gBAED,YAAY,EAAE,MAAM,EACH,IAAI,GAAE,uBAA4B;IAwBrD;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAqC5B;;OAEG;YACW,gBAAgB;IAgC9B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;OAGG;YACW,mBAAmB;IA0BjC;;OAEG;YACW,QAAQ;IA8BtB;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CACd,YAAY,EAAE,oBAAoB,EAAE,EACpC,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3C,OAAO,CAAC,sBAAsB,CAAC;IAgGlC,gGAAgG;IAC1F,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBpC;;;;;OAKG;IACG,OAAO,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IA+C1E;;;;OAIG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC3C;;;OAGG;IACH,QAAQ,CACN,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI,EACpE,OAAO,CAAC,EAAE,YAAY,GACrB,IAAI;IA4CP,gCAAgC;IAC1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAI1C,QAAQ,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAI9B,gBAAgB;IA0B9B;;;;OAIG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe;IAMhC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,cAAc,IAAI,KAAK,CAAC;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IASF;;;OAGG;IACH,iBAAiB,IAAI,KAAK,CAAC;QACzB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,iBAAiB,EAAE,OAAO,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkBF;;;;OAIG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAQlE;;;OAGG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAgBpE;;OAEG;IACH,OAAO,CAAC,eAAe;IAOjB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiBhE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBlD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiBjF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBzF;;;;;OAKG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B9F;;;OAGG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAOhD;;;OAGG;IACH,UAAU,IAAI,sBAAsB,EAAE;IAStC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,UAAO,GAAG,MAAM;CAUlD"}
1
+ {"version":3,"file":"connector-manager.d.ts","sourceRoot":"","sources":["../../../connectors/src/connector-manager.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
- export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, MarkdownStreamer, PreInitRingSink, agentDefinitionExists, assembleSystemPrompt, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildCapabilitiesPromptSection, buildClientCapabilityHandler, buildContextSection, buildEnvironmentSection, builtinCapabilities, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, createAgentSession, createSessionStimulusBus, defineCapability, deleteSession, emitSystemPromptComposed, ensureGitConfigInclude, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, installPreInitRingSink, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadSession, loadSessionById, newSession, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityResult, resolveComposition, resolveMixin, runAgentChat, saveSession, setCurrentSession, startAgentServer, touchSession, writeClaudeCodeCredentialsFile } from '../chunk-QZ6PY73K.js';
2
- import '../chunk-5IC6CJL4.js';
1
+ export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, MarkdownStreamer, PreInitRingSink, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildContextSection, buildEnvironmentSection, builtinCapabilities, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, createAgentSession, createSessionStimulusBus, defineCapability, deleteSession, emitSystemPromptComposed, ensureGitConfigInclude, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, installPreInitRingSink, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadSession, loadSessionById, newSession, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveMixin, runAgentChat, saveSession, setCurrentSession, startAgentServer, touchSession, writeClaudeCodeCredentialsFile } from '../chunk-OVM36NYF.js';
2
+ import '../chunk-BTKNSMLK.js';
3
3
  import '../chunk-X5YPJV4N.js';
4
- import '../chunk-O5AE4QDX.js';
5
4
  import '../chunk-O7SG5PC2.js';
6
5
  import '../chunk-W2O5LWYU.js';
7
6
  import '../chunk-7PTP3SQJ.js';
8
7
  import '../chunk-PBWMV5GM.js';
9
- import '../chunk-K3TMZI6D.js';
8
+ export { assembleSystemPrompt, buildCapabilitiesPromptSection, buildLinkedPeersPromptSection } from '../chunk-W3UDISS2.js';
9
+ import '../chunk-TDSRLMDB.js';
10
+ import '../chunk-OSJH4SPO.js';
10
11
  import '../chunk-EWP5HZBV.js';
11
12
  import '../chunk-KOVLSBXK.js';
12
13
  import '../chunk-RRVQAE5D.js';
13
- import '../chunk-AE6GCXGL.js';
14
+ import '../chunk-S7RACIZI.js';
14
15
  import '../chunk-LV2HPH3C.js';
15
- import '../chunk-EPGHAOEU.js';
16
+ import '../chunk-UHSC75L7.js';
16
17
  import '../chunk-W75ASXH4.js';
17
18
  import '../chunk-EBMFCF4P.js';
18
19
  import '../chunk-GCRKAFH7.js';
@@ -0,0 +1,4 @@
1
+ export { assembleSystemPrompt, buildCapabilitiesPromptSection, buildLinkedPeersPromptSection } from '../chunk-W3UDISS2.js';
2
+ import '../chunk-NSBPE2FW.js';
3
+ //# sourceMappingURL=prompt-assembly.js.map
4
+ //# sourceMappingURL=prompt-assembly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"prompt-assembly.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../../runner/src/capability-registry.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACV,UAAU,EAEV,gBAAgB,EAChB,MAAM,EACP,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiBhF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAahD;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,aAAa,CAAC,CAA0B;gBAEpC,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,GAAG,IAAI;IAIpE;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlE;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAiB9D;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM9B;;;;OAIG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,UAAU,EAAE;IAajD;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAI/C;;;;;;;;OAQG;IACH,eAAe,IAAI,OAAO,EAAE;IAU5B;;;;;;OAMG;IACH,oBAAoB,IAAI,MAAM;IAoB9B;;;;OAIG;IACH,SAAS,IAAI,UAAU,EAAE;IAIzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI;IAcrC;;;;;;;OAOG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GACnC,OAAO,CAAC,OAAO,CAAC;IAsBnB,oEAAoE;IACpE,OAAO,CAAC,eAAe;IAQvB,sEAAsE;IACtE,OAAO,CAAC,MAAM;CAmBf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAU9E"}
1
+ {"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../../runner/src/capability-registry.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACV,UAAU,EAEV,gBAAgB,EAChB,MAAM,EACP,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiBhF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAahD;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,aAAa,CAAC,CAA0B;gBAEpC,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,GAAG,IAAI;IAIpE;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlE;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAiB9D;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM9B;;;;OAIG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,UAAU,EAAE;IAajD;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAI/C;;;;;;;;OAQG;IACH,eAAe,IAAI,OAAO,EAAE;IAU5B;;;;;;OAMG;IACH,oBAAoB,IAAI,MAAM;IAoB9B;;;;OAIG;IACH,SAAS,IAAI,UAAU,EAAE;IAIzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI;IAcrC;;;;;;;OAOG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GACnC,OAAO,CAAC,OAAO,CAAC;IAsBnB,oEAAoE;IACpE,OAAO,CAAC,eAAe;IAQvB,sEAAsE;IACtE,OAAO,CAAC,MAAM;CAoBf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAU9E"}
@@ -40,6 +40,24 @@ export type PendingCallEntry = {
40
40
  * @docLink packages/runner/capabilities#registry-surface
41
41
  */
42
42
  export declare const DEFAULT_CAPABILITY_CALL_TIMEOUT_MS = 60000;
43
+ /**
44
+ * Resolve the round-trip timeout for a wire-format client capability.
45
+ *
46
+ * Precedence:
47
+ * 1. An explicit per-capability `callTimeoutMs` — set for capabilities that
48
+ * legitimately block far longer than a normal tool call (e.g.
49
+ * `platform.ask_session`, which suspends the caller's turn until a peer
50
+ * session answers).
51
+ * 2. `approvalTimeoutMs` when the capability is `requiresApproval` — human
52
+ * approvals routinely take minutes.
53
+ * 3. `DEFAULT_CAPABILITY_CALL_TIMEOUT_MS` (60s) otherwise.
54
+ *
55
+ * Extracted as a pure function so the precedence is unit-testable without
56
+ * spinning up `startAgentServer`.
57
+ *
58
+ * @docLink packages/runner/capabilities#registry-surface
59
+ */
60
+ export declare function resolveCapabilityCallTimeoutMs(cap: Pick<Capability, "callTimeoutMs" | "requiresApproval">, approvalTimeoutMs: number): number;
43
61
  /**
44
62
  * Build the runner-side handler for a wire-format client capability. The
45
63
  * returned function emits `capability_invoked` and waits for a matching
@@ -1 +1 @@
1
- {"version":3,"file":"capability-roundtrip.d.ts","sourceRoot":"","sources":["../../../runner/src/capability-roundtrip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,QAAS,CAAC;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAkCvC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAYT;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAOT"}
1
+ {"version":3,"file":"capability-roundtrip.d.ts","sourceRoot":"","sources":["../../../runner/src/capability-roundtrip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,QAAS,CAAC;AAEzD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,kBAAkB,CAAC,EAC3D,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAIR;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAkCvC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAYT;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAOT"}
@@ -96,6 +96,13 @@ export type DefineCapabilityArgs<T extends z.ZodTypeAny, R extends z.ZodTypeAny
96
96
  audience?: CapabilityAudience[];
97
97
  /** Appended to the system prompt's `<CAPABILITIES>` section. */
98
98
  promptFragment?: string;
99
+ /**
100
+ * Per-capability override for the runner's `capability_result` round-trip
101
+ * timeout. Omit to use `DEFAULT_CAPABILITY_CALL_TIMEOUT_MS` (60s). Set a
102
+ * larger value for capabilities that block longer than a normal tool call
103
+ * (e.g. `platform.ask_session`).
104
+ */
105
+ callTimeoutMs?: number;
99
106
  /** Render contract for capabilities that produce a UI surface. */
100
107
  render?: RenderSpec;
101
108
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"define-capability.d.ts","sourceRoot":"","sources":["../../../runner/src/define-capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,EACN,UAAU,EACX,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,CAAC,CAAC,UAAU,EACtB,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,IAC5C;IACF,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,KAAK,EAAE,CAAC,CAAC;IACT,uFAAuF;IACvF,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,mEAAmE;IACnE,MAAM,EAAE,gBAAgB,CAAC;IACzB,wFAAwF;IACxF,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,wGAAwG;IACxG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;;;OAKG;IACH,OAAO,EAAE,CACP,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;IAClC,6EAA6E;IAC7E,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,CAAC,CAAC,UAAU,EACtB,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,EAC9C,IAAI,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAgCrD"}
1
+ {"version":3,"file":"define-capability.d.ts","sourceRoot":"","sources":["../../../runner/src/define-capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,EACN,UAAU,EACX,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,CAAC,CAAC,UAAU,EACtB,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,IAC5C;IACF,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,KAAK,EAAE,CAAC,CAAC;IACT,uFAAuF;IACvF,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,mEAAmE;IACnE,MAAM,EAAE,gBAAgB,CAAC;IACzB,wFAAwF;IACxF,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,wGAAwG;IACxG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;;;OAKG;IACH,OAAO,EAAE,CACP,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;IAClC,6EAA6E;IAC7E,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,CAAC,CAAC,UAAU,EACtB,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,EAC9C,IAAI,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAiCrD"}
@@ -39,4 +39,43 @@ export declare function assembleSystemPrompt(parts: (string | undefined | null)[
39
39
  * @docLink packages/runner/capabilities#system-prompt-capabilities-block
40
40
  */
41
41
  export declare function buildCapabilitiesPromptSection(registry: Pick<CapabilityRegistry, "composePromptSection">): string | undefined;
42
+ /**
43
+ * One linked peer session the current session's agent may consult via the
44
+ * agent-to-agent capabilities. Supplied by the platform when starting or
45
+ * waking a session — the platform resolves each `SessionLink` target's name
46
+ * and `externalScope`.
47
+ *
48
+ * @category Capabilities
49
+ * @since 3.3.0
50
+ */
51
+ export type LinkedPeer = {
52
+ /** Target session id — passed to `platform.ask_session` / `platform.send_to_session`. */
53
+ sessionId: string;
54
+ /** Human-readable session name, shown to the agent. */
55
+ name: string;
56
+ /** The peer's `externalScope` — what its agent is about and can answer. */
57
+ scope: string;
58
+ };
59
+ /**
60
+ * Render the `<LINKED_PEERS>` system-prompt block from a list of linked
61
+ * peer sessions.
62
+ *
63
+ * The block tells the agent which peer sessions it may consult (via
64
+ * `platform.ask_session` / `platform.send_to_session`) and on what topic,
65
+ * so it can decide autonomously when to reach out.
66
+ *
67
+ * Returns `undefined` when there are no peers, so callers can use a nullish
68
+ * check before forwarding the section to `additionalPromptSections`.
69
+ *
70
+ * The platform is responsible for building the {@link LinkedPeer} list (query
71
+ * `SessionLink`, resolve names + scopes) and passing the rendered block as one
72
+ * more entry in `AgentSessionConfig.additionalPromptSections`. On a hot-plug
73
+ * (`runner.peers_changed`) the platform re-renders and re-pushes the section.
74
+ *
75
+ * @param peers - The current session's linked peers.
76
+ * @returns The wrapped `<LINKED_PEERS>` block, or `undefined` when empty.
77
+ * @category Capabilities
78
+ * @since 3.3.0
79
+ */
80
+ export declare function buildLinkedPeersPromptSection(peers: readonly LinkedPeer[]): string | undefined;
42
81
  //# sourceMappingURL=prompt-assembly.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-assembly.d.ts","sourceRoot":"","sources":["../../../runner/src/prompt-assembly.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAI7F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,GACzD,MAAM,GAAG,SAAS,CAIpB"}
1
+ {"version":3,"file":"prompt-assembly.d.ts","sourceRoot":"","sources":["../../../runner/src/prompt-assembly.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAI7F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,GACzD,MAAM,GAAG,SAAS,CAIpB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,GAAG,SAAS,CAa9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../runner/src/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AA+BH,OAAO,KAAK,EAEV,UAAU,EAIV,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EACL,2BAA2B,EAE3B,8BAA8B,EAC/B,MAAM,wBAAwB,CAAC;AAehC,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAC;AAuB9B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GACjC,IAAI,CAMN;AA0FD;;;;;;;;;GASG;AACH,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,CAAC;AAEvE;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAoCzE;AAWD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA09DxE"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../runner/src/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AA+BH,OAAO,KAAK,EAEV,UAAU,EAIV,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EACL,2BAA2B,EAE3B,8BAA8B,EAC/B,MAAM,wBAAwB,CAAC;AAgBhC,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAC;AAuB9B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GACjC,IAAI,CAMN;AA0FD;;;;;;;;;GASG;AACH,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,CAAC;AAEvE;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAoCzE;AAWD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA49DxE"}
@@ -1,8 +1,8 @@
1
- export { AssetManager } from '../chunk-I3S4BAAR.js';
1
+ export { AssetManager } from '../chunk-FEBLE7QX.js';
2
2
  export { createScaffold, deployAll, removeAsset } from '../chunk-M2NLRGIX.js';
3
3
  export { appendHistory, clearHistory, getRecentHistory, loadHistory } from '../chunk-KTBKW2FI.js';
4
4
  import '../chunk-UQ6LFBPZ.js';
5
- export { listTemplates, scaffoldWorkspace, setTemplatesDir } from '../chunk-XIVOEUAF.js';
5
+ export { listTemplates, scaffoldWorkspace, setTemplatesDir } from '../chunk-OQIBHB4F.js';
6
6
  import '../chunk-DIKFRNCS.js';
7
7
  import '../chunk-4RUVG5GX.js';
8
8
  import '../chunk-JKNWJ64A.js';
@@ -1,8 +1,8 @@
1
- export { BridgeRuntime, EventNormalizer, createRuntime, detectFileChange, detectFileChanges, summarizeToolCall, summarizeToolResult, validateApiKey } from '../chunk-K3TMZI6D.js';
1
+ export { BridgeRuntime, EventNormalizer, createRuntime, detectFileChange, detectFileChanges, summarizeToolCall, summarizeToolResult, validateApiKey } from '../chunk-OSJH4SPO.js';
2
2
  export { AuthError, classifyClaudeSdkError } from '../chunk-EWP5HZBV.js';
3
3
  export { STATIC_MODELS, fetchProviderModels, getModels, getStaticModels } from '../chunk-KOVLSBXK.js';
4
4
  export { dispatchCapability, filterRenderCapabilities, renderFallback } from '../chunk-RRVQAE5D.js';
5
- export { AgentDriver, DRIVER_CATALOG, createDriver, getBridgeLogger, listDrivers, listModelsForDriver, loadDriver, registerDriver } from '../chunk-AE6GCXGL.js';
5
+ export { AgentDriver, DRIVER_CATALOG, createDriver, getBridgeLogger, listDrivers, listModelsForDriver, loadDriver, registerDriver } from '../chunk-S7RACIZI.js';
6
6
  import '../chunk-24UIWON4.js';
7
7
  import '../chunk-NSBPE2FW.js';
8
8
  //# sourceMappingURL=bridge.js.map
package/dist/sdk/index.js CHANGED
@@ -1,19 +1,20 @@
1
- import { startAgentServer } from '../chunk-QZ6PY73K.js';
2
- import '../chunk-5IC6CJL4.js';
1
+ import { startAgentServer } from '../chunk-OVM36NYF.js';
2
+ import '../chunk-BTKNSMLK.js';
3
3
  import '../chunk-X5YPJV4N.js';
4
- import '../chunk-O5AE4QDX.js';
5
4
  import '../chunk-O7SG5PC2.js';
6
5
  import '../chunk-W2O5LWYU.js';
7
6
  import { WebSocketClientTransport } from '../chunk-7PTP3SQJ.js';
8
7
  import '../chunk-PBWMV5GM.js';
8
+ import '../chunk-W3UDISS2.js';
9
+ import '../chunk-TDSRLMDB.js';
9
10
  import { AgentClient } from '../chunk-SZ3SIVZQ.js';
10
- import '../chunk-K3TMZI6D.js';
11
+ import '../chunk-OSJH4SPO.js';
11
12
  import '../chunk-EWP5HZBV.js';
12
13
  import '../chunk-KOVLSBXK.js';
13
14
  import '../chunk-RRVQAE5D.js';
14
- import '../chunk-AE6GCXGL.js';
15
+ import '../chunk-S7RACIZI.js';
15
16
  import '../chunk-LV2HPH3C.js';
16
- import '../chunk-EPGHAOEU.js';
17
+ import '../chunk-UHSC75L7.js';
17
18
  import '../chunk-W75ASXH4.js';
18
19
  import '../chunk-EBMFCF4P.js';
19
20
  import '../chunk-GCRKAFH7.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../sdk/src/agent-session.ts","../../sdk/src/transport.ts","../../sdk/src/local-runtime.ts","../../sdk/src/workspace.ts","../../sdk/src/factory.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * AgentSession — stateful wrapper over any IAgentRuntime-compatible object.\n *\n * Provides:\n * - AgentEvent → OutputLine conversion with streaming text accumulation\n * - State machine: starting → idle ↔ active ↔ waiting → stopped\n * - Circular output buffer (500 lines, see {@link MAX_OUTPUT_LINES})\n * - send() routes to prompt() or reply() based on current state\n * - stop() disposes the runtime and fires optional cleanup\n * - onChange callback for reactive UIs (React forceUpdate, EventEmitter, etc.)\n *\n * Works with LocalRuntime (in-process) and AgentClient (remote/WebSocket).\n * Extend to add identity fields (id, name, profileName…):\n *\n * class MySession extends AgentSession {\n * constructor(readonly id: string, runtime: LocalRuntime | AgentClient) {\n * super(runtime);\n * }\n * }\n *\n * @docLink packages/sdk/concepts#agent-session\n */\n\nimport type { AgentEvent } from \"@skaile/workspaces/types\";\nimport type { OutputLine, SessionState } from \"./types.js\";\n\n/**\n * Maximum number of {@link OutputLine} entries retained in {@link AgentSession.output}.\n *\n * When the buffer exceeds this limit the oldest lines are dropped from the front,\n * keeping memory use bounded for long-running sessions.\n *\n * @docLink packages/sdk/concepts#agent-session\n */\nexport const MAX_OUTPUT_LINES = 500;\n\ninterface MinimalRuntime {\n prompt(message: string): Promise<void>;\n reply(answer: string): Promise<void>;\n abort(): Promise<void>;\n dispose(): Promise<void>;\n onEvent(handler: (e: AgentEvent) => void): void;\n offEvent(handler: (e: AgentEvent) => void): void;\n}\n\nexport class AgentSession {\n state: SessionState = \"starting\";\n readonly output: OutputLine[] = [];\n onChange?: () => void;\n\n /** Pointer to the streaming text line being accumulated in-place. */\n private currentTextLine: (OutputLine & { type: \"text\" }) | null = null;\n /** Registered in constructor so we can offEvent on stop. */\n private readonly eventHandler: (e: AgentEvent) => void;\n /** Optional cleanup hook registered by the factory (temp dir removal, etc.). */\n private cleanupFn?: () => void;\n\n constructor(protected readonly runtime: MinimalRuntime) {\n this.eventHandler = (e) => this.handleEvent(e);\n runtime.onEvent(this.eventHandler);\n }\n\n // ── Commands ──────────────────────────────────────────────────────────────\n\n /** Send a user message. Routes to reply() or prompt() based on state. */\n send(text: string): void {\n if (this.state === \"stopped\" || this.state === \"starting\") return;\n this.appendLine({ type: \"user\", content: text });\n if (this.state === \"waiting\") {\n this.state = \"active\";\n void this.runtime.reply(text);\n } else {\n this.state = \"active\";\n void this.runtime.prompt(text);\n }\n }\n\n /** Stop the session and dispose the runtime. */\n stop(): void {\n if (this.state === \"stopped\") return;\n this.state = \"stopped\";\n this.runtime.offEvent(this.eventHandler);\n void this.runtime.dispose();\n this.appendLine({ type: \"system\", message: \"Session stopped.\" });\n this.notify();\n this.cleanupFn?.();\n }\n\n /** Register a cleanup function called when the session stops. Used by the factory. */\n _registerCleanup(fn: () => void): void {\n this.cleanupFn = fn;\n }\n\n // ── Event → OutputLine ────────────────────────────────────────────────────\n\n protected handleEvent(event: AgentEvent): void {\n switch (event.type) {\n case \"text\": {\n const content = \"content\" in event ? String(event.content) : \"\";\n if (this.currentTextLine) {\n this.currentTextLine.content += content;\n } else {\n const line: OutputLine & { type: \"text\" } = { type: \"text\", content };\n this.output.push(line);\n this.currentTextLine = line;\n this.trimOutput();\n }\n this.state = \"active\";\n break;\n }\n\n case \"tool_call\": {\n this.sealText();\n const name =\n \"name\" in event ? String(event.name) : \"tool\" in event ? String(event.tool) : \"tool\";\n this.appendLine({ type: \"tool\", name });\n this.state = \"active\";\n break;\n }\n\n case \"question\": {\n this.sealText();\n const e = event as Record<string, unknown>;\n const text =\n \"question\" in e\n ? String(e.question)\n : \"text\" in e\n ? String(e.text)\n : \"The agent has a question.\";\n this.appendLine({ type: \"question\", text });\n this.state = \"waiting\";\n break;\n }\n\n case \"error\": {\n this.sealText();\n const message = \"message\" in event ? String(event.message) : \"An error occurred.\";\n this.appendLine({ type: \"error\", message });\n this.state = \"idle\";\n break;\n }\n\n case \"status\": {\n const phase = \"phase\" in event ? String(event.phase) : \"\";\n if (phase === \"thinking\" && this.currentTextLine !== null) break;\n if (phase) this.appendLine({ type: \"status\", phase });\n break;\n }\n\n case \"subagent\": {\n this.sealText();\n const e = event as Record<string, unknown>;\n const name = \"name\" in e ? String(e.name) : \"unknown\";\n const status = \"status\" in e ? (String(e.status) as \"started\" | \"finished\") : \"started\";\n const description = \"description\" in e ? String(e.description) : \"\";\n this.appendLine({ type: \"subagent\", name, status, description });\n if (status === \"started\") {\n this.state = \"active\";\n }\n break;\n }\n\n case \"finished\": {\n this.sealText();\n this.appendLine({ type: \"separator\" });\n this.state = \"idle\";\n break;\n }\n\n case \"state_changed\": {\n if (\"state\" in event && (event as Record<string, unknown>).state === \"stopped\") {\n this.sealText();\n this.appendLine({ type: \"system\", message: \"Agent stopped.\" });\n this.state = \"stopped\";\n }\n break;\n }\n }\n\n this.notify();\n }\n\n // ── Internals ─────────────────────────────────────────────────────────────\n\n protected appendLine(line: OutputLine): void {\n this.output.push(line);\n this.trimOutput();\n }\n\n protected notify(): void {\n this.onChange?.();\n }\n\n private sealText(): void {\n this.currentTextLine = null;\n }\n\n private trimOutput(): void {\n while (this.output.length > MAX_OUTPUT_LINES) {\n this.output.shift();\n }\n }\n}\n","/**\n * InProcessTransport — ServerTransport that runs entirely in-process.\n *\n * Used internally by {@link LocalRuntime}. Also exported for consumers building\n * custom integrations that need direct transport access without WebSocket overhead.\n *\n * Runner side (startAgentServer):\n * onCommand(handler) — registers the runner's command handler\n * send(event) — delivers AgentEvents to onEvent subscribers\n *\n * Application side:\n * inject(command) — sends a command to the agent (deferred to avoid re-entrancy)\n * onEvent(handler) — subscribes to AgentEvents; returns unsubscribe fn\n *\n * @docLink packages/sdk/concepts#in-process-transport\n */\n\nimport type { AgentCommand, AgentEvent, ServerTransport } from \"@skaile/workspaces/types\";\n\nexport class InProcessTransport implements ServerTransport {\n private readonly commandHandlers = new Set<(cmd: AgentCommand) => void>();\n private readonly eventHandlers = new Set<(event: AgentEvent) => void>();\n\n // ── ServerTransport ───────────────────────────────────────────────────────\n\n send(event: AgentEvent): void {\n for (const h of this.eventHandlers) h(event);\n }\n\n onCommand(handler: (cmd: AgentCommand) => void): () => void {\n this.commandHandlers.add(handler);\n return () => this.commandHandlers.delete(handler);\n }\n\n onConnect(_handler: () => void): () => void {\n return () => {};\n }\n\n onDisconnect(_handler: () => void): () => void {\n return () => {};\n }\n\n get connected(): boolean {\n return true;\n }\n\n // ── Application API ───────────────────────────────────────────────────────\n\n /** Send a command into the agent runner. Deferred to avoid re-entrancy. */\n inject(command: AgentCommand): void {\n for (const h of this.commandHandlers) {\n void Promise.resolve().then(() => h(command));\n }\n }\n\n /** Subscribe to AgentEvents. Returns an unsubscribe function. */\n onEvent(handler: (event: AgentEvent) => void): () => void {\n this.eventHandlers.add(handler);\n return () => this.eventHandlers.delete(handler);\n }\n}\n","/**\n * LocalRuntime — IAgentRuntime implementation that runs the agent in the same process.\n *\n * Mirror image of AgentClient: same interface, no WebSocket.\n * Uses InProcessTransport + startAgentServer() internally.\n *\n * Usage:\n * const runtime = new LocalRuntime();\n * runtime.onEvent(e => console.log(e));\n * await runtime.start({ projectDir: \"/path/to/workspace\" });\n * await runtime.prompt(\"Hello\");\n * await runtime.dispose();\n *\n * @docLink packages/sdk/concepts#local-runtime\n */\n\nimport { startAgentServer } from \"@skaile/workspaces/runner\";\nimport type { AgentEvent, IAgentRuntime } from \"@skaile/workspaces/types\";\nimport { InProcessTransport } from \"./transport.js\";\n\n/**\n * Options passed to {@link LocalRuntime.start}.\n *\n * `projectDir` is the only required field — it points to the workspace directory\n * containing `skaile.yaml`. All other fields override the manifest's agent configuration.\n *\n * @docLink packages/sdk/concepts#local-runtime\n */\nexport interface LocalRuntimeStartOptions {\n projectDir: string;\n agentDir?: string;\n driver?: string;\n model?: string;\n provider?: string;\n onLog?: (line: string) => void;\n}\n\nexport class LocalRuntime implements Omit<IAgentRuntime, \"start\" | \"configure\"> {\n private readonly transport = new InProcessTransport();\n private readonly handlers = new Set<(e: AgentEvent) => void>();\n private started = false;\n\n constructor() {\n this.transport.onEvent((e) => {\n for (const h of this.handlers) h(e);\n });\n }\n\n /**\n * Start the agent server. Resolves when the runner is wired and ready\n * to accept commands. Must be called before prompt() / reply().\n */\n async start(opts: LocalRuntimeStartOptions): Promise<void> {\n if (this.started) return;\n this.started = true;\n await startAgentServer({\n projectDir: opts.projectDir,\n agentDir: opts.agentDir,\n driver: opts.driver,\n model: opts.model,\n provider: opts.provider,\n transport: this.transport,\n onLog: opts.onLog,\n });\n }\n\n async prompt(message: string): Promise<void> {\n this.transport.inject({ type: \"prompt\", prompt: message });\n }\n\n async reply(answer: string): Promise<void> {\n this.transport.inject({ type: \"reply\", answer });\n }\n\n async abort(): Promise<void> {\n this.transport.inject({ type: \"cancel\" });\n }\n\n async dispose(): Promise<void> {\n this.transport.inject({ type: \"shutdown\" });\n }\n\n onEvent(handler: (e: AgentEvent) => void): void {\n this.handlers.add(handler);\n }\n\n offEvent(handler: (e: AgentEvent) => void): void {\n this.handlers.delete(handler);\n }\n\n get isRunning(): boolean {\n return this.transport.connected;\n }\n}\n","/**\n * Workspace utilities — prepare session directories and write skaile.yaml.\n */\n\nimport { mkdirSync, existsSync, rmSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { stringify } from \"yaml\";\nimport type { CreateAgentSessionOptions } from \"./types.js\";\n\n/**\n * Prepare a workspace directory for a session. Returns the path and cleanup fn.\n *\n * If `opts.workspaceDir` is set, that directory is created (if needed) and returned\n * with no cleanup. Otherwise a temporary directory under `/tmp/skaile-sdk/<timestamp>`\n * is created; the cleanup function removes it on session stop unless `keepWorkspace` is true.\n *\n * @param opts - Session creation options providing `workspaceDir` and `keepWorkspace`.\n * @returns An object with the resolved `dir` path and an optional `cleanup` function.\n * @docLink packages/sdk/concepts#workspace-helpers\n */\nexport function prepareWorkspace(opts: CreateAgentSessionOptions): {\n dir: string;\n cleanup: (() => void) | undefined;\n} {\n if (opts.workspaceDir) {\n mkdirSync(opts.workspaceDir, { recursive: true });\n return { dir: opts.workspaceDir, cleanup: undefined };\n }\n\n const dir = join(\"/tmp/skaile-sdk\", String(Date.now()));\n mkdirSync(dir, { recursive: true });\n\n const cleanup = opts.keepWorkspace\n ? undefined\n : () => rmSync(dir, { recursive: true, force: true });\n\n return { dir, cleanup };\n}\n\n/**\n * Write skaile.yaml from inline {@link CreateAgentSessionOptions}.\n *\n * Only writes if `agent`, `mounts`, or `connectors` are provided and no `skaile.yaml`\n * already exists in `dir` (existing config takes precedence). Connector `adapter` fields\n * are mapped to the `driver` field expected by the core runtime.\n *\n * @param dir - Absolute path to the workspace directory.\n * @param opts - Session options containing agent config, mounts, and connectors to serialize.\n * @docLink packages/sdk/concepts#workspace-helpers\n */\nexport function writeSkaileYaml(dir: string, opts: CreateAgentSessionOptions): void {\n if (!opts.agent && !opts.mounts?.length && !opts.connectors?.length) return;\n const dest = join(dir, \"skaile.yaml\");\n if (existsSync(dest)) return; // existing config wins\n\n const cfg: Record<string, unknown> = {\n name: \"sdk-session\",\n };\n\n if (opts.agent) {\n cfg[\"agent-config\"] = {\n default: {\n ...(opts.agent.driver && { driver: opts.agent.driver }),\n ...(opts.agent.provider && { provider: opts.agent.provider }),\n ...(opts.agent.model && { model: opts.agent.model }),\n },\n };\n\n if (opts.agent.maxTurns !== undefined || opts.agent.permissionMode !== undefined) {\n cfg.agent = {\n permissions: {\n ...(opts.agent.maxTurns !== undefined && { max_turns: opts.agent.maxTurns }),\n ...(opts.agent.permissionMode !== undefined && {\n permission_mode: opts.agent.permissionMode,\n }),\n },\n };\n }\n }\n\n if (opts.mounts?.length) {\n cfg.mounts = opts.mounts;\n }\n\n if (opts.connectors?.length) {\n // Map SDK field names to core's ConnectorDeclaration field names:\n // SDK uses `adapter` → core expects `driver`\n cfg.connectors = opts.connectors.map((c) => ({\n id: c.id,\n driver: c.adapter,\n ...(c.access && { access: c.access }),\n ...(c.auth && { auth: c.auth }),\n ...(c.options && { options: c.options }),\n }));\n }\n\n writeFileSync(dest, stringify(cfg));\n}\n","/**\n * createAgentSession() — universal factory for agent sessions.\n *\n * Handles workspace preparation, skaile.yaml writing, runtime selection,\n * startup, and cleanup registration. Returns a ready-to-use {@link AgentSession}.\n *\n * For multi-session managers (forge-tui) or bots (forge-mattermost) that need\n * custom session subclasses, use LocalRuntime directly:\n *\n * const runtime = new LocalRuntime();\n * await runtime.start({ projectDir: dir, agentDir });\n * const session = new MySession(id, name, runtime);\n *\n * @docLink packages/sdk/concepts#create-agent-session\n */\n\nimport { AgentClient } from \"@skaile/workspaces/client\";\nimport { WebSocketClientTransport } from \"@skaile/workspaces/transport/ws/client\";\nimport { AgentSession } from \"./agent-session.js\";\nimport { LocalRuntime } from \"./local-runtime.js\";\nimport { prepareWorkspace, writeSkaileYaml } from \"./workspace.js\";\nimport type { CreateAgentSessionOptions } from \"./types.js\";\n\nexport async function createAgentSession(\n opts: CreateAgentSessionOptions = {},\n): Promise<AgentSession> {\n const { dir, cleanup } = prepareWorkspace(opts);\n writeSkaileYaml(dir, opts);\n\n const mode = opts.mode ?? { type: \"local\" };\n let runtime: LocalRuntime | AgentClient;\n\n if (mode.type === \"local\") {\n const r = new LocalRuntime();\n await r.start({ projectDir: dir, agentDir: opts.agentDir });\n runtime = r;\n } else {\n const transport = new WebSocketClientTransport({ url: mode.url });\n await transport.connect();\n runtime = new AgentClient(transport);\n }\n\n const session = new AgentSession(runtime);\n session.state = \"idle\";\n\n if (cleanup) {\n session._registerCleanup(cleanup);\n }\n\n if (opts.initialPrompt?.trim()) {\n session.send(opts.initialPrompt.trim());\n }\n\n return session;\n}\n"]}
1
+ {"version":3,"sources":["../../sdk/src/agent-session.ts","../../sdk/src/transport.ts","../../sdk/src/local-runtime.ts","../../sdk/src/workspace.ts","../../sdk/src/factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,gBAAA,GAAmB;AAWzB,IAAM,eAAN,MAAmB;AAAA,EAYxB,YAA+B,OAAA,EAAyB;AAAzB,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAC7B,IAAA,IAAA,CAAK,YAAA,GAAe,CAAC,CAAA,KAAM,IAAA,CAAK,YAAY,CAAC,CAAA;AAC7C,IAAA,OAAA,CAAQ,OAAA,CAAQ,KAAK,YAAY,CAAA;AAAA,EACnC;AAAA,EAH+B,OAAA;AAAA,EAX/B,KAAA,GAAsB,UAAA;AAAA,EACb,SAAuB,EAAC;AAAA,EACjC,QAAA;AAAA;AAAA,EAGQ,eAAA,GAA0D,IAAA;AAAA;AAAA,EAEjD,YAAA;AAAA;AAAA,EAET,SAAA;AAAA;AAAA;AAAA,EAUR,KAAK,IAAA,EAAoB;AACvB,IAAA,IAAI,IAAA,CAAK,KAAA,KAAU,SAAA,IAAa,IAAA,CAAK,UAAU,UAAA,EAAY;AAC3D,IAAA,IAAA,CAAK,WAAW,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAS,MAAM,CAAA;AAC/C,IAAA,IAAI,IAAA,CAAK,UAAU,SAAA,EAAW;AAC5B,MAAA,IAAA,CAAK,KAAA,GAAQ,QAAA;AACb,MAAA,KAAK,IAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAAA,IAC9B,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,KAAA,GAAQ,QAAA;AACb,MAAA,KAAK,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,IAAI,CAAA;AAAA,IAC/B;AAAA,EACF;AAAA;AAAA,EAGA,IAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAK,UAAU,SAAA,EAAW;AAC9B,IAAA,IAAA,CAAK,KAAA,GAAQ,SAAA;AACb,IAAA,IAAA,CAAK,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,YAAY,CAAA;AACvC,IAAA,KAAK,IAAA,CAAK,QAAQ,OAAA,EAAQ;AAC1B,IAAA,IAAA,CAAK,WAAW,EAAE,IAAA,EAAM,QAAA,EAAU,OAAA,EAAS,oBAAoB,CAAA;AAC/D,IAAA,IAAA,CAAK,MAAA,EAAO;AACZ,IAAA,IAAA,CAAK,SAAA,IAAY;AAAA,EACnB;AAAA;AAAA,EAGA,iBAAiB,EAAA,EAAsB;AACrC,IAAA,IAAA,CAAK,SAAA,GAAY,EAAA;AAAA,EACnB;AAAA;AAAA,EAIU,YAAY,KAAA,EAAyB;AAC7C,IAAA,QAAQ,MAAM,IAAA;AAAM,MAClB,KAAK,MAAA,EAAQ;AACX,QAAA,MAAM,UAAU,SAAA,IAAa,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,OAAO,CAAA,GAAI,EAAA;AAC7D,QAAA,IAAI,KAAK,eAAA,EAAiB;AACxB,UAAA,IAAA,CAAK,gBAAgB,OAAA,IAAW,OAAA;AAAA,QAClC,CAAA,MAAO;AACL,UAAA,MAAM,IAAA,GAAsC,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAQ;AACpE,UAAA,IAAA,CAAK,MAAA,CAAO,KAAK,IAAI,CAAA;AACrB,UAAA,IAAA,CAAK,eAAA,GAAkB,IAAA;AACvB,UAAA,IAAA,CAAK,UAAA,EAAW;AAAA,QAClB;AACA,QAAA,IAAA,CAAK,KAAA,GAAQ,QAAA;AACb,QAAA;AAAA,MACF;AAAA,MAEA,KAAK,WAAA,EAAa;AAChB,QAAA,IAAA,CAAK,QAAA,EAAS;AACd,QAAA,MAAM,IAAA,GACJ,MAAA,IAAU,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,GAAI,MAAA,IAAU,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,GAAI,MAAA;AAChF,QAAA,IAAA,CAAK,UAAA,CAAW,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAM,CAAA;AACtC,QAAA,IAAA,CAAK,KAAA,GAAQ,QAAA;AACb,QAAA;AAAA,MACF;AAAA,MAEA,KAAK,UAAA,EAAY;AACf,QAAA,IAAA,CAAK,QAAA,EAAS;AACd,QAAA,MAAM,CAAA,GAAI,KAAA;AACV,QAAA,MAAM,IAAA,GACJ,UAAA,IAAc,CAAA,GACV,MAAA,CAAO,CAAA,CAAE,QAAQ,CAAA,GACjB,MAAA,IAAU,CAAA,GACR,MAAA,CAAO,CAAA,CAAE,IAAI,CAAA,GACb,2BAAA;AACR,QAAA,IAAA,CAAK,UAAA,CAAW,EAAE,IAAA,EAAM,UAAA,EAAY,MAAM,CAAA;AAC1C,QAAA,IAAA,CAAK,KAAA,GAAQ,SAAA;AACb,QAAA;AAAA,MACF;AAAA,MAEA,KAAK,OAAA,EAAS;AACZ,QAAA,IAAA,CAAK,QAAA,EAAS;AACd,QAAA,MAAM,UAAU,SAAA,IAAa,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,OAAO,CAAA,GAAI,oBAAA;AAC7D,QAAA,IAAA,CAAK,UAAA,CAAW,EAAE,IAAA,EAAM,OAAA,EAAS,SAAS,CAAA;AAC1C,QAAA,IAAA,CAAK,KAAA,GAAQ,MAAA;AACb,QAAA;AAAA,MACF;AAAA,MAEA,KAAK,QAAA,EAAU;AACb,QAAA,MAAM,QAAQ,OAAA,IAAW,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA,GAAI,EAAA;AACvD,QAAA,IAAI,KAAA,KAAU,UAAA,IAAc,IAAA,CAAK,eAAA,KAAoB,IAAA,EAAM;AAC3D,QAAA,IAAI,OAAO,IAAA,CAAK,UAAA,CAAW,EAAE,IAAA,EAAM,QAAA,EAAU,OAAO,CAAA;AACpD,QAAA;AAAA,MACF;AAAA,MAEA,KAAK,UAAA,EAAY;AACf,QAAA,IAAA,CAAK,QAAA,EAAS;AACd,QAAA,MAAM,CAAA,GAAI,KAAA;AACV,QAAA,MAAM,OAAO,MAAA,IAAU,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,IAAI,CAAA,GAAI,SAAA;AAC5C,QAAA,MAAM,SAAS,QAAA,IAAY,CAAA,GAAK,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAA+B,SAAA;AAC9E,QAAA,MAAM,cAAc,aAAA,IAAiB,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,WAAW,CAAA,GAAI,EAAA;AACjE,QAAA,IAAA,CAAK,WAAW,EAAE,IAAA,EAAM,YAAY,IAAA,EAAM,MAAA,EAAQ,aAAa,CAAA;AAC/D,QAAA,IAAI,WAAW,SAAA,EAAW;AACxB,UAAA,IAAA,CAAK,KAAA,GAAQ,QAAA;AAAA,QACf;AACA,QAAA;AAAA,MACF;AAAA,MAEA,KAAK,UAAA,EAAY;AACf,QAAA,IAAA,CAAK,QAAA,EAAS;AACd,QAAA,IAAA,CAAK,UAAA,CAAW,EAAE,IAAA,EAAM,WAAA,EAAa,CAAA;AACrC,QAAA,IAAA,CAAK,KAAA,GAAQ,MAAA;AACb,QAAA;AAAA,MACF;AAAA,MAEA,KAAK,eAAA,EAAiB;AACpB,QAAA,IAAI,OAAA,IAAW,KAAA,IAAU,KAAA,CAAkC,KAAA,KAAU,SAAA,EAAW;AAC9E,UAAA,IAAA,CAAK,QAAA,EAAS;AACd,UAAA,IAAA,CAAK,WAAW,EAAE,IAAA,EAAM,QAAA,EAAU,OAAA,EAAS,kBAAkB,CAAA;AAC7D,UAAA,IAAA,CAAK,KAAA,GAAQ,SAAA;AAAA,QACf;AACA,QAAA;AAAA,MACF;AAAA;AAGF,IAAA,IAAA,CAAK,MAAA,EAAO;AAAA,EACd;AAAA;AAAA,EAIU,WAAW,IAAA,EAAwB;AAC3C,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,IAAI,CAAA;AACrB,IAAA,IAAA,CAAK,UAAA,EAAW;AAAA,EAClB;AAAA,EAEU,MAAA,GAAe;AACvB,IAAA,IAAA,CAAK,QAAA,IAAW;AAAA,EAClB;AAAA,EAEQ,QAAA,GAAiB;AACvB,IAAA,IAAA,CAAK,eAAA,GAAkB,IAAA;AAAA,EACzB;AAAA,EAEQ,UAAA,GAAmB;AACzB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,MAAA,GAAS,gBAAA,EAAkB;AAC5C,MAAA,IAAA,CAAK,OAAO,KAAA,EAAM;AAAA,IACpB;AAAA,EACF;AACF;;;ACvLO,IAAM,qBAAN,MAAoD;AAAA,EACxC,eAAA,uBAAsB,GAAA,EAAiC;AAAA,EACvD,aAAA,uBAAoB,GAAA,EAAiC;AAAA;AAAA,EAItE,KAAK,KAAA,EAAyB;AAC5B,IAAA,KAAA,MAAW,CAAA,IAAK,IAAA,CAAK,aAAA,EAAe,CAAA,CAAE,KAAK,CAAA;AAAA,EAC7C;AAAA,EAEA,UAAU,OAAA,EAAkD;AAC1D,IAAA,IAAA,CAAK,eAAA,CAAgB,IAAI,OAAO,CAAA;AAChC,IAAA,OAAO,MAAM,IAAA,CAAK,eAAA,CAAgB,MAAA,CAAO,OAAO,CAAA;AAAA,EAClD;AAAA,EAEA,UAAU,QAAA,EAAkC;AAC1C,IAAA,OAAO,MAAM;AAAA,IAAC,CAAA;AAAA,EAChB;AAAA,EAEA,aAAa,QAAA,EAAkC;AAC7C,IAAA,OAAO,MAAM;AAAA,IAAC,CAAA;AAAA,EAChB;AAAA,EAEA,IAAI,SAAA,GAAqB;AACvB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA,EAKA,OAAO,OAAA,EAA6B;AAClC,IAAA,KAAA,MAAW,CAAA,IAAK,KAAK,eAAA,EAAiB;AACpC,MAAA,KAAK,QAAQ,OAAA,EAAQ,CAAE,KAAK,MAAM,CAAA,CAAE,OAAO,CAAC,CAAA;AAAA,IAC9C;AAAA,EACF;AAAA;AAAA,EAGA,QAAQ,OAAA,EAAkD;AACxD,IAAA,IAAA,CAAK,aAAA,CAAc,IAAI,OAAO,CAAA;AAC9B,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,MAAA,CAAO,OAAO,CAAA;AAAA,EAChD;AACF;;;ACvBO,IAAM,eAAN,MAAyE;AAAA,EAC7D,SAAA,GAAY,IAAI,kBAAA,EAAmB;AAAA,EACnC,QAAA,uBAAe,GAAA,EAA6B;AAAA,EACrD,OAAA,GAAU,KAAA;AAAA,EAElB,WAAA,GAAc;AACZ,IAAA,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAA,KAAM;AAC5B,MAAA,KAAA,MAAW,CAAA,IAAK,IAAA,CAAK,QAAA,EAAU,CAAA,CAAE,CAAC,CAAA;AAAA,IACpC,CAAC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,MAAM,IAAA,EAA+C;AACzD,IAAA,IAAI,KAAK,OAAA,EAAS;AAClB,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AACf,IAAA,MAAM,gBAAA,CAAiB;AAAA,MACrB,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,OAAO,IAAA,CAAK;AAAA,KACb,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,OAAO,OAAA,EAAgC;AAC3C,IAAA,IAAA,CAAK,UAAU,MAAA,CAAO,EAAE,MAAM,QAAA,EAAU,MAAA,EAAQ,SAAS,CAAA;AAAA,EAC3D;AAAA,EAEA,MAAM,MAAM,MAAA,EAA+B;AACzC,IAAA,IAAA,CAAK,UAAU,MAAA,CAAO,EAAE,IAAA,EAAM,OAAA,EAAS,QAAQ,CAAA;AAAA,EACjD;AAAA,EAEA,MAAM,KAAA,GAAuB;AAC3B,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,EAAE,IAAA,EAAM,UAAU,CAAA;AAAA,EAC1C;AAAA,EAEA,MAAM,OAAA,GAAyB;AAC7B,IAAA,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,EAAE,IAAA,EAAM,YAAY,CAAA;AAAA,EAC5C;AAAA,EAEA,QAAQ,OAAA,EAAwC;AAC9C,IAAA,IAAA,CAAK,QAAA,CAAS,IAAI,OAAO,CAAA;AAAA,EAC3B;AAAA,EAEA,SAAS,OAAA,EAAwC;AAC/C,IAAA,IAAA,CAAK,QAAA,CAAS,OAAO,OAAO,CAAA;AAAA,EAC9B;AAAA,EAEA,IAAI,SAAA,GAAqB;AACvB,IAAA,OAAO,KAAK,SAAA,CAAU,SAAA;AAAA,EACxB;AACF;ACzEO,SAAS,iBAAiB,IAAA,EAG/B;AACA,EAAA,IAAI,KAAK,YAAA,EAAc;AACrB,IAAA,SAAA,CAAU,IAAA,CAAK,YAAA,EAAc,EAAE,SAAA,EAAW,MAAM,CAAA;AAChD,IAAA,OAAO,EAAE,GAAA,EAAK,IAAA,CAAK,YAAA,EAAc,SAAS,MAAA,EAAU;AAAA,EACtD;AAEA,EAAA,MAAM,MAAM,IAAA,CAAK,iBAAA,EAAmB,OAAO,IAAA,CAAK,GAAA,EAAK,CAAC,CAAA;AACtD,EAAA,SAAA,CAAU,GAAA,EAAK,EAAE,SAAA,EAAW,IAAA,EAAM,CAAA;AAElC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,aAAA,GACjB,MAAA,GACA,MAAM,MAAA,CAAO,GAAA,EAAK,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,CAAA;AAEtD,EAAA,OAAO,EAAE,KAAK,OAAA,EAAQ;AACxB;AAaO,SAAS,eAAA,CAAgB,KAAa,IAAA,EAAuC;AAClF,EAAA,IAAI,CAAC,IAAA,CAAK,KAAA,IAAS,CAAC,IAAA,CAAK,QAAQ,MAAA,IAAU,CAAC,IAAA,CAAK,UAAA,EAAY,MAAA,EAAQ;AACrE,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,EAAK,aAAa,CAAA;AACpC,EAAA,IAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AAEtB,EAAA,MAAM,GAAA,GAA+B;AAAA,IACnC,IAAA,EAAM;AAAA,GACR;AAEA,EAAA,IAAI,KAAK,KAAA,EAAO;AACd,IAAA,GAAA,CAAI,cAAc,CAAA,GAAI;AAAA,MACpB,OAAA,EAAS;AAAA,QACP,GAAI,KAAK,KAAA,CAAM,MAAA,IAAU,EAAE,MAAA,EAAQ,IAAA,CAAK,MAAM,MAAA,EAAO;AAAA,QACrD,GAAI,KAAK,KAAA,CAAM,QAAA,IAAY,EAAE,QAAA,EAAU,IAAA,CAAK,MAAM,QAAA,EAAS;AAAA,QAC3D,GAAI,KAAK,KAAA,CAAM,KAAA,IAAS,EAAE,KAAA,EAAO,IAAA,CAAK,MAAM,KAAA;AAAM;AACpD,KACF;AAEA,IAAA,IAAI,KAAK,KAAA,CAAM,QAAA,KAAa,UAAa,IAAA,CAAK,KAAA,CAAM,mBAAmB,MAAA,EAAW;AAChF,MAAA,GAAA,CAAI,KAAA,GAAQ;AAAA,QACV,WAAA,EAAa;AAAA,UACX,GAAI,KAAK,KAAA,CAAM,QAAA,KAAa,UAAa,EAAE,SAAA,EAAW,IAAA,CAAK,KAAA,CAAM,QAAA,EAAS;AAAA,UAC1E,GAAI,IAAA,CAAK,KAAA,CAAM,cAAA,KAAmB,MAAA,IAAa;AAAA,YAC7C,eAAA,EAAiB,KAAK,KAAA,CAAM;AAAA;AAC9B;AACF,OACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,IAAI,IAAA,CAAK,QAAQ,MAAA,EAAQ;AACvB,IAAA,GAAA,CAAI,SAAS,IAAA,CAAK,MAAA;AAAA,EACpB;AAEA,EAAA,IAAI,IAAA,CAAK,YAAY,MAAA,EAAQ;AAG3B,IAAA,GAAA,CAAI,UAAA,GAAa,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,MAC3C,IAAI,CAAA,CAAE,EAAA;AAAA,MACN,QAAQ,CAAA,CAAE,OAAA;AAAA,MACV,GAAI,CAAA,CAAE,MAAA,IAAU,EAAE,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,MACnC,GAAI,CAAA,CAAE,IAAA,IAAQ,EAAE,IAAA,EAAM,EAAE,IAAA,EAAK;AAAA,MAC7B,GAAI,CAAA,CAAE,OAAA,IAAW,EAAE,OAAA,EAAS,EAAE,OAAA;AAAQ,KACxC,CAAE,CAAA;AAAA,EACJ;AAEA,EAAA,aAAA,CAAc,IAAA,EAAM,SAAA,CAAU,GAAG,CAAC,CAAA;AACpC;;;AC1EA,eAAsB,kBAAA,CACpB,IAAA,GAAkC,EAAC,EACZ;AACvB,EAAA,MAAM,EAAE,GAAA,EAAK,OAAA,EAAQ,GAAI,iBAAiB,IAAI,CAAA;AAC9C,EAAA,eAAA,CAAgB,KAAK,IAAI,CAAA;AAEzB,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,IAAQ,EAAE,MAAM,OAAA,EAAQ;AAC1C,EAAA,IAAI,OAAA;AAEJ,EAAA,IAAI,IAAA,CAAK,SAAS,OAAA,EAAS;AACzB,IAAA,MAAM,CAAA,GAAI,IAAI,YAAA,EAAa;AAC3B,IAAA,MAAM,CAAA,CAAE,MAAM,EAAE,UAAA,EAAY,KAAK,QAAA,EAAU,IAAA,CAAK,UAAU,CAAA;AAC1D,IAAA,OAAA,GAAU,CAAA;AAAA,EACZ,CAAA,MAAO;AACL,IAAA,MAAM,YAAY,IAAI,wBAAA,CAAyB,EAAE,GAAA,EAAK,IAAA,CAAK,KAAK,CAAA;AAChE,IAAA,MAAM,UAAU,OAAA,EAAQ;AACxB,IAAA,OAAA,GAAU,IAAI,YAAY,SAAS,CAAA;AAAA,EACrC;AAEA,EAAA,MAAM,OAAA,GAAU,IAAI,YAAA,CAAa,OAAO,CAAA;AACxC,EAAA,OAAA,CAAQ,KAAA,GAAQ,MAAA;AAEhB,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAA,CAAQ,iBAAiB,OAAO,CAAA;AAAA,EAClC;AAEA,EAAA,IAAI,IAAA,CAAK,aAAA,EAAe,IAAA,EAAK,EAAG;AAC9B,IAAA,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,aAAA,CAAc,IAAA,EAAM,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,OAAA;AACT","file":"index.js","sourcesContent":["/**\n * AgentSession — stateful wrapper over any IAgentRuntime-compatible object.\n *\n * Provides:\n * - AgentEvent → OutputLine conversion with streaming text accumulation\n * - State machine: starting → idle ↔ active ↔ waiting → stopped\n * - Circular output buffer (500 lines, see {@link MAX_OUTPUT_LINES})\n * - send() routes to prompt() or reply() based on current state\n * - stop() disposes the runtime and fires optional cleanup\n * - onChange callback for reactive UIs (React forceUpdate, EventEmitter, etc.)\n *\n * Works with LocalRuntime (in-process) and AgentClient (remote/WebSocket).\n * Extend to add identity fields (id, name, profileName…):\n *\n * class MySession extends AgentSession {\n * constructor(readonly id: string, runtime: LocalRuntime | AgentClient) {\n * super(runtime);\n * }\n * }\n *\n * @docLink packages/sdk/concepts#agent-session\n */\n\nimport type { AgentEvent } from \"@skaile/workspaces/types\";\nimport type { OutputLine, SessionState } from \"./types.js\";\n\n/**\n * Maximum number of {@link OutputLine} entries retained in {@link AgentSession.output}.\n *\n * When the buffer exceeds this limit the oldest lines are dropped from the front,\n * keeping memory use bounded for long-running sessions.\n *\n * @docLink packages/sdk/concepts#agent-session\n */\nexport const MAX_OUTPUT_LINES = 500;\n\ninterface MinimalRuntime {\n prompt(message: string): Promise<void>;\n reply(answer: string): Promise<void>;\n abort(): Promise<void>;\n dispose(): Promise<void>;\n onEvent(handler: (e: AgentEvent) => void): void;\n offEvent(handler: (e: AgentEvent) => void): void;\n}\n\nexport class AgentSession {\n state: SessionState = \"starting\";\n readonly output: OutputLine[] = [];\n onChange?: () => void;\n\n /** Pointer to the streaming text line being accumulated in-place. */\n private currentTextLine: (OutputLine & { type: \"text\" }) | null = null;\n /** Registered in constructor so we can offEvent on stop. */\n private readonly eventHandler: (e: AgentEvent) => void;\n /** Optional cleanup hook registered by the factory (temp dir removal, etc.). */\n private cleanupFn?: () => void;\n\n constructor(protected readonly runtime: MinimalRuntime) {\n this.eventHandler = (e) => this.handleEvent(e);\n runtime.onEvent(this.eventHandler);\n }\n\n // ── Commands ──────────────────────────────────────────────────────────────\n\n /** Send a user message. Routes to reply() or prompt() based on state. */\n send(text: string): void {\n if (this.state === \"stopped\" || this.state === \"starting\") return;\n this.appendLine({ type: \"user\", content: text });\n if (this.state === \"waiting\") {\n this.state = \"active\";\n void this.runtime.reply(text);\n } else {\n this.state = \"active\";\n void this.runtime.prompt(text);\n }\n }\n\n /** Stop the session and dispose the runtime. */\n stop(): void {\n if (this.state === \"stopped\") return;\n this.state = \"stopped\";\n this.runtime.offEvent(this.eventHandler);\n void this.runtime.dispose();\n this.appendLine({ type: \"system\", message: \"Session stopped.\" });\n this.notify();\n this.cleanupFn?.();\n }\n\n /** Register a cleanup function called when the session stops. Used by the factory. */\n _registerCleanup(fn: () => void): void {\n this.cleanupFn = fn;\n }\n\n // ── Event → OutputLine ────────────────────────────────────────────────────\n\n protected handleEvent(event: AgentEvent): void {\n switch (event.type) {\n case \"text\": {\n const content = \"content\" in event ? String(event.content) : \"\";\n if (this.currentTextLine) {\n this.currentTextLine.content += content;\n } else {\n const line: OutputLine & { type: \"text\" } = { type: \"text\", content };\n this.output.push(line);\n this.currentTextLine = line;\n this.trimOutput();\n }\n this.state = \"active\";\n break;\n }\n\n case \"tool_call\": {\n this.sealText();\n const name =\n \"name\" in event ? String(event.name) : \"tool\" in event ? String(event.tool) : \"tool\";\n this.appendLine({ type: \"tool\", name });\n this.state = \"active\";\n break;\n }\n\n case \"question\": {\n this.sealText();\n const e = event as Record<string, unknown>;\n const text =\n \"question\" in e\n ? String(e.question)\n : \"text\" in e\n ? String(e.text)\n : \"The agent has a question.\";\n this.appendLine({ type: \"question\", text });\n this.state = \"waiting\";\n break;\n }\n\n case \"error\": {\n this.sealText();\n const message = \"message\" in event ? String(event.message) : \"An error occurred.\";\n this.appendLine({ type: \"error\", message });\n this.state = \"idle\";\n break;\n }\n\n case \"status\": {\n const phase = \"phase\" in event ? String(event.phase) : \"\";\n if (phase === \"thinking\" && this.currentTextLine !== null) break;\n if (phase) this.appendLine({ type: \"status\", phase });\n break;\n }\n\n case \"subagent\": {\n this.sealText();\n const e = event as Record<string, unknown>;\n const name = \"name\" in e ? String(e.name) : \"unknown\";\n const status = \"status\" in e ? (String(e.status) as \"started\" | \"finished\") : \"started\";\n const description = \"description\" in e ? String(e.description) : \"\";\n this.appendLine({ type: \"subagent\", name, status, description });\n if (status === \"started\") {\n this.state = \"active\";\n }\n break;\n }\n\n case \"finished\": {\n this.sealText();\n this.appendLine({ type: \"separator\" });\n this.state = \"idle\";\n break;\n }\n\n case \"state_changed\": {\n if (\"state\" in event && (event as Record<string, unknown>).state === \"stopped\") {\n this.sealText();\n this.appendLine({ type: \"system\", message: \"Agent stopped.\" });\n this.state = \"stopped\";\n }\n break;\n }\n }\n\n this.notify();\n }\n\n // ── Internals ─────────────────────────────────────────────────────────────\n\n protected appendLine(line: OutputLine): void {\n this.output.push(line);\n this.trimOutput();\n }\n\n protected notify(): void {\n this.onChange?.();\n }\n\n private sealText(): void {\n this.currentTextLine = null;\n }\n\n private trimOutput(): void {\n while (this.output.length > MAX_OUTPUT_LINES) {\n this.output.shift();\n }\n }\n}\n","/**\n * InProcessTransport — ServerTransport that runs entirely in-process.\n *\n * Used internally by {@link LocalRuntime}. Also exported for consumers building\n * custom integrations that need direct transport access without WebSocket overhead.\n *\n * Runner side (startAgentServer):\n * onCommand(handler) — registers the runner's command handler\n * send(event) — delivers AgentEvents to onEvent subscribers\n *\n * Application side:\n * inject(command) — sends a command to the agent (deferred to avoid re-entrancy)\n * onEvent(handler) — subscribes to AgentEvents; returns unsubscribe fn\n *\n * @docLink packages/sdk/concepts#in-process-transport\n */\n\nimport type { AgentCommand, AgentEvent, ServerTransport } from \"@skaile/workspaces/types\";\n\nexport class InProcessTransport implements ServerTransport {\n private readonly commandHandlers = new Set<(cmd: AgentCommand) => void>();\n private readonly eventHandlers = new Set<(event: AgentEvent) => void>();\n\n // ── ServerTransport ───────────────────────────────────────────────────────\n\n send(event: AgentEvent): void {\n for (const h of this.eventHandlers) h(event);\n }\n\n onCommand(handler: (cmd: AgentCommand) => void): () => void {\n this.commandHandlers.add(handler);\n return () => this.commandHandlers.delete(handler);\n }\n\n onConnect(_handler: () => void): () => void {\n return () => {};\n }\n\n onDisconnect(_handler: () => void): () => void {\n return () => {};\n }\n\n get connected(): boolean {\n return true;\n }\n\n // ── Application API ───────────────────────────────────────────────────────\n\n /** Send a command into the agent runner. Deferred to avoid re-entrancy. */\n inject(command: AgentCommand): void {\n for (const h of this.commandHandlers) {\n void Promise.resolve().then(() => h(command));\n }\n }\n\n /** Subscribe to AgentEvents. Returns an unsubscribe function. */\n onEvent(handler: (event: AgentEvent) => void): () => void {\n this.eventHandlers.add(handler);\n return () => this.eventHandlers.delete(handler);\n }\n}\n","/**\n * LocalRuntime — IAgentRuntime implementation that runs the agent in the same process.\n *\n * Mirror image of AgentClient: same interface, no WebSocket.\n * Uses InProcessTransport + startAgentServer() internally.\n *\n * Usage:\n * const runtime = new LocalRuntime();\n * runtime.onEvent(e => console.log(e));\n * await runtime.start({ projectDir: \"/path/to/workspace\" });\n * await runtime.prompt(\"Hello\");\n * await runtime.dispose();\n *\n * @docLink packages/sdk/concepts#local-runtime\n */\n\nimport { startAgentServer } from \"@skaile/workspaces/runner\";\nimport type { AgentEvent, IAgentRuntime } from \"@skaile/workspaces/types\";\nimport { InProcessTransport } from \"./transport.js\";\n\n/**\n * Options passed to {@link LocalRuntime.start}.\n *\n * `projectDir` is the only required field — it points to the workspace directory\n * containing `skaile.yaml`. All other fields override the manifest's agent configuration.\n *\n * @docLink packages/sdk/concepts#local-runtime\n */\nexport interface LocalRuntimeStartOptions {\n projectDir: string;\n agentDir?: string;\n driver?: string;\n model?: string;\n provider?: string;\n onLog?: (line: string) => void;\n}\n\nexport class LocalRuntime implements Omit<IAgentRuntime, \"start\" | \"configure\"> {\n private readonly transport = new InProcessTransport();\n private readonly handlers = new Set<(e: AgentEvent) => void>();\n private started = false;\n\n constructor() {\n this.transport.onEvent((e) => {\n for (const h of this.handlers) h(e);\n });\n }\n\n /**\n * Start the agent server. Resolves when the runner is wired and ready\n * to accept commands. Must be called before prompt() / reply().\n */\n async start(opts: LocalRuntimeStartOptions): Promise<void> {\n if (this.started) return;\n this.started = true;\n await startAgentServer({\n projectDir: opts.projectDir,\n agentDir: opts.agentDir,\n driver: opts.driver,\n model: opts.model,\n provider: opts.provider,\n transport: this.transport,\n onLog: opts.onLog,\n });\n }\n\n async prompt(message: string): Promise<void> {\n this.transport.inject({ type: \"prompt\", prompt: message });\n }\n\n async reply(answer: string): Promise<void> {\n this.transport.inject({ type: \"reply\", answer });\n }\n\n async abort(): Promise<void> {\n this.transport.inject({ type: \"cancel\" });\n }\n\n async dispose(): Promise<void> {\n this.transport.inject({ type: \"shutdown\" });\n }\n\n onEvent(handler: (e: AgentEvent) => void): void {\n this.handlers.add(handler);\n }\n\n offEvent(handler: (e: AgentEvent) => void): void {\n this.handlers.delete(handler);\n }\n\n get isRunning(): boolean {\n return this.transport.connected;\n }\n}\n","/**\n * Workspace utilities — prepare session directories and write skaile.yaml.\n */\n\nimport { mkdirSync, existsSync, rmSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { stringify } from \"yaml\";\nimport type { CreateAgentSessionOptions } from \"./types.js\";\n\n/**\n * Prepare a workspace directory for a session. Returns the path and cleanup fn.\n *\n * If `opts.workspaceDir` is set, that directory is created (if needed) and returned\n * with no cleanup. Otherwise a temporary directory under `/tmp/skaile-sdk/<timestamp>`\n * is created; the cleanup function removes it on session stop unless `keepWorkspace` is true.\n *\n * @param opts - Session creation options providing `workspaceDir` and `keepWorkspace`.\n * @returns An object with the resolved `dir` path and an optional `cleanup` function.\n * @docLink packages/sdk/concepts#workspace-helpers\n */\nexport function prepareWorkspace(opts: CreateAgentSessionOptions): {\n dir: string;\n cleanup: (() => void) | undefined;\n} {\n if (opts.workspaceDir) {\n mkdirSync(opts.workspaceDir, { recursive: true });\n return { dir: opts.workspaceDir, cleanup: undefined };\n }\n\n const dir = join(\"/tmp/skaile-sdk\", String(Date.now()));\n mkdirSync(dir, { recursive: true });\n\n const cleanup = opts.keepWorkspace\n ? undefined\n : () => rmSync(dir, { recursive: true, force: true });\n\n return { dir, cleanup };\n}\n\n/**\n * Write skaile.yaml from inline {@link CreateAgentSessionOptions}.\n *\n * Only writes if `agent`, `mounts`, or `connectors` are provided and no `skaile.yaml`\n * already exists in `dir` (existing config takes precedence). Connector `adapter` fields\n * are mapped to the `driver` field expected by the core runtime.\n *\n * @param dir - Absolute path to the workspace directory.\n * @param opts - Session options containing agent config, mounts, and connectors to serialize.\n * @docLink packages/sdk/concepts#workspace-helpers\n */\nexport function writeSkaileYaml(dir: string, opts: CreateAgentSessionOptions): void {\n if (!opts.agent && !opts.mounts?.length && !opts.connectors?.length) return;\n const dest = join(dir, \"skaile.yaml\");\n if (existsSync(dest)) return; // existing config wins\n\n const cfg: Record<string, unknown> = {\n name: \"sdk-session\",\n };\n\n if (opts.agent) {\n cfg[\"agent-config\"] = {\n default: {\n ...(opts.agent.driver && { driver: opts.agent.driver }),\n ...(opts.agent.provider && { provider: opts.agent.provider }),\n ...(opts.agent.model && { model: opts.agent.model }),\n },\n };\n\n if (opts.agent.maxTurns !== undefined || opts.agent.permissionMode !== undefined) {\n cfg.agent = {\n permissions: {\n ...(opts.agent.maxTurns !== undefined && { max_turns: opts.agent.maxTurns }),\n ...(opts.agent.permissionMode !== undefined && {\n permission_mode: opts.agent.permissionMode,\n }),\n },\n };\n }\n }\n\n if (opts.mounts?.length) {\n cfg.mounts = opts.mounts;\n }\n\n if (opts.connectors?.length) {\n // Map SDK field names to core's ConnectorDeclaration field names:\n // SDK uses `adapter` → core expects `driver`\n cfg.connectors = opts.connectors.map((c) => ({\n id: c.id,\n driver: c.adapter,\n ...(c.access && { access: c.access }),\n ...(c.auth && { auth: c.auth }),\n ...(c.options && { options: c.options }),\n }));\n }\n\n writeFileSync(dest, stringify(cfg));\n}\n","/**\n * createAgentSession() — universal factory for agent sessions.\n *\n * Handles workspace preparation, skaile.yaml writing, runtime selection,\n * startup, and cleanup registration. Returns a ready-to-use {@link AgentSession}.\n *\n * For multi-session managers (forge-tui) or bots (forge-mattermost) that need\n * custom session subclasses, use LocalRuntime directly:\n *\n * const runtime = new LocalRuntime();\n * await runtime.start({ projectDir: dir, agentDir });\n * const session = new MySession(id, name, runtime);\n *\n * @docLink packages/sdk/concepts#create-agent-session\n */\n\nimport { AgentClient } from \"@skaile/workspaces/client\";\nimport { WebSocketClientTransport } from \"@skaile/workspaces/transport/ws/client\";\nimport { AgentSession } from \"./agent-session.js\";\nimport { LocalRuntime } from \"./local-runtime.js\";\nimport { prepareWorkspace, writeSkaileYaml } from \"./workspace.js\";\nimport type { CreateAgentSessionOptions } from \"./types.js\";\n\nexport async function createAgentSession(\n opts: CreateAgentSessionOptions = {},\n): Promise<AgentSession> {\n const { dir, cleanup } = prepareWorkspace(opts);\n writeSkaileYaml(dir, opts);\n\n const mode = opts.mode ?? { type: \"local\" };\n let runtime: LocalRuntime | AgentClient;\n\n if (mode.type === \"local\") {\n const r = new LocalRuntime();\n await r.start({ projectDir: dir, agentDir: opts.agentDir });\n runtime = r;\n } else {\n const transport = new WebSocketClientTransport({ url: mode.url });\n await transport.connect();\n runtime = new AgentClient(transport);\n }\n\n const session = new AgentSession(runtime);\n session.state = \"idle\";\n\n if (cleanup) {\n session._registerCleanup(cleanup);\n }\n\n if (opts.initialPrompt?.trim()) {\n session.send(opts.initialPrompt.trim());\n }\n\n return session;\n}\n"]}
@@ -1,18 +1,19 @@
1
- export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, MarkdownStreamer, PreInitRingSink, agentDefinitionExists, assembleSystemPrompt, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildCapabilitiesPromptSection, buildClientCapabilityHandler, buildContextSection, buildEnvironmentSection, builtinCapabilities, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, createAgentSession, createSessionStimulusBus, defineCapability, deleteSession, emitSystemPromptComposed, ensureGitConfigInclude, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, installPreInitRingSink, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadSession, loadSessionById, newSession, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityResult, resolveComposition, resolveMixin, runAgentChat, saveSession, setCurrentSession, startAgentServer, touchSession, writeClaudeCodeCredentialsFile } from '../chunk-QZ6PY73K.js';
2
- import '../chunk-5IC6CJL4.js';
1
+ export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, MarkdownStreamer, PreInitRingSink, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildContextSection, buildEnvironmentSection, builtinCapabilities, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, createAgentSession, createSessionStimulusBus, defineCapability, deleteSession, emitSystemPromptComposed, ensureGitConfigInclude, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, installPreInitRingSink, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadSession, loadSessionById, newSession, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveMixin, runAgentChat, saveSession, setCurrentSession, startAgentServer, touchSession, writeClaudeCodeCredentialsFile } from '../chunk-OVM36NYF.js';
2
+ import '../chunk-BTKNSMLK.js';
3
3
  import '../chunk-X5YPJV4N.js';
4
- import '../chunk-O5AE4QDX.js';
5
4
  import '../chunk-O7SG5PC2.js';
6
5
  import '../chunk-W2O5LWYU.js';
7
6
  import '../chunk-7PTP3SQJ.js';
8
7
  import '../chunk-PBWMV5GM.js';
9
- import '../chunk-K3TMZI6D.js';
8
+ export { assembleSystemPrompt, buildCapabilitiesPromptSection, buildLinkedPeersPromptSection } from '../chunk-W3UDISS2.js';
9
+ import '../chunk-TDSRLMDB.js';
10
+ import '../chunk-OSJH4SPO.js';
10
11
  import '../chunk-EWP5HZBV.js';
11
12
  import '../chunk-KOVLSBXK.js';
12
13
  import '../chunk-RRVQAE5D.js';
13
- import '../chunk-AE6GCXGL.js';
14
+ import '../chunk-S7RACIZI.js';
14
15
  import '../chunk-LV2HPH3C.js';
15
- import '../chunk-EPGHAOEU.js';
16
+ import '../chunk-UHSC75L7.js';
16
17
  import '../chunk-W75ASXH4.js';
17
18
  import '../chunk-EBMFCF4P.js';
18
19
  import '../chunk-GCRKAFH7.js';
@@ -1,5 +1,5 @@
1
- export { SessionDispatcher, isAgentAddressed, isMentioned, parseMentions } from '../chunk-TODD4VNR.js';
2
- import '../chunk-O5AE4QDX.js';
1
+ export { SessionDispatcher, isAgentAddressed, isMentioned, parseMentions } from '../chunk-D3VO6WNC.js';
2
+ import '../chunk-TDSRLMDB.js';
3
3
  import '../chunk-NSBPE2FW.js';
4
4
  //# sourceMappingURL=session.js.map
5
5
  //# sourceMappingURL=session.js.map
package/dist/sdk/types.js CHANGED
@@ -1,4 +1,4 @@
1
- export { MENTION_GROUPS, PROTOCOL_VERSION, PROTOCOL_VERSION_STRING, QUICK_REACTIONS, formatVersion, isRenderCapability, isUserInvokable, parseVersion } from '../chunk-O5AE4QDX.js';
1
+ export { MENTION_GROUPS, PROTOCOL_VERSION, PROTOCOL_VERSION_STRING, QUICK_REACTIONS, formatVersion, isRenderCapability, isUserInvokable, parseVersion } from '../chunk-TDSRLMDB.js';
2
2
  import '../chunk-NSBPE2FW.js';
3
3
  //# sourceMappingURL=types.js.map
4
4
  //# sourceMappingURL=types.js.map
@@ -1,5 +1,5 @@
1
- export { SessionDispatcher, isAgentAddressed, isMentioned, parseMentions } from '../chunk-TODD4VNR.js';
2
- import '../chunk-O5AE4QDX.js';
1
+ export { SessionDispatcher, isAgentAddressed, isMentioned, parseMentions } from '../chunk-D3VO6WNC.js';
2
+ import '../chunk-TDSRLMDB.js';
3
3
  import '../chunk-NSBPE2FW.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -87,6 +87,20 @@ export declare class SessionDispatcher {
87
87
  private _compacting;
88
88
  /** Accumulated text content during compaction. */
89
89
  private _compactionText;
90
+ /**
91
+ * One-shot waiters registered via {@link onceNextFinished}. Each is invoked
92
+ * exactly once with the text of the next `finished` assistant event, then
93
+ * the list is cleared. Backs the A2A router's synchronous `ask` answer
94
+ * capture.
95
+ */
96
+ private nextFinishedWaiters;
97
+ /**
98
+ * Text streamed by the agent since the last `finished` event. Used as the
99
+ * fallback answer text for {@link onceNextFinished} when a `finished` event
100
+ * carries an empty `summary` (drivers that stream `text` chunks and leave
101
+ * the summary blank).
102
+ */
103
+ private _turnText;
90
104
  /**
91
105
  * @param opts - Dispatcher configuration — see {@link SessionDispatcherOptions}.
92
106
  */
@@ -200,6 +214,25 @@ export declare class SessionDispatcher {
200
214
  mounts: unknown[];
201
215
  connectors: unknown[];
202
216
  }): void;
217
+ /**
218
+ * Deliver a prompt to the agent that triggers a turn but is NOT persisted.
219
+ *
220
+ * Unlike {@link sendCommand}, this never touches the {@link MessageStore}:
221
+ * the prompt is forwarded straight to the agent client. The caller owns
222
+ * persistence of whatever conversation rows should represent this turn.
223
+ *
224
+ * Used by the platform's A2A router to deliver a `from-peer` prompt to a
225
+ * target session: the router writes the authoritative A2A `Message` rows
226
+ * itself, so persisting the framed prompt here too would create an extra,
227
+ * un-attributed plain `prompt` row. The dispatcher's job for this prompt is
228
+ * delivery only.
229
+ *
230
+ * The agent still produces a normal turn, so an A2A `ask` round-trip can
231
+ * capture the answer via {@link onceNextFinished}.
232
+ *
233
+ * @param prompt - The fully-formed prompt text to deliver to the agent.
234
+ */
235
+ deliverPrompt(prompt: string): void;
203
236
  /**
204
237
  * Send a resource request and await the correlated response.
205
238
  *
@@ -232,6 +265,30 @@ export declare class SessionDispatcher {
232
265
  endCompaction(): string;
233
266
  /** Whether the dispatcher is currently in compaction mode. */
234
267
  get isCompacting(): boolean;
268
+ /**
269
+ * Register a one-shot callback fired with the text of this session's next
270
+ * finished assistant turn. Returns an unsubscribe function.
271
+ *
272
+ * Semantics:
273
+ * - The callback fires **at most once** — on the first `finished` event
274
+ * observed after registration. Later finished turns do not re-fire it.
275
+ * - A waiter registered after a `finished` event waits for the *following*
276
+ * one. The hook captures the *next* finished turn, not a past one.
277
+ * - The answer text is the `finished` event's `summary`; when that is
278
+ * empty (drivers that stream `text` and leave the summary blank), the
279
+ * text accumulated since the previous finished turn is used instead.
280
+ * - Calling the returned function removes the waiter; if it has already
281
+ * fired this is a no-op.
282
+ *
283
+ * Used by the platform's A2A router (`A2ARouterService.ask`) to capture a
284
+ * peer session's answer to a `from-peer` question. v1 captures the first
285
+ * finished turn after delivery — see the busy-target notes in the A2A
286
+ * design spec for the known turn-matching limitation.
287
+ *
288
+ * @param cb - Invoked once with the next finished turn's text.
289
+ * @returns Unsubscribe function that removes this waiter.
290
+ */
291
+ onceNextFinished(cb: (text: string) => void): () => void;
235
292
  /**
236
293
  * Build an enriched prompt by prepending conversation history.
237
294
  *
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../session/src/dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../session/src/dispatcher.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { validateApiKey } from './chunk-K3TMZI6D.js';
1
+ import { validateApiKey } from './chunk-OSJH4SPO.js';
2
2
  import './chunk-EWP5HZBV.js';
3
3
  import { getModels } from './chunk-KOVLSBXK.js';
4
4
  import './chunk-RRVQAE5D.js';
5
- import './chunk-AE6GCXGL.js';
5
+ import './chunk-S7RACIZI.js';
6
6
  import { ALL_PROVIDERS, detectEnvApiKeys, resolveSettings, maskApiKey, providerEnvKey, projectSettingsPath, loadSettings, WorkspaceYamlEditor, saveSettings } from './chunk-4RUVG5GX.js';
7
7
  import './chunk-JKNWJ64A.js';
8
8
  import './chunk-O4JH3KUE.js';
@@ -484,5 +484,5 @@ async function cmdSetup(_args, opts) {
484
484
  }
485
485
 
486
486
  export { cmdSetup };
487
- //# sourceMappingURL=setup-PHFPBDBI.js.map
488
- //# sourceMappingURL=setup-PHFPBDBI.js.map
487
+ //# sourceMappingURL=setup-QIEPIYH2.js.map
488
+ //# sourceMappingURL=setup-QIEPIYH2.js.map