@openscout/protocol 0.2.63 → 0.2.82

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 (216) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +103 -52
  3. package/dist/a2a.d.ts +224 -0
  4. package/dist/a2a.d.ts.map +1 -0
  5. package/dist/a2a.js +225 -0
  6. package/dist/activity.d.ts +70 -0
  7. package/dist/activity.d.ts.map +1 -0
  8. package/dist/activity.js +1 -0
  9. package/dist/actors.d.ts +7 -3
  10. package/dist/actors.d.ts.map +1 -0
  11. package/dist/actors.js +15 -1
  12. package/dist/agent-broker-feed.d.ts +84 -0
  13. package/dist/agent-broker-feed.d.ts.map +1 -0
  14. package/dist/agent-broker-feed.js +1 -0
  15. package/dist/agent-identity.d.ts +23 -0
  16. package/dist/agent-identity.d.ts.map +1 -0
  17. package/dist/agent-identity.js +122 -8
  18. package/dist/agent-runs.d.ts +191 -0
  19. package/dist/agent-runs.d.ts.map +1 -0
  20. package/dist/agent-runs.js +365 -0
  21. package/dist/assigned-roles.d.ts +205 -0
  22. package/dist/assigned-roles.d.ts.map +1 -0
  23. package/dist/assigned-roles.js +228 -0
  24. package/dist/broker-routes.d.ts +40 -0
  25. package/dist/broker-routes.d.ts.map +1 -0
  26. package/dist/broker-routes.js +56 -0
  27. package/dist/budget.d.ts +65 -0
  28. package/dist/budget.d.ts.map +1 -0
  29. package/dist/budget.js +19 -0
  30. package/dist/capability-matrix.d.ts +230 -0
  31. package/dist/capability-matrix.d.ts.map +1 -0
  32. package/dist/capability-matrix.js +304 -0
  33. package/dist/channel-identity.d.ts +40 -0
  34. package/dist/channel-identity.d.ts.map +1 -0
  35. package/dist/channel-identity.js +108 -0
  36. package/dist/collaboration.d.ts +45 -16
  37. package/dist/collaboration.d.ts.map +1 -0
  38. package/dist/collaboration.js +39 -23
  39. package/dist/common.d.ts +4 -3
  40. package/dist/common.d.ts.map +1 -0
  41. package/dist/conversations.d.ts +1 -0
  42. package/dist/conversations.d.ts.map +1 -0
  43. package/dist/cursor-transport.d.ts +22 -0
  44. package/dist/cursor-transport.d.ts.map +1 -0
  45. package/dist/cursor-transport.js +10 -0
  46. package/dist/debug-attach.d.ts +29 -0
  47. package/dist/debug-attach.d.ts.map +1 -0
  48. package/dist/debug-attach.js +6 -0
  49. package/dist/deliveries.d.ts +16 -2
  50. package/dist/deliveries.d.ts.map +1 -0
  51. package/dist/durable-actions.d.ts +94 -0
  52. package/dist/durable-actions.d.ts.map +1 -0
  53. package/dist/durable-actions.js +1 -0
  54. package/dist/events.d.ts +27 -1
  55. package/dist/events.d.ts.map +1 -0
  56. package/dist/events.js +14 -1
  57. package/dist/harness-feature-support.d.ts +76 -0
  58. package/dist/harness-feature-support.d.ts.map +1 -0
  59. package/dist/harness-feature-support.js +29 -0
  60. package/dist/host-integrations.d.ts +22 -0
  61. package/dist/host-integrations.d.ts.map +1 -0
  62. package/dist/host-integrations.js +64 -0
  63. package/dist/inbox.d.ts +50 -0
  64. package/dist/inbox.d.ts.map +1 -0
  65. package/dist/inbox.js +9 -0
  66. package/dist/index.d.ts +36 -2
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +35 -2
  69. package/dist/invocations.d.ts +121 -0
  70. package/dist/invocations.d.ts.map +1 -0
  71. package/dist/invocations.js +201 -1
  72. package/dist/mesh.d.ts +98 -0
  73. package/dist/mesh.d.ts.map +1 -0
  74. package/dist/mesh.js +18 -1
  75. package/dist/messages.d.ts +3 -0
  76. package/dist/messages.d.ts.map +1 -0
  77. package/dist/native-interactions.d.ts +30 -0
  78. package/dist/native-interactions.d.ts.map +1 -0
  79. package/dist/native-interactions.js +51 -0
  80. package/dist/observed-status.d.ts +33 -0
  81. package/dist/observed-status.d.ts.map +1 -0
  82. package/dist/observed-status.js +6 -0
  83. package/dist/orchestrator-prompt.d.ts +10 -0
  84. package/dist/orchestrator-prompt.d.ts.map +1 -0
  85. package/dist/orchestrator-prompt.js +36 -0
  86. package/dist/permission-policy.d.ts +5 -0
  87. package/dist/permission-policy.d.ts.map +1 -0
  88. package/dist/permission-policy.js +15 -0
  89. package/dist/provisional-agent-names.d.ts +30 -0
  90. package/dist/provisional-agent-names.d.ts.map +1 -0
  91. package/dist/provisional-agent-names.js +224 -0
  92. package/dist/read-receipts.d.ts +12 -0
  93. package/dist/read-receipts.d.ts.map +1 -0
  94. package/dist/read-receipts.js +1 -0
  95. package/dist/relay-agent-card.d.ts +10 -0
  96. package/dist/relay-agent-card.d.ts.map +1 -0
  97. package/dist/rendezvous.d.ts +97 -0
  98. package/dist/rendezvous.d.ts.map +1 -0
  99. package/dist/rendezvous.js +35 -0
  100. package/dist/reserved-vocabulary.d.ts +21 -0
  101. package/dist/reserved-vocabulary.d.ts.map +1 -0
  102. package/dist/reserved-vocabulary.js +101 -0
  103. package/dist/route-aliases.d.ts +112 -0
  104. package/dist/route-aliases.d.ts.map +1 -0
  105. package/dist/route-aliases.js +1 -0
  106. package/dist/runtime-catalog-contract.d.ts +39 -0
  107. package/dist/runtime-catalog-contract.d.ts.map +1 -0
  108. package/dist/runtime-catalog-contract.js +17 -0
  109. package/dist/runtime-catalog.d.ts +11 -0
  110. package/dist/runtime-catalog.d.ts.map +1 -0
  111. package/dist/runtime-catalog.generated.d.ts +230 -0
  112. package/dist/runtime-catalog.generated.d.ts.map +1 -0
  113. package/dist/runtime-catalog.generated.js +299 -0
  114. package/dist/runtime-catalog.js +192 -0
  115. package/dist/runtime-execution.d.ts +161 -0
  116. package/dist/runtime-execution.d.ts.map +1 -0
  117. package/dist/runtime-execution.js +327 -0
  118. package/dist/runtime-profiles.d.ts +12 -0
  119. package/dist/runtime-profiles.d.ts.map +1 -0
  120. package/dist/runtime-profiles.js +20 -0
  121. package/dist/scout-agent-card.d.ts +10 -0
  122. package/dist/scout-agent-card.d.ts.map +1 -0
  123. package/dist/scout-composer.d.ts +27 -0
  124. package/dist/scout-composer.d.ts.map +1 -0
  125. package/dist/scout-composer.js +192 -0
  126. package/dist/scout-delivery.d.ts +101 -4
  127. package/dist/scout-delivery.d.ts.map +1 -0
  128. package/dist/scout-dispatch.d.ts +44 -3
  129. package/dist/scout-dispatch.d.ts.map +1 -0
  130. package/dist/scout-reply-context.d.ts +14 -0
  131. package/dist/scout-reply-context.d.ts.map +1 -0
  132. package/dist/scout-reply-context.js +1 -0
  133. package/dist/session-display-state.d.ts +132 -0
  134. package/dist/session-display-state.d.ts.map +1 -0
  135. package/dist/session-display-state.js +94 -0
  136. package/dist/terminal-host-topology.d.ts +119 -0
  137. package/dist/terminal-host-topology.d.ts.map +1 -0
  138. package/dist/terminal-host-topology.js +21 -0
  139. package/dist/terminal-sessions.d.ts +142 -0
  140. package/dist/terminal-sessions.d.ts.map +1 -0
  141. package/dist/terminal-sessions.js +81 -0
  142. package/dist/terminal-surface-id.d.ts +73 -0
  143. package/dist/terminal-surface-id.d.ts.map +1 -0
  144. package/dist/terminal-surface-id.js +162 -0
  145. package/dist/terminal-workspaces.d.ts +199 -0
  146. package/dist/terminal-workspaces.d.ts.map +1 -0
  147. package/dist/terminal-workspaces.js +287 -0
  148. package/dist/thread-events.d.ts +1 -0
  149. package/dist/thread-events.d.ts.map +1 -0
  150. package/dist/time.d.ts +16 -0
  151. package/dist/time.d.ts.map +1 -0
  152. package/dist/time.js +33 -0
  153. package/dist/transports.d.ts +1 -0
  154. package/dist/transports.d.ts.map +1 -0
  155. package/package.json +37 -9
  156. package/src/a2a.ts +471 -0
  157. package/src/activity.ts +113 -0
  158. package/src/actors.ts +42 -8
  159. package/src/agent-broker-feed.ts +102 -0
  160. package/src/agent-identity.ts +143 -8
  161. package/src/agent-runs.ts +675 -0
  162. package/src/assigned-roles.ts +437 -0
  163. package/src/broker-routes.ts +62 -0
  164. package/src/budget.ts +88 -0
  165. package/src/capability-matrix.ts +648 -0
  166. package/src/channel-identity.ts +147 -0
  167. package/src/collaboration.ts +78 -48
  168. package/src/common.ts +24 -5
  169. package/src/cursor-transport.ts +34 -0
  170. package/src/debug-attach.ts +38 -0
  171. package/src/deliveries.ts +16 -1
  172. package/src/durable-actions.ts +125 -0
  173. package/src/events.ts +31 -0
  174. package/src/harness-feature-support.ts +116 -0
  175. package/src/host-integrations.ts +104 -0
  176. package/src/inbox.ts +68 -0
  177. package/src/index.ts +35 -2
  178. package/src/invocations.ts +353 -0
  179. package/src/mesh.ts +130 -0
  180. package/src/messages.ts +2 -0
  181. package/src/native-interactions.ts +100 -0
  182. package/src/observed-status.ts +90 -0
  183. package/src/orchestrator-prompt.ts +47 -0
  184. package/src/permission-policy.ts +21 -0
  185. package/src/provisional-agent-names.ts +272 -0
  186. package/src/read-receipts.ts +12 -0
  187. package/src/relay-agent-card.ts +73 -63
  188. package/src/rendezvous.ts +154 -0
  189. package/src/reserved-vocabulary.ts +135 -0
  190. package/src/route-aliases.ts +130 -0
  191. package/src/runtime-catalog-contract.ts +60 -0
  192. package/src/runtime-catalog.generated.ts +300 -0
  193. package/src/runtime-catalog.md +21 -0
  194. package/src/runtime-catalog.ts +193 -0
  195. package/src/runtime-catalog.v1.json +81 -0
  196. package/src/runtime-execution.ts +545 -0
  197. package/src/runtime-profiles.ts +37 -0
  198. package/src/scout-agent-card.ts +10 -0
  199. package/src/scout-composer.ts +249 -0
  200. package/src/scout-delivery.ts +117 -4
  201. package/src/scout-dispatch.ts +34 -2
  202. package/src/scout-reply-context.ts +15 -0
  203. package/src/session-display-state.ts +202 -0
  204. package/src/terminal-host-topology.ts +132 -0
  205. package/src/terminal-sessions.ts +187 -0
  206. package/src/terminal-surface-id.ts +189 -0
  207. package/src/terminal-workspaces.ts +455 -0
  208. package/src/time.ts +49 -0
  209. package/dist/agent-address.d.ts +0 -1
  210. package/dist/agent-address.js +0 -1
  211. package/dist/agent-selectors.d.ts +0 -1
  212. package/dist/agent-selectors.js +0 -1
  213. package/src/agent-address.ts +0 -1
  214. package/src/agent-identity.test.ts +0 -435
  215. package/src/agent-selectors.ts +0 -1
  216. package/src/scout-agent-card.test.ts +0 -54
