@mono-agent/agent-app 0.20.14 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/README.md +227 -80
  2. package/dist/adapter-send-tools.d.ts +3 -2
  3. package/dist/adapter-send-tools.d.ts.map +1 -1
  4. package/dist/adapter-send-tools.js +15 -5
  5. package/dist/adapter-send-tools.js.map +1 -1
  6. package/dist/app-controller-channels.d.ts +2 -0
  7. package/dist/app-controller-channels.d.ts.map +1 -1
  8. package/dist/app-controller-channels.js +10 -1
  9. package/dist/app-controller-channels.js.map +1 -1
  10. package/dist/app-controller-maintenance.d.ts +3 -1
  11. package/dist/app-controller-maintenance.d.ts.map +1 -1
  12. package/dist/app-controller-maintenance.js +3 -0
  13. package/dist/app-controller-maintenance.js.map +1 -1
  14. package/dist/app-controller-responder.d.ts +2 -0
  15. package/dist/app-controller-responder.d.ts.map +1 -1
  16. package/dist/app-controller-responder.js +21 -17
  17. package/dist/app-controller-responder.js.map +1 -1
  18. package/dist/app-controller-traceability.d.ts.map +1 -1
  19. package/dist/app-controller-traceability.js +3 -0
  20. package/dist/app-controller-traceability.js.map +1 -1
  21. package/dist/app-controller-types.d.ts +1 -0
  22. package/dist/app-controller-types.d.ts.map +1 -1
  23. package/dist/app-controller.d.ts +2 -0
  24. package/dist/app-controller.d.ts.map +1 -1
  25. package/dist/app-controller.js +3 -0
  26. package/dist/app-controller.js.map +1 -1
  27. package/dist/artifact-retention.js +11 -0
  28. package/dist/artifact-retention.js.map +1 -1
  29. package/dist/background.d.ts +0 -6
  30. package/dist/background.d.ts.map +1 -1
  31. package/dist/background.js +5 -58
  32. package/dist/background.js.map +1 -1
  33. package/dist/channel-drivers/tui.d.ts +2 -2
  34. package/dist/channel-drivers/tui.d.ts.map +1 -1
  35. package/dist/channel-drivers/tui.js +27 -8
  36. package/dist/channel-drivers/tui.js.map +1 -1
  37. package/dist/cli-args.d.ts +4 -5
  38. package/dist/cli-args.d.ts.map +1 -1
  39. package/dist/cli-args.js +20 -19
  40. package/dist/cli-args.js.map +1 -1
  41. package/dist/cli-background-command.d.ts.map +1 -1
  42. package/dist/cli-background-command.js +4 -0
  43. package/dist/cli-background-command.js.map +1 -1
  44. package/dist/cli-commands.d.ts.map +1 -1
  45. package/dist/cli-commands.js +13 -2
  46. package/dist/cli-commands.js.map +1 -1
  47. package/dist/cli-help.d.ts.map +1 -1
  48. package/dist/cli-help.js +33 -19
  49. package/dist/cli-help.js.map +1 -1
  50. package/dist/cli-init-command.d.ts.map +1 -1
  51. package/dist/cli-init-command.js +26 -22
  52. package/dist/cli-init-command.js.map +1 -1
  53. package/dist/cli-install-skill-command.d.ts.map +1 -1
  54. package/dist/cli-install-skill-command.js +12 -3
  55. package/dist/cli-install-skill-command.js.map +1 -1
  56. package/dist/config-reference.d.ts +1 -0
  57. package/dist/config-reference.d.ts.map +1 -1
  58. package/dist/config-reference.js +66 -10
  59. package/dist/config-reference.js.map +1 -1
  60. package/dist/configured-agent.d.ts +9 -1
  61. package/dist/configured-agent.d.ts.map +1 -1
  62. package/dist/configured-agent.js +95 -29
  63. package/dist/configured-agent.js.map +1 -1
  64. package/dist/cron-control-store.d.ts.map +1 -1
  65. package/dist/cron-control-store.js +4 -2
  66. package/dist/cron-control-store.js.map +1 -1
  67. package/dist/doctor.d.ts.map +1 -1
  68. package/dist/doctor.js +215 -45
  69. package/dist/doctor.js.map +1 -1
  70. package/dist/index.d.ts +2 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +1 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/interaction-bridge.d.ts +3 -3
  75. package/dist/interaction-bridge.d.ts.map +1 -1
  76. package/dist/interaction-bridge.js +27 -10
  77. package/dist/interaction-bridge.js.map +1 -1
  78. package/dist/launchd.d.ts +2 -0
  79. package/dist/launchd.d.ts.map +1 -1
  80. package/dist/launchd.js +3 -0
  81. package/dist/launchd.js.map +1 -1
  82. package/dist/local-tui-session.d.ts +14 -0
  83. package/dist/local-tui-session.d.ts.map +1 -0
  84. package/dist/local-tui-session.js +100 -0
  85. package/dist/local-tui-session.js.map +1 -0
  86. package/dist/mcp-apps.d.ts.map +1 -1
  87. package/dist/mcp-apps.js +3 -0
  88. package/dist/mcp-apps.js.map +1 -1
  89. package/dist/memory-journal.d.ts +53 -0
  90. package/dist/memory-journal.d.ts.map +1 -0
  91. package/dist/memory-journal.js +586 -0
  92. package/dist/memory-journal.js.map +1 -0
  93. package/dist/memory-recall.d.ts.map +1 -1
  94. package/dist/memory-recall.js +16 -2
  95. package/dist/memory-recall.js.map +1 -1
  96. package/dist/memory-retrieval.d.ts +9 -0
  97. package/dist/memory-retrieval.d.ts.map +1 -1
  98. package/dist/memory-retrieval.js +20 -0
  99. package/dist/memory-retrieval.js.map +1 -1
  100. package/dist/modules/base.js +1 -1
  101. package/dist/modules/base.js.map +1 -1
  102. package/dist/modules/known-tools.d.ts +1 -1
  103. package/dist/modules/known-tools.d.ts.map +1 -1
  104. package/dist/modules/known-tools.js +1 -0
  105. package/dist/modules/known-tools.js.map +1 -1
  106. package/dist/monitors-command.js +12 -2
  107. package/dist/monitors-command.js.map +1 -1
  108. package/dist/monitors-config.d.ts +4 -1
  109. package/dist/monitors-config.d.ts.map +1 -1
  110. package/dist/monitors-config.js +5 -1
  111. package/dist/monitors-config.js.map +1 -1
  112. package/dist/monitors-context.d.ts.map +1 -1
  113. package/dist/monitors-context.js +14 -2
  114. package/dist/monitors-context.js.map +1 -1
  115. package/dist/monitors-service.d.ts +2 -2
  116. package/dist/monitors-service.d.ts.map +1 -1
  117. package/dist/monitors-service.js +227 -96
  118. package/dist/monitors-service.js.map +1 -1
  119. package/dist/monitors-store.d.ts +11 -1
  120. package/dist/monitors-store.d.ts.map +1 -1
  121. package/dist/monitors-store.js +36 -6
  122. package/dist/monitors-store.js.map +1 -1
  123. package/dist/notify-destinations.d.ts +3 -2
  124. package/dist/notify-destinations.d.ts.map +1 -1
  125. package/dist/notify-destinations.js +6 -7
  126. package/dist/notify-destinations.js.map +1 -1
  127. package/dist/posted-reply-history.d.ts.map +1 -1
  128. package/dist/posted-reply-history.js +40 -3
  129. package/dist/posted-reply-history.js.map +1 -1
  130. package/dist/proactive-notify.d.ts +20 -1
  131. package/dist/proactive-notify.d.ts.map +1 -1
  132. package/dist/proactive-notify.js +56 -3
  133. package/dist/proactive-notify.js.map +1 -1
  134. package/dist/process-job-channel-routing.js +2 -1
  135. package/dist/process-job-channel-routing.js.map +1 -1
  136. package/dist/process-job-output-tail.d.ts +53 -0
  137. package/dist/process-job-output-tail.d.ts.map +1 -0
  138. package/dist/process-job-output-tail.js +257 -0
  139. package/dist/process-job-output-tail.js.map +1 -0
  140. package/dist/process-jobs-config.d.ts +1 -1
  141. package/dist/process-jobs-config.js +1 -1
  142. package/dist/process-jobs-config.js.map +1 -1
  143. package/dist/process-jobs-context.d.ts +3 -1
  144. package/dist/process-jobs-context.d.ts.map +1 -1
  145. package/dist/process-jobs-context.js +44 -11
  146. package/dist/process-jobs-context.js.map +1 -1
  147. package/dist/process-jobs-runtime.d.ts.map +1 -1
  148. package/dist/process-jobs-runtime.js +14 -0
  149. package/dist/process-jobs-runtime.js.map +1 -1
  150. package/dist/process-jobs-service.d.ts.map +1 -1
  151. package/dist/process-jobs-service.js +115 -23
  152. package/dist/process-jobs-service.js.map +1 -1
  153. package/dist/process-jobs-store.d.ts +3 -1
  154. package/dist/process-jobs-store.d.ts.map +1 -1
  155. package/dist/process-jobs-store.js +4 -1
  156. package/dist/process-jobs-store.js.map +1 -1
  157. package/dist/process-output-redaction.d.ts +26 -1
  158. package/dist/process-output-redaction.d.ts.map +1 -1
  159. package/dist/process-output-redaction.js +164 -2
  160. package/dist/process-output-redaction.js.map +1 -1
  161. package/dist/project-skills.d.ts +11 -5
  162. package/dist/project-skills.d.ts.map +1 -1
  163. package/dist/project-skills.js +88 -39
  164. package/dist/project-skills.js.map +1 -1
  165. package/dist/provider-auth-checks.d.ts +27 -0
  166. package/dist/provider-auth-checks.d.ts.map +1 -0
  167. package/dist/provider-auth-checks.js +349 -0
  168. package/dist/provider-auth-checks.js.map +1 -0
  169. package/dist/provider-auth-observations.d.ts +22 -0
  170. package/dist/provider-auth-observations.d.ts.map +1 -0
  171. package/dist/provider-auth-observations.js +139 -0
  172. package/dist/provider-auth-observations.js.map +1 -0
  173. package/dist/provider-auth-operator.d.ts +19 -0
  174. package/dist/provider-auth-operator.d.ts.map +1 -0
  175. package/dist/provider-auth-operator.js +560 -0
  176. package/dist/provider-auth-operator.js.map +1 -0
  177. package/dist/provider-auth-status.d.ts +20 -0
  178. package/dist/provider-auth-status.d.ts.map +1 -0
  179. package/dist/provider-auth-status.js +235 -0
  180. package/dist/provider-auth-status.js.map +1 -0
  181. package/dist/provider-model-catalog.d.ts +17 -0
  182. package/dist/provider-model-catalog.d.ts.map +1 -1
  183. package/dist/provider-model-catalog.js +113 -2
  184. package/dist/provider-model-catalog.js.map +1 -1
  185. package/dist/provider-setup.d.ts +22 -0
  186. package/dist/provider-setup.d.ts.map +1 -1
  187. package/dist/provider-setup.js +101 -15
  188. package/dist/provider-setup.js.map +1 -1
  189. package/dist/reply-artifacts.d.ts +3 -1
  190. package/dist/reply-artifacts.d.ts.map +1 -1
  191. package/dist/reply-artifacts.js +45 -10
  192. package/dist/reply-artifacts.js.map +1 -1
  193. package/dist/request-model-override.d.ts +11 -2
  194. package/dist/request-model-override.d.ts.map +1 -1
  195. package/dist/request-model-override.js +51 -1
  196. package/dist/request-model-override.js.map +1 -1
  197. package/dist/request-scoped-mcp.d.ts +3 -0
  198. package/dist/request-scoped-mcp.d.ts.map +1 -1
  199. package/dist/request-scoped-mcp.js +1 -1
  200. package/dist/request-scoped-mcp.js.map +1 -1
  201. package/dist/run-history.d.ts.map +1 -1
  202. package/dist/run-history.js +56 -13
  203. package/dist/run-history.js.map +1 -1
  204. package/dist/seen-conversations.d.ts +4 -3
  205. package/dist/seen-conversations.d.ts.map +1 -1
  206. package/dist/seen-conversations.js +6 -5
  207. package/dist/seen-conversations.js.map +1 -1
  208. package/dist/session-history.d.ts +14 -0
  209. package/dist/session-history.d.ts.map +1 -1
  210. package/dist/session-history.js +120 -5
  211. package/dist/session-history.js.map +1 -1
  212. package/dist/systemd-command.d.ts +8 -0
  213. package/dist/systemd-command.d.ts.map +1 -0
  214. package/dist/systemd-command.js +206 -0
  215. package/dist/systemd-command.js.map +1 -0
  216. package/dist/systemd.d.ts +51 -0
  217. package/dist/systemd.d.ts.map +1 -0
  218. package/dist/systemd.js +299 -0
  219. package/dist/systemd.js.map +1 -0
  220. package/dist/tool-output-artifacts.d.ts +4 -0
  221. package/dist/tool-output-artifacts.d.ts.map +1 -0
  222. package/dist/tool-output-artifacts.js +17 -0
  223. package/dist/tool-output-artifacts.js.map +1 -0
  224. package/dist/tui-command.d.ts +0 -45
  225. package/dist/tui-command.d.ts.map +1 -1
  226. package/dist/tui-command.js +27 -264
  227. package/dist/tui-command.js.map +1 -1
  228. package/dist/untrusted-text.js +2 -2
  229. package/dist/web-command.d.ts +3 -0
  230. package/dist/web-command.d.ts.map +1 -1
  231. package/dist/web-command.js +112 -7
  232. package/dist/web-command.js.map +1 -1
  233. package/dist/web-request-coordinator.d.ts +19 -0
  234. package/dist/web-request-coordinator.d.ts.map +1 -0
  235. package/dist/web-request-coordinator.js +242 -0
  236. package/dist/web-request-coordinator.js.map +1 -0
  237. package/dist/wizard/prompts.d.ts.map +1 -1
  238. package/dist/wizard/prompts.js +1 -0
  239. package/dist/wizard/prompts.js.map +1 -1
  240. package/dist/wizard/run.js +1 -1
  241. package/dist/wizard/run.js.map +1 -1
  242. package/package.json +18 -18
  243. package/schema/mono-agent.config.schema.json +120 -8
  244. package/skills/mono-agent-composer/SKILL.md +4 -4
  245. package/skills/mono-agent-composer/references/config-blueprint.md +18 -7
  246. package/skills/mono-agent-composer/references/discovery-questions.md +10 -5
  247. package/skills/mono-agent-composer/references/feature-coverage.md +30 -14
  248. package/skills/mono-agent-composer/references/package-map.md +6 -3
  249. package/skills/mono-agent-composer/references/playbooks.md +20 -5
  250. package/skills/mono-agent-composer/references/validation.md +4 -3
  251. package/dist/configuration-proposal-main.d.ts +0 -3
  252. package/dist/configuration-proposal-main.d.ts.map +0 -1
  253. package/dist/configuration-proposal-main.js +0 -13
  254. package/dist/configuration-proposal-main.js.map +0 -1
  255. package/dist/configuration-proposal-tool.d.ts +0 -33
  256. package/dist/configuration-proposal-tool.d.ts.map +0 -1
  257. package/dist/configuration-proposal-tool.js +0 -180
  258. package/dist/configuration-proposal-tool.js.map +0 -1
  259. package/dist/local-configuration.d.ts +0 -99
  260. package/dist/local-configuration.d.ts.map +0 -1
  261. package/dist/local-configuration.js +0 -1302
  262. package/dist/local-configuration.js.map +0 -1
