groundswell 0.0.3 → 1.0.0

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 (292) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -9
  3. package/dist/cache/cache-key.d.ts +20 -0
  4. package/dist/cache/cache-key.d.ts.map +1 -1
  5. package/dist/cache/cache-key.js +9 -0
  6. package/dist/cache/cache-key.js.map +1 -1
  7. package/dist/core/agent.d.ts +120 -29
  8. package/dist/core/agent.d.ts.map +1 -1
  9. package/dist/core/agent.js +584 -177
  10. package/dist/core/agent.js.map +1 -1
  11. package/dist/core/mcp-handler.d.ts +63 -5
  12. package/dist/core/mcp-handler.d.ts.map +1 -1
  13. package/dist/core/mcp-handler.js +184 -4
  14. package/dist/core/mcp-handler.js.map +1 -1
  15. package/dist/core/workflow-context.d.ts +6 -2
  16. package/dist/core/workflow-context.d.ts.map +1 -1
  17. package/dist/core/workflow-context.js +99 -4
  18. package/dist/core/workflow-context.js.map +1 -1
  19. package/dist/core/workflow.d.ts +315 -13
  20. package/dist/core/workflow.d.ts.map +1 -1
  21. package/dist/core/workflow.js +552 -30
  22. package/dist/core/workflow.js.map +1 -1
  23. package/dist/debugger/event-replayer.d.ts +422 -0
  24. package/dist/debugger/event-replayer.d.ts.map +1 -0
  25. package/dist/debugger/event-replayer.js +639 -0
  26. package/dist/debugger/event-replayer.js.map +1 -0
  27. package/dist/debugger/tree-debugger.d.ts +170 -1
  28. package/dist/debugger/tree-debugger.d.ts.map +1 -1
  29. package/dist/debugger/tree-debugger.js +423 -1
  30. package/dist/debugger/tree-debugger.js.map +1 -1
  31. package/dist/decorators/step.d.ts.map +1 -1
  32. package/dist/decorators/step.js +129 -47
  33. package/dist/decorators/step.js.map +1 -1
  34. package/dist/harnesses/claude-code-harness.d.ts +391 -0
  35. package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
  36. package/dist/harnesses/claude-code-harness.js +1076 -0
  37. package/dist/harnesses/claude-code-harness.js.map +1 -0
  38. package/dist/harnesses/harness-registry.d.ts +440 -0
  39. package/dist/harnesses/harness-registry.d.ts.map +1 -0
  40. package/dist/harnesses/harness-registry.js +543 -0
  41. package/dist/harnesses/harness-registry.js.map +1 -0
  42. package/dist/harnesses/index.d.ts +12 -0
  43. package/dist/harnesses/index.d.ts.map +1 -0
  44. package/dist/harnesses/index.js +11 -0
  45. package/dist/harnesses/index.js.map +1 -0
  46. package/dist/harnesses/pi-harness.d.ts +219 -0
  47. package/dist/harnesses/pi-harness.d.ts.map +1 -0
  48. package/dist/harnesses/pi-harness.js +676 -0
  49. package/dist/harnesses/pi-harness.js.map +1 -0
  50. package/dist/harnesses/pi-schema-converter.d.ts +24 -0
  51. package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
  52. package/dist/harnesses/pi-schema-converter.js +81 -0
  53. package/dist/harnesses/pi-schema-converter.js.map +1 -0
  54. package/dist/harnesses/register-defaults.d.ts +24 -0
  55. package/dist/harnesses/register-defaults.d.ts.map +1 -0
  56. package/dist/harnesses/register-defaults.js +40 -0
  57. package/dist/harnesses/register-defaults.js.map +1 -0
  58. package/dist/harnesses/session-store.d.ts +201 -0
  59. package/dist/harnesses/session-store.d.ts.map +1 -0
  60. package/dist/harnesses/session-store.js +254 -0
  61. package/dist/harnesses/session-store.js.map +1 -0
  62. package/dist/index.d.ts +12 -2
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +17 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/reflection/reflection.d.ts.map +1 -1
  67. package/dist/reflection/reflection.js +19 -4
  68. package/dist/reflection/reflection.js.map +1 -1
  69. package/dist/types/agent.d.ts +1253 -2
  70. package/dist/types/agent.d.ts.map +1 -1
  71. package/dist/types/agent.js +418 -1
  72. package/dist/types/agent.js.map +1 -1
  73. package/dist/types/decorators.d.ts +10 -1
  74. package/dist/types/decorators.d.ts.map +1 -1
  75. package/dist/types/events.d.ts +26 -0
  76. package/dist/types/events.d.ts.map +1 -1
  77. package/dist/types/harnesses.d.ts +474 -0
  78. package/dist/types/harnesses.d.ts.map +1 -0
  79. package/dist/types/harnesses.js +2 -0
  80. package/dist/types/harnesses.js.map +1 -0
  81. package/dist/types/index.d.ts +9 -1
  82. package/dist/types/index.d.ts.map +1 -1
  83. package/dist/types/index.js +6 -0
  84. package/dist/types/index.js.map +1 -1
  85. package/dist/types/providers.d.ts +691 -0
  86. package/dist/types/providers.d.ts.map +1 -0
  87. package/dist/types/providers.js +14 -0
  88. package/dist/types/providers.js.map +1 -0
  89. package/dist/types/restart.d.ts +132 -0
  90. package/dist/types/restart.d.ts.map +1 -0
  91. package/dist/types/restart.js +2 -0
  92. package/dist/types/restart.js.map +1 -0
  93. package/dist/types/streaming.d.ts +194 -0
  94. package/dist/types/streaming.d.ts.map +1 -0
  95. package/dist/types/streaming.js +67 -0
  96. package/dist/types/streaming.js.map +1 -0
  97. package/dist/types/workflow-context.d.ts +137 -1
  98. package/dist/types/workflow-context.d.ts.map +1 -1
  99. package/dist/utils/agent-validation.d.ts +88 -0
  100. package/dist/utils/agent-validation.d.ts.map +1 -0
  101. package/dist/utils/agent-validation.js +87 -0
  102. package/dist/utils/agent-validation.js.map +1 -0
  103. package/dist/utils/delay.d.ts +7 -0
  104. package/dist/utils/delay.d.ts.map +1 -0
  105. package/dist/utils/delay.js +9 -0
  106. package/dist/utils/delay.js.map +1 -0
  107. package/dist/utils/harness-config.d.ts +180 -0
  108. package/dist/utils/harness-config.d.ts.map +1 -0
  109. package/dist/utils/harness-config.js +311 -0
  110. package/dist/utils/harness-config.js.map +1 -0
  111. package/dist/utils/index.d.ts +9 -1
  112. package/dist/utils/index.d.ts.map +1 -1
  113. package/dist/utils/index.js +8 -1
  114. package/dist/utils/index.js.map +1 -1
  115. package/dist/utils/model-spec.d.ts +110 -0
  116. package/dist/utils/model-spec.d.ts.map +1 -0
  117. package/dist/utils/model-spec.js +149 -0
  118. package/dist/utils/model-spec.js.map +1 -0
  119. package/dist/utils/provider-config.d.ts +10 -0
  120. package/dist/utils/provider-config.d.ts.map +1 -0
  121. package/dist/utils/provider-config.js +10 -0
  122. package/dist/utils/provider-config.js.map +1 -0
  123. package/dist/utils/restart-analysis.d.ts +202 -0
  124. package/dist/utils/restart-analysis.d.ts.map +1 -0
  125. package/dist/utils/restart-analysis.js +426 -0
  126. package/dist/utils/restart-analysis.js.map +1 -0
  127. package/dist/utils/session-serialization.d.ts +118 -0
  128. package/dist/utils/session-serialization.d.ts.map +1 -0
  129. package/dist/utils/session-serialization.js +217 -0
  130. package/dist/utils/session-serialization.js.map +1 -0
  131. package/package.json +31 -5
  132. package/CHANGELOG.md +0 -188
  133. package/dist/__tests__/adversarial/attachChild-performance.test.d.ts +0 -16
  134. package/dist/__tests__/adversarial/attachChild-performance.test.d.ts.map +0 -1
  135. package/dist/__tests__/adversarial/attachChild-performance.test.js +0 -187
  136. package/dist/__tests__/adversarial/attachChild-performance.test.js.map +0 -1
  137. package/dist/__tests__/adversarial/circular-reference.test.d.ts +0 -13
  138. package/dist/__tests__/adversarial/circular-reference.test.d.ts.map +0 -1
  139. package/dist/__tests__/adversarial/circular-reference.test.js +0 -92
  140. package/dist/__tests__/adversarial/circular-reference.test.js.map +0 -1
  141. package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts +0 -16
  142. package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts.map +0 -1
  143. package/dist/__tests__/adversarial/complex-circular-reference.test.js +0 -127
  144. package/dist/__tests__/adversarial/complex-circular-reference.test.js.map +0 -1
  145. package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts +0 -21
  146. package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts.map +0 -1
  147. package/dist/__tests__/adversarial/concurrent-task-failures.test.js +0 -667
  148. package/dist/__tests__/adversarial/concurrent-task-failures.test.js.map +0 -1
  149. package/dist/__tests__/adversarial/deep-analysis.test.d.ts +0 -6
  150. package/dist/__tests__/adversarial/deep-analysis.test.d.ts.map +0 -1
  151. package/dist/__tests__/adversarial/deep-analysis.test.js +0 -877
  152. package/dist/__tests__/adversarial/deep-analysis.test.js.map +0 -1
  153. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts +0 -13
  154. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts.map +0 -1
  155. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js +0 -186
  156. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js.map +0 -1
  157. package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts +0 -6
  158. package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts.map +0 -1
  159. package/dist/__tests__/adversarial/e2e-prd-validation.test.js +0 -626
  160. package/dist/__tests__/adversarial/e2e-prd-validation.test.js.map +0 -1
  161. package/dist/__tests__/adversarial/edge-case.test.d.ts +0 -6
  162. package/dist/__tests__/adversarial/edge-case.test.d.ts.map +0 -1
  163. package/dist/__tests__/adversarial/edge-case.test.js +0 -857
  164. package/dist/__tests__/adversarial/edge-case.test.js.map +0 -1
  165. package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts +0 -20
  166. package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts.map +0 -1
  167. package/dist/__tests__/adversarial/error-merge-strategy.test.js +0 -907
  168. package/dist/__tests__/adversarial/error-merge-strategy.test.js.map +0 -1
  169. package/dist/__tests__/adversarial/incremental-performance.test.d.ts +0 -2
  170. package/dist/__tests__/adversarial/incremental-performance.test.d.ts.map +0 -1
  171. package/dist/__tests__/adversarial/incremental-performance.test.js +0 -113
  172. package/dist/__tests__/adversarial/incremental-performance.test.js.map +0 -1
  173. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts +0 -22
  174. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts.map +0 -1
  175. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js +0 -383
  176. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js.map +0 -1
  177. package/dist/__tests__/adversarial/observer-propagation.test.d.ts +0 -21
  178. package/dist/__tests__/adversarial/observer-propagation.test.d.ts.map +0 -1
  179. package/dist/__tests__/adversarial/observer-propagation.test.js +0 -404
  180. package/dist/__tests__/adversarial/observer-propagation.test.js.map +0 -1
  181. package/dist/__tests__/adversarial/parent-validation.test.d.ts +0 -13
  182. package/dist/__tests__/adversarial/parent-validation.test.d.ts.map +0 -1
  183. package/dist/__tests__/adversarial/parent-validation.test.js +0 -128
  184. package/dist/__tests__/adversarial/parent-validation.test.js.map +0 -1
  185. package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts +0 -20
  186. package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts.map +0 -1
  187. package/dist/__tests__/adversarial/prd-12-2-compliance.test.js +0 -482
  188. package/dist/__tests__/adversarial/prd-12-2-compliance.test.js.map +0 -1
  189. package/dist/__tests__/adversarial/prd-compliance.test.d.ts +0 -6
  190. package/dist/__tests__/adversarial/prd-compliance.test.d.ts.map +0 -1
  191. package/dist/__tests__/adversarial/prd-compliance.test.js +0 -886
  192. package/dist/__tests__/adversarial/prd-compliance.test.js.map +0 -1
  193. package/dist/__tests__/compatibility/backward-compatibility.test.d.ts +0 -22
  194. package/dist/__tests__/compatibility/backward-compatibility.test.d.ts.map +0 -1
  195. package/dist/__tests__/compatibility/backward-compatibility.test.js +0 -1843
  196. package/dist/__tests__/compatibility/backward-compatibility.test.js.map +0 -1
  197. package/dist/__tests__/helpers/index.d.ts +0 -10
  198. package/dist/__tests__/helpers/index.d.ts.map +0 -1
  199. package/dist/__tests__/helpers/index.js +0 -10
  200. package/dist/__tests__/helpers/index.js.map +0 -1
  201. package/dist/__tests__/helpers/tree-verification.d.ts +0 -90
  202. package/dist/__tests__/helpers/tree-verification.d.ts.map +0 -1
  203. package/dist/__tests__/helpers/tree-verification.js +0 -202
  204. package/dist/__tests__/helpers/tree-verification.js.map +0 -1
  205. package/dist/__tests__/integration/agent-workflow.test.d.ts +0 -2
  206. package/dist/__tests__/integration/agent-workflow.test.d.ts.map +0 -1
  207. package/dist/__tests__/integration/agent-workflow.test.js +0 -256
  208. package/dist/__tests__/integration/agent-workflow.test.js.map +0 -1
  209. package/dist/__tests__/integration/bidirectional-consistency.test.d.ts +0 -14
  210. package/dist/__tests__/integration/bidirectional-consistency.test.d.ts.map +0 -1
  211. package/dist/__tests__/integration/bidirectional-consistency.test.js +0 -668
  212. package/dist/__tests__/integration/bidirectional-consistency.test.js.map +0 -1
  213. package/dist/__tests__/integration/observer-logging.test.d.ts +0 -2
  214. package/dist/__tests__/integration/observer-logging.test.d.ts.map +0 -1
  215. package/dist/__tests__/integration/observer-logging.test.js +0 -517
  216. package/dist/__tests__/integration/observer-logging.test.js.map +0 -1
  217. package/dist/__tests__/integration/tree-mirroring.test.d.ts +0 -2
  218. package/dist/__tests__/integration/tree-mirroring.test.d.ts.map +0 -1
  219. package/dist/__tests__/integration/tree-mirroring.test.js +0 -117
  220. package/dist/__tests__/integration/tree-mirroring.test.js.map +0 -1
  221. package/dist/__tests__/integration/workflow-reparenting.test.d.ts +0 -12
  222. package/dist/__tests__/integration/workflow-reparenting.test.d.ts.map +0 -1
  223. package/dist/__tests__/integration/workflow-reparenting.test.js +0 -239
  224. package/dist/__tests__/integration/workflow-reparenting.test.js.map +0 -1
  225. package/dist/__tests__/unit/agent.test.d.ts +0 -2
  226. package/dist/__tests__/unit/agent.test.d.ts.map +0 -1
  227. package/dist/__tests__/unit/agent.test.js +0 -143
  228. package/dist/__tests__/unit/agent.test.js.map +0 -1
  229. package/dist/__tests__/unit/cache-key.test.d.ts +0 -5
  230. package/dist/__tests__/unit/cache-key.test.d.ts.map +0 -1
  231. package/dist/__tests__/unit/cache-key.test.js +0 -145
  232. package/dist/__tests__/unit/cache-key.test.js.map +0 -1
  233. package/dist/__tests__/unit/cache.test.d.ts +0 -5
  234. package/dist/__tests__/unit/cache.test.d.ts.map +0 -1
  235. package/dist/__tests__/unit/cache.test.js +0 -132
  236. package/dist/__tests__/unit/cache.test.js.map +0 -1
  237. package/dist/__tests__/unit/context.test.d.ts +0 -2
  238. package/dist/__tests__/unit/context.test.d.ts.map +0 -1
  239. package/dist/__tests__/unit/context.test.js +0 -220
  240. package/dist/__tests__/unit/context.test.js.map +0 -1
  241. package/dist/__tests__/unit/decorators.test.d.ts +0 -2
  242. package/dist/__tests__/unit/decorators.test.d.ts.map +0 -1
  243. package/dist/__tests__/unit/decorators.test.js +0 -162
  244. package/dist/__tests__/unit/decorators.test.js.map +0 -1
  245. package/dist/__tests__/unit/introspection-tools.test.d.ts +0 -5
  246. package/dist/__tests__/unit/introspection-tools.test.d.ts.map +0 -1
  247. package/dist/__tests__/unit/introspection-tools.test.js +0 -191
  248. package/dist/__tests__/unit/introspection-tools.test.js.map +0 -1
  249. package/dist/__tests__/unit/logger.test.d.ts +0 -2
  250. package/dist/__tests__/unit/logger.test.d.ts.map +0 -1
  251. package/dist/__tests__/unit/logger.test.js +0 -241
  252. package/dist/__tests__/unit/logger.test.js.map +0 -1
  253. package/dist/__tests__/unit/observable.test.d.ts +0 -2
  254. package/dist/__tests__/unit/observable.test.d.ts.map +0 -1
  255. package/dist/__tests__/unit/observable.test.js +0 -251
  256. package/dist/__tests__/unit/observable.test.js.map +0 -1
  257. package/dist/__tests__/unit/prompt.test.d.ts +0 -2
  258. package/dist/__tests__/unit/prompt.test.d.ts.map +0 -1
  259. package/dist/__tests__/unit/prompt.test.js +0 -113
  260. package/dist/__tests__/unit/prompt.test.js.map +0 -1
  261. package/dist/__tests__/unit/reflection.test.d.ts +0 -5
  262. package/dist/__tests__/unit/reflection.test.d.ts.map +0 -1
  263. package/dist/__tests__/unit/reflection.test.js +0 -160
  264. package/dist/__tests__/unit/reflection.test.js.map +0 -1
  265. package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts +0 -2
  266. package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts.map +0 -1
  267. package/dist/__tests__/unit/tree-debugger-incremental.test.js +0 -136
  268. package/dist/__tests__/unit/tree-debugger-incremental.test.js.map +0 -1
  269. package/dist/__tests__/unit/tree-debugger.test.d.ts +0 -2
  270. package/dist/__tests__/unit/tree-debugger.test.d.ts.map +0 -1
  271. package/dist/__tests__/unit/tree-debugger.test.js +0 -69
  272. package/dist/__tests__/unit/tree-debugger.test.js.map +0 -1
  273. package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts +0 -2
  274. package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts.map +0 -1
  275. package/dist/__tests__/unit/utils/workflow-error-utils.test.js +0 -154
  276. package/dist/__tests__/unit/utils/workflow-error-utils.test.js.map +0 -1
  277. package/dist/__tests__/unit/workflow-detachChild.test.d.ts +0 -2
  278. package/dist/__tests__/unit/workflow-detachChild.test.d.ts.map +0 -1
  279. package/dist/__tests__/unit/workflow-detachChild.test.js +0 -76
  280. package/dist/__tests__/unit/workflow-detachChild.test.js.map +0 -1
  281. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts +0 -2
  282. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts.map +0 -1
  283. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js +0 -122
  284. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js.map +0 -1
  285. package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts +0 -2
  286. package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts.map +0 -1
  287. package/dist/__tests__/unit/workflow-isDescendantOf.test.js +0 -140
  288. package/dist/__tests__/unit/workflow-isDescendantOf.test.js.map +0 -1
  289. package/dist/__tests__/unit/workflow.test.d.ts +0 -2
  290. package/dist/__tests__/unit/workflow.test.d.ts.map +0 -1
  291. package/dist/__tests__/unit/workflow.test.js +0 -330
  292. package/dist/__tests__/unit/workflow.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-harness.js","sourceRoot":"","sources":["../../src/harnesses/pi-harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type TSchema } from "@sinclair/typebox";