package/dist/common.d.ts CHANGED
@@ -1,15 +1,16 @@
1
1
  export type ScoutId = string;
2
- export type ActorKind = "person" | "helper" | "agent" | "system" | "bridge" | "device";
3
- export type AgentState = "offline" | "idle" | "active" | "waiting";
2
+ export type ActorKind = "person" | "helper" | "agent" | "session" | "system" | "bridge" | "device";
3
+ export type AgentState = "registered" | "attaching" | "waking" | "offline" | "idle" | "active" | "waiting" | "working" | "unreachable" | "failed" | "superseded" | "stopped";
4
4
  export type VisibilityScope = "private" | "workspace" | "public" | "system";
5
5
  export type DeliveryStatus = "accepted" | "peer_acked" | "running" | "completed" | "deferred" | "failed" | "cancelled" | "pending" | "leased" | "sent" | "acknowledged";
6
6
  export type DeliveryFailureReason = "peer_unreachable" | "peer_rejected" | "agent_offline" | "timeout" | "harness_error" | "dispatch" | "cancelled";
7
7
  export type DeliveryPolicy = "best_effort" | "must_ack" | "durable" | "ephemeral";
8
8
  export type DeliveryTargetKind = "participant" | "agent" | "bridge" | "device" | "voice_session" | "webhook";