@@ -27,12 +27,16 @@ export function createSlackPostedReplyHistory(options) {
27
27
  : await scopes.run(scope, async () => await responder.respond(request, stream));
28
28
  },
29
29
  ...(responder.cancel === undefined ? {} : { cancel: responder.cancel.bind(responder) }),
30
+ ...(responder.liveInputOwnership === undefined ? {} : { liveInputOwnership: responder.liveInputOwnership }),
30
31
  ...(responder.offerLiveInput === undefined
31
32
  ? {}
32
33
  : { offerLiveInput: responder.offerLiveInput.bind(responder) }),
33
34
  ...(responder.deliverVerbatim === undefined
34
35
  ? {}
35
36
  : { deliverVerbatim: responder.deliverVerbatim.bind(responder) }),
37
+ ...(responder.importContext === undefined
38
+ ? {}
39
+ : { importContext: responder.importContext.bind(responder) }),
36
40
  ...(responder.openReplyArtifact === undefined
37
41
  ? {}
38
42
  : { openReplyArtifact: responder.openReplyArtifact.bind(responder) }),
@@ -51,10 +55,43 @@ export function createSlackPostedReplyHistory(options) {
51
55
  };
52
56
  }
53
57
  function wrapHistoryStore(store, scopes, options) {
58
+ const providerSessionRetirement = store.providerSessionRetirement;
59
+ const contextImport = store.contextImport;
54
60
  return {
55
- ...(store.providerSessionRetirement === undefined
61
+ ...(store.providerSessionRecovery === undefined ? {} : { providerSessionRecovery: store.providerSessionRecovery }),
62
+ ...(store.providerSessionModelBinding === undefined ? {} : { providerSessionModelBinding: store.providerSessionModelBinding }),
63
+ ...(providerSessionRetirement === undefined
64
+ ? {}
65
+ : { providerSessionRetirement }),
66
+ ...(contextImport === undefined
56
67
  ? {}
57
- : { providerSessionRetirement: store.providerSessionRetirement }),
68
+ : {
69
+ contextImport: {
70
+ version: contextImport.version,
71
+ maxTextBytes: contextImport.maxTextBytes,
72
+ providerState: contextImport.providerState,
73
+ async beginExclusiveTurn(conversationId) {
74
+ const turn = await contextImport.beginExclusiveTurn(conversationId);
75
+ const scope = scopes.getStore();
76
+ if (scope === undefined || !matchesProducerConversation(conversationId, scope.producerConversationId)) {
77
+ return turn;
78
+ }
79
+ const delivery = await loadExactDelivery(store, scope, conversationId, options);
80
+ const deliveryKey = delivery.find((message) => message.role === "assistant")?.idempotencyKey;
81
+ const history = delivery.length === 0
82
+ || (deliveryKey !== undefined && turn.history.some((message) => message.idempotencyKey === deliveryKey))
83
+ ? turn.history
84
+ : mergeHistory(turn.history, delivery, options.maxMessages);
85
+ return {
86
+ history,
87
+ historyVersion: turn.historyVersion,
88
+ prepareCommit: turn.prepareCommit.bind(turn),
89
+ abort: turn.abort.bind(turn),
90
+ };
91
+ },
92
+ prepareImport: (conversationId, request) => contextImport.prepareImport(conversationId, request),
93
+ },
94
+ }),
58
95
  async load(conversationId) {
59
96
  const canonical = await store.load(conversationId);
60
97
  const scope = scopes.getStore();
@@ -82,7 +119,7 @@ function wrapHistoryStore(store, scopes, options) {
82
119
  : { prepareAppend: (conversationId, messages) => store.prepareAppend(conversationId, messages) }),
83
120
  ...(store.beginProviderSessionTurn === undefined
84
121
  ? {}
85
- : { beginProviderSessionTurn: (conversationId, runId) => store.beginProviderSessionTurn(conversationId, runId) }),
122
+ : { beginProviderSessionTurn: (...args) => store.beginProviderSessionTurn(...args) }),
86
123
  };
87
124
  }
