@korallis/k-pi 0.1.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 (348) hide show
  1. package/CHANGELOG.md +5619 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +66 -0
  4. package/README.md +723 -0
  5. package/dist/bundle/chunks/anthropic-messages-IBCPCIJO.js +45 -0
  6. package/dist/bundle/chunks/anthropic.js +75 -0
  7. package/dist/bundle/chunks/azure-openai-responses-GUUG57CZ.js +2 -0
  8. package/dist/bundle/chunks/bedrock-converse-stream.js +74 -0
  9. package/dist/bundle/chunks/chunk-4L3WN2XY.js +2 -0
  10. package/dist/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
  11. package/dist/bundle/chunks/chunk-6R7UI4IY.js +2 -0
  12. package/dist/bundle/chunks/chunk-AXIIZGTV.js +2 -0
  13. package/dist/bundle/chunks/chunk-CO7LIZG5.js +2 -0
  14. package/dist/bundle/chunks/chunk-DRQDKNXA.js +2 -0
  15. package/dist/bundle/chunks/chunk-GMWCTUPB.js +2 -0
  16. package/dist/bundle/chunks/chunk-HOFU6X66.js +50 -0
  17. package/dist/bundle/chunks/chunk-JUUC5AZY.js +2 -0
  18. package/dist/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
  19. package/dist/bundle/chunks/chunk-MNAIPA3J.js +2 -0
  20. package/dist/bundle/chunks/chunk-NBBFIJUL.js +11 -0
  21. package/dist/bundle/chunks/chunk-NUHFSC37.js +25 -0
  22. package/dist/bundle/chunks/chunk-PGXDEOVV.js +2 -0
  23. package/dist/bundle/chunks/chunk-PJACZCIR.js +2 -0
  24. package/dist/bundle/chunks/chunk-PRRNXB7S.js +2 -0
  25. package/dist/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
  26. package/dist/bundle/chunks/chunk-TRDNDS6A.js +4 -0
  27. package/dist/bundle/chunks/chunk-UAQELI3K.js +2 -0
  28. package/dist/bundle/chunks/chunk-X5QHCKY4.js +1653 -0
  29. package/dist/bundle/chunks/chunk-XDUWOHPL.js +6 -0
  30. package/dist/bundle/chunks/github-copilot.js +2 -0
  31. package/dist/bundle/chunks/google-generative-ai-YRXF7C4I.js +2 -0
  32. package/dist/bundle/chunks/google-vertex-BVZ6VBRQ.js +2 -0
  33. package/dist/bundle/chunks/https-proxy-agent-2VXB7436.js +13 -0
  34. package/dist/bundle/chunks/image-resize-worker.js +2 -0
  35. package/dist/bundle/chunks/kimi-coding.js +2 -0
  36. package/dist/bundle/chunks/lib-HGQMNYVT.js +9 -0
  37. package/dist/bundle/chunks/mistral-conversations-Q3AWZJAZ.js +5 -0
  38. package/dist/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
  39. package/dist/bundle/chunks/openai-codex-responses-GJVBJXLB.js +8 -0
  40. package/dist/bundle/chunks/openai-codex.js +75 -0
  41. package/dist/bundle/chunks/openai-completions-OICQQ5JB.js +7 -0
  42. package/dist/bundle/chunks/openai-responses-P5LIZTXX.js +2 -0
  43. package/dist/bundle/chunks/openrouter-images-XTKS2AS3.js +2 -0
  44. package/dist/bundle/chunks/openrouter.js +75 -0
  45. package/dist/bundle/chunks/pi-messages-TPFH44NP.js +8 -0
  46. package/dist/bundle/chunks/radius.js +75 -0
  47. package/dist/bundle/chunks/src-UK77SYZE.js +4 -0
  48. package/dist/bundle/chunks/xai.js +2 -0
  49. package/dist/bundle/cli.js +3 -0
  50. package/dist/bundle/client.js +2 -0
  51. package/dist/bundle/index.js +2 -0
  52. package/dist/bundle/rpc-entry.js +3 -0
  53. package/dist/core/export-html/template.css +1066 -0
  54. package/dist/core/export-html/template.html +55 -0
  55. package/dist/core/export-html/template.js +1864 -0
  56. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  57. package/dist/core/export-html/vendor/marked.min.js +78 -0
  58. package/dist/kpi/graphs/coding-loop.auto.json +377 -0
  59. package/dist/kpi/graphs/coding-loop.gated.json +417 -0
  60. package/dist/kpi/graphs/spec-first.json +40 -0
  61. package/dist/kpi/kstack/NOTICE +5 -0
  62. package/dist/kpi/kstack/UPSTREAM.md +23 -0
  63. package/dist/kpi/kstack/generated/LICENSE +21 -0
  64. package/dist/kpi/kstack/generated/skills/architect/SKILL.md +83 -0
  65. package/dist/kpi/kstack/generated/skills/architect/references/design-red-flags.md +33 -0
  66. package/dist/kpi/kstack/generated/skills/architect/references/rationale-template.md +35 -0
  67. package/dist/kpi/kstack/generated/skills/architect/references/runner-prompt.md +20 -0
  68. package/dist/kpi/kstack/generated/skills/arena/SKILL.md +29 -0
  69. package/dist/kpi/kstack/generated/skills/blast-radius/SKILL.md +50 -0
  70. package/dist/kpi/kstack/generated/skills/bro/SKILL.md +7 -0
  71. package/dist/kpi/kstack/generated/skills/create-verification-skill/SKILL.md +44 -0
  72. package/dist/kpi/kstack/generated/skills/create-verification-skill/references/feature-map-example/README.md +47 -0
  73. package/dist/kpi/kstack/generated/skills/create-verification-skill/references/feature-map-example/create-note.md +39 -0
  74. package/dist/kpi/kstack/generated/skills/create-verification-skill/references/feature-map-example/search.md +45 -0
  75. package/dist/kpi/kstack/generated/skills/figure-it-out/SKILL.md +55 -0
  76. package/dist/kpi/kstack/generated/skills/how/SKILL.md +135 -0
  77. package/dist/kpi/kstack/generated/skills/how/references/critic-prompt.md +59 -0
  78. package/dist/kpi/kstack/generated/skills/how/references/critique-rubric.md +58 -0
  79. package/dist/kpi/kstack/generated/skills/how/references/explainer-prompt.md +55 -0
  80. package/dist/kpi/kstack/generated/skills/how/references/explorer-prompt.md +52 -0
  81. package/dist/kpi/kstack/generated/skills/interrogate/SKILL.md +113 -0
  82. package/dist/kpi/kstack/generated/skills/interrogate/references/code-quality-review.md +47 -0
  83. package/dist/kpi/kstack/generated/skills/interrogate/references/lead-judgment.md +58 -0
  84. package/dist/kpi/kstack/generated/skills/interrogate/references/reviewer-prompt.md +72 -0
  85. package/dist/kpi/kstack/generated/skills/interrogate/references/rubric.md +77 -0
  86. package/dist/kpi/kstack/generated/skills/k-agent/SKILL.md +17 -0
  87. package/dist/kpi/kstack/generated/skills/k-mode/SKILL.md +64 -0
  88. package/dist/kpi/kstack/generated/skills/k-stack-principles/SKILL.md +24 -0
  89. package/dist/kpi/kstack/generated/skills/maintain-verification-skill/SKILL.md +39 -0
  90. package/dist/kpi/kstack/generated/skills/no-comments/SKILL.md +24 -0
  91. package/dist/kpi/kstack/generated/skills/playbook-arena/SKILL.md +20 -0
  92. package/dist/kpi/kstack/generated/skills/playbook-autonomous-run/SKILL.md +22 -0
  93. package/dist/kpi/kstack/generated/skills/playbook-autopilot-full/SKILL.md +20 -0
  94. package/dist/kpi/kstack/generated/skills/playbook-autopilot-stack/SKILL.md +20 -0
  95. package/dist/kpi/kstack/generated/skills/playbook-bug-fix/SKILL.md +21 -0
  96. package/dist/kpi/kstack/generated/skills/playbook-feature/SKILL.md +22 -0
  97. package/dist/kpi/kstack/generated/skills/playbook-investigation/SKILL.md +21 -0
  98. package/dist/kpi/kstack/generated/skills/playbook-shipping/SKILL.md +18 -0
  99. package/dist/kpi/kstack/generated/skills/playbook-swarm/SKILL.md +20 -0
  100. package/dist/kpi/kstack/generated/skills/principle-boundary-discipline/SKILL.md +34 -0
  101. package/dist/kpi/kstack/generated/skills/principle-build-the-lever/SKILL.md +23 -0
  102. package/dist/kpi/kstack/generated/skills/principle-encode-lessons-in-structure/SKILL.md +31 -0
  103. package/dist/kpi/kstack/generated/skills/principle-exhaust-the-design-space/SKILL.md +21 -0
  104. package/dist/kpi/kstack/generated/skills/principle-experience-first/SKILL.md +19 -0
  105. package/dist/kpi/kstack/generated/skills/principle-fix-root-causes/SKILL.md +23 -0
  106. package/dist/kpi/kstack/generated/skills/principle-foundational-thinking/SKILL.md +21 -0
  107. package/dist/kpi/kstack/generated/skills/principle-guard-the-context-window/SKILL.md +17 -0
  108. package/dist/kpi/kstack/generated/skills/principle-laziness-protocol/SKILL.md +18 -0
  109. package/dist/kpi/kstack/generated/skills/principle-make-operations-idempotent/SKILL.md +24 -0
  110. package/dist/kpi/kstack/generated/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +22 -0
  111. package/dist/kpi/kstack/generated/skills/principle-minimize-reader-load/SKILL.md +23 -0
  112. package/dist/kpi/kstack/generated/skills/principle-model-the-domain/SKILL.md +26 -0
  113. package/dist/kpi/kstack/generated/skills/principle-never-block-on-the-human/SKILL.md +23 -0
  114. package/dist/kpi/kstack/generated/skills/principle-outcome-oriented-execution/SKILL.md +22 -0
  115. package/dist/kpi/kstack/generated/skills/principle-prove-it-works/SKILL.md +33 -0
  116. package/dist/kpi/kstack/generated/skills/principle-redesign-from-first-principles/SKILL.md +16 -0
  117. package/dist/kpi/kstack/generated/skills/principle-separate-before-serializing-shared-state/SKILL.md +16 -0
  118. package/dist/kpi/kstack/generated/skills/principle-sequence-verifiable-units/SKILL.md +22 -0
  119. package/dist/kpi/kstack/generated/skills/principle-subtract-before-you-add/SKILL.md +22 -0
  120. package/dist/kpi/kstack/generated/skills/principle-type-system-discipline/SKILL.md +31 -0
  121. package/dist/kpi/kstack/generated/skills/recall/SKILL.md +35 -0
  122. package/dist/kpi/kstack/generated/skills/reflect/SKILL.md +77 -0
  123. package/dist/kpi/kstack/generated/skills/reflect/references/divergent-reviewer.md +43 -0
  124. package/dist/kpi/kstack/generated/skills/reflect/references/judgment-reviewer.md +42 -0
  125. package/dist/kpi/kstack/generated/skills/reflect/references/synthesizer.md +56 -0
  126. package/dist/kpi/kstack/generated/skills/reflect/references/tooling-reviewer.md +57 -0
  127. package/dist/kpi/kstack/generated/skills/setup-kstack/SKILL.md +48 -0
  128. package/dist/kpi/kstack/generated/skills/show-me-your-work/SKILL.md +82 -0
  129. package/dist/kpi/kstack/generated/skills/show-me-your-work/references/decision-log-template.tsv +1 -0
  130. package/dist/kpi/kstack/generated/skills/show-me-your-work/scripts/log.sh +40 -0
  131. package/dist/kpi/kstack/generated/skills/swarm/SKILL.md +27 -0
  132. package/dist/kpi/kstack/generated/skills/tdd/SKILL.md +44 -0
  133. package/dist/kpi/kstack/generated/skills/teach/SKILL.md +21 -0
  134. package/dist/kpi/kstack/generated/skills/technical-writing/SKILL.md +130 -0
  135. package/dist/kpi/kstack/generated/skills/typescript-best-practices/SKILL.md +30 -0
  136. package/dist/kpi/kstack/generated/skills/typescript-best-practices/references/patterns.md +313 -0
  137. package/dist/kpi/kstack/generated/skills/unslop/SKILL.md +81 -0
  138. package/dist/kpi/kstack/generated/skills/why/SKILL.md +230 -0
  139. package/dist/kpi/kstack/generated/skills/why/references/epistemics.md +144 -0
  140. package/dist/kpi/kstack/generated/skills/why/references/investigator-prompt.md +103 -0
  141. package/dist/kpi/kstack/generated/skills/why/references/source-playbook.md +17 -0
  142. package/dist/kpi/kstack/generated/skills/why/references/sources/code-archaeology.md +88 -0
  143. package/dist/kpi/kstack/generated/skills/why/references/sources/databricks.md +70 -0
  144. package/dist/kpi/kstack/generated/skills/why/references/sources/datadog.md +99 -0
  145. package/dist/kpi/kstack/generated/skills/why/references/sources/incident-postmortem.md +15 -0
  146. package/dist/kpi/kstack/generated/skills/why/references/sources/linear.md +48 -0
  147. package/dist/kpi/kstack/generated/skills/why/references/sources/notion.md +55 -0
  148. package/dist/kpi/kstack/generated/skills/why/references/sources/sentry.md +100 -0
  149. package/dist/kpi/kstack/generated/skills/why/references/sources/slack.md +54 -0
  150. package/dist/kpi/kstack/generated/skills/why/references/synthesizer-prompt.md +135 -0
  151. package/dist/kpi/kstack/model-ladder.md +50 -0
  152. package/dist/kpi/kstack/provenance.json +17 -0
  153. package/dist/kpi/prompts/implement.md +6 -0
  154. package/dist/kpi/prompts/plan.md +6 -0
  155. package/dist/kpi/prompts/review.md +6 -0
  156. package/dist/kpi/prompts/ship.md +6 -0
  157. package/dist/kpi/prompts/specify.md +6 -0
  158. package/dist/kpi/prompts/verify.md +6 -0
  159. package/dist/kpi/schemas/event.schema.json +1314 -0
  160. package/dist/kpi/schemas/evidence.schema.json +43 -0
  161. package/dist/kpi/schemas/stack.schema.json +102 -0
  162. package/dist/kpi/schemas/task.schema.json +165 -0
  163. package/dist/kpi/schemas/verdict.schema.json +44 -0
  164. package/dist/kpi/skills/concise-output/SKILL.md +10 -0
  165. package/dist/kpi/skills/context-pack/SKILL.md +10 -0
  166. package/dist/kpi/skills/conventional-commit/SKILL.md +12 -0
  167. package/dist/kpi/skills/isolated-review/SKILL.md +10 -0
  168. package/dist/kpi/skills/kg-claim/SKILL.md +26 -0
  169. package/dist/kpi/skills/minimalist/SKILL.md +24 -0
  170. package/dist/kpi/skills/quality-gates/SKILL.md +10 -0
  171. package/dist/kpi/skills/spec-first/SKILL.md +10 -0
  172. package/dist/kpi/skills/tdd-cycle/SKILL.md +10 -0
  173. package/dist/kpi/templates/AGENTS.md +31 -0
  174. package/dist/kpi/templates/APPEND_SYSTEM.md +13 -0
  175. package/dist/kpi/templates/context-pack/product.md +7 -0
  176. package/dist/kpi/templates/context-pack/structure.md +7 -0
  177. package/dist/kpi/templates/context-pack/tech.md +9 -0
  178. package/dist/kpi/templates/policy.json +17 -0
  179. package/dist/kpi/themes/loop-amber.json +82 -0
  180. package/dist/kpi/themes/protocol-blue.json +82 -0
  181. package/dist/modes/interactive/assets/clankolas.png +0 -0
  182. package/dist/modes/interactive/theme/dark.json +90 -0
  183. package/dist/modes/interactive/theme/light.json +89 -0
  184. package/dist/modes/interactive/theme/theme-schema.json +352 -0
  185. package/docs/compaction.md +418 -0
  186. package/docs/containerization.md +111 -0
  187. package/docs/custom-provider.md +777 -0
  188. package/docs/development.md +71 -0
  189. package/docs/docs.json +156 -0
  190. package/docs/environment-variables.md +97 -0
  191. package/docs/extensions.md +3020 -0
  192. package/docs/images/doom-extension.png +0 -0
  193. package/docs/images/exy.png +0 -0
  194. package/docs/images/interactive-mode.png +0 -0
  195. package/docs/images/tree-view.png +0 -0
  196. package/docs/index.md +84 -0
  197. package/docs/json.md +98 -0
  198. package/docs/keybindings.md +236 -0
  199. package/docs/llama-cpp.md +101 -0
  200. package/docs/models.md +571 -0
  201. package/docs/packages.md +228 -0
  202. package/docs/prompt-templates.md +96 -0
  203. package/docs/providers.md +317 -0
  204. package/docs/quickstart.md +167 -0
  205. package/docs/rpc.md +1618 -0
  206. package/docs/sdk.md +1219 -0
  207. package/docs/security.md +59 -0
  208. package/docs/session-format.md +438 -0
  209. package/docs/sessions.md +145 -0
  210. package/docs/settings.md +369 -0
  211. package/docs/shell-aliases.md +13 -0
  212. package/docs/skills.md +232 -0
  213. package/docs/terminal-setup.md +177 -0
  214. package/docs/termux.md +127 -0
  215. package/docs/themes.md +320 -0
  216. package/docs/tmux.md +63 -0
  217. package/docs/tui.md +942 -0
  218. package/docs/usage.md +311 -0
  219. package/docs/windows.md +39 -0
  220. package/examples/README.md +25 -0
  221. package/examples/extensions/README.md +213 -0
  222. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  223. package/examples/extensions/bash-spawn-hook.ts +30 -0
  224. package/examples/extensions/bookmark.ts +50 -0
  225. package/examples/extensions/border-status-editor.ts +150 -0
  226. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  227. package/examples/extensions/claude-rules.ts +86 -0
  228. package/examples/extensions/commands.ts +72 -0
  229. package/examples/extensions/confirm-destructive.ts +59 -0
  230. package/examples/extensions/custom-compaction.ts +117 -0
  231. package/examples/extensions/custom-footer.ts +64 -0
  232. package/examples/extensions/custom-header.ts +73 -0
  233. package/examples/extensions/custom-provider-anthropic/index.ts +611 -0
  234. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  235. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  236. package/examples/extensions/custom-provider-gitlab-duo/index.ts +405 -0
  237. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  238. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  239. package/examples/extensions/dirty-repo-guard.ts +56 -0
  240. package/examples/extensions/doom-overlay/README.md +46 -0
  241. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  242. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  243. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  244. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  245. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  246. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  247. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  248. package/examples/extensions/doom-overlay/index.ts +74 -0
  249. package/examples/extensions/doom-overlay/wad-finder.ts +55 -0
  250. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  251. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  252. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  253. package/examples/extensions/dynamic-resources/index.ts +15 -0
  254. package/examples/extensions/dynamic-tools.ts +74 -0
  255. package/examples/extensions/entry-renderer.ts +41 -0
  256. package/examples/extensions/event-bus.ts +43 -0
  257. package/examples/extensions/file-trigger.ts +41 -0
  258. package/examples/extensions/git-checkpoint.ts +53 -0
  259. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  260. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  261. package/examples/extensions/gondolin/index.ts +531 -0
  262. package/examples/extensions/gondolin/package-lock.json +185 -0
  263. package/examples/extensions/gondolin/package.json +19 -0
  264. package/examples/extensions/handoff.ts +190 -0
  265. package/examples/extensions/hello.ts +26 -0
  266. package/examples/extensions/hidden-thinking-label.ts +53 -0
  267. package/examples/extensions/inline-bash.ts +94 -0
  268. package/examples/extensions/input-transform-streaming.ts +39 -0
  269. package/examples/extensions/input-transform.ts +43 -0
  270. package/examples/extensions/interactive-shell.ts +196 -0
  271. package/examples/extensions/kimi-deferred-tools.ts +61 -0
  272. package/examples/extensions/mac-system-theme.ts +47 -0
  273. package/examples/extensions/message-renderer.ts +59 -0
  274. package/examples/extensions/minimal-mode.ts +426 -0
  275. package/examples/extensions/modal-editor.ts +85 -0
  276. package/examples/extensions/model-status.ts +31 -0
  277. package/examples/extensions/notify.ts +57 -0
  278. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  279. package/examples/extensions/overlay-test.ts +153 -0
  280. package/examples/extensions/permission-gate.ts +34 -0
  281. package/examples/extensions/pirate.ts +47 -0
  282. package/examples/extensions/plan-mode/README.md +66 -0
  283. package/examples/extensions/plan-mode/index.ts +390 -0
  284. package/examples/extensions/plan-mode/utils.ts +168 -0
  285. package/examples/extensions/preset.ts +436 -0
  286. package/examples/extensions/project-trust.ts +64 -0
  287. package/examples/extensions/prompt-customizer.ts +97 -0
  288. package/examples/extensions/protected-paths.ts +30 -0
  289. package/examples/extensions/provider-payload.ts +18 -0
  290. package/examples/extensions/qna.ts +118 -0
  291. package/examples/extensions/question.ts +286 -0
  292. package/examples/extensions/questionnaire.ts +448 -0
  293. package/examples/extensions/rainbow-editor.ts +88 -0
  294. package/examples/extensions/reload-runtime.ts +37 -0
  295. package/examples/extensions/rpc-demo.ts +118 -0
  296. package/examples/extensions/sandbox/index.ts +321 -0
  297. package/examples/extensions/sandbox/package-lock.json +92 -0
  298. package/examples/extensions/sandbox/package.json +19 -0
  299. package/examples/extensions/send-user-message.ts +97 -0
  300. package/examples/extensions/session-name.ts +27 -0
  301. package/examples/extensions/shutdown-command.ts +63 -0
  302. package/examples/extensions/snake.ts +343 -0
  303. package/examples/extensions/space-invaders.ts +560 -0
  304. package/examples/extensions/ssh.ts +220 -0
  305. package/examples/extensions/status-line.ts +32 -0
  306. package/examples/extensions/structured-output.ts +65 -0
  307. package/examples/extensions/subagent/README.md +177 -0
  308. package/examples/extensions/subagent/agents/planner.md +37 -0
  309. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  310. package/examples/extensions/subagent/agents/scout.md +50 -0
  311. package/examples/extensions/subagent/agents/worker.md +24 -0
  312. package/examples/extensions/subagent/agents.ts +157 -0
  313. package/examples/extensions/subagent/index.ts +1038 -0
  314. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  315. package/examples/extensions/subagent/prompts/implement.md +10 -0
  316. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  317. package/examples/extensions/summarize.ts +199 -0
  318. package/examples/extensions/system-prompt-header.ts +17 -0
  319. package/examples/extensions/tic-tac-toe.ts +1008 -0
  320. package/examples/extensions/timed-confirm.ts +70 -0
  321. package/examples/extensions/titlebar-spinner.ts +58 -0
  322. package/examples/extensions/todo.ts +297 -0
  323. package/examples/extensions/tool-override.ts +144 -0
  324. package/examples/extensions/tools.ts +146 -0
  325. package/examples/extensions/trigger-compact.ts +50 -0
  326. package/examples/extensions/truncated-tool.ts +195 -0
  327. package/examples/extensions/widget-placement.ts +9 -0
  328. package/examples/extensions/with-deps/index.ts +32 -0
  329. package/examples/extensions/with-deps/package-lock.json +31 -0
  330. package/examples/extensions/with-deps/package.json +22 -0
  331. package/examples/extensions/working-indicator.ts +123 -0
  332. package/examples/extensions/working-message-test.ts +25 -0
  333. package/examples/rpc-extension-ui.ts +641 -0
  334. package/examples/sdk/01-minimal.ts +26 -0
  335. package/examples/sdk/02-custom-model.ts +49 -0
  336. package/examples/sdk/03-custom-prompt.ts +75 -0
  337. package/examples/sdk/04-skills.ts +55 -0
  338. package/examples/sdk/05-tools.ts +48 -0
  339. package/examples/sdk/06-extensions.ts +99 -0
  340. package/examples/sdk/07-context-files.ts +47 -0
  341. package/examples/sdk/08-prompt-templates.ts +51 -0
  342. package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
  343. package/examples/sdk/10-settings.ts +53 -0
  344. package/examples/sdk/11-sessions.ts +52 -0
  345. package/examples/sdk/12-full-control.ts +74 -0
  346. package/examples/sdk/13-session-runtime.ts +67 -0
  347. package/examples/sdk/README.md +140 -0
  348. package/package.json +55 -0