9
- export type DeliveryTransport = "local_socket" | "websocket" | "pairing_bridge" | "peer_broker" | "http" | "webhook" | "telegram" | "discord" | "sms" | "email" | "tts" | "native_voice" | "claude_stream_json" | "codex_app_server" | "codex_exec" | "claude_resume" | "tmux";
9
+ export type DeliveryTransport = "local_socket" | "websocket" | "pairing_bridge" | "peer_broker" | "http" | "webhook" | "telegram" | "discord" | "sms" | "email" | "tts" | "native_voice" | "claude_channel" | "claude_stream_json" | "codex_app_server" | "codex_exec" | "claude_resume" | "pi_rpc" | "grok_acp" | "kimi_acp" | "cursor_acp" | "opencode_acp" | "tmux" | "cursor_exec" | "cursor_cli_text" | "cursor_cli_stream_json" | "cursor_sdk_local";
10
10
  export type DeliveryReason = "conversation_visibility" | "direct_message" | "mention" | "thread_reply" | "invocation" | "bridge_outbound" | "speech";
11
11
  export type AdvertiseScope = "local" | "mesh";
12
12
  export type ShareMode = "local" | "summary" | "shared";
13
13
  export interface MetadataMap {
14
14
  [key: string]: unknown;
15
15
  }
16
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,GACT,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5E,MAAM,MAAM,cAAc,GAEtB,UAAU,GACV,YAAY,GACZ,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,GACR,WAAW,GAEX,SAAS,GACT,QAAQ,GACR,MAAM,GACN,cAAc,CAAC;AAEnB,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,SAAS,GACT,eAAe,GACf,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAElF,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,SAAS,GACT,UAAU,GACV,SAAS,GACT,KAAK,GACL,OAAO,GACP,KAAK,GACL,cAAc,GACd,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,UAAU,GACV,UAAU,GACV,YAAY,GACZ,cAAc,GACd,MAAM,GACN,aAAa,GACb,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,cAAc,GACtB,yBAAyB,GACzB,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,QAAQ,CAAC;AAEb,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
@@ -22,3 +22,4 @@ export interface ConversationBinding {
22
22
  externalThreadId?: string;
23
23
  metadata?: MetadataMap;
24
24
  }
