@pellux/goodvibes-sdk 0.34.0 → 0.34.2

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 (195) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +1 -1
  2. package/dist/events/workflows.d.ts +4 -0
  3. package/dist/events/workflows.d.ts.map +1 -1
  4. package/dist/platform/agents/message-bus-core.d.ts +11 -0
  5. package/dist/platform/agents/message-bus-core.d.ts.map +1 -1
  6. package/dist/platform/agents/message-bus-core.js +28 -21
  7. package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
  8. package/dist/platform/agents/orchestrator-runner.js +6 -4
  9. package/dist/platform/agents/wrfc-config.d.ts.map +1 -1
  10. package/dist/platform/agents/wrfc-config.js +16 -10
  11. package/dist/platform/agents/wrfc-controller.d.ts +26 -0
  12. package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
  13. package/dist/platform/agents/wrfc-controller.js +134 -138
  14. package/dist/platform/agents/wrfc-runtime-events.d.ts +1 -0
  15. package/dist/platform/agents/wrfc-runtime-events.d.ts.map +1 -1
  16. package/dist/platform/agents/wrfc-runtime-events.js +4 -1
  17. package/dist/platform/automation/delivery-manager.d.ts.map +1 -1
  18. package/dist/platform/automation/delivery-manager.js +1 -6
  19. package/dist/platform/batch/manager.d.ts.map +1 -1
  20. package/dist/platform/batch/manager.js +1 -3
  21. package/dist/platform/channels/policy-manager.d.ts.map +1 -1
  22. package/dist/platform/channels/policy-manager.js +1 -3
  23. package/dist/platform/channels/reply-pipeline.d.ts.map +1 -1
  24. package/dist/platform/channels/reply-pipeline.js +4 -0
  25. package/dist/platform/config/schema-domain-core.d.ts +1 -1
  26. package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
  27. package/dist/platform/config/schema-domain-core.js +12 -12
  28. package/dist/platform/config/schema-domain-runtime.d.ts +1 -1
  29. package/dist/platform/config/schema-domain-runtime.d.ts.map +1 -1
  30. package/dist/platform/config/schema-domain-runtime.js +19 -18
  31. package/dist/platform/config/schema-domain-surfaces.d.ts +1 -1
  32. package/dist/platform/config/schema-domain-surfaces.d.ts.map +1 -1
  33. package/dist/platform/config/schema-domain-surfaces.js +4 -3
  34. package/dist/platform/config/schema-shared.d.ts +6 -0
  35. package/dist/platform/config/schema-shared.d.ts.map +1 -1
  36. package/dist/platform/config/schema-shared.js +21 -1
  37. package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
  38. package/dist/platform/control-plane/approval-broker.js +1 -3
  39. package/dist/platform/control-plane/session-broker-state.d.ts.map +1 -1
  40. package/dist/platform/control-plane/session-broker-state.js +1 -3
  41. package/dist/platform/core/compaction-sections.d.ts +3 -1
  42. package/dist/platform/core/compaction-sections.d.ts.map +1 -1
  43. package/dist/platform/core/compaction-sections.js +70 -66
  44. package/dist/platform/core/context-compaction.d.ts.map +1 -1
  45. package/dist/platform/core/context-compaction.js +10 -16
  46. package/dist/platform/core/orchestrator-context-runtime.d.ts +2 -2
  47. package/dist/platform/core/orchestrator-context-runtime.d.ts.map +1 -1
  48. package/dist/platform/core/orchestrator-context-runtime.js +24 -21
  49. package/dist/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
  50. package/dist/platform/core/orchestrator-tool-runtime.js +2 -1
  51. package/dist/platform/core/session-lineage.d.ts +2 -5
  52. package/dist/platform/core/session-lineage.d.ts.map +1 -1
  53. package/dist/platform/core/session-lineage.js +4 -16
  54. package/dist/platform/core/wrfc-routing.d.ts.map +1 -1
  55. package/dist/platform/core/wrfc-routing.js +1 -3
  56. package/dist/platform/daemon/http/mcp-routes.d.ts.map +1 -1
  57. package/dist/platform/daemon/http/mcp-routes.js +1 -3
  58. package/dist/platform/daemon/http/openai-compatible-routes.d.ts.map +1 -1
  59. package/dist/platform/daemon/http/openai-compatible-routes.js +1 -3
  60. package/dist/platform/daemon/http/runtime-routes.d.ts.map +1 -1
  61. package/dist/platform/daemon/http/runtime-routes.js +1 -3
  62. package/dist/platform/hooks/runners/http.d.ts.map +1 -1
  63. package/dist/platform/hooks/runners/http.js +9 -19
  64. package/dist/platform/integrations/webhooks.js +2 -11
  65. package/dist/platform/knowledge/semantic/self-improvement.d.ts.map +1 -1
  66. package/dist/platform/knowledge/semantic/self-improvement.js +2 -21
  67. package/dist/platform/mcp/client.d.ts.map +1 -1
  68. package/dist/platform/mcp/client.js +1 -3
  69. package/dist/platform/mcp/config.d.ts.map +1 -1
  70. package/dist/platform/mcp/config.js +1 -3
  71. package/dist/platform/media/builtin-generation-providers.d.ts.map +1 -1
  72. package/dist/platform/media/builtin-generation-providers.js +1 -6
  73. package/dist/platform/providers/anthropic-compat.d.ts.map +1 -1
  74. package/dist/platform/providers/anthropic-compat.js +11 -131
  75. package/dist/platform/providers/anthropic-sdk-provider.d.ts.map +1 -1
  76. package/dist/platform/providers/anthropic-sdk-provider.js +8 -42
  77. package/dist/platform/providers/anthropic-sse-assembler.d.ts +80 -0
  78. package/dist/platform/providers/anthropic-sse-assembler.d.ts.map +1 -0
  79. package/dist/platform/providers/anthropic-sse-assembler.js +146 -0
  80. package/dist/platform/providers/anthropic-stream.d.ts +30 -0
  81. package/dist/platform/providers/anthropic-stream.d.ts.map +1 -0
  82. package/dist/platform/providers/anthropic-stream.js +44 -0
  83. package/dist/platform/providers/anthropic-vertex.d.ts.map +1 -1
  84. package/dist/platform/providers/anthropic-vertex.js +1 -3
  85. package/dist/platform/providers/anthropic.d.ts.map +1 -1
  86. package/dist/platform/providers/anthropic.js +15 -151
  87. package/dist/platform/providers/capabilities.d.ts.map +1 -1
  88. package/dist/platform/providers/capabilities.js +11 -7
  89. package/dist/platform/providers/context-discovery.d.ts.map +1 -1
  90. package/dist/platform/providers/context-discovery.js +9 -16
  91. package/dist/platform/providers/context-window-fallback.d.ts +24 -0
  92. package/dist/platform/providers/context-window-fallback.d.ts.map +1 -0
  93. package/dist/platform/providers/context-window-fallback.js +48 -0
  94. package/dist/platform/providers/gemini.d.ts.map +1 -1
  95. package/dist/platform/providers/gemini.js +3 -6
  96. package/dist/platform/providers/json-ttl-cache.d.ts +35 -0
  97. package/dist/platform/providers/json-ttl-cache.d.ts.map +1 -0
  98. package/dist/platform/providers/json-ttl-cache.js +52 -0
  99. package/dist/platform/providers/llama-cpp.d.ts.map +1 -1
  100. package/dist/platform/providers/llama-cpp.js +2 -23
  101. package/dist/platform/providers/lm-studio-helpers.d.ts +1 -1
  102. package/dist/platform/providers/lm-studio-helpers.d.ts.map +1 -1
  103. package/dist/platform/providers/lm-studio-helpers.js +5 -25
  104. package/dist/platform/providers/model-benchmarks.d.ts.map +1 -1
  105. package/dist/platform/providers/model-benchmarks.js +11 -34
  106. package/dist/platform/providers/model-catalog-cache.d.ts.map +1 -1
  107. package/dist/platform/providers/model-catalog-cache.js +15 -38
  108. package/dist/platform/providers/model-catalog-synthetic.d.ts.map +1 -1
  109. package/dist/platform/providers/model-catalog-synthetic.js +3 -2
  110. package/dist/platform/providers/model-catalog.d.ts.map +1 -1
  111. package/dist/platform/providers/model-catalog.js +3 -2
  112. package/dist/platform/providers/model-limits.d.ts.map +1 -1
  113. package/dist/platform/providers/model-limits.js +18 -42
  114. package/dist/platform/providers/ollama.d.ts.map +1 -1
  115. package/dist/platform/providers/ollama.js +3 -24
  116. package/dist/platform/providers/openai-codex.d.ts.map +1 -1
  117. package/dist/platform/providers/openai-codex.js +8 -9
  118. package/dist/platform/providers/openai-compat.d.ts.map +1 -1
  119. package/dist/platform/providers/openai-compat.js +13 -40
  120. package/dist/platform/providers/openai-stream-helpers.d.ts +62 -0
  121. package/dist/platform/providers/openai-stream-helpers.d.ts.map +1 -0
  122. package/dist/platform/providers/openai-stream-helpers.js +73 -0
  123. package/dist/platform/providers/openai.d.ts.map +1 -1
  124. package/dist/platform/providers/openai.js +13 -41
  125. package/dist/platform/providers/provider-error.d.ts +17 -0
  126. package/dist/platform/providers/provider-error.d.ts.map +1 -0
  127. package/dist/platform/providers/provider-error.js +33 -0
  128. package/dist/platform/providers/provider-stop-reason.d.ts +15 -0
  129. package/dist/platform/providers/provider-stop-reason.d.ts.map +1 -0
  130. package/dist/platform/providers/provider-stop-reason.js +15 -0
  131. package/dist/platform/providers/sse-line-buffer.d.ts +13 -0
  132. package/dist/platform/providers/sse-line-buffer.d.ts.map +1 -0
  133. package/dist/platform/providers/sse-line-buffer.js +23 -0
  134. package/dist/platform/providers/tool-formats.d.ts +5 -0
  135. package/dist/platform/providers/tool-formats.d.ts.map +1 -1
  136. package/dist/platform/providers/tool-formats.js +14 -0
  137. package/dist/platform/runtime/bootstrap-runtime-events.d.ts.map +1 -1
  138. package/dist/platform/runtime/bootstrap-runtime-events.js +6 -0
  139. package/dist/platform/runtime/bootstrap-services.d.ts.map +1 -1
  140. package/dist/platform/runtime/bootstrap-services.js +4 -5
  141. package/dist/platform/runtime/emitters/workflows.d.ts +4 -0
  142. package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
  143. package/dist/platform/runtime/emitters/workflows.js +3 -0
  144. package/dist/platform/runtime/remote/distributed-runtime-store.d.ts.map +1 -1
  145. package/dist/platform/runtime/remote/distributed-runtime-store.js +1 -3
  146. package/dist/platform/runtime/retention/pruner.js +2 -5
  147. package/dist/platform/runtime/store/helpers/reducers/lifecycle.d.ts.map +1 -1
  148. package/dist/platform/runtime/store/helpers/reducers/lifecycle.js +15 -14
  149. package/dist/platform/runtime/store/helpers/reducers/shared.d.ts +6 -0
  150. package/dist/platform/runtime/store/helpers/reducers/shared.d.ts.map +1 -1
  151. package/dist/platform/runtime/store/helpers/reducers/shared.js +8 -1
  152. package/dist/platform/runtime/telemetry/exporters/queue.d.ts.map +1 -1
  153. package/dist/platform/runtime/telemetry/exporters/queue.js +1 -7
  154. package/dist/platform/runtime/transports/http-helpers.d.ts +0 -1
  155. package/dist/platform/runtime/transports/http-helpers.d.ts.map +1 -1
  156. package/dist/platform/runtime/transports/http-helpers.js +1 -3
  157. package/dist/platform/runtime/ui-read-model-helpers.d.ts +2 -0
  158. package/dist/platform/runtime/ui-read-model-helpers.d.ts.map +1 -1
  159. package/dist/platform/runtime/ui-read-model-helpers.js +8 -0
  160. package/dist/platform/runtime/ui-read-models-core.d.ts.map +1 -1
  161. package/dist/platform/runtime/ui-read-models-core.js +3 -5
  162. package/dist/platform/runtime/ui-read-models-observability-remote.d.ts.map +1 -1
  163. package/dist/platform/runtime/ui-read-models-observability-remote.js +2 -4
  164. package/dist/platform/runtime/ui-read-models-operations.d.ts.map +1 -1
  165. package/dist/platform/runtime/ui-read-models-operations.js +8 -26
  166. package/dist/platform/scheduler/scheduler.d.ts.map +1 -1
  167. package/dist/platform/scheduler/scheduler.js +1 -3
  168. package/dist/platform/tools/agent/index.d.ts +1 -0
  169. package/dist/platform/tools/agent/index.d.ts.map +1 -1
  170. package/dist/platform/tools/agent/index.js +1 -0
  171. package/dist/platform/tools/agent/predicates.d.ts +15 -0
  172. package/dist/platform/tools/agent/predicates.d.ts.map +1 -0
  173. package/dist/platform/tools/agent/predicates.js +15 -0
  174. package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
  175. package/dist/platform/tools/exec/runtime.js +1 -7
  176. package/dist/platform/tools/fetch/runtime.d.ts.map +1 -1
  177. package/dist/platform/tools/fetch/runtime.js +9 -20
  178. package/dist/platform/tools/shared/process-manager.d.ts.map +1 -1
  179. package/dist/platform/tools/shared/process-manager.js +1 -6
  180. package/dist/platform/utils/concurrency.d.ts +1 -0
  181. package/dist/platform/utils/concurrency.d.ts.map +1 -1
  182. package/dist/platform/utils/concurrency.js +1 -0
  183. package/dist/platform/utils/error-display.d.ts +9 -0
  184. package/dist/platform/utils/error-display.d.ts.map +1 -1
  185. package/dist/platform/utils/error-display.js +11 -0
  186. package/dist/platform/utils/fetch-with-timeout.d.ts +22 -2
  187. package/dist/platform/utils/fetch-with-timeout.d.ts.map +1 -1
  188. package/dist/platform/utils/fetch-with-timeout.js +33 -15
  189. package/dist/platform/utils/record-coerce.d.ts +5 -0
  190. package/dist/platform/utils/record-coerce.d.ts.map +1 -1
  191. package/dist/platform/utils/record-coerce.js +7 -0
  192. package/dist/platform/utils/retry.d.ts.map +1 -1
  193. package/dist/platform/utils/retry.js +2 -4
  194. package/dist/platform/version.js +1 -1
  195. package/package.json +9 -9
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { PersistentStore } from '../state/persistent-store.js';
3
+ import { isRecord } from '../utils/record-coerce.js';
3
4
  const MAX_AUDIT_RECORDS = 500;