2
+ import type { Tool } from "../types/sdk-primitives.js";
3
+ export { Type } from "@sinclair/typebox";
4
+ export type { TSchema } from "@sinclair/typebox";
5
+ /**
6
+ * Convert a Groundswell Tool JSON-Schema (`input_schema`) into a TypeBox `TSchema`
7
+ * for Pi's `ToolDefinition.parameters` (PRD §7.10, §7.12, §7.14.1).
8
+ *
9
+ * **PURE function** — no I/O, no mocks, no definitions registry.
10
+ * Parallel to `MCPHandler.jsonSchemaToZodRawShape()` (the Claude Code SDK path).
11
+ *
12
+ * Coverage (parity+ over the Zod converter on every arm):
13
+ * - object (required/optional via `Type.Optional`, nested, open → `Type.Record`)
14
+ * - string / number / integer (distinct) / boolean
15
+ * - array (items recursive; no items → `Type.Unknown`)
16
+ * - enum → `Type.Union(values.map(Type.Literal))` [JSON-Schema array, NOT `Type.Enum`'s Record]
17
+ * - $ref → `Type.Any()` [permissive; no registry in S1; S2+ may extend]
18
+ * - unknown/missing type → `Type.Unknown()`
19
+ *
20
+ * @param schema - `Tool['input_schema']` (top-level always an object) or a nested JSON-Schema fragment.
21
+ * @returns A TypeBox `TSchema` assignable to `ToolDefinition.parameters`.
22
+ */
23
+ export declare function jsonSchemaToTypebox(schema: Tool["input_schema"] | Record<string, unknown>): TSchema;
24
+ //# sourceMappingURL=pi-schema-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-schema-converter.d.ts","sourceRoot":"","sources":["../../src/harnesses/pi-schema-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrD,OAAO,CAuBT"}
@@ -0,0 +1,81 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ // Re-export so S2 imports converter + builders from ONE module.
3
+ export { Type } from "@sinclair/typebox";
4
+ /**
5
+ * Convert a Groundswell Tool JSON-Schema (`input_schema`) into a TypeBox `TSchema`
6
+ * for Pi's `ToolDefinition.parameters` (PRD §7.10, §7.12, §7.14.1).
7
+ *
8
+ * **PURE function** — no I/O, no mocks, no definitions registry.
9
+ * Parallel to `MCPHandler.jsonSchemaToZodRawShape()` (the Claude Code SDK path).
10
+ *
11
+ * Coverage (parity+ over the Zod converter on every arm):
12
+ * - object (required/optional via `Type.Optional`, nested, open → `Type.Record`)
13
+ * - string / number / integer (distinct) / boolean
14
+ * - array (items recursive; no items → `Type.Unknown`)
15
+ * - enum → `Type.Union(values.map(Type.Literal))` [JSON-Schema array, NOT `Type.Enum`'s Record]
16
+ * - $ref → `Type.Any()` [permissive; no registry in S1; S2+ may extend]
17
+ * - unknown/missing type → `Type.Unknown()`
18
+ *
19
+ * @param schema - `Tool['input_schema']` (top-level always an object) or a nested JSON-Schema fragment.
20
+ * @returns A TypeBox `TSchema` assignable to `ToolDefinition.parameters`.
21
+ */
22
+ export function jsonSchemaToTypebox(schema) {
23
+ const s = schema;
24
+ // Defensive: top-level must be an object.
25
+ if (s.type !== "object") {
26
+ return Type.Unknown();
27
+ }
28
+ const properties = (s.properties ?? {});
29
+ const requiredSet = new Set((s.required ?? []));
30
+ // Property-less object → open record (parity with `z.record(z.unknown())`); NOT `Type.Object({})`.
31
+ if (Object.keys(properties).length === 0) {
32
+ return Type.Record(Type.String(), Type.Any());
33
+ }
34
+ // Build each property's schema, then apply optionality to non-required values.
35
+ const props = {};
36
+ for (const [key, value] of Object.entries(properties)) {
37
+ const converted = propertyToTypebox(value);
38
+ props[key] = requiredSet.has(key) ? converted : Type.Optional(converted);
39
+ }
40
+ return Type.Object(props);
41
+ }
42
+ /**
43
+ * Convert a single JSON-Schema property/fragment to a TypeBox `TSchema` (recursive).
44
+ * Mirrors `MCPHandler.jsonSchemaPropertyToZod` (mcp-handler.ts L266-308), + enum + $ref arms.
45
+ */
46
+ function propertyToTypebox(prop) {
47
+ // $ref → permissive Any (S1 has no registry; parity with Zod default arm). Check FIRST.
48
+ if (typeof prop.$ref === "string") {
49
+ return Type.Any();
50
+ }
51
+ // enum (array) → Union of Literals (`Type.Enum` takes a Record, not an array). Check BEFORE type.
52
+ // NOTE: JSON-Schema allows `null` in enum values but TypeBox `TLiteralValue` excludes null;
53
+ // those entries are silently skipped (permissive — never rejects valid LLM args).
54
+ if (Array.isArray(prop.enum) && prop.enum.length > 0) {
55
+ const literals = prop.enum
56
+ .filter((v) => v !== null)
57
+ .map((v) => Type.Literal(v));
58
+ return literals.length === 1 ? literals[0] : Type.Union(literals);
59
+ }
60
+ switch (prop.type) {
61
+ case "string":
62
+ return Type.String();
63
+ case "number":
64
+ return Type.Number();
65
+ case "integer":
66
+ return Type.Integer(); // parity+ (Zod collapses int→number; TypeBox keeps distinct)
67
+ case "boolean":
68
+ return Type.Boolean();
69
+ case "array":
70
+ return Type.Array(prop.items
71
+ ? propertyToTypebox(prop.items)
72
+ : Type.Unknown());
73
+ case "object":
74
+ // Delegate back to the public entry (handles nested required/optional + open-record).
75
+ return jsonSchemaToTypebox(prop);
76
+ default:
77
+ // unknown type, type arrays (e.g. ["string","null"]), missing type → permissive Unknown.
78
+ return Type.Unknown();
79
+ }
80
+ }
81
+ //# sourceMappingURL=pi-schema-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-schema-converter.js","sourceRoot":"","sources":["../../src/harnesses/pi-schema-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Bootstrap helper: register Groundswell's built-in harnesses with the
3
+ * HarnessRegistry (PRD §7.6 / §7.1). Idempotent — safe to call multiple times
4
+ * (guards each registration with `registry.has(id)` so the registry's own
5
+ * duplicate-error is never triggered).
6
+ *
7
+ * Registers:
8
+ * - ClaudeCodeHarness (id 'claude-code') — Anthropic-only (PRD §7.8).
9
+ * - PiHarness (id 'pi') — vendor-neutral default (PRD §7.1, §7.6).
10
+ *
11
+ * @param registry - Target registry (defaults to the HarnessRegistry singleton).
12
+ * @returns The registry (for chaining / testing).
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { registerDefaultHarnesses } from 'groundswell/harnesses';
17
+ * const registry = registerDefaultHarnesses();
18
+ * const cc = registry.get('claude-code'); // ClaudeCodeHarness instance
19
+ * const pi = registry.get('pi'); // PiHarness instance
20
+ * ```
21
+ */
22
+ import { HarnessRegistry } from './harness-registry.js';
23
+ export declare function registerDefaultHarnesses(registry?: HarnessRegistry): HarnessRegistry;
24
+ //# sourceMappingURL=register-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-defaults.d.ts","sourceRoot":"","sources":["../../src/harnesses/register-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,wBAAgB,wBAAwB,CACtC,QAAQ,GAAE,eAA+C,GACxD,eAAe,CAgBjB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Bootstrap helper: register Groundswell's built-in harnesses with the
3
+ * HarnessRegistry (PRD §7.6 / §7.1). Idempotent — safe to call multiple times
4
+ * (guards each registration with `registry.has(id)` so the registry's own
5
+ * duplicate-error is never triggered).
6
+ *
7
+ * Registers:
8
+ * - ClaudeCodeHarness (id 'claude-code') — Anthropic-only (PRD §7.8).
9
+ * - PiHarness (id 'pi') — vendor-neutral default (PRD §7.1, §7.6).
10
+ *
11
+ * @param registry - Target registry (defaults to the HarnessRegistry singleton).
12
+ * @returns The registry (for chaining / testing).
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { registerDefaultHarnesses } from 'groundswell/harnesses';
17
+ * const registry = registerDefaultHarnesses();
18
+ * const cc = registry.get('claude-code'); // ClaudeCodeHarness instance
19
+ * const pi = registry.get('pi'); // PiHarness instance
20
+ * ```
21
+ */
22
+ import { HarnessRegistry } from './harness-registry.js';
23
+ import { ClaudeCodeHarness } from './claude-code-harness.js';
24
+ import { PiHarness } from './pi-harness.js';
25
+ export function registerDefaultHarnesses(registry = HarnessRegistry.getInstance()) {
26
+ // Claude Code harness — Anthropic-only (PRD §7.8).
27
+ const CLAUDE_CODE = 'claude-code';
28
+ if (!registry.has(CLAUDE_CODE)) {
29
+ registry.register(new ClaudeCodeHarness());
30
+ }
31
+ // Pi harness — vendor-neutral DEFAULT (PRD §7.1, §7.6). defaultHarness is already 'pi' in
32
+ // src/utils/harness-config.ts (DEFAULT_HARNESS_CONFIG); this registration pairs the id with a
33
+ // live instance so registry.get('pi') resolves. Idempotent (guard mirrors the claude-code block).
34
+ const PI = 'pi';
35
+ if (!registry.has(PI)) {
36
+ registry.register(new PiHarness());
37
+ }
38
+ return registry;
39
+ }
40
+ //# sourceMappingURL=register-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-defaults.js","sourceRoot":"","sources":["../../src/harnesses/register-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,UAAU,wBAAwB,CACtC,WAA4B,eAAe,CAAC,WAAW,EAAE;IAEzD,mDAAmD;IACnD,MAAM,WAAW,GAAc,aAAa,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,0FAA0F;IAC1F,8FAA8F;IAC9F,kGAAkG;IAClG,MAAM,EAAE,GAAc,IAAI,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Session store implementations
3
+ *
4
+ * Provides pluggable session storage backends for maintaining conversation
5
+ * state across requests. Supports in-memory, file-based, and future Redis
6
+ * storage.
7
+ *
8
+ * PRP: P2.M2.T1.S1 - Session Persistence Implementation
9
+ * @module
10
+ */
11
+ import type { SessionState } from '../types/providers.js';
12
+ /**
13
+ * Generic session store interface
14
+ *
15
+ * @template T - The session state type (defaults to SessionState)
16
+ *
17
+ * @remarks
18
+ * Defines the contract for session storage backends. Implementations
19
+ * can provide in-memory, file-based, or distributed storage.
20
+ *
21
+ * All methods are async to support I/O operations and network requests.
22
+ *
23
+ * @public
24
+ */
25
+ export interface SessionStore<T = SessionState> {
26
+ /**
27
+ * Save session state to storage
28
+ *
29
+ * @param sessionId - Unique session identifier
30
+ * @param state - Session state to save
31
+ * @throws {Error} If save operation fails
32
+ */
33
+ save(sessionId: string, state: T): Promise<void>;
34
+ /**
35
+ * Load session state from storage
36
+ *
37
+ * @param sessionId - Unique session identifier
38
+ * @returns Session state or null if not found
39
+ * @throws {Error} If load operation fails
40
+ */
41
+ load(sessionId: string): Promise<T | null>;
42
+ /**
43
+ * Delete session from storage
44
+ *
45
+ * @param sessionId - Unique session identifier
46
+ * @returns true if deleted, false if not found
47
+ * @throws {Error} If delete operation fails
48
+ */
49
+ delete(sessionId: string): Promise<boolean>;
50
+ /**
51
+ * List all session IDs in storage
52
+ *
53
+ * @returns Array of session IDs
54
+ * @throws {Error} If list operation fails
55
+ */
56
+ list(): Promise<string[]>;
57
+ /**
58
+ * Check if session exists
59
+ *
60
+ * @param sessionId - Unique session identifier
61
+ * @returns true if session exists, false otherwise
62
+ */
63
+ has(sessionId: string): Promise<boolean>;
64
+ /**
65
+ * Clear all sessions from storage
66
+ *
67
+ * @throws {Error} If clear operation fails
68
+ */
69
+ clear(): Promise<void>;
70
+ /**
71
+ * Delete expired sessions from storage
72
+ *
73
+ * @param ttl - Optional time-to-live in milliseconds. Sessions older than
74
+ * (lastAccessedAt + ttl) are deleted. If not provided, uses
75
+ * the store's default TTL if configured.
76
+ * @returns Array of session IDs that were deleted
77
+ * @throws {Error} If delete operation fails
78
+ * @remarks
79
+ * For FileSessionStore, this scans all session files and removes expired ones.
80
+ * For MemorySessionStore, this clears expired entries from the in-memory Map.
81
+ * Uses a 60-second tolerance window for clock skew handling.
82
+ */
83
+ deleteExpired(ttl?: number): Promise<string[]>;
84
+ }
85
+ /**
86
+ * In-memory session store using Map
87
+ *
88
+ * @remarks
89
+ * Wraps a Map for in-memory session storage. No persistence.
90
+ * Maintains backward compatibility with existing Map-based usage.
91
+ *
92
+ * Thread-safety: Not thread-safe (single-threaded Node.js environment).
93
+ *
94
+ * @template T - The session state type
95
+ * @public
96
+ */
97
+ export declare class MemorySessionStore<T = SessionState> implements SessionStore<T> {
98
+ private sessions;
99
+ constructor();
100
+ save(sessionId: string, state: T): Promise<void>;
101
+ load(sessionId: string): Promise<T | null>;
102
+ delete(sessionId: string): Promise<boolean>;
103
+ list(): Promise<string[]>;
104
+ has(sessionId: string): Promise<boolean>;
105
+ clear(): Promise<void>;
106
+ /**
107
+ * Delete expired sessions from in-memory storage
108
+ *
109
+ * @param ttl - Optional time-to-live in milliseconds
110
+ * @returns Array of session IDs that were deleted
111
+ * @remarks
112
+ * MemorySessionStore is cleared on terminate, so TTL is less critical.
113
+ * This method is provided for interface consistency and can be used
114
+ * for manual cleanup or testing purposes.
115
+ */
116
+ deleteExpired(ttl?: number): Promise<string[]>;
117
+ /**
118
+ * Get the underlying Map (for backward compatibility)
119
+ *
120
+ * @internal
121
+ */
122
+ _getMap(): Map<string, T>;
123
+ }
124
+ /**
125
+ * File-based session store with JSON persistence
126
+ *
127
+ * @remarks
128
+ * Persists sessions to disk as JSON files. Each session is stored
129
+ * as a separate file: `{directory}/{sessionId}.json`
130
+ *
131
+ * Uses atomic writes (temp file + rename) for data safety.
132
+ * Supports TTL-based session expiration with lazy and active cleanup.
133
+ *
134
+ * @template T - The session state type
135
+ * @public
136
+ */
137
+ export declare class FileSessionStore<T = SessionState> implements SessionStore<T> {
138
+ private directory;
139
+ private ttl?;
140
+ private static readonly CLOCK_SKEW_TOLERANCE;
141
+ constructor(directory?: string, ttl?: number);
142
+ private getPath;
143
+ private ensureDirectory;
144
+ save(sessionId: string, state: T): Promise<void>;
145
+ load(sessionId: string): Promise<T | null>;
146
+ delete(sessionId: string): Promise<boolean>;
147
+ list(): Promise<string[]>;
148
+ has(sessionId: string): Promise<boolean>;
149
+ clear(): Promise<void>;
150
+ /**
151
+ * Delete expired sessions from file storage
152
+ *
153
+ * @param ttl - Optional time-to-live in milliseconds. If not provided,
154
+ * uses the store's configured TTL.
155
+ * @returns Array of session IDs that were deleted
156
+ * @remarks
157
+ * Scans all session files in the directory, checks expiration based on
158
+ * lastAccessedAt timestamp, and deletes expired files. Uses a 60-second
159
+ * tolerance window for clock skew handling.
160
+ */
161
+ deleteExpired(ttl?: number): Promise<string[]>;
162
+ }
163
+ /**
164
+ * Redis-based session store (interface stub)
165
+ *
166
+ * @remarks
167
+ * Interface definition for future Redis implementation.
168
+ * Not implemented in this PRP - reserved for future work.
169
+ *
170
+ * @template T - The session state type
171
+ * @public
172
+ */
173
+ export interface RedisSessionStore<T = SessionState> extends SessionStore<T> {
174
+ /**
175
+ * Connect to Redis server
176
+ */
177
+ connect(): Promise<void>;
178
+ /**
179
+ * Disconnect from Redis server
180
+ */
181
+ disconnect(): Promise<void>;
182
+ /**
183
+ * Set TTL for session
184
+ *
185
+ * @param sessionId - Session identifier
186
+ * @param ttlSeconds - Time to live in seconds
187
+ */
188
+ setTTL(sessionId: string, ttlSeconds: number): Promise<void>;
189
+ /**
190
+ * Delete expired sessions from storage
191
+ *
192
+ * @param ttl - Optional time-to-live in milliseconds
193
+ * @returns Array of session IDs that were deleted
194
+ * @remarks
195
+ * Redis implementation will use native TTL expiration.
196
+ * This method is provided for interface consistency and may be a no-op
197
+ * since Redis handles expiration automatically.
198
+ */
199
+ deleteExpired(ttl?: number): Promise<string[]>;
200
+ }
201
+ //# sourceMappingURL=session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/harnesses/session-store.ts"],"names":[],"mappings":"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"}