25
+ //# sourceMappingURL=conversations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../src/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,QAAQ,GACR,cAAc,GACd,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Local Cursor harness transport modes under evaluation.
3
+ * See docs/eng/sco-047-cursor-transport-spike.md.
4
+ */
5
+ export declare const CURSOR_LOCAL_TRANSPORT_MODES: readonly ["cursor_cli_text", "cursor_cli_stream_json", "cursor_sdk_local", "cursor_sdk_local_no_key"];
6
+ export type CursorLocalTransportMode = typeof CURSOR_LOCAL_TRANSPORT_MODES[number];
7
+ export type CursorTransportAuthSource = "none" | "env" | "cursor_api_key_file" | "cli_flag" | "sdk_option";
8
+ export type CursorTransportSpikeResult = {
9
+ mode: CursorLocalTransportMode;
10
+ ok: boolean;
11
+ durationMs: number;
12
+ authSource: CursorTransportAuthSource;
13
+ sessionId?: string;
14
+ agentId?: string;
15
+ runId?: string;
16
+ outputText?: string;
17
+ eventCount?: number;
18
+ errorCode?: string;
19
+ errorMessage?: string;
20
+ notes?: string[];
21
+ };
22
+ //# sourceMappingURL=cursor-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-transport.d.ts","sourceRoot":"","sources":["../src/cursor-transport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,4BAA4B,uGAK/B,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;AAEnF,MAAM,MAAM,yBAAyB,GACjC,MAAM,GACN,KAAK,GACL,qBAAqB,GACrB,UAAU,GACV,YAAY,CAAC;AAEjB,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,yBAAyB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Local Cursor harness transport modes under evaluation.
3
+ * See docs/eng/sco-047-cursor-transport-spike.md.
4
+ */
5
+ export const CURSOR_LOCAL_TRANSPORT_MODES = [
6
+ "cursor_cli_text",
7
+ "cursor_cli_stream_json",
8
+ "cursor_sdk_local",
9
+ "cursor_sdk_local_no_key",
10
+ ];
@@ -0,0 +1,29 @@
1
+ import type { ScoutId } from "./common.js";
2
+ export interface AgentEndpointDebugTransport {
3
+ kind: "tmux";
4
+ state: "ready" | "starting" | "missing" | "stale" | "error";
5
+ sessionName: string;
6
+ paneTarget?: string;
7
+ cwd?: string;
8
+ attachable: boolean;
9
+ multiAttach: boolean;
10
+ lastProbeAt: number;
11
+ lastAttachAt?: number;
12
+ lastDetachAt?: number;
13
+ activeClients?: number;
14
+ detail?: string;
15
+ }
16
+ export interface DebugTmuxAttachPlan {
17
+ endpointId: ScoutId;
18
+ transport: "tmux";
19
+ sessionName: string;
20
+ paneTarget?: string;
21
+ command?: ["tmux", "attach-session", "-t", string];
22
+ terminalRelay?: {
23
+ backend: "tmux";
24
+ tmuxSession: string;
25
+ };
26
+ }
27
+ export declare function isDebugTransportAttachable(transport: Pick<AgentEndpointDebugTransport, "state" | "attachable"> | null | undefined): boolean;
28
+ export declare function buildTmuxAttachCommand(sessionName: string): ["tmux", "attach-session", "-t", string];
29
+ //# sourceMappingURL=debug-attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-attach.d.ts","sourceRoot":"","sources":["../src/debug-attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,aAAa,CAAC,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,YAAY,CAAC,GAAG,IAAI,GAAG,SAAS,GACtF,OAAO,CAET;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAEpG"}
@@ -0,0 +1,6 @@
1
+ export function isDebugTransportAttachable(transport) {
2
+ return Boolean(transport?.attachable && transport.state === "ready");
3
+ }
4
+ export function buildTmuxAttachCommand(sessionName) {
5
+ return ["tmux", "attach-session", "-t", sessionName];
6
+ }
@@ -1,4 +1,17 @@
1
- import type { DeliveryPolicy, DeliveryReason, DeliveryStatus, DeliveryTargetKind, DeliveryTransport, MetadataMap, ScoutId } from "./common.js";
1
+ import type { DeliveryFailureReason, DeliveryPolicy, DeliveryReason, DeliveryStatus, DeliveryTargetKind, DeliveryTransport, MetadataMap, ScoutId } from "./common.js";
2
+ /**
3
+ * Delivery metadata carries a small set of well-known keys alongside arbitrary
4
+ * extension data. The typed fields document the keys the runtime reads on the
5
+ * retry path; the {@link MetadataMap} index signature keeps the bag open for
6
+ * transport-specific extras. The wire/persistence shape is unchanged — these
7
+ * were always plain metadata keys, now they are typed.
8
+ */
9
+ export interface DeliveryMetadata extends MetadataMap {
10
+ /** Epoch ms of the next retry attempt. Set while `status` is `"deferred"`. */
11
+ nextAttemptAt?: number;
12
+ /** Classified failure reason. Set when `status` is `"failed"`. */
13
+ failureReason?: DeliveryFailureReason;
14
+ }
2
15
  export interface DeliveryTarget {
3
16
  id: ScoutId;
4
17
  kind: DeliveryTargetKind;
@@ -21,7 +34,7 @@ export interface DeliveryIntent {
21
34
  bindingId?: ScoutId;
22
35
  leaseOwner?: string;
23
36
  leaseExpiresAt?: number;
24
- metadata?: MetadataMap;
37
+ metadata?: DeliveryMetadata;
25
38
  }
26
39
  export interface DeliveryAttempt {
27
40
  id: ScoutId;
@@ -33,3 +46,4 @@ export interface DeliveryAttempt {
33
46
  createdAt: number;
34
47
  metadata?: MetadataMap;
35
48
  }
49
+ //# sourceMappingURL=deliveries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deliveries.d.ts","sourceRoot":"","sources":["../src/deliveries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,OAAO,EACR,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
@@ -0,0 +1,94 @@
1
+ import type { MetadataMap, ScoutId } from "./common.js";
2
+ export type DurableActionKind = "ask" | "message_delivery" | "checkback";
3
+ export type DurableCheckbackMode = "notify" | "scoutbot" | "agent" | "routine";
4
+ export interface DurableCheckbackMetadata extends MetadataMap {
5
+ dueAt: number;
6
+ mode?: DurableCheckbackMode;
7
+ title?: string;
8
+ body?: string;
9
+ prompt?: string;
10
+ ownerId?: ScoutId;
11
+ conversationId?: ScoutId;
12
+ recordId?: ScoutId;
13
+ route?: unknown;
14
+ recurrence?: unknown;
15
+ }
16
+ export type DurableActionState = "pending" | "leased" | "running" | "waiting" | "completed" | "failed" | "cancelled";
17
+ export type DurableAttemptState = "pending" | "running" | "completed" | "failed" | "cancelled";
18
+ export interface DurableAction {
19
+ id: ScoutId;
20
+ kind: DurableActionKind;
21
+ subjectId: ScoutId;
22
+ authorityCellId: ScoutId;
23
+ state: DurableActionState;
24
+ idempotencyKey?: string;
25
+ leaseOwner?: string;
26
+ leaseGeneration: number;
27
+ leaseExpiresAt?: number;
28
+ createdAt: number;
29
+ updatedAt: number;
30
+ metadata?: MetadataMap;
31
+ }
32
+ export interface DurableAttempt {
33
+ id: ScoutId;
34
+ actionId: ScoutId;
35
+ attempt: number;
36
+ state: DurableAttemptState;
37
+ leaseGeneration: number;
38
+ error?: string;
39
+ startedAt?: number;
40
+ completedAt?: number;
41
+ metadata?: MetadataMap;
42
+ }
43
+ export interface DurableCheckpoint {
44
+ actionId: ScoutId;
45
+ name: string;
46
+ payload?: unknown;
47
+ ownerAttemptId?: ScoutId;
48
+ leaseOwner?: string;
49
+ leaseGeneration?: number;
50
+ createdAt: number;
51
+ }
52
+ export interface DurableSignal {
53
+ actionId: ScoutId;
54
+ name: string;
55
+ payload?: unknown;
56
+ leaseOwner?: string;
57
+ leaseGeneration?: number;
58
+ emittedAt: number;
59
+ }
60
+ export interface DurableActionCreateInput {
61
+ id: ScoutId;
62
+ kind: DurableActionKind;
63
+ subjectId: ScoutId;
64
+ authorityCellId: ScoutId;
65
+ idempotencyKey?: string;
66
+ createdAt: number;
67
+ metadata?: MetadataMap;
68
+ }
69
+ export interface DurableActionClaimInput {
70
+ actionId: ScoutId;
71
+ owner: string;
72
+ leaseMs: number;
73
+ claimedAt: number;
74
+ }
75
+ export interface DurableActionHeartbeatInput {
76
+ actionId: ScoutId;
77
+ owner: string;
78
+ generation: number;
79
+ leaseMs: number;
80
+ heartbeatAt: number;
81
+ }
82
+ export interface DurableActionLease {
83
+ owner: string;
84
+ generation: number;
85
+ expiresAt: number;
86
+ }
87
+ export interface DurableActionCommandReceipt {
88
+ accepted: boolean;
89
+ duplicate?: boolean;
90
+ action: DurableAction;
91
+ lease?: DurableActionLease;
92
+ events: string[];
93
+ }
94
+ //# sourceMappingURL=durable-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-actions.d.ts","sourceRoot":"","sources":["../src/durable-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
package/dist/events.d.ts CHANGED
@@ -4,15 +4,24 @@ import type { ConversationBinding, ConversationDefinition } from "./conversation
4
4
  import type { DeliveryAttempt, DeliveryIntent } from "./deliveries.js";
5
5
  import type { FlightRecord, InvocationRequest } from "./invocations.js";
6
6
  import type { MessageRecord } from "./messages.js";
7
+ import type { ConversationReadCursor } from "./read-receipts.js";
7
8
  import type { AgentDefinition, AgentEndpoint, ActorIdentity } from "./actors.js";
8
9
  import type { CollaborationEvent, CollaborationRecord } from "./collaboration.js";
9
10
  import type { ScoutDispatchRecord } from "./scout-dispatch.js";
11
+ export declare const OPENSCOUT_CONTROL_EVENT_VERSION: 1;
10
12
  export interface ControlEventBase<K extends string, P> {
11
13
  id: ScoutId;
12
14
  kind: K;
13
15
  ts: number;
14
16
  actorId: ScoutId;
15
17
  nodeId?: ScoutId;
18
+ /**
19
+ * Schema version of the control-event envelope. Optional by design: legacy
20
+ * persisted events pre-date the version field and carry no `v`, yet must
21
+ * still satisfy this type so they can be replayed. After
22
+ * {@link normalizeControlEvent}, `v` is always present.
23
+ */
24
+ readonly v?: typeof OPENSCOUT_CONTROL_EVENT_VERSION;
16
25
  payload: P;
17
26
  }
18
27
  export type NodeUpsertedEvent = ControlEventBase<"node.upserted", {
@@ -39,6 +48,9 @@ export type BindingUpsertedEvent = ControlEventBase<"binding.upserted", {
39
48
  export type MessagePostedEvent = ControlEventBase<"message.posted", {
40
49
  message: MessageRecord;
41
50
  }>;
51
+ export type ConversationReadCursorUpdatedEvent = ControlEventBase<"conversation.read_cursor.updated", {
52
+ cursor: ConversationReadCursor;
53
+ }>;
42
54
  export type InvocationRequestedEvent = ControlEventBase<"invocation.requested", {
43
55
  invocation: InvocationRequest;
44
56
  }>;
@@ -64,4 +76,18 @@ export type CollaborationEventAppendedEvent = ControlEventBase<"collaboration.ev
64
76
  export type ScoutDispatchedEvent = ControlEventBase<"scout.dispatched", {
65
77
  dispatch: ScoutDispatchRecord;
66
78
  }>;
67
- export type ControlEvent = NodeUpsertedEvent | ActorRegisteredEvent | AgentRegisteredEvent | AgentEndpointUpsertedEvent | AgentEndpointDeletedEvent | ConversationUpsertedEvent | BindingUpsertedEvent | MessagePostedEvent | InvocationRequestedEvent | FlightUpdatedEvent | DeliveryPlannedEvent | DeliveryAttemptedEvent | DeliveryStateChangedEvent | CollaborationUpsertedEvent | CollaborationEventAppendedEvent | ScoutDispatchedEvent;
79
+ export type ControlEvent = NodeUpsertedEvent | ActorRegisteredEvent | AgentRegisteredEvent | AgentEndpointUpsertedEvent | AgentEndpointDeletedEvent | ConversationUpsertedEvent | BindingUpsertedEvent | MessagePostedEvent | ConversationReadCursorUpdatedEvent | InvocationRequestedEvent | FlightUpdatedEvent | DeliveryPlannedEvent | DeliveryAttemptedEvent | DeliveryStateChangedEvent | CollaborationUpsertedEvent | CollaborationEventAppendedEvent | ScoutDispatchedEvent;
80
+ /**
81
+ * Stamp the current envelope version onto a control event when it is missing.
82
+ *
83
+ * The `v` field is optional on {@link ControlEventBase} so that legacy events
84
+ * persisted before versioning existed still satisfy the type (the package
85
+ * deliberately preserves legacy shapes for replay). This helper is the bridge:
86
+ * use it on the stamp-on-write path so newly produced events carry `v`, and on
87
+ * the normalize-on-read path so replayed legacy events are upgraded to the
88
+ * current version. It is a pure function — the input is never mutated.
89
+ */
90
+ export declare function normalizeControlEvent<E extends ControlEvent>(event: E): E & {
91
+ v: typeof OPENSCOUT_CONTROL_EVENT_VERSION;
92
+ };
93
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/events.js CHANGED
@@ -1 +1,14 @@
1
- export {};
1
+ export const OPENSCOUT_CONTROL_EVENT_VERSION = 1;
2
+ /**
3
+ * Stamp the current envelope version onto a control event when it is missing.
4
+ *
5
+ * The `v` field is optional on {@link ControlEventBase} so that legacy events
6
+ * persisted before versioning existed still satisfy the type (the package
7
+ * deliberately preserves legacy shapes for replay). This helper is the bridge:
8
+ * use it on the stamp-on-write path so newly produced events carry `v`, and on
9
+ * the normalize-on-read path so replayed legacy events are upgraded to the
10
+ * current version. It is a pure function — the input is never mutated.
11
+ */
12
+ export function normalizeControlEvent(event) {
13
+ return { ...event, v: event.v ?? OPENSCOUT_CONTROL_EVENT_VERSION };
14
+ }
@@ -0,0 +1,76 @@
1
+ export type HarnessSupportLevel = "yes" | "partial" | "no" | "unknown";
2
+ export type HarnessFeatureDowngrade = "native" | "embedded" | "reference_text" | "prompt_only" | "debug_only" | "unsupported";
3
+ export interface HarnessFeatureEvidence {
4
+ kind: "adapter_spec" | "catalog" | "runtime_check" | "manual" | "upstream";
5
+ ref: string;
6
+ }
7
+ export interface HarnessFeatureSupport {
8
+ level: HarnessSupportLevel;
9
+ reason?: string;
10
+ evidence?: HarnessFeatureEvidence[];
11
+ downgrade?: HarnessFeatureDowngrade;
12
+ }
13
+ export interface HarnessFeatureSupportMap {
14
+ prompts?: {
15
+ systemPrompt?: HarnessFeatureSupport;
16
+ agentInstructions?: HarnessFeatureSupport;
17
+ promptFiles?: HarnessFeatureSupport;
18
+ images?: HarnessFeatureSupport;
19
+ };
20
+ session?: {
21
+ start?: HarnessFeatureSupport;
22
+ resume?: HarnessFeatureSupport;
23
+ interrupt?: HarnessFeatureSupport;
24
+ shutdown?: HarnessFeatureSupport;
25
+ concurrentTurns?: HarnessFeatureSupport;
26
+ traceObserve?: HarnessFeatureSupport;
27
+ fork?: HarnessFeatureSupport;
28
+ nativeThreadClone?: HarnessFeatureSupport;
29
+ steer?: HarnessFeatureSupport;
30
+ followUps?: HarnessFeatureSupport;
31
+ };
32
+ interaction?: {
33
+ questions?: HarnessFeatureSupport;
34
+ approvals?: HarnessFeatureSupport;
35
+ serverRequests?: HarnessFeatureSupport;
36
+ toolSuspensions?: HarnessFeatureSupport;
37
+ planApproval?: HarnessFeatureSupport;
38
+ };
39
+ tools?: {
40
+ command?: HarnessFeatureSupport;
41
+ fileChange?: HarnessFeatureSupport;
42
+ subagent?: HarnessFeatureSupport;
43
+ taskProjection?: HarnessFeatureSupport;
44
+ mcpStdio?: HarnessFeatureSupport;
45
+ mcpSse?: HarnessFeatureSupport;
46
+ mcpStreamableHttp?: HarnessFeatureSupport;
47
+ };
48
+ events?: {
49
+ rawStream?: HarnessFeatureSupport;
50
+ normalizedStream?: HarnessFeatureSupport;
51
+ displayState?: HarnessFeatureSupport;
52
+ subagentEvents?: HarnessFeatureSupport;
53
+ taskEvents?: HarnessFeatureSupport;
54
+ usageEvents?: HarnessFeatureSupport;
55
+ };
56
+ limits?: {
57
+ maxTurns?: HarnessFeatureSupport;
58
+ maxModelCalls?: HarnessFeatureSupport;
59
+ maxDuration?: HarnessFeatureSupport;
60
+ };
61
+ auth?: {
62
+ apiKey?: HarnessFeatureSupport;
63
+ authFile?: HarnessFeatureSupport;
64
+ oauthToken?: HarnessFeatureSupport;
65
+ localLogin?: HarnessFeatureSupport;
66
+ };
67
+ debug?: {
68
+ tmuxAttach?: HarnessFeatureSupport;
69
+ logs?: HarnessFeatureSupport;
70
+ rawTranscript?: HarnessFeatureSupport;
71
+ };
72
+ }
73
+ export declare function normalizeHarnessSupportLevel(value: string | null | undefined): HarnessSupportLevel;
74
+ export declare function isHarnessFeatureUsable(feature: Pick<HarnessFeatureSupport, "level"> | null | undefined): boolean;
75
+ export declare function unsupportedHarnessFeature(reason: string, evidence?: HarnessFeatureEvidence[]): HarnessFeatureSupport;
76
+ //# sourceMappingURL=harness-feature-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-feature-support.d.ts","sourceRoot":"","sources":["../src/harness-feature-support.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export function normalizeHarnessSupportLevel(value) {
2
+ switch (value?.trim().toLowerCase()) {
3
+ case "yes":
4
+ case "supported":
5
+ case "true":
6
+ return "yes";
7
+ case "partial":
8
+ case "degraded":
9
+ return "partial";
10
+ case "no":
11
+ case "unsupported":
12
+ case "false":
13
+ return "no";
14
+ case "unknown":
15
+ default:
16
+ return "unknown";
17
+ }
18
+ }
19
+ export function isHarnessFeatureUsable(feature) {
20
+ return feature?.level === "yes" || feature?.level === "partial";
21
+ }
22
+ export function unsupportedHarnessFeature(reason, evidence = []) {
23
+ return {
24
+ level: "no",
25
+ reason,
26
+ evidence,
27
+ downgrade: "unsupported",
28
+ };
29
+ }
@@ -0,0 +1,22 @@
1
+ import type { AgentHarness } from "./actors.js";
2
+ export type ScoutHostIntegrationRole = "execution_harness" | "agent_host" | "mcp_host" | "terminal_host" | "agent_state_surface";
3
+ export type ScoutHostIntegrationId = "claude-code" | "codex" | "cursor" | "pi" | "hermes" | "herdr";
4
+ export interface ScoutHostIntegration {
5
+ id: ScoutHostIntegrationId;
6
+ label: string;
7
+ roles: readonly ScoutHostIntegrationRole[];
8
+ /**
9
+ * Present only when this host is also a Scout execution harness. Hosts such
10
+ * as Hermes and Herdr are first-class integrations without being valid
11
+ * values for `execution.harness` or `--harness`.
12
+ */
13
+ harness?: AgentHarness;
14
+ homepage?: string;
15
+ repositoryUrl?: string;
16
+ installHint?: string;
17
+ summary: string;
18
+ }
19
+ export declare const SCOUT_HOST_INTEGRATIONS: readonly ScoutHostIntegration[];
20
+ export declare function scoutHostIntegrationById(id: string): ScoutHostIntegration | undefined;
21
+ export declare function scoutHostIntegrationHasRole(host: ScoutHostIntegration, role: ScoutHostIntegrationRole): boolean;
22
+ //# sourceMappingURL=host-integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-integrations.d.ts","sourceRoot":"","sources":["../src/host-integrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAChC,mBAAmB,GACnB,YAAY,GACZ,UAAU,GACV,eAAe,GACf,qBAAqB,CAAC;AAE1B,MAAM,MAAM,sBAAsB,GAC9B,aAAa,GACb,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,sBAAsB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC3C;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAyDzD,CAAC;AAEX,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,GACT,oBAAoB,GAAG,SAAS,CAElC;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAET"}
@@ -0,0 +1,64 @@
1
+ export const SCOUT_HOST_INTEGRATIONS = [
2
+ {
3
+ id: "claude-code",
4
+ label: "Claude Code",
5
+ roles: ["execution_harness", "agent_host", "mcp_host"],
6
+ harness: "claude",
7
+ homepage: "https://claude.ai/claude-code",
8
+ repositoryUrl: "https://github.com/arach/claude-scout",
9
+ installHint: "/plugin marketplace add arach/claude-scout",
10
+ summary: "Claude Code can run Scout-routed work as a harness and expose Scout through a host plugin.",
11
+ },
12
+ {
13
+ id: "codex",
14
+ label: "Codex",
15
+ roles: ["execution_harness", "agent_host", "mcp_host"],
16
+ harness: "codex",
17
+ homepage: "https://github.com/openai/codex",
18
+ repositoryUrl: "https://github.com/arach/codex-scout",
19
+ installHint: "/plugin marketplace add arach/codex-scout",
20
+ summary: "Codex can run Scout-routed work as a harness and expose Scout through MCP/plugin surfaces.",
21
+ },
22
+ {
23
+ id: "cursor",
24
+ label: "Cursor",
25
+ roles: ["execution_harness", "agent_host", "mcp_host"],
26
+ harness: "cursor",
27
+ repositoryUrl: "https://github.com/arach/cursor-scout",
28
+ installHint: "See https://github.com/arach/cursor-scout for the host-specific installer.",
29
+ summary: "Cursor is an agent host and execution target when routed through its supported CLI or MCP surfaces.",
30
+ },
31
+ {
32
+ id: "pi",
33
+ label: "pi",
34
+ roles: ["execution_harness", "agent_host"],
35
+ harness: "pi",
36
+ repositoryUrl: "https://github.com/arach/pi-scout",
37
+ installHint: "pi install git:github.com/arach/pi-scout",
38
+ summary: "pi can run Scout-routed work through its native extension model.",
39
+ },
40
+ {
41
+ id: "hermes",
42
+ label: "Hermes Agent",
43
+ roles: ["agent_host", "mcp_host"],
44
+ homepage: "https://hermes-agent.nousresearch.com/docs/",
45
+ repositoryUrl: "https://github.com/arach/hermes-scout",
46
+ installHint: "Install Hermes Scout as a Hermes plugin after Scout is healthy.",
47
+ summary: "Hermes hosts Scout tools through its plugin and MCP system; it is not a Scout harness.",
48
+ },
49
+ {
50
+ id: "herdr",
51
+ label: "Herdr",
52
+ roles: ["terminal_host", "agent_state_surface"],
53
+ homepage: "https://herdr.dev/docs/",
54
+ repositoryUrl: "https://github.com/ogulcancelik/herdr",
55
+ installHint: "Install the Herdr integrations for the agent hosts you use, such as Claude, Codex, Hermes, or Cursor.",
56
+ summary: "Herdr is a terminal host and agent-state surface for sessions Scout can observe or drive; it is not a Scout harness.",
57
+ },
58
+ ];
59
+ export function scoutHostIntegrationById(id) {
60
+ return SCOUT_HOST_INTEGRATIONS.find((host) => host.id === id);
61
+ }
62
+ export function scoutHostIntegrationHasRole(host, role) {
63
+ return host.roles.includes(role);
64
+ }
@@ -0,0 +1,50 @@
1
+ import type { DeliveryIntent } from "./deliveries.js";
2
+ import type { InvocationRequest } from "./invocations.js";
3
+ import type { MessageRecord } from "./messages.js";
4
+ import type { DeliveryReason, DeliveryStatus, MetadataMap, ScoutId } from "./common.js";
5
+ export type InboxItemKind = "message" | "invocation";
6
+ export declare const INBOX_CLAIMABLE_DELIVERY_STATUSES: readonly ["pending", "accepted", "deferred"];
7
+ export type InboxClaimableDeliveryStatus = (typeof INBOX_CLAIMABLE_DELIVERY_STATUSES)[number];
8
+ export declare function isInboxClaimableDeliveryStatus(status: DeliveryStatus): status is InboxClaimableDeliveryStatus;
9
+ export interface InboxItem {
10
+ id: ScoutId;
11
+ kind: InboxItemKind;
12
+ targetId: ScoutId;
13
+ targetNodeId?: ScoutId;
14
+ conversationId?: ScoutId;
15
+ messageId?: ScoutId;
16
+ invocationId?: ScoutId;
17
+ reason: DeliveryReason;
18
+ status: DeliveryStatus;
19
+ leaseOwner?: string;
20
+ leaseExpiresAt?: number;
21
+ delivery: DeliveryIntent;
22
+ message?: MessageRecord;
23
+ invocation?: InvocationRequest;
24
+ metadata?: MetadataMap;
25
+ }
26
+ export interface InboxClaimRequest {
27
+ targetId: ScoutId;
28
+ itemId?: ScoutId;
29
+ messageId?: ScoutId;
30
+ reasons?: DeliveryReason[];
31
+ leaseOwner?: string;
32
+ leaseMs?: number;
33
+ }
34
+ export interface InboxClaimResponse {
35
+ ok: true;
36
+ claimed: InboxItem | null;
37
+ }
38
+ export interface InboxAckRequest {
39
+ itemId: ScoutId;
40
+ leaseOwner?: string | null;
41
+ metadata?: MetadataMap;
42
+ }
43
+ export interface InboxNackRequest {
44
+ itemId: ScoutId;
45
+ leaseOwner?: string | null;
46
+ retryAfterMs?: number;
47
+ reason?: string;
48
+ metadata?: MetadataMap;
49
+ }
50
+ //# sourceMappingURL=inbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;AAErD,eAAO,MAAM,iCAAiC,8CAIA,CAAC;AAE/C,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,cAAc,GACrB,MAAM,IAAI,4BAA4B,CAGxC;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
package/dist/inbox.js ADDED
@@ -0,0 +1,9 @@
1
+ export const INBOX_CLAIMABLE_DELIVERY_STATUSES = [
2
+ "pending",
3
+ "accepted",
4
+ "deferred",
5
+ ];
6
+ export function isInboxClaimableDeliveryStatus(status) {
7
+ return INBOX_CLAIMABLE_DELIVERY_STATUSES
8
+ .includes(status);
9
+ }