experimental-ash 0.2.0-alpha.16 → 0.2.0-alpha.17

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 (170) hide show
  1. package/dist/src/channel/http-channel.d.ts +12 -5
  2. package/dist/src/channel/http-channel.d.ts.map +1 -1
  3. package/dist/src/channel/http-channel.js +5 -7
  4. package/dist/src/channel/http-channel.js.map +1 -1
  5. package/dist/src/channel/schedule-channel.d.ts +2 -4
  6. package/dist/src/channel/schedule-channel.d.ts.map +1 -1
  7. package/dist/src/channel/schedule-channel.js +2 -7
  8. package/dist/src/channel/schedule-channel.js.map +1 -1
  9. package/dist/src/channel/slack-channel.d.ts +5 -11
  10. package/dist/src/channel/slack-channel.d.ts.map +1 -1
  11. package/dist/src/channel/slack-channel.js +6 -13
  12. package/dist/src/channel/slack-channel.js.map +1 -1
  13. package/dist/src/channel/subagent-channel.d.ts +2 -4
  14. package/dist/src/channel/subagent-channel.d.ts.map +1 -1
  15. package/dist/src/channel/subagent-channel.js +3 -10
  16. package/dist/src/channel/subagent-channel.js.map +1 -1
  17. package/dist/src/channel/types.d.ts +55 -25
  18. package/dist/src/channel/types.d.ts.map +1 -1
  19. package/dist/src/channel/types.js +64 -1
  20. package/dist/src/channel/types.js.map +1 -1
  21. package/dist/src/cli/dev/input-requests.js +1 -1
  22. package/dist/src/cli/dev/input-requests.js.map +1 -1
  23. package/dist/src/context/key.d.ts +16 -8
  24. package/dist/src/context/key.d.ts.map +1 -1
  25. package/dist/src/context/key.js.map +1 -1
  26. package/dist/src/context/keys.d.ts +1 -5
  27. package/dist/src/context/keys.d.ts.map +1 -1
  28. package/dist/src/context/keys.js +8 -16
  29. package/dist/src/context/keys.js.map +1 -1
  30. package/dist/src/context/providers/skill.d.ts.map +1 -1
  31. package/dist/src/context/providers/skill.js +2 -15
  32. package/dist/src/context/providers/skill.js.map +1 -1
  33. package/dist/src/context/serialize.d.ts.map +1 -1
  34. package/dist/src/context/serialize.js +12 -1
  35. package/dist/src/context/serialize.js.map +1 -1
  36. package/dist/src/context/state.js +1 -1
  37. package/dist/src/context/state.js.map +1 -1
  38. package/dist/src/execution/skills/instructions.d.ts +5 -5
  39. package/dist/src/execution/skills/instructions.d.ts.map +1 -1
  40. package/dist/src/execution/skills/instructions.js +5 -12
  41. package/dist/src/execution/skills/instructions.js.map +1 -1
  42. package/dist/src/internal/application/compiled-artifacts.d.ts +5 -3
  43. package/dist/src/internal/application/compiled-artifacts.d.ts.map +1 -1
  44. package/dist/src/internal/application/compiled-artifacts.js +19 -40
  45. package/dist/src/internal/application/compiled-artifacts.js.map +1 -1
  46. package/dist/src/internal/application/package.js +1 -1
  47. package/dist/src/internal/authored-definition/channel.d.ts.map +1 -1
  48. package/dist/src/internal/authored-definition/channel.js +27 -3
  49. package/dist/src/internal/authored-definition/channel.js.map +1 -1
  50. package/dist/src/internal/message/builder.d.ts +1 -2
  51. package/dist/src/internal/message/builder.d.ts.map +1 -1
  52. package/dist/src/internal/message/builder.js +4 -12
  53. package/dist/src/internal/message/builder.js.map +1 -1
  54. package/dist/src/internal/nitro/host/configure-message-routes.d.ts +3 -1
  55. package/dist/src/internal/nitro/host/configure-message-routes.d.ts.map +1 -1
  56. package/dist/src/internal/nitro/host/configure-message-routes.js +93 -21
  57. package/dist/src/internal/nitro/host/configure-message-routes.js.map +1 -1
  58. package/dist/src/internal/nitro/host/create-application-nitro.d.ts.map +1 -1
  59. package/dist/src/internal/nitro/host/create-application-nitro.js +50 -19
  60. package/dist/src/internal/nitro/host/create-application-nitro.js.map +1 -1
  61. package/dist/src/internal/nitro/routes/channel-dispatch.d.ts +8 -18
  62. package/dist/src/internal/nitro/routes/channel-dispatch.d.ts.map +1 -1
  63. package/dist/src/internal/nitro/routes/channel-dispatch.js +11 -44
  64. package/dist/src/internal/nitro/routes/channel-dispatch.js.map +1 -1
  65. package/dist/src/internal/nitro/routes/home.d.ts +0 -5
  66. package/dist/src/internal/nitro/routes/home.d.ts.map +1 -1
  67. package/dist/src/internal/nitro/routes/home.js +2 -18
  68. package/dist/src/internal/nitro/routes/home.js.map +1 -1
  69. package/dist/src/internal/nitro/routes/index.d.ts +2 -7
  70. package/dist/src/internal/nitro/routes/index.d.ts.map +1 -1
  71. package/dist/src/internal/nitro/routes/index.js +2 -19
  72. package/dist/src/internal/nitro/routes/index.js.map +1 -1
  73. package/dist/src/internal/nitro/routes/runtime-artifacts.d.ts +10 -3
  74. package/dist/src/internal/nitro/routes/runtime-artifacts.d.ts.map +1 -1
  75. package/dist/src/internal/nitro/routes/runtime-artifacts.js +2 -9
  76. package/dist/src/internal/nitro/routes/runtime-artifacts.js.map +1 -1
  77. package/dist/src/internal/nitro/routes/runtime-stack.d.ts +3 -2
  78. package/dist/src/internal/nitro/routes/runtime-stack.d.ts.map +1 -1
  79. package/dist/src/internal/nitro/routes/runtime-stack.js +5 -5
  80. package/dist/src/internal/nitro/routes/runtime-stack.js.map +1 -1
  81. package/dist/src/internal/nitro/routes/schedule-task.d.ts +7 -7
  82. package/dist/src/internal/nitro/routes/schedule-task.d.ts.map +1 -1
  83. package/dist/src/internal/nitro/routes/schedule-task.js +21 -29
  84. package/dist/src/internal/nitro/routes/schedule-task.js.map +1 -1
  85. package/dist/src/public/channels/http.d.ts +43 -3
  86. package/dist/src/public/channels/http.d.ts.map +1 -1
  87. package/dist/src/public/channels/http.js +14 -2
  88. package/dist/src/public/channels/http.js.map +1 -1
  89. package/dist/src/public/channels/index.d.ts +1 -2
  90. package/dist/src/public/channels/index.d.ts.map +1 -1
  91. package/dist/src/public/channels/index.js +1 -1
  92. package/dist/src/public/channels/index.js.map +1 -1
  93. package/dist/src/public/channels/slack/index.d.ts +12 -10
  94. package/dist/src/public/channels/slack/index.d.ts.map +1 -1
  95. package/dist/src/public/channels/slack/index.js +18 -8
  96. package/dist/src/public/channels/slack/index.js.map +1 -1
  97. package/dist/src/public/definitions/channel.d.ts +30 -2
  98. package/dist/src/public/definitions/channel.d.ts.map +1 -1
  99. package/dist/src/public/definitions/channel.js +18 -0
  100. package/dist/src/public/definitions/channel.js.map +1 -1
  101. package/dist/src/public/index.d.ts +1 -2
  102. package/dist/src/public/index.d.ts.map +1 -1
  103. package/dist/src/public/index.js +1 -1
  104. package/dist/src/public/index.js.map +1 -1
  105. package/dist/src/runtime/agent/bootstrap.d.ts.map +1 -1
  106. package/dist/src/runtime/agent/bootstrap.js +3 -1
  107. package/dist/src/runtime/agent/bootstrap.js.map +1 -1
  108. package/dist/src/runtime/channels/registry.d.ts +21 -0
  109. package/dist/src/runtime/channels/registry.d.ts.map +1 -0
  110. package/dist/src/runtime/channels/registry.js +65 -0
  111. package/dist/src/runtime/channels/registry.js.map +1 -0
  112. package/dist/src/runtime/framework-channels/index.d.ts.map +1 -1
  113. package/dist/src/runtime/framework-channels/index.js +2 -0
  114. package/dist/src/runtime/framework-channels/index.js.map +1 -1
  115. package/dist/src/runtime/prompt/compose.d.ts +2 -0
  116. package/dist/src/runtime/prompt/compose.d.ts.map +1 -1
  117. package/dist/src/runtime/prompt/compose.js +10 -0
  118. package/dist/src/runtime/prompt/compose.js.map +1 -1
  119. package/dist/src/runtime/resolve-channel.d.ts.map +1 -1
  120. package/dist/src/runtime/resolve-channel.js +1 -0
  121. package/dist/src/runtime/resolve-channel.js.map +1 -1
  122. package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +2 -0
  123. package/dist/src/runtime/sessions/compiled-agent-cache.d.ts.map +1 -1
  124. package/dist/src/runtime/sessions/compiled-agent-cache.js +14 -0
  125. package/dist/src/runtime/sessions/compiled-agent-cache.js.map +1 -1
  126. package/dist/src/runtime/types.d.ts +2 -0
  127. package/dist/src/runtime/types.d.ts.map +1 -1
  128. package/docs/internals/context.md +27 -11
  129. package/docs/public/session-context.md +24 -13
  130. package/package.json +1 -1
  131. package/dist/src/channel/channel-registry.d.ts +0 -34
  132. package/dist/src/channel/channel-registry.d.ts.map +0 -1
  133. package/dist/src/channel/channel-registry.js +0 -63
  134. package/dist/src/channel/channel-registry.js.map +0 -1
  135. package/dist/src/internal/message/nitro-route-shims.d.ts +0 -6
  136. package/dist/src/internal/message/nitro-route-shims.d.ts.map +0 -1
  137. package/dist/src/internal/message/nitro-route-shims.js +0 -38
  138. package/dist/src/internal/message/nitro-route-shims.js.map +0 -1
  139. package/dist/src/internal/message/rewrite-generated-imports.d.ts +0 -15
  140. package/dist/src/internal/message/rewrite-generated-imports.d.ts.map +0 -1
  141. package/dist/src/internal/message/rewrite-generated-imports.js +0 -59
  142. package/dist/src/internal/message/rewrite-generated-imports.js.map +0 -1
  143. package/dist/src/internal/nitro/host/channel-url-matcher.d.ts +0 -35
  144. package/dist/src/internal/nitro/host/channel-url-matcher.d.ts.map +0 -1
  145. package/dist/src/internal/nitro/host/channel-url-matcher.js +0 -57
  146. package/dist/src/internal/nitro/host/channel-url-matcher.js.map +0 -1
  147. package/dist/src/internal/nitro/routes/workflow-flow.d.ts +0 -8
  148. package/dist/src/internal/nitro/routes/workflow-flow.d.ts.map +0 -1
  149. package/dist/src/internal/nitro/routes/workflow-flow.js +0 -9
  150. package/dist/src/internal/nitro/routes/workflow-flow.js.map +0 -1
  151. package/dist/src/internal/nitro/routes/workflow-generated-handler.d.ts +0 -10
  152. package/dist/src/internal/nitro/routes/workflow-generated-handler.d.ts.map +0 -1
  153. package/dist/src/internal/nitro/routes/workflow-generated-handler.js +0 -30
  154. package/dist/src/internal/nitro/routes/workflow-generated-handler.js.map +0 -1
  155. package/dist/src/internal/nitro/routes/workflow-step.d.ts +0 -8
  156. package/dist/src/internal/nitro/routes/workflow-step.d.ts.map +0 -1
  157. package/dist/src/internal/nitro/routes/workflow-step.js +0 -9
  158. package/dist/src/internal/nitro/routes/workflow-step.js.map +0 -1
  159. package/dist/src/internal/nitro/routes/workflow-webhook.d.ts +0 -8
  160. package/dist/src/internal/nitro/routes/workflow-webhook.d.ts.map +0 -1
  161. package/dist/src/internal/nitro/routes/workflow-webhook.js +0 -9
  162. package/dist/src/internal/nitro/routes/workflow-webhook.js.map +0 -1
  163. package/dist/src/internal/nitro/runtime-configuration.d.ts +0 -16
  164. package/dist/src/internal/nitro/runtime-configuration.d.ts.map +0 -1
  165. package/dist/src/internal/nitro/runtime-configuration.js +0 -23
  166. package/dist/src/internal/nitro/runtime-configuration.js.map +0 -1
  167. package/dist/src/internal/nitro/shims/runtime-configuration-plugin.d.ts +0 -10
  168. package/dist/src/internal/nitro/shims/runtime-configuration-plugin.d.ts.map +0 -1
  169. package/dist/src/internal/nitro/shims/runtime-configuration-plugin.js +0 -17
  170. package/dist/src/internal/nitro/shims/runtime-configuration-plugin.js.map +0 -1