@@ -0,0 +1,1314 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "event.schema.json",
4
+ "title": "K-pi event",
5
+ "type": "object",
6
+ "required": [
7
+ "ts",
8
+ "type",
9
+ "job_id",
10
+ "round",
11
+ "node",
12
+ "prev_hash",
13
+ "record_hash"
14
+ ],
15
+ "oneOf": [
16
+ {
17
+ "$ref": "#/$defs/handoffCreated"
18
+ },
19
+ {
20
+ "$ref": "#/$defs/toolRequest"
21
+ },
22
+ {
23
+ "$ref": "#/$defs/approvalResult"
24
+ },
25
+ {
26
+ "$ref": "#/$defs/toolResult"
27
+ },
28
+ {
29
+ "$ref": "#/$defs/checkpoint"
30
+ },
31
+ {
32
+ "$ref": "#/$defs/handoffCompleted"
33
+ },
34
+ {
35
+ "$ref": "#/$defs/recoveryStarted"
36
+ },
37
+ {
38
+ "$ref": "#/$defs/recoveryCompleted"
39
+ },
40
+ {
41
+ "$ref": "#/$defs/kgPatchProposed"
42
+ },
43
+ {
44
+ "$ref": "#/$defs/kgPatchAccepted"
45
+ },
46
+ {
47
+ "$ref": "#/$defs/accountsFailover"
48
+ },
49
+ {
50
+ "$ref": "#/$defs/acRefused"
51
+ },
52
+ {
53
+ "$ref": "#/$defs/loopTerminal"
54
+ },
55
+ {
56
+ "$ref": "#/$defs/reviewVerdict"
57
+ },
58
+ {
59
+ "$ref": "#/$defs/researchStarted"
60
+ },
61
+ {
62
+ "$ref": "#/$defs/researchQuery"
63
+ },
64
+ {
65
+ "$ref": "#/$defs/researchCall"
66
+ },
67
+ {
68
+ "$ref": "#/$defs/researchResult"
69
+ },
70
+ {
71
+ "$ref": "#/$defs/researchFallback"
72
+ },
73
+ {
74
+ "$ref": "#/$defs/researchCompleted"
75
+ },
76
+ {
77
+ "$ref": "#/$defs/agentSpawned"
78
+ },
79
+ {
80
+ "$ref": "#/$defs/agentMessage"
81
+ },
82
+ {
83
+ "$ref": "#/$defs/agentDenied"
84
+ }
85
+ ],
86
+ "$defs": {
87
+ "hash": {
88
+ "type": "string",
89
+ "pattern": "^[0-9a-f]{64}$"
90
+ },
91
+ "timestamp": {
92
+ "type": "string",
93
+ "format": "date-time"
94
+ },
95
+ "jobId": {
96
+ "type": "string",
97
+ "minLength": 1,
98
+ "maxLength": 128
99
+ },
100
+ "round": {
101
+ "type": "integer",
102
+ "minimum": 0
103
+ },
104
+ "node": {
105
+ "type": "string",
106
+ "minLength": 1
107
+ },
108
+ "text": {
109
+ "type": "string"
110
+ },
111
+ "identifier": {
112
+ "type": "string",
113
+ "minLength": 1
114
+ },
115
+ "service": {
116
+ "enum": [
117
+ "exa",
118
+ "perplexity",
119
+ "local"
120
+ ]
121
+ },
122
+ "researchMode": {
123
+ "enum": [
124
+ "exa",
125
+ "perplexity",
126
+ "auto",
127
+ "local"
128
+ ]
129
+ },
130
+ "networkState": {
131
+ "enum": [
132
+ "online",
133
+ "no-network"
134
+ ]
135
+ },
136
+ "attempt": {
137
+ "type": "integer",
138
+ "minimum": 1
139
+ },
140
+ "resultCount": {
141
+ "type": "integer",
142
+ "minimum": 0
143
+ },
144
+ "sourceRefs": {
145
+ "type": "array",
146
+ "items": {
147
+ "$ref": "#/$defs/identifier"
148
+ }
149
+ },
150
+ "pid": {
151
+ "type": "integer",
152
+ "minimum": 1
153
+ },
154
+ "handoffCreated": {
155
+ "type": "object",
156
+ "required": [
157
+ "ts",
158
+ "type",
159
+ "job_id",
160
+ "round",
161
+ "node",
162
+ "prev_hash",
163
+ "record_hash",
164
+ "mode"
165
+ ],
166
+ "properties": {
167
+ "ts": {
168
+ "$ref": "#/$defs/timestamp"
169
+ },
170
+ "type": {
171
+ "const": "handoff.created"
172
+ },
173
+ "job_id": {
174
+ "$ref": "#/$defs/jobId"
175
+ },
176
+ "round": {
177
+ "$ref": "#/$defs/round"
178
+ },
179
+ "node": {
180
+ "$ref": "#/$defs/node"
181
+ },
182
+ "prev_hash": {
183
+ "$ref": "#/$defs/hash"
184
+ },
185
+ "record_hash": {
186
+ "$ref": "#/$defs/hash"
187
+ },
188
+ "mode": {
189
+ "enum": [
190
+ "gated",
191
+ "autopilot"
192
+ ]
193
+ }
194
+ },
195
+ "additionalProperties": false
196
+ },
197
+ "toolRequest": {
198
+ "type": "object",
199
+ "required": [
200
+ "ts",
201
+ "type",
202
+ "job_id",
203
+ "round",
204
+ "node",
205
+ "prev_hash",
206
+ "record_hash",
207
+ "tool",
208
+ "decision"
209
+ ],
210
+ "properties": {
211
+ "ts": {
212
+ "$ref": "#/$defs/timestamp"
213
+ },
214
+ "type": {
215
+ "const": "tool.request"
216
+ },
217
+ "job_id": {
218
+ "$ref": "#/$defs/jobId"
219
+ },
220
+ "round": {
221
+ "$ref": "#/$defs/round"
222
+ },
223
+ "node": {
224
+ "$ref": "#/$defs/node"
225
+ },
226
+ "prev_hash": {
227
+ "$ref": "#/$defs/hash"
228
+ },
229
+ "record_hash": {
230
+ "$ref": "#/$defs/hash"
231
+ },
232
+ "tool": {
233
+ "$ref": "#/$defs/identifier"
234
+ },
235
+ "decision": {
236
+ "enum": ["allow", "confirm", "deny"]
237
+ },
238
+ "path": {
239
+ "$ref": "#/$defs/text"
240
+ },
241
+ "reason": {
242
+ "$ref": "#/$defs/text"
243
+ }
244
+ },
245
+ "additionalProperties": false
246
+ },
247
+ "agentDenied": {
248
+ "type": "object",
249
+ "required": [
250
+ "ts",
251
+ "type",
252
+ "job_id",
253
+ "round",
254
+ "node",
255
+ "prev_hash",
256
+ "record_hash",
257
+ "reason"
258
+ ],
259
+ "properties": {
260
+ "ts": {
261
+ "$ref": "#/$defs/timestamp"
262
+ },
263
+ "type": {
264
+ "const": "agent.denied"
265
+ },
266
+ "job_id": {
267
+ "$ref": "#/$defs/jobId"
268
+ },
269
+ "round": {
270
+ "$ref": "#/$defs/round"
271
+ },
272
+ "node": {
273
+ "$ref": "#/$defs/node"
274
+ },
275
+ "prev_hash": {
276
+ "$ref": "#/$defs/hash"
277
+ },
278
+ "record_hash": {
279
+ "$ref": "#/$defs/hash"
280
+ },
281
+ "reason": {
282
+ "enum": ["worker-limit", "writer-live", "admission-held", "claim-held", "role-tool"]
283
+ },
284
+ "role": {
285
+ "$ref": "#/$defs/text"
286
+ },
287
+ "agent_id": {
288
+ "$ref": "#/$defs/identifier"
289
+ },
290
+ "key": {
291
+ "$ref": "#/$defs/text"
292
+ },
293
+ "holder": {
294
+ "$ref": "#/$defs/text"
295
+ },
296
+ "limit": {
297
+ "type": "integer",
298
+ "minimum": 0
299
+ }
300
+ },
301
+ "additionalProperties": false
302
+ },
303
+ "approvalResult": {
304
+ "type": "object",
305
+ "required": [
306
+ "ts",
307
+ "type",
308
+ "job_id",
309
+ "round",
310
+ "node",
311
+ "prev_hash",
312
+ "record_hash",
313
+ "approved"
314
+ ],
315
+ "properties": {
316
+ "ts": {
317
+ "$ref": "#/$defs/timestamp"
318
+ },
319
+ "type": {
320
+ "const": "approval.result"
321
+ },
322
+ "job_id": {
323
+ "$ref": "#/$defs/jobId"
324
+ },
325
+ "round": {
326
+ "$ref": "#/$defs/round"
327
+ },
328
+ "node": {
329
+ "$ref": "#/$defs/node"
330
+ },
331
+ "prev_hash": {
332
+ "$ref": "#/$defs/hash"
333
+ },
334
+ "record_hash": {
335
+ "$ref": "#/$defs/hash"
336
+ },
337
+ "approved": {
338
+ "type": "boolean"
339
+ },
340
+ "question": {
341
+ "$ref": "#/$defs/text"
342
+ }
343
+ },
344
+ "additionalProperties": false
345
+ },
346
+ "toolResult": {
347
+ "type": "object",
348
+ "required": [
349
+ "ts",
350
+ "type",
351
+ "job_id",
352
+ "round",
353
+ "node",
354
+ "prev_hash",
355
+ "record_hash"
356
+ ],
357
+ "properties": {
358
+ "ts": {
359
+ "$ref": "#/$defs/timestamp"
360
+ },
361
+ "type": {
362
+ "const": "tool.result"
363
+ },
364
+ "job_id": {
365
+ "$ref": "#/$defs/jobId"
366
+ },
367
+ "round": {
368
+ "$ref": "#/$defs/round"
369
+ },
370
+ "node": {
371
+ "$ref": "#/$defs/node"
372
+ },
373
+ "prev_hash": {
374
+ "$ref": "#/$defs/hash"
375
+ },
376
+ "record_hash": {
377
+ "$ref": "#/$defs/hash"
378
+ }
379
+ },
380
+ "additionalProperties": false
381
+ },
382
+ "checkpoint": {
383
+ "type": "object",
384
+ "required": [
385
+ "ts",
386
+ "type",
387
+ "job_id",
388
+ "round",
389
+ "node",
390
+ "prev_hash",
391
+ "record_hash"
392
+ ],
393
+ "properties": {
394
+ "ts": {
395
+ "$ref": "#/$defs/timestamp"
396
+ },
397
+ "type": {
398
+ "const": "checkpoint"
399
+ },
400
+ "job_id": {
401
+ "$ref": "#/$defs/jobId"
402
+ },
403
+ "round": {
404
+ "$ref": "#/$defs/round"
405
+ },
406
+ "node": {
407
+ "$ref": "#/$defs/node"
408
+ },
409
+ "prev_hash": {
410
+ "$ref": "#/$defs/hash"
411
+ },
412
+ "record_hash": {
413
+ "$ref": "#/$defs/hash"
414
+ },
415
+ "detail": {
416
+ "$ref": "#/$defs/text"
417
+ }
418
+ },
419
+ "additionalProperties": false
420
+ },
421
+ "handoffCompleted": {
422
+ "type": "object",
423
+ "required": [
424
+ "ts",
425
+ "type",
426
+ "job_id",
427
+ "round",
428
+ "node",
429
+ "prev_hash",
430
+ "record_hash"
431
+ ],
432
+ "properties": {
433
+ "ts": {
434
+ "$ref": "#/$defs/timestamp"
435
+ },
436
+ "type": {
437
+ "const": "handoff.completed"
438
+ },
439
+ "job_id": {
440
+ "$ref": "#/$defs/jobId"
441
+ },
442
+ "round": {
443
+ "$ref": "#/$defs/round"
444
+ },
445
+ "node": {
446
+ "$ref": "#/$defs/node"
447
+ },
448
+ "prev_hash": {
449
+ "$ref": "#/$defs/hash"
450
+ },
451
+ "record_hash": {
452
+ "$ref": "#/$defs/hash"
453
+ }
454
+ },
455
+ "additionalProperties": false
456
+ },
457
+ "recoveryStarted": {
458
+ "type": "object",
459
+ "required": [
460
+ "ts",
461
+ "type",
462
+ "job_id",
463
+ "round",
464
+ "node",
465
+ "prev_hash",
466
+ "record_hash"
467
+ ],
468
+ "properties": {
469
+ "ts": {
470
+ "$ref": "#/$defs/timestamp"
471
+ },
472
+ "type": {
473
+ "const": "recovery.started"
474
+ },
475
+ "job_id": {
476
+ "$ref": "#/$defs/jobId"
477
+ },
478
+ "round": {
479
+ "$ref": "#/$defs/round"
480
+ },
481
+ "node": {
482
+ "$ref": "#/$defs/node"
483
+ },
484
+ "prev_hash": {
485
+ "$ref": "#/$defs/hash"
486
+ },
487
+ "record_hash": {
488
+ "$ref": "#/$defs/hash"
489
+ }
490
+ },
491
+ "additionalProperties": false
492
+ },
493
+ "recoveryCompleted": {
494
+ "type": "object",
495
+ "required": [
496
+ "ts",
497
+ "type",
498
+ "job_id",
499
+ "round",
500
+ "node",
501
+ "prev_hash",
502
+ "record_hash"
503
+ ],
504
+ "properties": {
505
+ "ts": {
506
+ "$ref": "#/$defs/timestamp"
507
+ },
508
+ "type": {
509
+ "const": "recovery.completed"
510
+ },
511
+ "job_id": {
512
+ "$ref": "#/$defs/jobId"
513
+ },
514
+ "round": {
515
+ "$ref": "#/$defs/round"
516
+ },
517
+ "node": {
518
+ "$ref": "#/$defs/node"
519
+ },
520
+ "prev_hash": {
521
+ "$ref": "#/$defs/hash"
522
+ },
523
+ "record_hash": {
524
+ "$ref": "#/$defs/hash"
525
+ }
526
+ },
527
+ "additionalProperties": false
528
+ },
529
+ "kgPatchProposed": {
530
+ "type": "object",
531
+ "required": [
532
+ "ts",
533
+ "type",
534
+ "job_id",
535
+ "round",
536
+ "node",
537
+ "prev_hash",
538
+ "record_hash"
539
+ ],
540
+ "properties": {
541
+ "ts": {
542
+ "$ref": "#/$defs/timestamp"
543
+ },
544
+ "type": {
545
+ "const": "kg.patch.proposed"
546
+ },
547
+ "job_id": {
548
+ "$ref": "#/$defs/jobId"
549
+ },
550
+ "round": {
551
+ "$ref": "#/$defs/round"
552
+ },
553
+ "node": {
554
+ "$ref": "#/$defs/node"
555
+ },
556
+ "prev_hash": {
557
+ "$ref": "#/$defs/hash"
558
+ },
559
+ "record_hash": {
560
+ "$ref": "#/$defs/hash"
561
+ }
562
+ },
563
+ "additionalProperties": false
564
+ },
565
+ "kgPatchAccepted": {
566
+ "type": "object",
567
+ "required": [
568
+ "ts",
569
+ "type",
570
+ "job_id",
571
+ "round",
572
+ "node",
573
+ "prev_hash",
574
+ "record_hash"
575
+ ],
576
+ "properties": {
577
+ "ts": {
578
+ "$ref": "#/$defs/timestamp"
579
+ },
580
+ "type": {
581
+ "const": "kg.patch.accepted"
582
+ },
583
+ "job_id": {
584
+ "$ref": "#/$defs/jobId"
585
+ },
586
+ "round": {
587
+ "$ref": "#/$defs/round"
588
+ },
589
+ "node": {
590
+ "$ref": "#/$defs/node"
591
+ },
592
+ "prev_hash": {
593
+ "$ref": "#/$defs/hash"
594
+ },
595
+ "record_hash": {
596
+ "$ref": "#/$defs/hash"
597
+ }
598
+ },
599
+ "additionalProperties": false
600
+ },
601
+ "accountsFailover": {
602
+ "type": "object",
603
+ "required": [
604
+ "ts",
605
+ "type",
606
+ "job_id",
607
+ "round",
608
+ "node",
609
+ "prev_hash",
610
+ "record_hash",
611
+ "from",
612
+ "to"
613
+ ],
614
+ "properties": {
615
+ "ts": {
616
+ "$ref": "#/$defs/timestamp"
617
+ },
618
+ "type": {
619
+ "const": "accounts.failover"
620
+ },
621
+ "job_id": {
622
+ "$ref": "#/$defs/jobId"
623
+ },
624
+ "round": {
625
+ "$ref": "#/$defs/round"
626
+ },
627
+ "node": {
628
+ "$ref": "#/$defs/node"
629
+ },
630
+ "prev_hash": {
631
+ "$ref": "#/$defs/hash"
632
+ },
633
+ "record_hash": {
634
+ "$ref": "#/$defs/hash"
635
+ },
636
+ "from": {
637
+ "$ref": "#/$defs/identifier"
638
+ },
639
+ "to": {
640
+ "$ref": "#/$defs/identifier"
641
+ },
642
+ "reason": {
643
+ "$ref": "#/$defs/text"
644
+ }
645
+ },
646
+ "additionalProperties": false
647
+ },
648
+ "acRefused": {
649
+ "type": "object",
650
+ "required": [
651
+ "ts",
652
+ "type",
653
+ "job_id",
654
+ "round",
655
+ "node",
656
+ "prev_hash",
657
+ "record_hash",
658
+ "quality",
659
+ "reason"
660
+ ],
661
+ "properties": {
662
+ "ts": {
663
+ "$ref": "#/$defs/timestamp"
664
+ },
665
+ "type": {
666
+ "const": "ac.refused"
667
+ },
668
+ "job_id": {
669
+ "$ref": "#/$defs/jobId"
670
+ },
671
+ "round": {
672
+ "$ref": "#/$defs/round"
673
+ },
674
+ "node": {
675
+ "$ref": "#/$defs/node"
676
+ },
677
+ "prev_hash": {
678
+ "$ref": "#/$defs/hash"
679
+ },
680
+ "record_hash": {
681
+ "$ref": "#/$defs/hash"
682
+ },
683
+ "quality": {
684
+ "enum": [
685
+ "executable",
686
+ "partial",
687
+ "narrative"
688
+ ]
689
+ },
690
+ "reason": {
691
+ "$ref": "#/$defs/text"
692
+ }
693
+ },
694
+ "additionalProperties": false
695
+ },
696
+ "loopTerminal": {
697
+ "type": "object",
698
+ "required": [
699
+ "ts",
700
+ "type",
701
+ "job_id",
702
+ "round",
703
+ "node",
704
+ "prev_hash",
705
+ "record_hash",
706
+ "status"
707
+ ],
708
+ "properties": {
709
+ "ts": {
710
+ "$ref": "#/$defs/timestamp"
711
+ },
712
+ "type": {
713
+ "const": "loop.terminal"
714
+ },
715
+ "job_id": {
716
+ "$ref": "#/$defs/jobId"
717
+ },
718
+ "round": {
719
+ "$ref": "#/$defs/round"
720
+ },
721
+ "node": {
722
+ "$ref": "#/$defs/node"
723
+ },
724
+ "prev_hash": {
725
+ "$ref": "#/$defs/hash"
726
+ },
727
+ "record_hash": {
728
+ "$ref": "#/$defs/hash"
729
+ },
730
+ "status": {
731
+ "enum": [
732
+ "DONE",
733
+ "BLOCKED",
734
+ "EXHAUSTED",
735
+ "NO_PROGRESS",
736
+ "UNSAFE",
737
+ "NEEDS_HUMAN"
738
+ ]
739
+ },
740
+ "reason": {
741
+ "$ref": "#/$defs/text"
742
+ }
743
+ },
744
+ "additionalProperties": false
745
+ },
746
+ "researchStarted": {
747
+ "type": "object",
748
+ "required": [
749
+ "ts",
750
+ "type",
751
+ "job_id",
752
+ "round",
753
+ "node",
754
+ "prev_hash",
755
+ "record_hash"
756
+ ],
757
+ "properties": {
758
+ "ts": {
759
+ "$ref": "#/$defs/timestamp"
760
+ },
761
+ "type": {
762
+ "const": "research.started"
763
+ },
764
+ "job_id": {
765
+ "$ref": "#/$defs/jobId"
766
+ },
767
+ "round": {
768
+ "$ref": "#/$defs/round"
769
+ },
770
+ "node": {
771
+ "$ref": "#/$defs/node"
772
+ },
773
+ "prev_hash": {
774
+ "$ref": "#/$defs/hash"
775
+ },
776
+ "record_hash": {
777
+ "$ref": "#/$defs/hash"
778
+ },
779
+ "service": {
780
+ "$ref": "#/$defs/service"
781
+ },
782
+ "query": {
783
+ "$ref": "#/$defs/text"
784
+ },
785
+ "attempt": {
786
+ "$ref": "#/$defs/attempt"
787
+ },
788
+ "result_count": {
789
+ "$ref": "#/$defs/resultCount"
790
+ },
791
+ "source_refs": {
792
+ "$ref": "#/$defs/sourceRefs"
793
+ },
794
+ "from": {
795
+ "$ref": "#/$defs/identifier"
796
+ },
797
+ "to": {
798
+ "$ref": "#/$defs/identifier"
799
+ },
800
+ "reason": {
801
+ "$ref": "#/$defs/text"
802
+ },
803
+ "mode": {
804
+ "$ref": "#/$defs/researchMode"
805
+ },
806
+ "network_state": {
807
+ "$ref": "#/$defs/networkState"
808
+ }
809
+ },
810
+ "additionalProperties": false
811
+ },
812
+ "researchQuery": {
813
+ "type": "object",
814
+ "required": [
815
+ "ts",
816
+ "type",
817
+ "job_id",
818
+ "round",
819
+ "node",
820
+ "prev_hash",
821
+ "record_hash"
822
+ ],
823
+ "properties": {
824
+ "ts": {
825
+ "$ref": "#/$defs/timestamp"
826
+ },
827
+ "type": {
828
+ "const": "research.query"
829
+ },
830
+ "job_id": {
831
+ "$ref": "#/$defs/jobId"
832
+ },
833
+ "round": {
834
+ "$ref": "#/$defs/round"
835
+ },
836
+ "node": {
837
+ "$ref": "#/$defs/node"
838
+ },
839
+ "prev_hash": {
840
+ "$ref": "#/$defs/hash"
841
+ },
842
+ "record_hash": {
843
+ "$ref": "#/$defs/hash"
844
+ },
845
+ "service": {
846
+ "$ref": "#/$defs/service"
847
+ },
848
+ "query": {
849
+ "$ref": "#/$defs/text"
850
+ },
851
+ "attempt": {
852
+ "$ref": "#/$defs/attempt"
853
+ },
854
+ "result_count": {
855
+ "$ref": "#/$defs/resultCount"
856
+ },
857
+ "source_refs": {
858
+ "$ref": "#/$defs/sourceRefs"
859
+ },
860
+ "from": {
861
+ "$ref": "#/$defs/identifier"
862
+ },
863
+ "to": {
864
+ "$ref": "#/$defs/identifier"
865
+ },
866
+ "reason": {
867
+ "$ref": "#/$defs/text"
868
+ },
869
+ "mode": {
870
+ "$ref": "#/$defs/researchMode"
871
+ },
872
+ "network_state": {
873
+ "$ref": "#/$defs/networkState"
874
+ }
875
+ },
876
+ "additionalProperties": false
877
+ },
878
+ "researchCall": {
879
+ "type": "object",
880
+ "required": [
881
+ "ts",
882
+ "type",
883
+ "job_id",
884
+ "round",
885
+ "node",
886
+ "prev_hash",
887
+ "record_hash"
888
+ ],
889
+ "properties": {
890
+ "ts": {
891
+ "$ref": "#/$defs/timestamp"
892
+ },
893
+ "type": {
894
+ "const": "research.call"
895
+ },
896
+ "job_id": {
897
+ "$ref": "#/$defs/jobId"
898
+ },
899
+ "round": {
900
+ "$ref": "#/$defs/round"
901
+ },
902
+ "node": {
903
+ "$ref": "#/$defs/node"
904
+ },
905
+ "prev_hash": {
906
+ "$ref": "#/$defs/hash"
907
+ },
908
+ "record_hash": {
909
+ "$ref": "#/$defs/hash"
910
+ },
911
+ "service": {
912
+ "$ref": "#/$defs/service"
913
+ },
914
+ "query": {
915
+ "$ref": "#/$defs/text"
916
+ },
917
+ "attempt": {
918
+ "$ref": "#/$defs/attempt"
919
+ },
920
+ "result_count": {
921
+ "$ref": "#/$defs/resultCount"
922
+ },
923
+ "source_refs": {
924
+ "$ref": "#/$defs/sourceRefs"
925
+ },
926
+ "from": {
927
+ "$ref": "#/$defs/identifier"
928
+ },
929
+ "to": {
930
+ "$ref": "#/$defs/identifier"
931
+ },
932
+ "reason": {
933
+ "$ref": "#/$defs/text"
934
+ },
935
+ "mode": {
936
+ "$ref": "#/$defs/researchMode"
937
+ },
938
+ "network_state": {
939
+ "$ref": "#/$defs/networkState"
940
+ }
941
+ },
942
+ "additionalProperties": false
943
+ },
944
+ "researchResult": {
945
+ "type": "object",
946
+ "required": [
947
+ "ts",
948
+ "type",
949
+ "job_id",
950
+ "round",
951
+ "node",
952
+ "prev_hash",
953
+ "record_hash"
954
+ ],
955
+ "properties": {
956
+ "ts": {
957
+ "$ref": "#/$defs/timestamp"
958
+ },
959
+ "type": {
960
+ "const": "research.result"
961
+ },
962
+ "job_id": {
963
+ "$ref": "#/$defs/jobId"
964
+ },
965
+ "round": {
966
+ "$ref": "#/$defs/round"
967
+ },
968
+ "node": {
969
+ "$ref": "#/$defs/node"
970
+ },
971
+ "prev_hash": {
972
+ "$ref": "#/$defs/hash"
973
+ },
974
+ "record_hash": {
975
+ "$ref": "#/$defs/hash"
976
+ },
977
+ "service": {
978
+ "$ref": "#/$defs/service"
979
+ },
980
+ "query": {
981
+ "$ref": "#/$defs/text"
982
+ },
983
+ "attempt": {
984
+ "$ref": "#/$defs/attempt"
985
+ },
986
+ "result_count": {
987
+ "$ref": "#/$defs/resultCount"
988
+ },
989
+ "source_refs": {
990
+ "$ref": "#/$defs/sourceRefs"
991
+ },
992
+ "from": {
993
+ "$ref": "#/$defs/identifier"
994
+ },
995
+ "to": {
996
+ "$ref": "#/$defs/identifier"
997
+ },
998
+ "reason": {
999
+ "$ref": "#/$defs/text"
1000
+ },
1001
+ "mode": {
1002
+ "$ref": "#/$defs/researchMode"
1003
+ },
1004
+ "network_state": {
1005
+ "$ref": "#/$defs/networkState"
1006
+ }
1007
+ },
1008
+ "additionalProperties": false
1009
+ },
1010
+ "researchFallback": {
1011
+ "type": "object",
1012
+ "required": [
1013
+ "ts",
1014
+ "type",
1015
+ "job_id",
1016
+ "round",
1017
+ "node",
1018
+ "prev_hash",
1019
+ "record_hash"
1020
+ ],
1021
+ "properties": {
1022
+ "ts": {
1023
+ "$ref": "#/$defs/timestamp"
1024
+ },
1025
+ "type": {
1026
+ "const": "research.fallback"
1027
+ },
1028
+ "job_id": {
1029
+ "$ref": "#/$defs/jobId"
1030
+ },
1031
+ "round": {
1032
+ "$ref": "#/$defs/round"
1033
+ },
1034
+ "node": {
1035
+ "$ref": "#/$defs/node"
1036
+ },
1037
+ "prev_hash": {
1038
+ "$ref": "#/$defs/hash"
1039
+ },
1040
+ "record_hash": {
1041
+ "$ref": "#/$defs/hash"
1042
+ },
1043
+ "service": {
1044
+ "$ref": "#/$defs/service"
1045
+ },
1046
+ "query": {
1047
+ "$ref": "#/$defs/text"
1048
+ },
1049
+ "attempt": {
1050
+ "$ref": "#/$defs/attempt"
1051
+ },
1052
+ "result_count": {
1053
+ "$ref": "#/$defs/resultCount"
1054
+ },
1055
+ "source_refs": {
1056
+ "$ref": "#/$defs/sourceRefs"
1057
+ },
1058
+ "from": {
1059
+ "$ref": "#/$defs/identifier"
1060
+ },
1061
+ "to": {
1062
+ "$ref": "#/$defs/identifier"
1063
+ },
1064
+ "reason": {
1065
+ "$ref": "#/$defs/text"
1066
+ },
1067
+ "mode": {
1068
+ "$ref": "#/$defs/researchMode"
1069
+ },
1070
+ "network_state": {
1071
+ "$ref": "#/$defs/networkState"
1072
+ }
1073
+ },
1074
+ "additionalProperties": false
1075
+ },
1076
+ "researchCompleted": {
1077
+ "type": "object",
1078
+ "required": [
1079
+ "ts",
1080
+ "type",
1081
+ "job_id",
1082
+ "round",
1083
+ "node",
1084
+ "prev_hash",
1085
+ "record_hash"
1086
+ ],
1087
+ "properties": {
1088
+ "ts": {
1089
+ "$ref": "#/$defs/timestamp"
1090
+ },
1091
+ "type": {
1092
+ "const": "research.completed"
1093
+ },
1094
+ "job_id": {
1095
+ "$ref": "#/$defs/jobId"
1096
+ },
1097
+ "round": {
1098
+ "$ref": "#/$defs/round"
1099
+ },
1100
+ "node": {
1101
+ "$ref": "#/$defs/node"
1102
+ },
1103
+ "prev_hash": {
1104
+ "$ref": "#/$defs/hash"
1105
+ },
1106
+ "record_hash": {
1107
+ "$ref": "#/$defs/hash"
1108
+ },
1109
+ "service": {
1110
+ "$ref": "#/$defs/service"
1111
+ },
1112
+ "query": {
1113
+ "$ref": "#/$defs/text"
1114
+ },
1115
+ "attempt": {
1116
+ "$ref": "#/$defs/attempt"
1117
+ },
1118
+ "result_count": {
1119
+ "$ref": "#/$defs/resultCount"
1120
+ },
1121
+ "source_refs": {
1122
+ "$ref": "#/$defs/sourceRefs"
1123
+ },
1124
+ "from": {
1125
+ "$ref": "#/$defs/identifier"
1126
+ },
1127
+ "to": {
1128
+ "$ref": "#/$defs/identifier"
1129
+ },
1130
+ "reason": {
1131
+ "$ref": "#/$defs/text"
1132
+ },
1133
+ "mode": {
1134
+ "$ref": "#/$defs/researchMode"
1135
+ },
1136
+ "network_state": {
1137
+ "$ref": "#/$defs/networkState"
1138
+ }
1139
+ },
1140
+ "additionalProperties": false
1141
+ },
1142
+ "agentSpawned": {
1143
+ "type": "object",
1144
+ "required": [
1145
+ "ts",
1146
+ "type",
1147
+ "job_id",
1148
+ "round",
1149
+ "node",
1150
+ "prev_hash",
1151
+ "record_hash",
1152
+ "agent_id",
1153
+ "role",
1154
+ "pid"
1155
+ ],
1156
+ "properties": {
1157
+ "ts": {
1158
+ "$ref": "#/$defs/timestamp"
1159
+ },
1160
+ "type": {
1161
+ "const": "agent.spawned"
1162
+ },
1163
+ "job_id": {
1164
+ "$ref": "#/$defs/jobId"
1165
+ },
1166
+ "round": {
1167
+ "$ref": "#/$defs/round"
1168
+ },
1169
+ "node": {
1170
+ "$ref": "#/$defs/node"
1171
+ },
1172
+ "prev_hash": {
1173
+ "$ref": "#/$defs/hash"
1174
+ },
1175
+ "record_hash": {
1176
+ "$ref": "#/$defs/hash"
1177
+ },
1178
+ "agent_id": {
1179
+ "$ref": "#/$defs/identifier"
1180
+ },
1181
+ "role": {
1182
+ "$ref": "#/$defs/text"
1183
+ },
1184
+ "pid": {
1185
+ "$ref": "#/$defs/pid"
1186
+ },
1187
+ "session_path": {
1188
+ "$ref": "#/$defs/identifier"
1189
+ },
1190
+ "status": {
1191
+ "$ref": "#/$defs/text"
1192
+ }
1193
+ },
1194
+ "additionalProperties": false
1195
+ },
1196
+ "agentMessage": {
1197
+ "type": "object",
1198
+ "required": [
1199
+ "ts",
1200
+ "type",
1201
+ "job_id",
1202
+ "round",
1203
+ "node",
1204
+ "prev_hash",
1205
+ "record_hash",
1206
+ "agent_id"
1207
+ ],
1208
+ "properties": {
1209
+ "ts": {
1210
+ "$ref": "#/$defs/timestamp"
1211
+ },
1212
+ "type": {
1213
+ "const": "agent.message"
1214
+ },
1215
+ "job_id": {
1216
+ "$ref": "#/$defs/jobId"
1217
+ },
1218
+ "round": {
1219
+ "$ref": "#/$defs/round"
1220
+ },
1221
+ "node": {
1222
+ "$ref": "#/$defs/node"
1223
+ },
1224
+ "prev_hash": {
1225
+ "$ref": "#/$defs/hash"
1226
+ },
1227
+ "record_hash": {
1228
+ "$ref": "#/$defs/hash"
1229
+ },
1230
+ "agent_id": {
1231
+ "$ref": "#/$defs/identifier"
1232
+ },
1233
+ "message_id": {
1234
+ "$ref": "#/$defs/identifier"
1235
+ },
1236
+ "deliver_as": {
1237
+ "enum": [
1238
+ "steer",
1239
+ "followUp"
1240
+ ]
1241
+ },
1242
+ "expect": {
1243
+ "$ref": "#/$defs/text"
1244
+ },
1245
+ "status": {
1246
+ "$ref": "#/$defs/text"
1247
+ }
1248
+ },
1249
+ "additionalProperties": false
1250
+ },
1251
+ "reviewVerdict": {
1252
+ "type": "object",
1253
+ "required": [
1254
+ "ts",
1255
+ "type",
1256
+ "job_id",
1257
+ "round",
1258
+ "node",
1259
+ "prev_hash",
1260
+ "record_hash",
1261
+ "status",
1262
+ "approved",
1263
+ "blocking_count"
1264
+ ],
1265
+ "properties": {
1266
+ "ts": {
1267
+ "$ref": "#/$defs/timestamp"
1268
+ },
1269
+ "type": {
1270
+ "const": "review.verdict"
1271
+ },
1272
+ "job_id": {
1273
+ "$ref": "#/$defs/jobId"
1274
+ },
1275
+ "round": {
1276
+ "$ref": "#/$defs/round"
1277
+ },
1278
+ "node": {
1279
+ "$ref": "#/$defs/node"
1280
+ },
1281
+ "prev_hash": {
1282
+ "$ref": "#/$defs/hash"
1283
+ },
1284
+ "record_hash": {
1285
+ "$ref": "#/$defs/hash"
1286
+ },
1287
+ "status": {
1288
+ "enum": [
1289
+ "PASS",
1290
+ "REVISE",
1291
+ "BLOCKED"
1292
+ ]
1293
+ },
1294
+ "approved": {
1295
+ "type": "boolean"
1296
+ },
1297
+ "blocking_count": {
1298
+ "type": "integer",
1299
+ "minimum": 0
1300
+ },
1301
+ "nonblocking_count": {
1302
+ "type": "integer",
1303
+ "minimum": 0
1304
+ },
1305
+ "fingerprint": {
1306
+ "type": "string",
1307
+ "minLength": 1,
1308
+ "maxLength": 128
1309
+ }
1310
+ },
1311
+ "additionalProperties": false
1312
+ }
1313
+ }
1314
+ }