4
5
  function defaultPolicy(surface) {
5
6
  return {
@@ -52,9 +53,6 @@ function commandAllowed(command, allowedCommands) {
52
53
  }
53
54
  const CONVERSATION_POLICIES = new Set(['allow', 'deny', 'inherit']);
54
55
  const CONVERSATION_KINDS = new Set(['direct', 'group', 'channel', 'thread', 'service']);
55
- function isRecord(value) {
56
- return typeof value === 'object' && value !== null && !Array.isArray(value);
57
- }
58
56
  function isFiniteNumber(value) {
59
57
  return typeof value === 'number' && Number.isFinite(value);
60
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reply-pipeline.d.ts","sourceRoot":"","sources":["../../../src/platform/channels/reply-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAiB,MAAM,4BAA4B,CAAC;AACxH,OAAO,KAAK,EACV,kBAAkB,EAIlB,mBAAmB,EAEnB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAO9D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CAC3C;AAiRD,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,GACvE,kBAAkB,EAAE,CAqItB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;gBAE3C,IAAI,EAAE,iBAAiB;IAOnC,gBAAgB,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IA0B1D,OAAO,IAAI,IAAI;IAMf,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAUhD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS9B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAIjD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAe3G,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO,GAChD,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;YA0BxB,cAAc;YAiDd,sBAAsB;IAsCpC,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,sBAAsB;YAahB,aAAa;YAIb,QAAQ;IA0CtB,OAAO,CAAC,oBAAoB;CAK7B"}
1
+ {"version":3,"file":"reply-pipeline.d.ts","sourceRoot":"","sources":["../../../src/platform/channels/reply-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAiB,MAAM,4BAA4B,CAAC;AACxH,OAAO,KAAK,EACV,kBAAkB,EAIlB,mBAAmB,EAEnB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAO9D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CAC3C;AAiRD,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,GACvE,kBAAkB,EAAE,CAyItB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;gBAE3C,IAAI,EAAE,iBAAiB;IAOnC,gBAAgB,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IA0B1D,OAAO,IAAI,IAAI;IAMf,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAUhD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS9B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAIjD,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAe3G,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO,GAChD,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;YA0BxB,cAAc;YAiDd,sBAAsB;IAsCpC,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,sBAAsB;YAahB,aAAa;YAIb,QAAQ;IA0CtB,OAAO,CAAC,oBAAoB;CAK7B"}
@@ -358,6 +358,10 @@ export function normalizeChannelRenderEventFromRuntime(envelope) {
358
358
  return [renderEvent('status', 'progress', envelope, {
359
359
  text: `WRFC changes committed${payload.commitHash ? `: ${payload.commitHash}` : ''}`,
360
360
  })];
361
+ case 'WORKFLOW_SCORE_REGRESSION':
362
+ return [renderEvent('status', 'progress', envelope, {
363
+ text: `WRFC score regression warning: ${payload.reason}`,
364
+ })];
361
365
  case 'WORKFLOW_CASCADE_ABORTED':
362
366
  return [renderEvent('error', 'progress', envelope, {
363
367
  text: `WRFC cascade warning: ${payload.reason}`,
@@ -1,4 +1,4 @@
1
- import type { ConfigSettingDefinition } from './schema-shared.js';
1
+ import { type ConfigSettingDefinition } from './schema-shared.js';
2
2
  export declare const coreConfigDefaults: {
3
3
  display: {
4
4
  stream: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-domain-core.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+H9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,EA+Z3D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,EAsI3D,CAAC"}
1
+ {"version":3,"file":"schema-domain-core.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAA4B,MAAM,oBAAoB,CAAC;AAE5F,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+H9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,EA8Z3D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,EAsI3D,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { intRange, numRange, port } from './schema-shared.js';
1
2
  export const coreConfigDefaults = {
2
3
  display: {
3
4
  stream: true,
@@ -145,7 +146,7 @@ export const coreHeadConfigSettings = [
145
146
  type: 'number',
146
147
  default: 30,
147
148
  description: 'Line count threshold for collapsing tool output',
148
- validate: (v) => typeof v === 'number' && v >= 1 && v <= 1000,
149
+ ...numRange(1, 1000),
149
150
  },
150
151
  {
151
152
  key: 'display.theme',
@@ -219,7 +220,7 @@ export const coreHeadConfigSettings = [
219
220
  type: 'number',
220
221
  default: 80,
221
222
  description: 'Compact conversation when context usage exceeds this percentage',
222
- validate: (v) => typeof v === 'number' && v >= 10 && v <= 100,
223
+ ...numRange(10, 100),
223
224
  },
224
225
  {
225
226
  key: 'behavior.staleContextWarnings',
@@ -265,7 +266,7 @@ export const coreHeadConfigSettings = [
265
266
  type: 'number',
266
267
  default: 512 * 1024 * 1024,
267
268
  description: 'Maximum stored artifact size for file, URL, multipart, and raw upload ingest in bytes',
268
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 * 1024 * 1024 && v <= 10 * 1024 * 1024 * 1024,
269
+ ...intRange(1 * 1024 * 1024, 10 * 1024 * 1024 * 1024),
269
270
  },
270
271
  {
271
272
  key: 'permissions.mode',
@@ -383,14 +384,14 @@ export const coreHeadConfigSettings = [
383
384
  type: 'number',
384
385
  default: 8,
385
386
  description: 'Total active agents allowed across the orchestration tree',
386
- validate: (v) => typeof v === 'number' && v >= 1 && v <= 20,
387
+ ...numRange(1, 20),
387
388
  },
388
389
  {
389
390
  key: 'orchestration.maxDepth',
390
391
  type: 'number',
391
392
  default: 0,
392
393
  description: 'Maximum recursive orchestration depth: 0=disabled, higher values allow deeper bounded recursion',
393
- validate: (v) => typeof v === 'number' && v >= 0 && v <= 5,
394
+ ...numRange(0, 5),
394
395
  },
395
396
  {
396
397
  key: 'sandbox.replIsolation',
@@ -449,7 +450,7 @@ export const coreHeadConfigSettings = [
449
450
  type: 'number',
450
451
  default: 2222,
451
452
  description: 'Optional guest SSH port used by the QEMU wrapper for real guest command transport',
452
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 65535,
453
+ ...port(),
453
454
  },
454
455
  {
455
456
  key: 'sandbox.qemuGuestUser',
@@ -518,8 +519,7 @@ export const coreHeadConfigSettings = [
518
519
  type: 'number',
519
520
  default: 1.0,
520
521
  description: 'Playback speed multiplier for TTS synthesis (0.25–4.0); 1.0 is normal speed',
521
- validate: (v) => typeof v === 'number' && Number.isFinite(v) && v >= 0.25 && v <= 4.0,
522
- validationHint: 'finite number in [0.25, 4.0]',
522
+ ...numRange(0.25, 4.0),
523
523
  },
524
524
  {
525
525
  key: 'ui.operationalMessages',
@@ -585,7 +585,7 @@ export const coreTailConfigSettings = [
585
585
  type: 'number',
586
586
  default: 5000,
587
587
  description: 'Default token budget for precision read operations',
588
- validate: (v) => typeof v === 'number' && v >= 100 && v <= 100000,
588
+ ...numRange(100, 100000),
589
589
  },
590
590
  {
591
591
  key: 'tools.hooksFile',
@@ -598,14 +598,14 @@ export const coreTailConfigSettings = [
598
598
  type: 'number',
599
599
  default: 9.9,
600
600
  description: 'Minimum review score to pass WRFC (0-10)',
601
- validate: (v) => typeof v === 'number' && v >= 0 && v <= 10,
601
+ ...numRange(0, 10),
602
602
  },
603
603
  {
604
604
  key: 'wrfc.maxFixAttempts',
605
605
  type: 'number',
606
606
  default: 5,
607
607
  description: 'Maximum gate retry depth before aborting WRFC chain',
608
- validate: (v) => typeof v === 'number' && v >= 1 && v <= 20,
608
+ ...numRange(1, 20),
609
609
  },
610
610
  {
611
611
  key: 'wrfc.autoCommit',
@@ -644,7 +644,7 @@ export const coreTailConfigSettings = [
644
644
  type: 'number',
645
645
  default: 0.3,
646
646
  description: 'Warn when cache hit rate falls below this fraction (0.0–1.0)',
647
- validate: (v) => typeof v === 'number' && v >= 0 && v <= 1,
647
+ ...numRange(0, 1),
648
648
  },
649
649
  {
650
650
  key: 'helper.enabled',
@@ -1,4 +1,4 @@
1
- import type { ConfigSettingDefinition } from './schema-shared.js';
1
+ import { type ConfigSettingDefinition } from './schema-shared.js';
2
2
  export declare const runtimeConfigDefaults: {
3
3
  runtime: {
4
4
  companionChatLimiter: {
@@ -1 +1 @@
1
- {"version":3,"file":"schema-domain-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HjC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,uBAAuB,EAsNjE,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,uBAAuB,EA+WnE,CAAC"}
1
+ {"version":3,"file":"schema-domain-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAkB,MAAM,oBAAoB,CAAC;AAElF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HjC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,uBAAuB,EAsNjE,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,uBAAuB,EA+WnE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { intRange, port } from './schema-shared.js';
1
2
  export const runtimeConfigDefaults = {
2
3
  runtime: {
3
4
  companionChatLimiter: {
@@ -138,35 +139,35 @@ export const runtimePrimaryConfigSettings = [
138
139
  type: 'number',
139
140
  default: 4,
140
141
  description: 'Maximum automation runs that may execute concurrently',
141
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 64,
142
+ ...intRange(1, 64),
142
143
  },
143
144
  {
144
145
  key: 'automation.runHistoryLimit',
145
146
  type: 'number',
146
147
  default: 100,
147
148
  description: 'Maximum run history entries retained per automation job',
148
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 5000,
149
+ ...intRange(1, 5000),
149
150
  },
150
151
  {
151
152
  key: 'automation.defaultTimeoutMs',
152
153
  type: 'number',
153
154
  default: 15 * 60 * 1000,
154
155
  description: 'Default execution timeout for automation runs in milliseconds',
155
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1_000 && v <= 24 * 60 * 60 * 1000,
156
+ ...intRange(1_000, 24 * 60 * 60 * 1000),
156
157
  },
157
158
  {
158
159
  key: 'automation.catchUpWindowMinutes',
159
160
  type: 'number',
160
161
  default: 30,
161
162
  description: 'How long after startup the engine should catch up missed runs',
162
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 0 && v <= 24 * 60,
163
+ ...intRange(0, 24 * 60),
163
164
  },
164
165
  {
165
166
  key: 'automation.failureCooldownMs',
166
167
  type: 'number',
167
168
  default: 5 * 60 * 1000,
168
169
  description: 'Cooldown applied after a failed automation run before retrying',
169
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 0 && v <= 24 * 60 * 60 * 1000,
170
+ ...intRange(0, 24 * 60 * 60 * 1000),
170
171
  },
171
172
  {
172
173
  key: 'automation.deleteAfterRun',
@@ -198,7 +199,7 @@ export const runtimePrimaryConfigSettings = [
198
199
  type: 'number',
199
200
  default: 3421,
200
201
  description: 'Bind port for the control-plane HTTP server',
201
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 65535,
202
+ ...port(),
202
203
  },
203
204
  {
204
205
  key: 'controlPlane.baseUrl',
@@ -275,7 +276,7 @@ export const runtimePrimaryConfigSettings = [
275
276
  type: 'number',
276
277
  default: 3422,
277
278
  description: 'Bind port for the webhook HTTP listener',
278
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 65535,
279
+ ...port(),
279
280
  },
280
281
  {
281
282
  key: 'httpListener.trustProxy',
@@ -326,7 +327,7 @@ export const runtimePrimaryConfigSettings = [
326
327
  type: 'number',
327
328
  default: 3423,
328
329
  description: 'Bind port for the web surface',
329
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 65535,
330
+ ...port(),
330
331
  },
331
332
  {
332
333
  key: 'web.publicBaseUrl',
@@ -353,21 +354,21 @@ export const runtimeSecondaryConfigSettings = [
353
354
  type: 'number',
354
355
  default: 60_000,
355
356
  description: 'Polling interval for watcher sources in milliseconds',
356
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1_000 && v <= 24 * 60 * 60 * 1000,
357
+ ...intRange(1_000, 24 * 60 * 60 * 1000),
357
358
  },
358
359
  {
359
360
  key: 'watchers.heartbeatIntervalMs',
360
361
  type: 'number',
361
362
  default: 15_000,
362
363
  description: 'Heartbeat interval for watcher services in milliseconds',
363
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1_000 && v <= 60 * 60 * 1000,
364
+ ...intRange(1_000, 60 * 60 * 1000),
364
365
  },
365
366
  {
366
367
  key: 'watchers.recoveryWindowMinutes',
367
368
  type: 'number',
368
369
  default: 10,
369
370
  description: 'Recovery window for watcher restart and missed-event catch-up',
370
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 0 && v <= 24 * 60,
371
+ ...intRange(0, 24 * 60),
371
372
  },
372
373
  {
373
374
  key: 'service.enabled',
@@ -451,7 +452,7 @@ export const runtimeSecondaryConfigSettings = [
451
452
  default: 100,
452
453
  description: 'Maximum number of listeners per event channel (per-type and per-domain) before a warning is emitted in production ' +
453
454
  'or a RangeError is thrown in development mode. Raise this only if you have verified there is no subscriber leak.',
454
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 100_000,
455
+ ...intRange(1, 100_000),
455
456
  },
456
457
  {
457
458
  key: 'telemetry.includeRawPrompts',
@@ -487,35 +488,35 @@ export const runtimeSecondaryConfigSettings = [
487
488
  type: 'number',
488
489
  default: 60_000,
489
490
  description: 'Daemon-local batch scheduler tick interval in milliseconds',
490
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 5_000 && v <= 60 * 60 * 1000,
491
+ ...intRange(5_000, 60 * 60 * 1000),
491
492
  },
492
493
  {
493
494
  key: 'batch.maxDelayMs',
494
495
  type: 'number',
495
496
  default: 5 * 60 * 1000,
496
497
  description: 'Maximum time a queued local batch job should wait before the daemon submits its provider batch',
497
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 0 && v <= 24 * 60 * 60 * 1000,
498
+ ...intRange(0, 24 * 60 * 60 * 1000),
498
499
  },
499
500
  {
500
501
  key: 'batch.maxJobsPerProviderBatch',
501
502
  type: 'number',
502
503
  default: 100,
503
504
  description: 'Maximum SDK jobs grouped into a single upstream provider batch submission',
504
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 100_000,
505
+ ...intRange(1, 100_000),
505
506
  },
506
507
  {
507
508
  key: 'batch.maxQueuePayloadBytes',
508
509
  type: 'number',
509
510
  default: 16 * 1024,
510
511
  description: 'Recommended maximum Cloudflare queue message payload size; queue messages should be signals, not full prompt archives',
511
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1024 && v <= 128 * 1024,
512
+ ...intRange(1024, 128 * 1024),
512
513
  },
513
514
  {
514
515
  key: 'batch.maxQueueMessagesPerDay',
515
516
  type: 'number',
516
517
  default: 1_000,
517
518
  description: 'SDK-side free-tier guardrail for Cloudflare queue message volume',
518
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 0 && v <= 10_000_000,
519
+ ...intRange(0, 10_000_000),
519
520
  },
520
521
  {
521
522
  key: 'cloudflare.enabled',
@@ -703,6 +704,6 @@ export const runtimeSecondaryConfigSettings = [
703
704
  type: 'number',
704
705
  default: 10_000,
705
706
  description: 'Free-tier queue operation budget used by clients to warn before Cloudflare queue usage exceeds the intended budget',
706
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 0 && v <= 10_000_000,
707
+ ...intRange(0, 10_000_000),
707
708
  },
708
709
  ];
@@ -1,4 +1,4 @@
1
- import type { ConfigSettingDefinition } from './schema-shared.js';
1
+ import { type ConfigSettingDefinition } from './schema-shared.js';
2
2
  export declare const surfaceConfigDefaults: {
3
3
  slack: {
4
4
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-domain-surfaces.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-surfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,uBAAuB,EA8b1D,CAAC"}
1
+ {"version":3,"file":"schema-domain-surfaces.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-surfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAY,MAAM,oBAAoB,CAAC;AAE5E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,uBAAuB,EA8b1D,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { intRange } from './schema-shared.js';
1
2
  export const surfaceConfigDefaults = {
2
3
  slack: {
3
4
  enabled: false,
@@ -261,7 +262,7 @@ export const surfaceConfigSettings = [
261
262
  type: 'number',
262
263
  default: 3,
263
264
  description: 'Default ntfy priority (1-5)',
264
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 5,
265
+ ...intRange(1, 5),
265
266
  },
266
267
  {
267
268
  key: 'surfaces.webhook.enabled',
@@ -280,7 +281,7 @@ export const surfaceConfigSettings = [
280
281
  type: 'number',
281
282
  default: 10_000,
282
283
  description: 'Outbound webhook timeout in milliseconds',
283
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1_000 && v <= 60_000,
284
+ ...intRange(1_000, 60_000),
284
285
  },
285
286
  {
286
287
  key: 'surfaces.webhook.secret',
@@ -341,7 +342,7 @@ export const surfaceConfigSettings = [
341
342
  type: 'number',
342
343
  default: 20 * 60_000,
343
344
  description: 'Idle TTL for Home Assistant remote conversation sessions before the daemon closes them',
344
- validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 60_000 && v <= 24 * 60 * 60_000,
345
+ ...intRange(60_000, 24 * 60 * 60_000),
345
346
  },
346
347
  {
347
348
  key: 'surfaces.telegram.enabled',
@@ -13,4 +13,10 @@ export interface ConfigSettingDefinition {
13
13
  */
14
14
  validationHint?: string | undefined;
15
15
  }
16
+ /** Returns validate + validationHint for an integer in [min, max]. */
17
+ export declare function intRange(min: number, max: number): Pick<ConfigSettingDefinition, 'validate' | 'validationHint'>;
18
+ /** Returns validate + validationHint for a float in [min, max]. */
19
+ export declare function numRange(min: number, max: number): Pick<ConfigSettingDefinition, 'validate' | 'validationHint'>;
20
+ /** Returns validate + validationHint for a TCP port (integer in [1, 65535]). */
21
+ export declare function port(): Pick<ConfigSettingDefinition, 'validate' | 'validationHint'>;
16
22
  //# sourceMappingURL=schema-shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-shared.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-shared.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACrD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC"}
1
+ {"version":3,"file":"schema-shared.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-shared.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACrD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAK9D;AAED,mEAAmE;AACnE,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAK9D;AAED,gFAAgF;AAChF,wBAAgB,IAAI,IAAI,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,gBAAgB,CAAC,CAKnF"}
@@ -1,2 +1,22 @@
1
1
  /** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
2
- export {};
2
+ /** Returns validate + validationHint for an integer in [min, max]. */
3
+ export function intRange(min, max) {
4
+ return {
5
+ validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= min && v <= max,
6
+ validationHint: `integer in [${min}, ${max}]`,
7
+ };
8
+ }
9
+ /** Returns validate + validationHint for a float in [min, max]. */
10
+ export function numRange(min, max) {
11
+ return {
12
+ validate: (v) => typeof v === 'number' && v >= min && v <= max,
13
+ validationHint: `number in [${min}, ${max}]`,
14
+ };
15
+ }
16
+ /** Returns validate + validationHint for a TCP port (integer in [1, 65535]). */
17
+ export function port() {
18
+ return {
19
+ validate: (v) => typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 65535,
20
+ validationHint: 'integer port in [1, 65535]',
21
+ };
22
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"approval-broker.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/approval-broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-broker.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/approval-broker.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { PersistentStore } from '../state/persistent-store.js';
3
3
  import { logger } from '../utils/logger.js';
4
+ import { isRecord } from '../utils/record-coerce.js';
4
5
  function sortApprovals(records) {
5
6
  return [...records].sort((a, b) => b.updatedAt - a.updatedAt || a.id.localeCompare(b.id));
6
7
  }
@@ -16,9 +17,6 @@ const APPROVAL_AUDIT_ACTIONS = new Set([
16
17
  ]);
17
18
  const PERMISSION_CATEGORIES = new Set(['read', 'write', 'execute', 'delegate']);
18
19
  const PERMISSION_RISK_LEVELS = new Set(['low', 'medium', 'high', 'critical']);
19
- function isRecord(value) {
20
- return typeof value === 'object' && value !== null && !Array.isArray(value);
21
- }
22
20
  function isFiniteNumber(value) {
23
21
  return typeof value === 'number' && Number.isFinite(value);
24
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-broker-state.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/session-broker-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AA2Q9G,wBAAgB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,EAAE,CAE1F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,EAAE,CAE5F;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,EAAE,CAElG;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,GAAG;IAC/F,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;CAC1D,CAsCA;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC,CAAC;CAC3E,EACD,oBAAoB,EAAE,MAAM,GAC3B,0BAA0B,CAQ5B;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,SAAS,wBAAwB,EAAE,EACjD,WAAW,EAAE,wBAAwB,GACpC,wBAAwB,EAAE,CAM5B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,GAAG,MAAM,CAI9F"}
1
+ {"version":3,"file":"session-broker-state.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/session-broker-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAyQ9G,wBAAgB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,EAAE,CAE1F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,EAAE,CAE5F;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,EAAE,CAElG;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,GAAG;IAC/F,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;CAC1D,CAsCA;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC,CAAC;CAC3E,EACD,oBAAoB,EAAE,MAAM,GAC3B,0BAA0B,CAQ5B;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,SAAS,wBAAwB,EAAE,EACjD,WAAW,EAAE,wBAAwB,GACpC,wBAAwB,EAAE,CAM5B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,GAAG,MAAM,CAI9F"}
@@ -1,10 +1,8 @@
1
1
  import { SHARED_SESSION_INPUT_INTENTS, SHARED_SESSION_INPUT_STATES, } from './session-intents.js';
2
+ import { isRecord } from '../utils/record-coerce.js';
2
3
  const SESSION_KINDS = new Set(['tui', 'companion-task', 'companion-chat']);
3
4
  const SESSION_STATUSES = new Set(['active', 'closed']);
4
5
  const MESSAGE_ROLES = new Set(['user', 'assistant', 'system']);
5
- function isRecord(value) {
6
- return typeof value === 'object' && value !== null && !Array.isArray(value);
7
- }
8
6
  function isFiniteNumber(value) {
9
7
  return typeof value === 'number' && Number.isFinite(value);
10
8
  }
@@ -9,11 +9,13 @@
9
9
  *
10
10
  * Empty sections return null — the orchestrator omits them entirely (no header).
11
11
  */
12
- import type { ProviderMessage } from '../providers/interface.js';
12
+ import type { ProviderMessage, ContentPart } from '../providers/interface.js';
13
13
  import type { AgentRecord } from '../tools/agent/index.js';
14
14
  import type { WrfcChain } from '../agents/wrfc-types.js';
15
15
  import type { ExecutionPlan } from './execution-plan.js';
16
16
  import type { CompactionSection, SessionMemory } from './compaction-types.js';
17
+ /** Extract plain text from a ProviderMessage content field. */
18
+ export declare function extractText(content: string | ContentPart[]): string;
17
19
  /**
18
20
  * buildHandoffHeader — always returns the mandatory handoff header.
19
21
  * This is the first line of every compacted output.
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-sections.d.ts","sourceRoot":"","sources":["../../../src/platform/core/compaction-sections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAoB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAgChG;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,CAStD;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EAAE,GACxB,iBAAiB,GAAG,IAAI,CAQ1B;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,GAC7B,iBAAiB,GAAG,IAAI,CAM1B;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,EAAE,SAAS,EAAE,GAClB,iBAAiB,GAAG,IAAI,CAqB1B;AAMD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,SAAO,GACf,eAAe,EAAE,CAkBnB;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,CA0B9E;AAMD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,eAAe,EAAE,GAClC,MAAM,CA4BR;AAMD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EAAE,EACnB,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,SAAS,EAAE,CAAA;CAAE,CA8CrE;AAsBD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CA2B7E;AAMD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,eAAe,EAAE,GAC1B,MAAM,CA0BR;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,GAAG,IAAI,GACzB,iBAAiB,GAAG,IAAI,CAuC1B;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,EAAE,MAAM,GACtB,iBAAiB,GAAG,IAAI,CAa1B"}
1
+ {"version":3,"file":"compaction-sections.d.ts","sourceRoot":"","sources":["../../../src/platform/core/compaction-sections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAoB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGhG,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,MAAM,CAMnE;AAuBD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,CAStD;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EAAE,GACxB,iBAAiB,GAAG,IAAI,CAQ1B;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,MAAM,GAAG,IAAI,GAC7B,iBAAiB,GAAG,IAAI,CAM1B;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,EAAE,SAAS,EAAE,GAClB,iBAAiB,GAAG,IAAI,CAmB1B;AAMD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,SAAO,GACf,eAAe,EAAE,CAkBnB;AAqCD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,CAgB9E;AAMD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,eAAe,EAAE,GAClC,MAAM,CAkBR;AAMD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EAAE,EACnB,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,SAAS,EAAE,CAAA;CAAE,CA8CrE;AAsBD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CA2B7E;AAMD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,eAAe,EAAE,GAC1B,MAAM,CAgBR;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,GAAG,IAAI,GACzB,iBAAiB,GAAG,IAAI,CAuC1B;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,EAAE,MAAM,GACtB,iBAAiB,GAAG,IAAI,CAa1B"}