@@ -1,6 +1,14 @@
1
1
  import type { StepInput } from "../harness/types.js";
2
2
  import type { HandleMessageStreamEvent } from "../protocol/message.js";
3
- import type { Channel, ContextAccessor, DeliverPayload } from "./types.js";
3
+ import { Channel, type ContextAccessor, type DeliverPayload } from "./types.js";
4
+ /**
5
+ * Serializable state for {@link HttpChannel}.
6
+ *
7
+ * The framework's built-in HTTP channel is stateless, so the default shape is
8
+ * an empty object. Custom HTTP channel subclasses may extend this with their
9
+ * own durable fields.
10
+ */
11
+ export type HttpChannelState = Record<string, unknown>;
4
12
  /**
5
13
  * Stateless channel for HTTP routes.
6
14
  *
@@ -8,12 +16,11 @@ import type { Channel, ContextAccessor, DeliverPayload } from "./types.js";
8
16
  * payloads pass through untransformed — HTTP clients send structured
9
17
  * {@link InputResponse} objects directly.
10
18
  */
11
- export declare class HttpChannel implements Channel {
12
- static readonly kind = "http";
13
- readonly kind = "http";
19
+ export declare class HttpChannel extends Channel {
20
+ static readonly kind: string;
21
+ constructor(_state?: HttpChannelState);
14
22
  onEvent(event: HandleMessageStreamEvent): Promise<HandleMessageStreamEvent>;
15
23
  onDeliver(_ctx: ContextAccessor, payload: DeliverPayload): Promise<StepInput>;
16
24
  serialize(): Record<string, unknown>;
17
- static deserialize(_state: Record<string, unknown>): HttpChannel;
18
25
  }
19
26
  //# sourceMappingURL=http-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-channel.d.ts","sourceRoot":"","sources":["../../../src/channel/http-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,QAAQ,CAAC,IAAI,UAAU;IAEjB,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAI3E,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAInF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;CAGjE"}
1
+ {"version":3,"file":"http-channel.d.ts","sourceRoot":"","sources":["../../../src/channel/http-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;gBAE1B,MAAM,GAAE,gBAAqB;IAInC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAI3E,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAInF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGrC"}
@@ -1,4 +1,4 @@
1
- import { registerChannel } from "./channel-registry.js";
1
+ import { Channel } from "./types.js";
2
2
  /**
3
3
  * Stateless channel for HTTP routes.
4
4
  *
@@ -6,9 +6,11 @@ import { registerChannel } from "./channel-registry.js";
6
6
  * payloads pass through untransformed — HTTP clients send structured
7
7
  * {@link InputResponse} objects directly.
8
8
  */
9
- export class HttpChannel {
9
+ export class HttpChannel extends Channel {
10
10
  static kind = "http";
11
- kind = "http";
11
+ constructor(_state = {}) {
12
+ super();
13
+ }
12
14
  async onEvent(event) {
13
15
  return event;
14
16
  }
@@ -18,9 +20,5 @@ export class HttpChannel {
18
20
  serialize() {
19
21
  return {};
20
22
  }
21
- static deserialize(_state) {
22
- return new HttpChannel();
23
- }
24
23
  }
25
- registerChannel(HttpChannel);
26
24
  //# sourceMappingURL=http-channel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-channel.js","sourceRoot":"","sources":["../../../src/channel/http-channel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACtB,MAAM,CAAU,IAAI,GAAG,MAAM,CAAC;IACrB,IAAI,GAAG,MAAM,CAAC;IAEvB,KAAK,CAAC,OAAO,CAAC,KAA+B;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB,EAAE,OAAuB;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAA+B;QAChD,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;;AAGH,eAAe,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"http-channel.js","sourceRoot":"","sources":["../../../src/channel/http-channel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA6C,MAAM,YAAY,CAAC;AAWhF;;;;;;GAMG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO;IACtC,MAAM,CAAU,IAAI,GAAW,MAAM,CAAC;IAEtC,YAAY,SAA2B,EAAE;QACvC,KAAK,EAAE,CAAC;IACV,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA+B;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB,EAAE,OAAuB;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAC;IACZ,CAAC"}
@@ -1,18 +1,16 @@
1
1
  import type { StepInput } from "../harness/types.js";
2
2
  import type { HandleMessageStreamEvent } from "../protocol/message.js";
3
- import type { Channel, ContextAccessor, DeliverPayload } from "./types.js";
3
+ import { Channel, type ContextAccessor, type DeliverPayload } from "./types.js";
4
4
  /**
5
5
  * Stateless channel for scheduled runs.
6
6
  *
7
7
  * Events pass straight through to the stream (no side effects). Deliver
8
8
  * payloads pass through untransformed.
9
9
  */
10
- export declare class ScheduleChannel implements Channel {
10
+ export declare class ScheduleChannel extends Channel {
11
11
  static readonly kind = "schedule";
12
- readonly kind = "schedule";
13
12
  onEvent(event: HandleMessageStreamEvent): Promise<HandleMessageStreamEvent>;
14
13
  onDeliver(_ctx: ContextAccessor, payload: DeliverPayload): Promise<StepInput>;
15
14
  serialize(): Record<string, unknown>;
16
- static deserialize(_state: Record<string, unknown>): ScheduleChannel;
17
15
  }
18
16
  //# sourceMappingURL=schedule-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-channel.d.ts","sourceRoot":"","sources":["../../../src/channel/schedule-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,QAAQ,CAAC,IAAI,cAAc;IAErB,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAI3E,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAInF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe;CAGrE"}
1
+ {"version":3,"file":"schedule-channel.d.ts","sourceRoot":"","sources":["../../../src/channel/schedule-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhF;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAE5B,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAI3E,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAInF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGrC"}
@@ -1,13 +1,12 @@
1
- import { registerChannel } from "./channel-registry.js";
1
+ import { Channel } from "./types.js";
2
2
  /**
3
3
  * Stateless channel for scheduled runs.
4
4
  *
5
5
  * Events pass straight through to the stream (no side effects). Deliver
6
6
  * payloads pass through untransformed.
7
7
  */
8
- export class ScheduleChannel {
8
+ export class ScheduleChannel extends Channel {
9
9
  static kind = "schedule";
10
- kind = "schedule";
11
10
  async onEvent(event) {
12
11
  return event;
13
12
  }
@@ -17,9 +16,5 @@ export class ScheduleChannel {
17
16
  serialize() {
18
17
  return {};
19
18
  }
20
- static deserialize(_state) {
21
- return new ScheduleChannel();
22
- }
23
19
  }
24
- registerChannel(ScheduleChannel);
25
20
  //# sourceMappingURL=schedule-channel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-channel.js","sourceRoot":"","sources":["../../../src/channel/schedule-channel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAU,IAAI,GAAG,UAAU,CAAC;IACzB,IAAI,GAAG,UAAU,CAAC;IAE3B,KAAK,CAAC,OAAO,CAAC,KAA+B;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB,EAAE,OAAuB;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAA+B;QAChD,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;;AAGH,eAAe,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"schedule-channel.js","sourceRoot":"","sources":["../../../src/channel/schedule-channel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA6C,MAAM,YAAY,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAC1C,MAAM,CAAU,IAAI,GAAG,UAAU,CAAC;IAElC,KAAK,CAAC,OAAO,CAAC,KAA+B;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB,EAAE,OAAuB;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS;QACP,OAAO,EAAE,CAAC;IACZ,CAAC"}
@@ -2,7 +2,7 @@ import type { Actions, Button, Card, CardText, Select, SelectOption, SerializedT
2
2
  import type { StepInput } from "../harness/types.js";
3
3
  import type { HandleMessageStreamEvent } from "../protocol/message.js";
4
4
  import type { InputRequest } from "../runtime/input/types.js";
5
- import type { Channel, ContextAccessor, DeliverPayload } from "./types.js";
5
+ import { Channel, type ContextAccessor, type DeliverPayload } from "./types.js";
6
6
  /**
7
7
  * Minimal serializable state for the Slack channel.
8
8
  */
@@ -35,10 +35,6 @@ interface CardKit {
35
35
  Select: typeof Select;
36
36
  SelectOption: typeof SelectOption;
37
37
  }
38
- interface SlackChannelClass<TState extends SlackChannelState = SlackChannelState, T extends SlackChannel<TState> = SlackChannel<TState>> {
39
- readonly kind: string;
40
- new (state: TState): T;
41
- }
42
38
  /**
43
39
  * Channel that rehydrates a Chat SDK `Thread` from serialized state and
44
40
  * uses `thread.startTyping()` to show typing status with tool names while
@@ -51,11 +47,11 @@ interface SlackChannelClass<TState extends SlackChannelState = SlackChannelState
51
47
  * Subclasses may override the static {@link kind} field and extend the
52
48
  * channel state shape by parameterizing {@link SlackChannel} with their own
53
49
  * `TState extends SlackChannelState`. The inherited instance {@link kind}
54
- * getter, {@link serialize}, and static {@link deserialize} methods all
55
- * follow the subclass automatically, so stateful subclasses do not need to
56
- * reimplement round-tripping just to persist extra JSON-serializable fields.
50
+ * getter and {@link serialize} behavior follow the subclass automatically,
51
+ * so stateful subclasses do not need extra boilerplate just to preserve
52
+ * their durable identity and JSON-serializable state.
57
53
  */
58
- export declare class SlackChannel<TState extends SlackChannelState = SlackChannelState> implements Channel {
54
+ export declare class SlackChannel<TState extends SlackChannelState = SlackChannelState> extends Channel {
59
55
  static readonly kind: string;
60
56
  private _state;
61
57
  private _cardKit;
@@ -73,9 +69,7 @@ export declare class SlackChannel<TState extends SlackChannelState = SlackChanne
73
69
  protected set state(value: TState);
74
70
  get botToken(): string | undefined;
75
71
  get serializedThread(): SerializedThread;
76
- get kind(): string;
77
72
  serialize(): Record<string, unknown>;
78
- static deserialize<TState extends SlackChannelState, T extends SlackChannel<TState>>(this: SlackChannelClass<TState, T>, state: Record<string, unknown>): T;
79
73
  onDeliver(_ctx: ContextAccessor, payload: DeliverPayload): Promise<StepInput>;
80
74
  onEvent(event: HandleMessageStreamEvent): Promise<HandleMessageStreamEvent>;
81
75
  private consumePendingToolCallMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"slack-channel.d.ts","sourceRoot":"","sources":["../../../src/channel/slack-channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-channel.d.ts","sourceRoot":"","sources":["../../../src/channel/slack-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CACpD;AAED,UAAU,gBAAgB;IACxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClF,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED;;;;GAIG;AACH,UAAU,OAAO;IACf,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,YAAY,CAAC;CACnC;AAyCD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY,CAAC,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,OAAO;IAC7F,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IAEvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,uBAAuB,CAAuB;IACtD,OAAO,CAAC,OAAO,CAAiC;gBAEpC,KAAK,EAAE,MAAM;IAKzB;;;;;;OAMG;IACH,SAAS,KAAK,KAAK,IAAI,MAAM,CAE5B;IAED,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,MAAM,EAEhC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW9B,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAyB7E,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA8CjF,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,yBAAyB;cAKjB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAWjC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D;;;OAGG;YACW,mBAAmB;IAcjC;;OAEG;cACa,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB9C;;;;;;;;OAQG;cACa,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAevD"}
@@ -1,5 +1,5 @@
1
- import { registerChannel } from "./channel-registry.js";
2
1
  import { resolveTextToResponses } from "./resolve-text.js";
2
+ import { Channel } from "./types.js";
3
3
  const SLACK_MAX_TYPING_STATUS_LENGTH = 50;
4
4
  function labelForAction(action) {
5
5
  switch (action.kind) {
@@ -43,17 +43,18 @@ function truncateTypingStatus(status) {
43
43
  * Subclasses may override the static {@link kind} field and extend the
44
44
  * channel state shape by parameterizing {@link SlackChannel} with their own
45
45
  * `TState extends SlackChannelState`. The inherited instance {@link kind}
46
- * getter, {@link serialize}, and static {@link deserialize} methods all
47
- * follow the subclass automatically, so stateful subclasses do not need to
48
- * reimplement round-tripping just to persist extra JSON-serializable fields.
46
+ * getter and {@link serialize} behavior follow the subclass automatically,
47
+ * so stateful subclasses do not need extra boilerplate just to preserve
48
+ * their durable identity and JSON-serializable state.
49
49
  */
50
- export class SlackChannel {
50
+ export class SlackChannel extends Channel {
51
51
  static kind = "slack";
52
52
  _state;
53
53
  _cardKit = null;
54
54
  _pendingToolCallMessage = null;
55
55
  _thread = null;
56
56
  constructor(state) {
57
+ super();
57
58
  this._state = state;
58
59
  }
59
60
  /**
@@ -75,9 +76,6 @@ export class SlackChannel {
75
76
  get serializedThread() {
76
77
  return this._state.serializedThread;
77
78
  }
78
- get kind() {
79
- return this.constructor.kind;
80
- }
81
79
  serialize() {
82
80
  return {
83
81
  ...this._state,
@@ -86,10 +84,6 @@ export class SlackChannel {
86
84
  serializedThread: this._state.serializedThread,
87
85
  };
88
86
  }
89
- static deserialize(state) {
90
- // biome-ignore lint/complexity/noThisInStatic: deserialization must rehydrate the subclass constructor.
91
- return new this(state);
92
- }
93
87
  // ── Inbound: transform delivered input ─────────────────
94
88
  async onDeliver(_ctx, payload) {
95
89
  // Structured responses (Slack button callback, HTTP client) —
@@ -252,7 +246,6 @@ export class SlackChannel {
252
246
  return thread;
253
247
  }
254
248
  }
255
- registerChannel(SlackChannel);
256
249
  const INPUT_OPTION_STYLE_TO_BUTTON_STYLE = {
257
250
  danger: "danger",
258
251
  default: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"slack-channel.js","sourceRoot":"","sources":["../../../src/channel/slack-channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-channel.js","sourceRoot":"","sources":["../../../src/channel/slack-channel.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { StepInput } from "../harness/types.js";
2
2
  import { type HandleMessageStreamEvent } from "../protocol/message.js";
3
- import type { Channel, ContextAccessor, DeliverPayload } from "./types.js";
3
+ import { Channel, type ContextAccessor, type DeliverPayload } from "./types.js";
4
4
  /**
5
5
  * Serializable state for the subagent channel.
6
6
  *
@@ -28,9 +28,8 @@ export interface SubagentChannelState {
28
28
  * like {@link SlackChannel} that hold serializable state and
29
29
  * do real work in `onEvent`.
30
30
  */
31
- export declare class SubagentChannel implements Channel {
31
+ export declare class SubagentChannel extends Channel {
32
32
  static readonly kind = "subagent";
33
- readonly kind = "subagent";
34
33
  private readonly _state;
35
34
  constructor(state: SubagentChannelState);
36
35
  get callId(): string;
@@ -38,6 +37,5 @@ export declare class SubagentChannel implements Channel {
38
37
  onEvent(event: HandleMessageStreamEvent): Promise<HandleMessageStreamEvent>;
39
38
  onDeliver(_ctx: ContextAccessor, payload: DeliverPayload): Promise<StepInput>;
40
39
  serialize(): Record<string, unknown>;
41
- static deserialize(state: Record<string, unknown>): SubagentChannel;
42
40
  }
43
41
  //# sourceMappingURL=subagent-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-channel.d.ts","sourceRoot":"","sources":["../../../src/channel/subagent-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,QAAQ,CAAC,IAAI,cAAc;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,KAAK,EAAE,oBAAoB;IAIvC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEK,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAQ3E,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAInF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOpC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe;CAMpE"}
1
+ {"version":3,"file":"subagent-channel.d.ts","sourceRoot":"","sources":["../../../src/channel/subagent-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,KAAK,EAAE,oBAAoB;IAKvC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEK,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAQ3E,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAInF,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMrC"}
@@ -1,5 +1,5 @@
1
1
  import { createSubagentChildEventEvent, } from "../protocol/message.js";
2
- import { registerChannel } from "./channel-registry.js";
2
+ import { Channel } from "./types.js";
3
3
  /**
4
4
  * Channel attached to a delegated subagent child run.
5
5
  *
@@ -16,11 +16,11 @@ import { registerChannel } from "./channel-registry.js";
16
16
  * like {@link SlackChannel} that hold serializable state and
17
17
  * do real work in `onEvent`.
18
18
  */
19
- export class SubagentChannel {
19
+ export class SubagentChannel extends Channel {
20
20
  static kind = "subagent";
21
- kind = "subagent";
22
21
  _state;
23
22
  constructor(state) {
23
+ super();
24
24
  this._state = state;
25
25
  }
26
26
  get callId() {
@@ -45,12 +45,5 @@ export class SubagentChannel {
45
45
  subagentName: this._state.subagentName,
46
46
  };
47
47
  }
48
- static deserialize(state) {
49
- return new SubagentChannel({
50
- callId: state.callId,
51
- subagentName: state.subagentName,
52
- });
53
- }
54
48
  }
55
- registerChannel(SubagentChannel);
56
49
  //# sourceMappingURL=subagent-channel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-channel.js","sourceRoot":"","sources":["../../../src/channel/subagent-channel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,GAE9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAexD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAU,IAAI,GAAG,UAAU,CAAC;IACzB,IAAI,GAAG,UAAU,CAAC;IAEV,MAAM,CAAuB;IAE9C,YAAY,KAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA+B;QAC3C,OAAO,6BAA6B,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACvC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB,EAAE,OAAuB;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS;QACP,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAA8B;QAC/C,OAAO,IAAI,eAAe,CAAC;YACzB,MAAM,EAAE,KAAK,CAAC,MAAgB;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAsB;SAC3C,CAAC,CAAC;IACL,CAAC;;AAGH,eAAe,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"subagent-channel.js","sourceRoot":"","sources":["../../../src/channel/subagent-channel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,GAE9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAA6C,MAAM,YAAY,CAAC;AAchF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAC1C,MAAM,CAAU,IAAI,GAAG,UAAU,CAAC;IAEjB,MAAM,CAAuB;IAE9C,YAAY,KAA2B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA+B;QAC3C,OAAO,6BAA6B,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACvC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAqB,EAAE,OAAuB;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS;QACP,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACvC,CAAC;IACJ,CAAC"}
@@ -3,6 +3,12 @@ import type { StepInput } from "../harness/types.js";
3
3
  import type { HandleMessageStreamEvent } from "../protocol/message.js";
4
4
  import type { RunMode } from "../run-mode.js";
5
5
  import type { InputResponse } from "../runtime/input/types.js";
6
+ /**
7
+ * Global symbol brand used to recognize Ash channel classes across
8
+ * independently-loaded copies of the package during compile/runtime tests.
9
+ */
10
+ export declare const CHANNEL_CLASS_BRAND: unique symbol;
11
+ export declare const CHANNEL_PROTOTYPE_BRAND: unique symbol;
6
12
  /**
7
13
  * Identifies one turn within a session.
8
14
  */
@@ -22,8 +28,8 @@ export interface SessionParent {
22
28
  * Authenticated caller principal attached to a request.
23
29
  *
24
30
  * Produced by route-level auth strategies (JWT, OIDC, HTTP Basic, etc.)
25
- * and carried on the {@link Channel} instance that flows into
26
- * {@link Runtime.run}.
31
+ * and passed to the runtime on {@link RunInput.auth} and
32
+ * {@link DeliverInput.auth}.
27
33
  */
28
34
  export interface SessionAuthContext {
29
35
  readonly attributes: Readonly<Record<string, string | readonly string[]>>;
@@ -34,7 +40,7 @@ export interface SessionAuthContext {
34
40
  readonly subject?: string;
35
41
  }
36
42
  /**
37
- * Narrow accessor passed to {@link Channel.onContext} callbacks. Exposes only
43
+ * Narrow accessor passed to {@link Channel.onDeliver} callbacks. Exposes only
38
44
  * typed get/set with {@link ContextKey} — keeps channel code
39
45
  * workflow-agnostic and prevents channels from depending on
40
46
  * {@link AshContext} internals such as `entries()` or `has()`.
@@ -81,25 +87,40 @@ export interface HookPayload {
81
87
  * A channel carries auth, renders outbound events to the platform,
82
88
  * transforms inbound deliver payloads, and optionally sets custom
83
89
  * context keys. It is serialized across workflow step boundaries via
84
- * {@link serialize} and the static {@link ChannelClass.deserialize}.
85
- *
86
- * The framework's `ChannelKey` codec calls these methods through a
87
- * process-global registry keyed by {@link kind} — the registry is
88
- * populated when a channel module is imported and calls
89
- * `registerChannel`.
90
+ * {@link serialize} plus constructor-based rehydration performed by the
91
+ * runtime-owned channel registry.
90
92
  *
91
- * Channels are constructed by routes (HTTP request handlers) and
92
- * passed on {@link RunInput.channel}. The runtime invokes
93
- * {@link onEvent} / {@link onDeliver} during the step loop. Auth is
94
- * separate from the channel it lives on {@link RunInput.auth} and
93
+ * Channels are class-based durable values. Authors define a concrete
94
+ * subclass, declare a unique static `kind`, and pass an instance on
95
+ * {@link RunInput.channel}. The runtime invokes {@link onEvent} /
96
+ * {@link onDeliver} during the step loop. Auth is separate from the
97
+ * channel — it lives on {@link RunInput.auth} and
95
98
  * {@link DeliverInput.auth}.
96
99
  */
97
- export interface Channel {
100
+ export declare abstract class Channel {
98
101
  /**
99
- * Stable identifier for this channel class. Must match the `kind`
100
- * static field on the corresponding {@link ChannelClass}.
102
+ * Runtime marker inherited by every channel subclass constructor.
103
+ * Used by route-definition validation without relying on `instanceof`
104
+ * across multiple loaded copies of the package.
101
105
  */
102
- readonly kind: string;
106
+ static readonly [CHANNEL_CLASS_BRAND] = true;
107
+ /**
108
+ * Runtime marker inherited by every channel subclass prototype.
109
+ * Route-definition validation reads this through the subclass prototype
110
+ * chain so authored channels from another loaded package copy still
111
+ * register correctly.
112
+ */
113
+ protected get [CHANNEL_PROTOTYPE_BRAND](): true;
114
+ /**
115
+ * Nominal marker that prevents plain object literals from satisfying
116
+ * the channel contract. Durable channels must be real class instances.
117
+ */
118
+ protected readonly __channelBrand: undefined;
119
+ /**
120
+ * Stable identifier for this channel instance, derived from the
121
+ * subclass's static {@link ChannelClass.kind} field.
122
+ */
123
+ get kind(): string;
103
124
  /**
104
125
  * Outbound: called by the runtime for every lifecycle event. Returns
105
126
  * the event to write to the stream — usually the same event passed
@@ -109,7 +130,7 @@ export interface Channel {
109
130
  * Platform-specific side effects (Slack typing indicators, message
110
131
  * posting, etc.) happen inside this method before returning.
111
132
  */
112
- onEvent(event: HandleMessageStreamEvent): Promise<HandleMessageStreamEvent>;
133
+ abstract onEvent(event: HandleMessageStreamEvent): Promise<HandleMessageStreamEvent>;
113
134
  /**
114
135
  * Called once per turn — both the initial `run()` and each
115
136
  * `deliver()` — after auth keys have been seeded on the context.
@@ -123,28 +144,37 @@ export interface Channel {
123
144
  * Async so channels can fetch platform data (thread history, user
124
145
  * profiles, etc.) before the step runs.
125
146
  */
126
- onDeliver(ctx: ContextAccessor, payload: DeliverPayload): Promise<StepInput>;
147
+ abstract onDeliver(ctx: ContextAccessor, payload: DeliverPayload): Promise<StepInput>;
127
148
  /**
128
149
  * Returns the JSON-serializable state needed to reconstruct this
129
150
  * channel after a workflow step boundary. The framework wraps the
130
151
  * result in `{ kind, state }` and stores it on the durable workflow
131
152
  * context.
132
153
  */
133
- serialize(): Record<string, unknown>;
154
+ abstract serialize(): Record<string, unknown>;
134
155
  }
135
156
  /**
136
157
  * Static interface implemented by every {@link Channel} class. Used by
137
- * the channel registry to look up a class by `kind` and rebuild an
138
- * instance from previously-serialized state.
158
+ * the runtime-owned channel registry to look up a class by `kind` and
159
+ * rebuild an instance from previously-serialized state.
139
160
  */
140
161
  export interface ChannelClass<C extends Channel = Channel> {
162
+ /**
163
+ * Stable durable identifier for the channel subclass. Must be unique
164
+ * across all serializable channel classes visible to one runtime bundle.
165
+ */
141
166
  readonly kind: string;
142
167
  /**
143
- * Reconstructs a channel instance from state previously returned by
144
- * {@link Channel.serialize}.
168
+ * Constructs a channel instance. Specific route helpers may constrain the
169
+ * constructor input shape further (for example Slack channel classes accept
170
+ * {@link import("./slack-channel.js").SlackChannelState}).
145
171
  */
146
- deserialize(state: Record<string, unknown>): C;
172
+ new (...args: never[]): C;
147
173
  }
174
+ /**
175
+ * Returns the static durable kind for a channel class.
176
+ */
177
+ export declare function getChannelClassKind(channelClass: ChannelClass): string;
148
178
  /**
149
179
  * Single input shape consumed by {@link Runtime.run} for both root runs
150
180
  * (started by routes) and delegated child runs (started by the
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channel/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,eAAkC,CAAC;AACnE,eAAO,MAAM,uBAAuB,eAAsC,CAAC;AAM3E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAM7E;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,OAAO;IAC3B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,QAAQ;IAC7C;;;;;OAKG;IACH,SAAS,KAAK,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAE9C;IACD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAG,SAAS,CAAC;IAE9C;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IACpF;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IACrF;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IACvD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAMtE;AAMD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,OAAO;IACtB;;;;;;OAMG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
@@ -1,2 +1,65 @@
1
- export {};
1
+ /**
2
+ * Global symbol brand used to recognize Ash channel classes across
3
+ * independently-loaded copies of the package during compile/runtime tests.
4
+ */
5
+ export const CHANNEL_CLASS_BRAND = Symbol.for("ash.channel.class");
6
+ export const CHANNEL_PROTOTYPE_BRAND = Symbol.for("ash.channel.prototype");
7
+ // ---------------------------------------------------------------------------
8
+ // Channel
9
+ // ---------------------------------------------------------------------------
10
+ /**
11
+ * Serializable conduit that owns the full lifecycle of one platform
12
+ * integration.
13
+ *
14
+ * A channel carries auth, renders outbound events to the platform,
15
+ * transforms inbound deliver payloads, and optionally sets custom
16
+ * context keys. It is serialized across workflow step boundaries via
17
+ * {@link serialize} plus constructor-based rehydration performed by the
18
+ * runtime-owned channel registry.
19
+ *
20
+ * Channels are class-based durable values. Authors define a concrete
21
+ * subclass, declare a unique static `kind`, and pass an instance on
22
+ * {@link RunInput.channel}. The runtime invokes {@link onEvent} /
23
+ * {@link onDeliver} during the step loop. Auth is separate from the
24
+ * channel — it lives on {@link RunInput.auth} and
25
+ * {@link DeliverInput.auth}.
26
+ */
27
+ export class Channel {
28
+ /**
29
+ * Runtime marker inherited by every channel subclass constructor.
30
+ * Used by route-definition validation without relying on `instanceof`
31
+ * across multiple loaded copies of the package.
32
+ */
33
+ static [CHANNEL_CLASS_BRAND] = true;
34
+ /**
35
+ * Runtime marker inherited by every channel subclass prototype.
36
+ * Route-definition validation reads this through the subclass prototype
37
+ * chain so authored channels from another loaded package copy still
38
+ * register correctly.
39
+ */
40
+ get [CHANNEL_PROTOTYPE_BRAND]() {
41
+ return true;
42
+ }
43
+ /**
44
+ * Nominal marker that prevents plain object literals from satisfying
45
+ * the channel contract. Durable channels must be real class instances.
46
+ */
47
+ __channelBrand;
48
+ /**
49
+ * Stable identifier for this channel instance, derived from the
50
+ * subclass's static {@link ChannelClass.kind} field.
51
+ */
52
+ get kind() {
53
+ return getChannelClassKind(this.constructor);
54
+ }
55
+ }
56
+ /**
57
+ * Returns the static durable kind for a channel class.
58
+ */
59
+ export function getChannelClassKind(channelClass) {
60
+ if (typeof channelClass.kind !== "string" || channelClass.kind.length === 0) {
61
+ throw new TypeError("Channel classes must declare a non-empty static `kind` field.");
62
+ }
63
+ return channelClass.kind;
64
+ }
2
65
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/channel/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/channel/types.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAoG3E,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAgB,OAAO;IAC3B;;;;OAIG;IACH,MAAM,CAAU,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;IAC7C;;;;;OAKG;IACH,IAAc,CAAC,uBAAuB,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;;OAGG;IACgB,cAAc,CAAa;IAE9C;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,mBAAmB,CAAC,IAAI,CAAC,WAA2B,CAAC,CAAC;IAC/D,CAAC;;AAqDH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAA0B;IAC5D,IAAI,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B,CAAC"}
@@ -69,7 +69,7 @@ async function promptForRuntimeInputRequest(input) {
69
69
  }
70
70
  async function promptForApprovalInputRequest(input) {
71
71
  input.print(renderCliTaggedLine(input.theme, {
72
- message: `approve tool "${input.request.action.toolName}"?`,
72
+ message: `approve tool "${input.request.action.toolName}"? (yes/no)`,
73
73
  tag: "approval",
74
74
  tone: "warning",
75
75
  }));