88
125
  function postedReplyScope(request) {
@@ -1 +1 @@
1
- {"version":3,"file":"posted-reply-history.js","sourceRoot":"","sources":["../src/posted-reply-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posted-reply-history.js","sourceRoot":"","sources":["../src/posted-reply-history.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,17 @@
1
1
  import type { NotifyDeliveryContext, NotifyDeliveryResult, ProcessJobProjection } from "@mono-agent/agent-contracts";
2
- import type { ChannelId, MonoAgentAppLogger, RunningChannel } from "./channels.js";
2
+ import type { ChannelDriver, ChannelId, MonoAgentAppLogger, RunningChannel } from "./channels.js";
3
3
  export type { NotifyDeliveryResult } from "@mono-agent/agent-contracts";
4
+ /**
5
+ * Channels whose conversations can receive a proactive notification turn — the
6
+ * single capability registry behind BOTH artifact-sighting admission and
7
+ * destination resolution. Keeping one set means a channel can never be
8
+ * notify-capable for one half of inference and invisible to the other.
9
+ * WhatsApp is a recognized push scheme but has no notify hook yet, so it is
10
+ * absent here and its conversations are never offered as candidates.
11
+ */
12
+ export declare const NOTIFY_CAPABLE_CHANNELS: ReadonlySet<ChannelId>;
13
+ /** Whether a channel can receive an inferred native cron/webhook notification. */
14
+ export declare function isNotifyCapableChannel(channelId: ChannelId | undefined): channelId is ChannelId;
4
15
  /** The push channel that owns a destination conversationId (requires a `<scheme>:<target>` form), or undefined. */
5
16
  export declare function channelIdForConversation(conversationId: string): ChannelId | undefined;
6
17
  export interface ProactiveNotifyInput {
@@ -22,6 +33,14 @@ export interface ProactiveNotifyInput {
22
33
  readonly processJob?: ProcessJobProjection;
23
34
  /** Currently running channels, keyed by id (the app's live registry). */
24
35
  readonly running: ReadonlyMap<ChannelId, Pick<RunningChannel, "notify">>;
36
+ /**
37
+ * Registered channel drivers, used to map a conversation SCHEME to the id the
38
+ * owning driver actually runs under. A plugin may be registered under a
39
+ * custom `id` while declaring a fixed `processJobs.conversationScheme`, so
40
+ * the scheme alone is not a running-registry key. Omit to key by scheme
41
+ * directly (the built-in channels, whose id and scheme coincide).
42
+ */
43
+ readonly drivers?: readonly Pick<ChannelDriver, "id" | "processJobs">[];
25
44
  readonly logger?: MonoAgentAppLogger;
26
45
  }
27
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"proactive-notify.d.ts","sourceRoot":"","sources":["../src/proactive-notify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAInF,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAiBxE,mHAAmH;AACnH,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAMtF;AAED,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACjD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4D3G"}
1
+ {"version":3,"file":"proactive-notify.d.ts","sourceRoot":"","sources":["../src/proactive-notify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIlG,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAmBxE;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,SAAS,CAIzD,CAAC;AAEH,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,IAAI,SAAS,CAE/F;AAED,mHAAmH;AACnH,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAMtF;AAED,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACjD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;CACtC;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0E3G"}
@@ -3,7 +3,8 @@
3
3
  * optional `notify` hook remains the authoritative delivery capability, so a
4
4
  * recognized plugin destination can still fail closed as unsupported. This is
5
5
  * intentionally wider than the webhook callback list: WhatsApp is recognized
6
- * here, but its plugin driver does not expose a native notify hook yet.
6
+ * here, but its plugin driver does not expose a native notify hook yet, while
7
+ * the Messenger plugin driver does.
7
8
  * web/cron/webhook/openai-api/a2a are request-driven, not ordinary push
8
9
  * destinations. Process-job web lifecycle routing is handled explicitly below.
9
10
  */
@@ -11,7 +12,25 @@ const PUSH_CHANNEL_BY_SCHEME = {
11
12
  telegram: "telegram",
12
13
  slack: "slack",
13
14
  whatsapp: "whatsapp",
15
+ messenger: "messenger",
14
16
  };
17
+ /**
18
+ * Channels whose conversations can receive a proactive notification turn — the
19
+ * single capability registry behind BOTH artifact-sighting admission and
20
+ * destination resolution. Keeping one set means a channel can never be
21
+ * notify-capable for one half of inference and invisible to the other.
22
+ * WhatsApp is a recognized push scheme but has no notify hook yet, so it is
23
+ * absent here and its conversations are never offered as candidates.
24
+ */
25
+ export const NOTIFY_CAPABLE_CHANNELS = new Set([
26
+ "telegram",
27
+ "slack",
28
+ "messenger",
29
+ ]);
30
+ /** Whether a channel can receive an inferred native cron/webhook notification. */
31
+ export function isNotifyCapableChannel(channelId) {
32
+ return channelId !== undefined && NOTIFY_CAPABLE_CHANNELS.has(channelId);
33
+ }
15
34
  /** The push channel that owns a destination conversationId (requires a `<scheme>:<target>` form), or undefined. */
16
35
  export function channelIdForConversation(conversationId) {
17
36
  const colon = conversationId.indexOf(":");
@@ -20,6 +39,26 @@ export function channelIdForConversation(conversationId) {
20
39
  }
21
40
  return PUSH_CHANNEL_BY_SCHEME[conversationId.slice(0, colon)];
22
41
  }
42
+ /**
43
+ * Resolve the running-registry id that owns a conversation scheme.
44
+ *
45
+ * Mirrors `routeMonitorWake`: a driver that DECLARES the scheme owns it, under
46
+ * whatever id it was registered with. Zero declarations means a built-in
47
+ * channel whose id is the scheme itself; two or more is ambiguous and fails
48
+ * closed rather than guessing which instance should receive the message.
49
+ * (`assertUniqueProcessJobChannelSchemes` rejects that at startup — this is the
50
+ * defensive second gate.)
51
+ */
52
+ function resolveOwningChannelId(scheme, drivers) {
53
+ if (drivers === undefined) {
54
+ return { channelId: scheme };
55
+ }
56
+ const owners = drivers.filter((driver) => driver.processJobs?.conversationScheme === scheme);
57
+ if (owners.length > 1) {
58
+ return { ambiguous: true };
59
+ }
60
+ return { channelId: owners[0]?.id ?? scheme };
61
+ }
23
62
  /**
24
63
  * Route a proactive notification to the channel that owns its destination
25
64
  * conversation, so the message runs as a real turn on that channel's own harness
@@ -39,13 +78,27 @@ export async function routeProactiveNotification(input) {
39
78
  retryable: false,
40
79
  };
41
80
  }
42
- const channelId = webProcessJobChannel ?? channelIdForConversation(input.conversationId);
43
- if (channelId === undefined) {
81
+ const scheme = webProcessJobChannel ?? channelIdForConversation(input.conversationId);
82
+ if (scheme === undefined) {
44
83
  input.logger?.warn?.("Proactive notification skipped: unrecognized destination.", {
45
84
  conversationId: input.conversationId,
46
85
  });
47
86
  return { delivered: false, reason: "unrecognized destination conversationId" };
48
87
  }
88
+ const owner = resolveOwningChannelId(scheme, input.drivers);
89
+ if ("ambiguous" in owner) {
90
+ input.logger?.warn?.("Proactive notification skipped: multiple channels claim the destination scheme.", {
91
+ conversationId: input.conversationId,
92
+ scheme,
93
+ });
94
+ return {
95
+ delivered: false,
96
+ code: "destination_channel_unsupported",
97
+ reason: `Multiple channels claim conversation scheme ${scheme}.`,
98
+ retryable: false,
99
+ };
100
+ }
101
+ const channelId = owner.channelId;
49
102
  const channel = input.running.get(channelId);
50
103
  if (channel === undefined) {
51
104
  input.logger?.warn?.("Proactive notification skipped: destination channel is not running.", { conversationId: input.conversationId, channelId });
@@ -1 +1 @@
1
- {"version":3,"file":"proactive-notify.js","sourceRoot":"","sources":["../src/proactive-notify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proactive-notify.js","sourceRoot":"","sources":["../src/proactive-notify.ts"],"names":[],"mappings":"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"}
@@ -96,7 +96,8 @@ function routingFailure(input, channelId, operation, error) {
96
96
  conversationId: input.conversationId,
97
97
  reason,
98
98
  });
99
- return { delivered: false, code: "process_job_wake_failed", reason, retryable: false };
99
+ return { delivered: false, code: "process_job_wake_failed", reason, retryable: false,
100
+ ...(operation === "wake" ? { ambiguous: true } : {}) };
100
101
  }
101
102
  function baseConversationId(conversationId) {
102
103
  return conversationId.split("#", 1)[0] ?? conversationId;
@@ -1 +1 @@
1
- {"version":3,"file":"process-job-channel-routing.js","sourceRoot":"","sources":["../src/process-job-channel-routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-job-channel-routing.js","sourceRoot":"","sources":["../src/process-job-channel-routing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export interface ProcessJobOutputTailSnapshot {
2
+ readonly stdoutBytes: number;
3
+ readonly stderrBytes: number;
4
+ readonly truncated: boolean;
5
+ readonly preview: string;
6
+ }
7
+ export interface ProcessJobOutputTailOptions {
8
+ readonly previewChars: number;
9
+ readonly maxOutputBytes: number;
10
+ readonly secrets: readonly string[];
11
+ readonly maxLines?: number;
12
+ readonly publishIntervalMs?: number;
13
+ /** One generic notification for an internal accumulator failure; never receives process output. */
14
+ readonly onFailure?: () => void;
15
+ }
16
+ /**
17
+ * Memory-only, redacted tail for one active process job.
18
+ *
19
+ * This mirrors the runner's shared stdout/stderr byte admission without
20
+ * controlling it. Published state is throttled; finalization is immediate.
21
+ */
22
+ export declare class ProcessJobOutputTail {
23
+ private readonly options;
24
+ private readonly maxLines;
25
+ private readonly publishIntervalMs;
26
+ private readonly redactors;
27
+ private readonly streams;
28
+ private readonly lines;
29
+ private sequence;
30
+ private omittedLines;
31
+ private stdoutBytes;
32
+ private stderrBytes;
33
+ private truncated;
34
+ private failed;
35
+ private finished;
36
+ private warned;
37
+ private timer;
38
+ private published;
39
+ constructor(options: ProcessJobOutputTailOptions);
40
+ writeStdout(chunk: Buffer): void;
41
+ writeStderr(chunk: Buffer): void;
42
+ snapshot(): ProcessJobOutputTailSnapshot | undefined;
43
+ finalize(): ProcessJobOutputTailSnapshot | undefined;
44
+ discard(): void;
45
+ private write;
46
+ private acceptDecoded;
47
+ private appendReady;
48
+ private armPublication;
49
+ private render;
50
+ private clearTimer;
51
+ private failClosed;
52
+ }
53
+ //# sourceMappingURL=process-job-output-tail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-job-output-tail.d.ts","sourceRoot":"","sources":["../src/process-job-output-tail.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,mGAAmG;IACnG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAyBnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAxBpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwE;IAClG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGtB;IACF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,SAAS,CAKf;gBAE2B,OAAO,EAAE,2BAA2B;IASjE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,QAAQ,IAAI,4BAA4B,GAAG,SAAS;IAIpD,QAAQ,IAAI,4BAA4B,GAAG,SAAS;IAqCpD,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,MAAM;IA0Bd,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;CAgBnB"}
@@ -0,0 +1,257 @@
1
+ import { StringDecoder } from "node:string_decoder";
2
+ import { StreamingProcessOutputRedactor } from "./process-output-redaction.js";
3
+ const EARLIER_OUTPUT_OMITTED = "… [earlier output omitted]";
4
+ /**
5
+ * Memory-only, redacted tail for one active process job.
6
+ *
7
+ * This mirrors the runner's shared stdout/stderr byte admission without
8
+ * controlling it. Published state is throttled; finalization is immediate.
9
+ */
10
+ export class ProcessJobOutputTail {
11
+ options;
12
+ maxLines;
13
+ publishIntervalMs;
14
+ redactors;
15
+ streams = {
16
+ stdout: { decoder: new StringDecoder("utf8"), carry: "", partialSequence: 0 },
17
+ stderr: { decoder: new StringDecoder("utf8"), carry: "", partialSequence: 0 },
18
+ };
19
+ lines = [];
20
+ sequence = 0;
21
+ omittedLines = 0;
22
+ stdoutBytes = 0;
23
+ stderrBytes = 0;
24
+ truncated = false;
25
+ failed = false;
26
+ finished = false;
27
+ warned = false;
28
+ timer;
29
+ published = {
30
+ stdoutBytes: 0,
31
+ stderrBytes: 0,
32
+ truncated: false,
33
+ preview: "",
34
+ };
35
+ constructor(options) {
36
+ this.options = options;
37
+ this.maxLines = Math.max(1, Math.floor(options.maxLines ?? 100));
38
+ this.publishIntervalMs = Math.max(0, Math.floor(options.publishIntervalMs ?? 250));
39
+ this.redactors = {
40
+ stdout: new StreamingProcessOutputRedactor(options.secrets, 1, true),
41
+ stderr: new StreamingProcessOutputRedactor(options.secrets, 1, true),
42
+ };
43
+ }
44
+ writeStdout(chunk) {
45
+ this.write("stdout", chunk);
46
+ }
47
+ writeStderr(chunk) {
48
+ this.write("stderr", chunk);
49
+ }
50
+ snapshot() {
51
+ return this.failed ? undefined : this.published;
52
+ }
53
+ finalize() {
54
+ if (this.finished)
55
+ return this.failed ? undefined : this.published;
56
+ this.finished = true;
57
+ this.clearTimer();
58
+ if (this.failed)
59
+ return undefined;
60
+ try {
61
+ const partials = [];
62
+ for (const stream of ["stdout", "stderr"]) {
63
+ const state = this.streams[stream];
64
+ state.carry += state.decoder.end();
65
+ if (state.carry.length > 0) {
66
+ partials.push({
67
+ sequence: state.partialSequence || ++this.sequence,
68
+ stream,
69
+ text: state.carry,
70
+ });
71
+ state.carry = "";
72
+ state.partialSequence = 0;
73
+ }
74
+ }
75
+ const ready = [];
76
+ for (const line of partials.sort(bySequence)) {
77
+ ready.push(...this.redactors[line.stream].push(line.text, line, this.truncated));
78
+ }
79
+ ready.push(...this.redactors.stdout.finalize(this.truncated), ...this.redactors.stderr.finalize(this.truncated));
80
+ this.appendReady(ready);
81
+ this.published = this.render();
82
+ return this.published;
83
+ }
84
+ catch {
85
+ this.failClosed();
86
+ return undefined;
87
+ }
88
+ }
89
+ discard() {
90
+ this.finished = true;
91
+ this.clearTimer();
92
+ this.lines.length = 0;
93
+ this.streams.stdout.carry = "";
94
+ this.streams.stderr.carry = "";
95
+ this.streams.stdout.partialSequence = 0;
96
+ this.streams.stderr.partialSequence = 0;
97
+ this.redactors.stdout.clear();
98
+ this.redactors.stderr.clear();
99
+ }
100
+ write(stream, chunk) {
101
+ if (this.finished || this.failed)
102
+ return;
103
+ try {
104
+ const remaining = Math.max(0, this.options.maxOutputBytes - this.stdoutBytes - this.stderrBytes);
105
+ const accepted = chunk.length > remaining ? chunk.subarray(0, remaining) : chunk;
106
+ if (stream === "stdout")
107
+ this.stdoutBytes += accepted.length;
108
+ else
109
+ this.stderrBytes += accepted.length;
110
+ if (chunk.length > remaining)
111
+ this.truncated = true;
112
+ if (accepted.length > 0)
113
+ this.acceptDecoded(stream, this.streams[stream].decoder.write(accepted));
114
+ this.armPublication();
115
+ }
116
+ catch {
117
+ this.failClosed();
118
+ }
119
+ }
120
+ acceptDecoded(stream, decoded) {
121
+ const state = this.streams[stream];
122
+ state.carry += decoded;
123
+ let newline = state.carry.indexOf("\n");
124
+ while (newline >= 0) {
125
+ const text = state.carry.slice(0, newline).replace(/\r$/u, "");
126
+ state.carry = state.carry.slice(newline + 1);
127
+ const line = {
128
+ sequence: state.partialSequence || ++this.sequence,
129
+ stream,
130
+ text,
131
+ };
132
+ state.partialSequence = 0;
133
+ this.appendReady(this.redactors[stream].push(text, line));
134
+ newline = state.carry.indexOf("\n");
135
+ }
136
+ if (state.carry.length > 0 && state.partialSequence === 0) {
137
+ state.partialSequence = ++this.sequence;
138
+ }
139
+ }
140
+ appendReady(entries) {
141
+ for (const entry of entries) {
142
+ this.lines.push({ ...entry.value, text: entry.text });
143
+ }
144
+ this.lines.sort(bySequence);
145
+ while (this.lines.length > this.maxLines) {
146
+ this.lines.shift();
147
+ this.omittedLines += 1;
148
+ }
149
+ }
150
+ armPublication() {
151
+ if (this.timer !== undefined)
152
+ return;
153
+ this.timer = setTimeout(() => {
154
+ this.timer = undefined;
155
+ if (this.finished || this.failed)
156
+ return;
157
+ try {
158
+ this.published = this.render();
159
+ }
160
+ catch {
161
+ this.failClosed();
162
+ }
163
+ }, this.publishIntervalMs);
164
+ this.timer.unref?.();
165
+ }
166
+ render() {
167
+ const view = [...this.lines];
168
+ // Unterminated lines remain private until settlement: credential-shaped
169
+ // values do not have enough context for safe incremental publication. A
170
+ // clone may still safely finalize completed lines withheld as secret suffixes.
171
+ for (const stream of ["stdout", "stderr"]) {
172
+ const redactor = this.redactors[stream].clone();
173
+ for (const entry of redactor.finalize()) {
174
+ view.push({ ...entry.value, text: entry.text });
175
+ }
176
+ }
177
+ view.sort(bySequence);
178
+ const overflow = Math.max(0, view.length - this.maxLines);
179
+ const bounded = overflow === 0 ? view : view.slice(-this.maxLines);
180
+ return {
181
+ stdoutBytes: this.stdoutBytes,
182
+ stderrBytes: this.stderrBytes,
183
+ truncated: this.truncated,
184
+ preview: renderPreview(bounded, this.options.previewChars, this.omittedLines > 0 || overflow > 0),
185
+ };
186
+ }
187
+ clearTimer() {
188
+ if (this.timer !== undefined)
189
+ clearTimeout(this.timer);
190
+ this.timer = undefined;
191
+ }
192
+ failClosed() {
193
+ this.failed = true;
194
+ this.clearTimer();
195
+ this.lines.length = 0;
196
+ this.streams.stdout.carry = "";
197
+ this.streams.stderr.carry = "";
198
+ this.streams.stdout.partialSequence = 0;
199
+ this.streams.stderr.partialSequence = 0;
200
+ this.redactors.stdout.clear();
201
+ this.redactors.stderr.clear();
202
+ this.published = { stdoutBytes: 0, stderrBytes: 0, truncated: false, preview: "" };
203
+ if (!this.warned) {
204
+ this.warned = true;
205
+ try {
206
+ this.options.onFailure?.();
207
+ }
208
+ catch { /* output observers remain non-throwing */ }
209
+ }
210
+ }
211
+ }
212
+ const bySequence = (left, right) => left.sequence - right.sequence;
213
+ function renderPreview(input, maxChars, hadOmission) {
214
+ if (input.length === 0)
215
+ return "";
216
+ let lines = [...input];
217
+ let omitted = hadOmission;
218
+ let rendered = formatLines(lines, omitted);
219
+ while (rendered.length > maxChars && lines.length > 1) {
220
+ lines = lines.slice(1);
221
+ omitted = true;
222
+ rendered = formatLines(lines, omitted);
223
+ }
224
+ if (rendered.length <= maxChars)
225
+ return rendered;
226
+ const last = lines.at(-1);
227
+ const prefix = `${omitted ? `${EARLIER_OUTPUT_OMITTED}\n` : ""}${streamHeading(last.stream)}\n`;
228
+ if (prefix.length >= maxChars)
229
+ return prefix.slice(0, maxChars);
230
+ return `${prefix}${safeTailSlice(last.text, maxChars - prefix.length)}`;
231
+ }
232
+ function formatLines(lines, omitted) {
233
+ const parts = [];
234
+ if (omitted)
235
+ parts.push(EARLIER_OUTPUT_OMITTED);
236
+ let stream;
237
+ for (const line of lines) {
238
+ if (line.stream !== stream) {
239
+ stream = line.stream;
240
+ parts.push(streamHeading(stream));
241
+ }
242
+ parts.push(line.text);
243
+ }
244
+ return parts.join("\n");
245
+ }
246
+ function streamHeading(stream) {
247
+ return stream === "stdout" ? "STDOUT:" : "STDERR:";
248
+ }
249
+ function safeTailSlice(value, maxChars) {
250
+ if (value.length <= maxChars)
251
+ return value;
252
+ let sliced = value.slice(-Math.max(0, maxChars));
253
+ if (/^[\uDC00-\uDFFF]/u.test(sliced))
254
+ sliced = sliced.slice(1);
255
+ return sliced;
256
+ }
257
+ //# sourceMappingURL=process-job-output-tail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-job-output-tail.js","sourceRoot":"","sources":["../src/process-job-output-tail.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ export declare const PROCESS_JOBS_CAPS: Readonly<{
25
25
  maxQueueAgeMs: number;
26
26
  maxOutputBytes: number;
27
27
  previewChars: 8000;
28
- maxChainDepth: 8;
28
+ maxChainDepth: 64;
29
29
  retention: Readonly<{
30
30
  maxRecords: 10000;
31
31
  maxAgeMs: number;