@xfey/tutti 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 (564) hide show
  1. package/README.md +50 -0
  2. package/dist/approvals/index.d.ts +3 -0
  3. package/dist/approvals/index.js +3 -0
  4. package/dist/approvals/manager.d.ts +47 -0
  5. package/dist/approvals/manager.js +180 -0
  6. package/dist/approvals/projections.d.ts +34 -0
  7. package/dist/approvals/projections.js +444 -0
  8. package/dist/artifacts/index.d.ts +4 -0
  9. package/dist/artifacts/index.js +4 -0
  10. package/dist/artifacts/manifest.d.ts +48 -0
  11. package/dist/artifacts/manifest.js +334 -0
  12. package/dist/artifacts/preview-runtime.d.ts +97 -0
  13. package/dist/artifacts/preview-runtime.js +585 -0
  14. package/dist/artifacts/static-preview.d.ts +17 -0
  15. package/dist/artifacts/static-preview.js +180 -0
  16. package/dist/chat-assistant/index.d.ts +66 -0
  17. package/dist/chat-assistant/index.js +268 -0
  18. package/dist/checks/index.d.ts +47 -0
  19. package/dist/checks/index.js +169 -0
  20. package/dist/collaboration-state/clarification-messages.d.ts +8 -0
  21. package/dist/collaboration-state/clarification-messages.js +180 -0
  22. package/dist/collaboration-state/clarification-records.d.ts +27 -0
  23. package/dist/collaboration-state/clarification-records.js +266 -0
  24. package/dist/collaboration-state/clarification-round-writes.d.ts +14 -0
  25. package/dist/collaboration-state/clarification-round-writes.js +58 -0
  26. package/dist/collaboration-state/clarification-rounds.d.ts +19 -0
  27. package/dist/collaboration-state/clarification-rounds.js +347 -0
  28. package/dist/collaboration-state/clarification-successors.d.ts +8 -0
  29. package/dist/collaboration-state/clarification-successors.js +318 -0
  30. package/dist/collaboration-state/execution-status.d.ts +3 -0
  31. package/dist/collaboration-state/execution-status.js +8 -0
  32. package/dist/collaboration-state/index.d.ts +17 -0
  33. package/dist/collaboration-state/index.js +16 -0
  34. package/dist/collaboration-state/messages.d.ts +25 -0
  35. package/dist/collaboration-state/messages.js +371 -0
  36. package/dist/collaboration-state/read-state.d.ts +7 -0
  37. package/dist/collaboration-state/read-state.js +136 -0
  38. package/dist/collaboration-state/recovery.d.ts +6 -0
  39. package/dist/collaboration-state/recovery.js +125 -0
  40. package/dist/collaboration-state/run-recording.d.ts +5 -0
  41. package/dist/collaboration-state/run-recording.js +216 -0
  42. package/dist/collaboration-state/run-results.d.ts +12 -0
  43. package/dist/collaboration-state/run-results.js +202 -0
  44. package/dist/collaboration-state/scratchpad-source-state.d.ts +46 -0
  45. package/dist/collaboration-state/scratchpad-source-state.js +207 -0
  46. package/dist/collaboration-state/scratchpad.d.ts +8 -0
  47. package/dist/collaboration-state/scratchpad.js +84 -0
  48. package/dist/collaboration-state/serialization.d.ts +16 -0
  49. package/dist/collaboration-state/serialization.js +71 -0
  50. package/dist/collaboration-state/storage-types.d.ts +136 -0
  51. package/dist/collaboration-state/storage-types.js +2 -0
  52. package/dist/collaboration-state/task-details.d.ts +5 -0
  53. package/dist/collaboration-state/task-details.js +25 -0
  54. package/dist/collaboration-state/types.d.ts +289 -0
  55. package/dist/collaboration-state/types.js +2 -0
  56. package/dist/collaboration-state/worklist.d.ts +11 -0
  57. package/dist/collaboration-state/worklist.js +286 -0
  58. package/dist/control-plane/clarification-commands.d.ts +34 -0
  59. package/dist/control-plane/clarification-commands.js +106 -0
  60. package/dist/control-plane/command-recovery.d.ts +3 -0
  61. package/dist/control-plane/command-recovery.js +79 -0
  62. package/dist/control-plane/context-sync.d.ts +47 -0
  63. package/dist/control-plane/context-sync.js +207 -0
  64. package/dist/control-plane/event-publishers.d.ts +24 -0
  65. package/dist/control-plane/event-publishers.js +192 -0
  66. package/dist/control-plane/execution-status.d.ts +13 -0
  67. package/dist/control-plane/execution-status.js +130 -0
  68. package/dist/control-plane/follow-up-context.d.ts +27 -0
  69. package/dist/control-plane/follow-up-context.js +93 -0
  70. package/dist/control-plane/follow-up-output.d.ts +53 -0
  71. package/dist/control-plane/follow-up-output.js +141 -0
  72. package/dist/control-plane/follow-up-run.d.ts +22 -0
  73. package/dist/control-plane/follow-up-run.js +90 -0
  74. package/dist/control-plane/follow-up-start.d.ts +26 -0
  75. package/dist/control-plane/follow-up-start.js +101 -0
  76. package/dist/control-plane/formatters.d.ts +12 -0
  77. package/dist/control-plane/formatters.js +47 -0
  78. package/dist/control-plane/index.d.ts +62 -0
  79. package/dist/control-plane/index.js +416 -0
  80. package/dist/control-plane/invalidations.d.ts +12 -0
  81. package/dist/control-plane/invalidations.js +67 -0
  82. package/dist/control-plane/procedure-logging.d.ts +11 -0
  83. package/dist/control-plane/procedure-logging.js +95 -0
  84. package/dist/control-plane/project-brief-refresh.d.ts +31 -0
  85. package/dist/control-plane/project-brief-refresh.js +105 -0
  86. package/dist/control-plane/project-context-bootstrap.d.ts +39 -0
  87. package/dist/control-plane/project-context-bootstrap.js +107 -0
  88. package/dist/control-plane/reference-summary-refresh.d.ts +22 -0
  89. package/dist/control-plane/reference-summary-refresh.js +344 -0
  90. package/dist/control-plane/run-lineage.d.ts +8 -0
  91. package/dist/control-plane/run-lineage.js +13 -0
  92. package/dist/control-plane/run-result-recording.d.ts +46 -0
  93. package/dist/control-plane/run-result-recording.js +81 -0
  94. package/dist/control-plane/run-scheduler.d.ts +35 -0
  95. package/dist/control-plane/run-scheduler.js +110 -0
  96. package/dist/control-plane/run-start.d.ts +30 -0
  97. package/dist/control-plane/run-start.js +167 -0
  98. package/dist/control-plane/scratchpad-auto-refresh.d.ts +32 -0
  99. package/dist/control-plane/scratchpad-auto-refresh.js +150 -0
  100. package/dist/control-plane/scratchpad-refresh-start.d.ts +60 -0
  101. package/dist/control-plane/scratchpad-refresh-start.js +240 -0
  102. package/dist/control-plane/scratchpad-refresh.d.ts +29 -0
  103. package/dist/control-plane/scratchpad-refresh.js +55 -0
  104. package/dist/control-plane/scratchpad-source-messages.d.ts +10 -0
  105. package/dist/control-plane/scratchpad-source-messages.js +131 -0
  106. package/dist/control-plane/startup-recovery.d.ts +19 -0
  107. package/dist/control-plane/startup-recovery.js +113 -0
  108. package/dist/control-plane/task-compile-continuation.d.ts +25 -0
  109. package/dist/control-plane/task-compile-continuation.js +127 -0
  110. package/dist/control-plane/task-compile-output.d.ts +29 -0
  111. package/dist/control-plane/task-compile-output.js +122 -0
  112. package/dist/control-plane/task-compile-start.d.ts +43 -0
  113. package/dist/control-plane/task-compile-start.js +280 -0
  114. package/dist/control-plane/task-proposal.d.ts +3 -0
  115. package/dist/control-plane/task-proposal.js +37 -0
  116. package/dist/control-plane/types.d.ts +155 -0
  117. package/dist/control-plane/types.js +2 -0
  118. package/dist/control-plane/workflows/index.d.ts +4 -0
  119. package/dist/control-plane/workflows/index.js +4 -0
  120. package/dist/control-plane/workflows/openai.d.ts +34 -0
  121. package/dist/control-plane/workflows/openai.js +411 -0
  122. package/dist/control-plane/workflows/structured-output-schemas.d.ts +9 -0
  123. package/dist/control-plane/workflows/structured-output-schemas.js +289 -0
  124. package/dist/control-plane/workflows/structured-output-validators.d.ts +15 -0
  125. package/dist/control-plane/workflows/structured-output-validators.js +295 -0
  126. package/dist/control-plane/workflows/structured-output.d.ts +3 -0
  127. package/dist/control-plane/workflows/structured-output.js +3 -0
  128. package/dist/control-plane/workflows/types.d.ts +274 -0
  129. package/dist/control-plane/workflows/types.js +2 -0
  130. package/dist/control-plane/worklist-terminal-feedback.d.ts +15 -0
  131. package/dist/control-plane/worklist-terminal-feedback.js +135 -0
  132. package/dist/index.d.ts +2 -0
  133. package/dist/index.js +32 -0
  134. package/dist/procedure-engine/index.d.ts +56 -0
  135. package/dist/procedure-engine/index.js +163 -0
  136. package/dist/project-brief/index.d.ts +4 -0
  137. package/dist/project-brief/index.js +3 -0
  138. package/dist/project-brief/repository.d.ts +5 -0
  139. package/dist/project-brief/repository.js +97 -0
  140. package/dist/project-brief/source.d.ts +8 -0
  141. package/dist/project-brief/source.js +75 -0
  142. package/dist/project-brief/types.d.ts +40 -0
  143. package/dist/project-brief/types.js +2 -0
  144. package/dist/project-docs/context.d.ts +34 -0
  145. package/dist/project-docs/context.js +86 -0
  146. package/dist/project-timeline/index.d.ts +20 -0
  147. package/dist/project-timeline/index.js +100 -0
  148. package/dist/prompt-templates/index.d.ts +13 -0
  149. package/dist/prompt-templates/index.js +86 -0
  150. package/dist/provider-usage/index.d.ts +37 -0
  151. package/dist/provider-usage/index.js +227 -0
  152. package/dist/providers/index.d.ts +2 -0
  153. package/dist/providers/index.js +2 -0
  154. package/dist/providers/openai/app-server/json-rpc.d.ts +71 -0
  155. package/dist/providers/openai/app-server/json-rpc.js +298 -0
  156. package/dist/providers/openai/app-server/permission-profile.d.ts +64 -0
  157. package/dist/providers/openai/app-server/permission-profile.js +67 -0
  158. package/dist/providers/openai/app-server/provider-config.d.ts +10 -0
  159. package/dist/providers/openai/app-server/provider-config.js +39 -0
  160. package/dist/providers/openai/app-server/read-only-procedure.d.ts +68 -0
  161. package/dist/providers/openai/app-server/read-only-procedure.js +293 -0
  162. package/dist/providers/openai/app-server/runtime-helpers.d.ts +20 -0
  163. package/dist/providers/openai/app-server/runtime-helpers.js +151 -0
  164. package/dist/providers/openai/app-server/skills.d.ts +82 -0
  165. package/dist/providers/openai/app-server/skills.js +222 -0
  166. package/dist/providers/openai/app-server/smoke-cli.d.ts +2 -0
  167. package/dist/providers/openai/app-server/smoke-cli.js +42 -0
  168. package/dist/providers/openai/app-server/smoke-helpers.d.ts +19 -0
  169. package/dist/providers/openai/app-server/smoke-helpers.js +125 -0
  170. package/dist/providers/openai/app-server/smoke-provider-input.d.ts +6 -0
  171. package/dist/providers/openai/app-server/smoke-provider-input.js +20 -0
  172. package/dist/providers/openai/app-server/smoke-types.d.ts +49 -0
  173. package/dist/providers/openai/app-server/smoke-types.js +20 -0
  174. package/dist/providers/openai/app-server/smoke.d.ts +9 -0
  175. package/dist/providers/openai/app-server/smoke.js +157 -0
  176. package/dist/providers/openai/app-server/workspace-write-run.d.ts +87 -0
  177. package/dist/providers/openai/app-server/workspace-write-run.js +379 -0
  178. package/dist/providers/openai/chat-assistant.d.ts +34 -0
  179. package/dist/providers/openai/chat-assistant.js +72 -0
  180. package/dist/providers/openai/codex-app-server.d.ts +126 -0
  181. package/dist/providers/openai/codex-app-server.js +147 -0
  182. package/dist/providers/openai/credential-store.d.ts +31 -0
  183. package/dist/providers/openai/credential-store.js +143 -0
  184. package/dist/providers/openai/credential-validation.d.ts +45 -0
  185. package/dist/providers/openai/credential-validation.js +190 -0
  186. package/dist/providers/openai/index.d.ts +13 -0
  187. package/dist/providers/openai/index.js +13 -0
  188. package/dist/providers/openai/machine-local-files.d.ts +19 -0
  189. package/dist/providers/openai/machine-local-files.js +55 -0
  190. package/dist/providers/openai/model-config.d.ts +4 -0
  191. package/dist/providers/openai/model-config.js +4 -0
  192. package/dist/providers/openai/provider-config-errors.d.ts +6 -0
  193. package/dist/providers/openai/provider-config-errors.js +13 -0
  194. package/dist/providers/openai/provider-config-shape.d.ts +3 -0
  195. package/dist/providers/openai/provider-config-shape.js +108 -0
  196. package/dist/providers/openai/provider-config-toml.d.ts +13 -0
  197. package/dist/providers/openai/provider-config-toml.js +113 -0
  198. package/dist/providers/openai/provider-config.d.ts +73 -0
  199. package/dist/providers/openai/provider-config.js +117 -0
  200. package/dist/providers/openai/provider-setup.d.ts +31 -0
  201. package/dist/providers/openai/provider-setup.js +88 -0
  202. package/dist/providers/openai/sdk-procedure-runner.d.ts +70 -0
  203. package/dist/providers/openai/sdk-procedure-runner.js +123 -0
  204. package/dist/providers/openai/token-usage.d.ts +11 -0
  205. package/dist/providers/openai/token-usage.js +90 -0
  206. package/dist/run-engine/index.d.ts +61 -0
  207. package/dist/run-engine/index.js +140 -0
  208. package/dist/run-pipeline/candidate-diff.d.ts +3 -0
  209. package/dist/run-pipeline/candidate-diff.js +10 -0
  210. package/dist/run-pipeline/openai.d.ts +41 -0
  211. package/dist/run-pipeline/openai.js +548 -0
  212. package/dist/run-pipeline/promotion-reconcile.d.ts +13 -0
  213. package/dist/run-pipeline/promotion-reconcile.js +138 -0
  214. package/dist/run-pipeline/result-projections.d.ts +39 -0
  215. package/dist/run-pipeline/result-projections.js +115 -0
  216. package/dist/run-pipeline/task-run-invocation.d.ts +6 -0
  217. package/dist/run-pipeline/task-run-invocation.js +130 -0
  218. package/dist/run-pipeline/task-run-output.d.ts +38 -0
  219. package/dist/run-pipeline/task-run-output.js +146 -0
  220. package/dist/server-shell/cli/args.d.ts +7 -0
  221. package/dist/server-shell/cli/args.js +30 -0
  222. package/dist/server-shell/cli/cli.d.ts +3 -0
  223. package/dist/server-shell/cli/cli.js +57 -0
  224. package/dist/server-shell/cli/errors.d.ts +9 -0
  225. package/dist/server-shell/cli/errors.js +53 -0
  226. package/dist/server-shell/cli/git-bootstrap.d.ts +24 -0
  227. package/dist/server-shell/cli/git-bootstrap.js +246 -0
  228. package/dist/server-shell/cli/host-lifecycle.d.ts +45 -0
  229. package/dist/server-shell/cli/host-lifecycle.js +298 -0
  230. package/dist/server-shell/cli/host-relay-status.d.ts +6 -0
  231. package/dist/server-shell/cli/host-relay-status.js +43 -0
  232. package/dist/server-shell/cli/host-runtime-endpoint.d.ts +22 -0
  233. package/dist/server-shell/cli/host-runtime-endpoint.js +120 -0
  234. package/dist/server-shell/cli/host-server-runtime.d.ts +30 -0
  235. package/dist/server-shell/cli/host-server-runtime.js +432 -0
  236. package/dist/server-shell/cli/index.d.ts +8 -0
  237. package/dist/server-shell/cli/index.js +8 -0
  238. package/dist/server-shell/cli/launch.d.ts +45 -0
  239. package/dist/server-shell/cli/launch.js +115 -0
  240. package/dist/server-shell/cli/machine-local.d.ts +69 -0
  241. package/dist/server-shell/cli/machine-local.js +223 -0
  242. package/dist/server-shell/cli/project-identity.d.ts +20 -0
  243. package/dist/server-shell/cli/project-identity.js +87 -0
  244. package/dist/server-shell/cli/relay-registration.d.ts +31 -0
  245. package/dist/server-shell/cli/relay-registration.js +61 -0
  246. package/dist/server-shell/command-idempotency/index.d.ts +44 -0
  247. package/dist/server-shell/command-idempotency/index.js +155 -0
  248. package/dist/server-shell/dev-runner/cli.d.ts +2 -0
  249. package/dist/server-shell/dev-runner/cli.js +10 -0
  250. package/dist/server-shell/dev-runner/config.d.ts +38 -0
  251. package/dist/server-shell/dev-runner/config.js +277 -0
  252. package/dist/server-shell/dev-runner/host-cli.d.ts +2 -0
  253. package/dist/server-shell/dev-runner/host-cli.js +22 -0
  254. package/dist/server-shell/dev-runner/index.d.ts +3 -0
  255. package/dist/server-shell/dev-runner/index.js +3 -0
  256. package/dist/server-shell/dev-runner/runner.d.ts +30 -0
  257. package/dist/server-shell/dev-runner/runner.js +236 -0
  258. package/dist/server-shell/http/create-server.d.ts +18 -0
  259. package/dist/server-shell/http/create-server.js +51 -0
  260. package/dist/server-shell/http/host-tunnel.d.ts +15 -0
  261. package/dist/server-shell/http/host-tunnel.js +154 -0
  262. package/dist/server-shell/http/logger.d.ts +7 -0
  263. package/dist/server-shell/http/logger.js +19 -0
  264. package/dist/server-shell/http/routes/agent-context-auth.d.ts +41 -0
  265. package/dist/server-shell/http/routes/agent-context-auth.js +73 -0
  266. package/dist/server-shell/http/routes/agent-context-errors.d.ts +6 -0
  267. package/dist/server-shell/http/routes/agent-context-errors.js +9 -0
  268. package/dist/server-shell/http/routes/agent-context-messages-routes.d.ts +4 -0
  269. package/dist/server-shell/http/routes/agent-context-messages-routes.js +74 -0
  270. package/dist/server-shell/http/routes/agent-context-project-doc-routes.d.ts +4 -0
  271. package/dist/server-shell/http/routes/agent-context-project-doc-routes.js +86 -0
  272. package/dist/server-shell/http/routes/agent-context-project-docs.d.ts +40 -0
  273. package/dist/server-shell/http/routes/agent-context-project-docs.js +98 -0
  274. package/dist/server-shell/http/routes/agent-context-query.d.ts +31 -0
  275. package/dist/server-shell/http/routes/agent-context-query.js +72 -0
  276. package/dist/server-shell/http/routes/agent-context-reference-routes.d.ts +4 -0
  277. package/dist/server-shell/http/routes/agent-context-reference-routes.js +82 -0
  278. package/dist/server-shell/http/routes/agent-context-references.d.ts +21 -0
  279. package/dist/server-shell/http/routes/agent-context-references.js +85 -0
  280. package/dist/server-shell/http/routes/agent-context-shared.d.ts +34 -0
  281. package/dist/server-shell/http/routes/agent-context-shared.js +44 -0
  282. package/dist/server-shell/http/routes/agent-context-skills-routes.d.ts +4 -0
  283. package/dist/server-shell/http/routes/agent-context-skills-routes.js +85 -0
  284. package/dist/server-shell/http/routes/agent-context-workspace-routes.d.ts +4 -0
  285. package/dist/server-shell/http/routes/agent-context-workspace-routes.js +130 -0
  286. package/dist/server-shell/http/routes/agent-context.d.ts +8 -0
  287. package/dist/server-shell/http/routes/agent-context.js +16 -0
  288. package/dist/server-shell/http/routes/health.d.ts +7 -0
  289. package/dist/server-shell/http/routes/health.js +41 -0
  290. package/dist/server-shell/http/routes/local-control.d.ts +40 -0
  291. package/dist/server-shell/http/routes/local-control.js +260 -0
  292. package/dist/server-shell/http/routes/project-api/approval-routes.d.ts +4 -0
  293. package/dist/server-shell/http/routes/project-api/approval-routes.js +64 -0
  294. package/dist/server-shell/http/routes/project-api/artifacts-routes.d.ts +8 -0
  295. package/dist/server-shell/http/routes/project-api/artifacts-routes.js +166 -0
  296. package/dist/server-shell/http/routes/project-api/clarification-routes.d.ts +4 -0
  297. package/dist/server-shell/http/routes/project-api/clarification-routes.js +150 -0
  298. package/dist/server-shell/http/routes/project-api/constants.d.ts +3 -0
  299. package/dist/server-shell/http/routes/project-api/constants.js +3 -0
  300. package/dist/server-shell/http/routes/project-api/errors.d.ts +26 -0
  301. package/dist/server-shell/http/routes/project-api/errors.js +41 -0
  302. package/dist/server-shell/http/routes/project-api/events-stream.d.ts +11 -0
  303. package/dist/server-shell/http/routes/project-api/events-stream.js +55 -0
  304. package/dist/server-shell/http/routes/project-api/execution-routes.d.ts +4 -0
  305. package/dist/server-shell/http/routes/project-api/execution-routes.js +92 -0
  306. package/dist/server-shell/http/routes/project-api/headers.d.ts +2 -0
  307. package/dist/server-shell/http/routes/project-api/headers.js +7 -0
  308. package/dist/server-shell/http/routes/project-api/invalidations.d.ts +10 -0
  309. package/dist/server-shell/http/routes/project-api/invalidations.js +57 -0
  310. package/dist/server-shell/http/routes/project-api/messages-routes.d.ts +8 -0
  311. package/dist/server-shell/http/routes/project-api/messages-routes.js +80 -0
  312. package/dist/server-shell/http/routes/project-api/openapi-approval-routes.d.ts +128 -0
  313. package/dist/server-shell/http/routes/project-api/openapi-approval-routes.js +32 -0
  314. package/dist/server-shell/http/routes/project-api/openapi-artifacts-routes.d.ts +51 -0
  315. package/dist/server-shell/http/routes/project-api/openapi-artifacts-routes.js +56 -0
  316. package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.d.ts +466 -0
  317. package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.js +165 -0
  318. package/dist/server-shell/http/routes/project-api/openapi-diagnostic-routes.d.ts +16 -0
  319. package/dist/server-shell/http/routes/project-api/openapi-diagnostic-routes.js +17 -0
  320. package/dist/server-shell/http/routes/project-api/openapi-execution-routes.d.ts +215 -0
  321. package/dist/server-shell/http/routes/project-api/openapi-execution-routes.js +75 -0
  322. package/dist/server-shell/http/routes/project-api/openapi-path-parameters.d.ts +9 -0
  323. package/dist/server-shell/http/routes/project-api/openapi-path-parameters.js +18 -0
  324. package/dist/server-shell/http/routes/project-api/openapi-skills-routes.d.ts +60 -0
  325. package/dist/server-shell/http/routes/project-api/openapi-skills-routes.js +51 -0
  326. package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.d.ts +115 -0
  327. package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.js +17 -0
  328. package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.d.ts +323 -0
  329. package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.js +120 -0
  330. package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.d.ts +1317 -0
  331. package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.js +95 -0
  332. package/dist/server-shell/http/routes/project-api/openapi.d.ts +2457 -0
  333. package/dist/server-shell/http/routes/project-api/openapi.js +30 -0
  334. package/dist/server-shell/http/routes/project-api/payload-validation.d.ts +6 -0
  335. package/dist/server-shell/http/routes/project-api/payload-validation.js +36 -0
  336. package/dist/server-shell/http/routes/project-api/project-docs-helpers.d.ts +9 -0
  337. package/dist/server-shell/http/routes/project-api/project-docs-helpers.js +17 -0
  338. package/dist/server-shell/http/routes/project-api/project-docs-routes.d.ts +8 -0
  339. package/dist/server-shell/http/routes/project-api/project-docs-routes.js +151 -0
  340. package/dist/server-shell/http/routes/project-api/project-timeline-projection.d.ts +8 -0
  341. package/dist/server-shell/http/routes/project-api/project-timeline-projection.js +658 -0
  342. package/dist/server-shell/http/routes/project-api/project-timeline-routes.d.ts +4 -0
  343. package/dist/server-shell/http/routes/project-api/project-timeline-routes.js +23 -0
  344. package/dist/server-shell/http/routes/project-api/read-state-routes.d.ts +8 -0
  345. package/dist/server-shell/http/routes/project-api/read-state-routes.js +82 -0
  346. package/dist/server-shell/http/routes/project-api/reference-files-routes.d.ts +8 -0
  347. package/dist/server-shell/http/routes/project-api/reference-files-routes.js +184 -0
  348. package/dist/server-shell/http/routes/project-api/reference-files.d.ts +17 -0
  349. package/dist/server-shell/http/routes/project-api/reference-files.js +212 -0
  350. package/dist/server-shell/http/routes/project-api/repo-projection.d.ts +3 -0
  351. package/dist/server-shell/http/routes/project-api/repo-projection.js +58 -0
  352. package/dist/server-shell/http/routes/project-api/schemas.d.ts +1351 -0
  353. package/dist/server-shell/http/routes/project-api/schemas.js +441 -0
  354. package/dist/server-shell/http/routes/project-api/session-requirements.d.ts +10 -0
  355. package/dist/server-shell/http/routes/project-api/session-requirements.js +60 -0
  356. package/dist/server-shell/http/routes/project-api/skills-helpers.d.ts +7 -0
  357. package/dist/server-shell/http/routes/project-api/skills-helpers.js +48 -0
  358. package/dist/server-shell/http/routes/project-api/skills-routes.d.ts +8 -0
  359. package/dist/server-shell/http/routes/project-api/skills-routes.js +185 -0
  360. package/dist/server-shell/http/routes/project-api/staged-uploads.d.ts +14 -0
  361. package/dist/server-shell/http/routes/project-api/staged-uploads.js +149 -0
  362. package/dist/server-shell/http/routes/project-api/system-routes.d.ts +8 -0
  363. package/dist/server-shell/http/routes/project-api/system-routes.js +141 -0
  364. package/dist/server-shell/http/routes/project-api/types.d.ts +137 -0
  365. package/dist/server-shell/http/routes/project-api/types.js +2 -0
  366. package/dist/server-shell/http/routes/project-api/viewer-projections.d.ts +17 -0
  367. package/dist/server-shell/http/routes/project-api/viewer-projections.js +102 -0
  368. package/dist/server-shell/http/routes/project-api/viewer-routes.d.ts +4 -0
  369. package/dist/server-shell/http/routes/project-api/viewer-routes.js +100 -0
  370. package/dist/server-shell/http/routes/project-api/workflow-routes.d.ts +4 -0
  371. package/dist/server-shell/http/routes/project-api/workflow-routes.js +85 -0
  372. package/dist/server-shell/http/routes/project-api/workspace-projections.d.ts +5 -0
  373. package/dist/server-shell/http/routes/project-api/workspace-projections.js +103 -0
  374. package/dist/server-shell/http/routes/project-api.d.ts +8 -0
  375. package/dist/server-shell/http/routes/project-api.js +34 -0
  376. package/dist/server-shell/http/sse-replay-buffer.d.ts +54 -0
  377. package/dist/server-shell/http/sse-replay-buffer.js +110 -0
  378. package/dist/server-shell/http/sse.d.ts +12 -0
  379. package/dist/server-shell/http/sse.js +22 -0
  380. package/dist/server-shell/http/static-web.d.ts +6 -0
  381. package/dist/server-shell/http/static-web.js +52 -0
  382. package/dist/server-shell/http/validation.d.ts +13 -0
  383. package/dist/server-shell/http/validation.js +136 -0
  384. package/dist/server-shell/http/workspace-events.d.ts +38 -0
  385. package/dist/server-shell/http/workspace-events.js +98 -0
  386. package/dist/server-shell/session/relay-session-context.d.ts +25 -0
  387. package/dist/server-shell/session/relay-session-context.js +49 -0
  388. package/dist/server-shell/smoke/e2e-client.d.ts +59 -0
  389. package/dist/server-shell/smoke/e2e-client.js +304 -0
  390. package/dist/server-shell/smoke/index.d.ts +2 -0
  391. package/dist/server-shell/smoke/index.js +2 -0
  392. package/dist/skills/constants.d.ts +8 -0
  393. package/dist/skills/constants.js +9 -0
  394. package/dist/skills/errors.d.ts +6 -0
  395. package/dist/skills/errors.js +9 -0
  396. package/dist/skills/index.d.ts +41 -0
  397. package/dist/skills/index.js +171 -0
  398. package/dist/skills/metadata.d.ts +8 -0
  399. package/dist/skills/metadata.js +80 -0
  400. package/dist/skills/zip-import.d.ts +18 -0
  401. package/dist/skills/zip-import.js +241 -0
  402. package/dist/store/command-recovery.d.ts +26 -0
  403. package/dist/store/command-recovery.js +71 -0
  404. package/dist/store/index.d.ts +6 -0
  405. package/dist/store/index.js +6 -0
  406. package/dist/store/lifecycle.d.ts +23 -0
  407. package/dist/store/lifecycle.js +53 -0
  408. package/dist/store/metadata.d.ts +18 -0
  409. package/dist/store/metadata.js +30 -0
  410. package/dist/store/migrations.d.ts +20 -0
  411. package/dist/store/migrations.js +76 -0
  412. package/dist/store/sqlite.d.ts +11 -0
  413. package/dist/store/sqlite.js +21 -0
  414. package/dist/workspace-ops/constants.d.ts +15 -0
  415. package/dist/workspace-ops/constants.js +20 -0
  416. package/dist/workspace-ops/errors.d.ts +8 -0
  417. package/dist/workspace-ops/errors.js +33 -0
  418. package/dist/workspace-ops/git.d.ts +13 -0
  419. package/dist/workspace-ops/git.js +53 -0
  420. package/dist/workspace-ops/index.d.ts +11 -0
  421. package/dist/workspace-ops/index.js +9 -0
  422. package/dist/workspace-ops/mainline.d.ts +2 -0
  423. package/dist/workspace-ops/mainline.js +16 -0
  424. package/dist/workspace-ops/project-doc-templates.d.ts +12 -0
  425. package/dist/workspace-ops/project-doc-templates.js +180 -0
  426. package/dist/workspace-ops/project-docs.d.ts +7 -0
  427. package/dist/workspace-ops/project-docs.js +156 -0
  428. package/dist/workspace-ops/reference-files.d.ts +3 -0
  429. package/dist/workspace-ops/reference-files.js +137 -0
  430. package/dist/workspace-ops/reference-metadata.d.ts +13 -0
  431. package/dist/workspace-ops/reference-metadata.js +86 -0
  432. package/dist/workspace-ops/reference-summaries.d.ts +17 -0
  433. package/dist/workspace-ops/reference-summaries.js +298 -0
  434. package/dist/workspace-ops/run-workspaces.d.ts +18 -0
  435. package/dist/workspace-ops/run-workspaces.js +271 -0
  436. package/dist/workspace-ops/types.d.ts +219 -0
  437. package/dist/workspace-ops/types.js +2 -0
  438. package/dist/workspace-ops/viewer-file.d.ts +4 -0
  439. package/dist/workspace-ops/viewer-file.js +207 -0
  440. package/dist/workspace-ops/viewer-git.d.ts +20 -0
  441. package/dist/workspace-ops/viewer-git.js +111 -0
  442. package/dist/workspace-ops/viewer-paths.d.ts +3 -0
  443. package/dist/workspace-ops/viewer-paths.js +13 -0
  444. package/dist/workspace-ops/viewer-tree.d.ts +9 -0
  445. package/dist/workspace-ops/viewer-tree.js +144 -0
  446. package/dist/workspace-ops/viewer.d.ts +5 -0
  447. package/dist/workspace-ops/viewer.js +5 -0
  448. package/migrations/0001_init.sql +674 -0
  449. package/migrations/0002_allow_sealed_round_successor_note.sql +14 -0
  450. package/migrations/0003_drop_scratchpad_source_message_refs.sql +1 -0
  451. package/migrations/0004_read_state.sql +109 -0
  452. package/migrations/0005_provider_usage.sql +15 -0
  453. package/migrations/0006_scratchpad_source_state.sql +29 -0
  454. package/migrations/0007_workspace_signal_read_state_scopes.sql +74 -0
  455. package/migrations/0008_provider_usage_anchors.sql +32 -0
  456. package/migrations/0009_project_timeline_events.sql +33 -0
  457. package/migrations/0010_project_brief.sql +13 -0
  458. package/migrations/0011_message_author_avatar.sql +5 -0
  459. package/migrations/README.md +44 -0
  460. package/node_modules/@tutti/relay-client/dist/host-control.d.ts +164 -0
  461. package/node_modules/@tutti/relay-client/dist/host-control.js +284 -0
  462. package/node_modules/@tutti/relay-client/dist/index.d.ts +3 -0
  463. package/node_modules/@tutti/relay-client/dist/index.js +3 -0
  464. package/node_modules/@tutti/relay-client/dist/tunnel-frames.d.ts +8 -0
  465. package/node_modules/@tutti/relay-client/dist/tunnel-frames.js +124 -0
  466. package/node_modules/@tutti/relay-client/dist/tunnel-types.d.ts +61 -0
  467. package/node_modules/@tutti/relay-client/dist/tunnel-types.js +2 -0
  468. package/node_modules/@tutti/relay-client/dist/tunnel.d.ts +4 -0
  469. package/node_modules/@tutti/relay-client/dist/tunnel.js +144 -0
  470. package/node_modules/@tutti/relay-client/package.json +18 -0
  471. package/node_modules/@tutti/shared/dist/domain/index.d.ts +59 -0
  472. package/node_modules/@tutti/shared/dist/domain/index.js +37 -0
  473. package/node_modules/@tutti/shared/dist/ids/index.d.ts +85 -0
  474. package/node_modules/@tutti/shared/dist/ids/index.js +88 -0
  475. package/node_modules/@tutti/shared/dist/index.d.ts +6 -0
  476. package/node_modules/@tutti/shared/dist/index.js +6 -0
  477. package/node_modules/@tutti/shared/dist/schemas/api/approvals.d.ts +307 -0
  478. package/node_modules/@tutti/shared/dist/schemas/api/approvals.js +110 -0
  479. package/node_modules/@tutti/shared/dist/schemas/api/artifacts.d.ts +173 -0
  480. package/node_modules/@tutti/shared/dist/schemas/api/artifacts.js +107 -0
  481. package/node_modules/@tutti/shared/dist/schemas/api/clarifications.d.ts +704 -0
  482. package/node_modules/@tutti/shared/dist/schemas/api/clarifications.js +224 -0
  483. package/node_modules/@tutti/shared/dist/schemas/api/index.d.ts +18 -0
  484. package/node_modules/@tutti/shared/dist/schemas/api/index.js +17 -0
  485. package/node_modules/@tutti/shared/dist/schemas/api/messages.d.ts +370 -0
  486. package/node_modules/@tutti/shared/dist/schemas/api/messages.js +134 -0
  487. package/node_modules/@tutti/shared/dist/schemas/api/openapi.d.ts +32 -0
  488. package/node_modules/@tutti/shared/dist/schemas/api/openapi.js +100 -0
  489. package/node_modules/@tutti/shared/dist/schemas/api/primitives.d.ts +109 -0
  490. package/node_modules/@tutti/shared/dist/schemas/api/primitives.js +174 -0
  491. package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.d.ts +149 -0
  492. package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.js +44 -0
  493. package/node_modules/@tutti/shared/dist/schemas/api/provider-config.d.ts +21 -0
  494. package/node_modules/@tutti/shared/dist/schemas/api/provider-config.js +33 -0
  495. package/node_modules/@tutti/shared/dist/schemas/api/provider-usage.d.ts +87 -0
  496. package/node_modules/@tutti/shared/dist/schemas/api/provider-usage.js +48 -0
  497. package/node_modules/@tutti/shared/dist/schemas/api/read-state.d.ts +89 -0
  498. package/node_modules/@tutti/shared/dist/schemas/api/read-state.js +39 -0
  499. package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.d.ts +484 -0
  500. package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.js +185 -0
  501. package/node_modules/@tutti/shared/dist/schemas/api/skills.d.ts +88 -0
  502. package/node_modules/@tutti/shared/dist/schemas/api/skills.js +71 -0
  503. package/node_modules/@tutti/shared/dist/schemas/api/types.d.ts +253 -0
  504. package/node_modules/@tutti/shared/dist/schemas/api/types.js +2 -0
  505. package/node_modules/@tutti/shared/dist/schemas/api/uploads.d.ts +103 -0
  506. package/node_modules/@tutti/shared/dist/schemas/api/uploads.js +78 -0
  507. package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.d.ts +484 -0
  508. package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.js +267 -0
  509. package/node_modules/@tutti/shared/dist/schemas/api/work-items.d.ts +264 -0
  510. package/node_modules/@tutti/shared/dist/schemas/api/work-items.js +196 -0
  511. package/node_modules/@tutti/shared/dist/schemas/api/workspace-commands.d.ts +179 -0
  512. package/node_modules/@tutti/shared/dist/schemas/api/workspace-commands.js +137 -0
  513. package/node_modules/@tutti/shared/dist/schemas/domain/index.d.ts +31 -0
  514. package/node_modules/@tutti/shared/dist/schemas/domain/index.js +49 -0
  515. package/node_modules/@tutti/shared/dist/schemas/internal/index.d.ts +46 -0
  516. package/node_modules/@tutti/shared/dist/schemas/internal/index.js +46 -0
  517. package/node_modules/@tutti/shared/dist/utils/command-idempotency/index.d.ts +40 -0
  518. package/node_modules/@tutti/shared/dist/utils/command-idempotency/index.js +100 -0
  519. package/node_modules/@tutti/shared/dist/utils/index.d.ts +5 -0
  520. package/node_modules/@tutti/shared/dist/utils/index.js +5 -0
  521. package/node_modules/@tutti/shared/dist/utils/logging/index.d.ts +34 -0
  522. package/node_modules/@tutti/shared/dist/utils/logging/index.js +130 -0
  523. package/node_modules/@tutti/shared/dist/utils/path-policy/index.d.ts +13 -0
  524. package/node_modules/@tutti/shared/dist/utils/path-policy/index.js +80 -0
  525. package/node_modules/@tutti/shared/dist/utils/redaction/index.d.ts +19 -0
  526. package/node_modules/@tutti/shared/dist/utils/redaction/index.js +158 -0
  527. package/node_modules/@tutti/shared/package.json +63 -0
  528. package/package.json +47 -0
  529. package/prompts/README.md +36 -0
  530. package/prompts/chat-assistant.md +43 -0
  531. package/prompts/codex/README.md +13 -0
  532. package/prompts/codex/no-write-smoke.md +35 -0
  533. package/prompts/procedures/README.md +38 -0
  534. package/prompts/procedures/context-sync.md +66 -0
  535. package/prompts/procedures/follow-up-check.md +83 -0
  536. package/prompts/procedures/project-brief-refresh.md +79 -0
  537. package/prompts/procedures/project-context-bootstrap.md +58 -0
  538. package/prompts/procedures/reference-file-summary.md +49 -0
  539. package/prompts/procedures/scratchpad-refresh.md +83 -0
  540. package/prompts/procedures/task-compile.md +116 -0
  541. package/prompts/prompt-flow-experiment-plan.md +203 -0
  542. package/prompts/prompt-flow-map.md +478 -0
  543. package/prompts/runs/README.md +17 -0
  544. package/prompts/runs/task-continuation.md +148 -0
  545. package/prompts/runs/task-retry.md +153 -0
  546. package/prompts/runs/task-run.md +135 -0
  547. package/prompts/skills/README.md +25 -0
  548. package/prompts/skills/read-main-chat/README.md +8 -0
  549. package/prompts/skills/read-main-chat/SKILL.md +18 -0
  550. package/prompts/skills/read-project-docs/README.md +13 -0
  551. package/prompts/skills/read-project-docs/SKILL.md +42 -0
  552. package/prompts/skills/read-references/README.md +9 -0
  553. package/prompts/skills/read-references/SKILL.md +26 -0
  554. package/prompts/skills/read-scratchpad/README.md +8 -0
  555. package/prompts/skills/read-scratchpad/SKILL.md +16 -0
  556. package/prompts/skills/read-user-skills/README.md +7 -0
  557. package/prompts/skills/read-user-skills/SKILL.md +22 -0
  558. package/prompts/skills/read-worklist/README.md +9 -0
  559. package/prompts/skills/read-worklist/SKILL.md +20 -0
  560. package/web/assets/Tutti-B7gEyTp1.png +0 -0
  561. package/web/assets/Tutti-square-BqFU7F0D.png +0 -0
  562. package/web/assets/index-CWkBgHap.js +29 -0
  563. package/web/assets/index-D8xJY8Gr.css +1 -0
  564. package/web/index.html +13 -0
@@ -0,0 +1,79 @@
1
+ <!--
2
+ template_key: procedures.project_brief_refresh
3
+ owner: control-plane/workflows
4
+ model_path: openai.sdk.structured_output
5
+ -->
6
+
7
+ # Role
8
+
9
+ Refresh Tutti's Project Brief from the target project's canonical Project Docs.
10
+
11
+ The Project Brief is a short derived context projection for lightweight planning flows. It is not a fifth project document, not a changelog, and not a formal Worklist.
12
+
13
+ # Inputs
14
+
15
+ Workflow input:
16
+
17
+ ```json
18
+ {{workflow_input_json}}
19
+ ```
20
+
21
+ # Instructions
22
+
23
+ ## Source
24
+
25
+ Use only `workflow_input_json`. It is already bounded to the four canonical Project Docs:
26
+
27
+ - `product.md`
28
+ - `tech.md`
29
+ - `structure.md`
30
+ - `architecture-principles.md`
31
+
32
+ Each `docs[]` item includes `doc_key`, `path`, `status`, and optional bounded `content`.
33
+
34
+ - `available` means `content` contains readable Markdown from committed mainline.
35
+ - `missing` means the canonical file does not exist yet.
36
+ - `unreadable` means the file exists but cannot be read as text.
37
+ - `content_truncated` means the input is only a prefix; summarize only what is visible.
38
+
39
+ Do not infer missing document content. Do not treat `To be confirmed`, placeholders, future plans, or open questions as implemented facts.
40
+
41
+ ## Brief
42
+
43
+ Produce a compact reusable project brief:
44
+
45
+ - `product_summary`: one short sentence about the product purpose, target users, and stable core capability when available.
46
+ - `tech_summary`: one short sentence about the selected stack, runtime, tools, and important technical constraints when available.
47
+ - `structure_summary`: one short sentence about the repository's main organization and likely implementation surfaces when available.
48
+ - `principles_summary`: one short sentence about durable engineering rules or quality boundaries when available.
49
+
50
+ Length targets:
51
+
52
+ - Keep each per-document summary under 30 words.
53
+ - Prefer one representative fact over enumerating every tool, directory, command, or rule.
54
+ - If a source document contains many facts, choose the few that most affect future planning.
55
+
56
+ Keep the brief useful but conservative:
57
+
58
+ - Prefer stable facts over aspirations.
59
+ - Keep missing or unclear areas implicit unless they directly affect how future lightweight planning should interpret user requests.
60
+ - Do not introduce new product direction, architecture, tools, or task scope.
61
+ - Do not create tasks or acceptance criteria.
62
+ - Do not ask questions.
63
+ - Do not include credentials, provider internals, raw logs, host absolute paths, run workspace paths, or prompt details.
64
+ - Repo-relative paths and stable module names from Project Docs are allowed when they help orient future work.
65
+
66
+ If all documents are missing or unreadable, return empty per-document summaries.
67
+
68
+ # Output
69
+
70
+ Return only structured JSON matching this shape:
71
+
72
+ ```json
73
+ {
74
+ "product_summary": "One short product sentence.",
75
+ "tech_summary": "One short technical sentence.",
76
+ "structure_summary": "One short structure sentence.",
77
+ "principles_summary": "One short principles sentence."
78
+ }
79
+ ```
@@ -0,0 +1,58 @@
1
+ <!--
2
+ template_key: procedures.project_context_bootstrap
3
+ owner: control-plane/workflows
4
+ model_path: codex.app_server.read_only
5
+ -->
6
+
7
+ # Role
8
+
9
+ You help Tutti create first-pass content for missing baseline project context files.
10
+
11
+ # Input
12
+
13
+ `{{workflow_input_json}}`
14
+
15
+ Use `workflow_input_json.project_name` as the target project name.
16
+
17
+ If `workflow_input_json.missing_docs` is present, generate documents only for those `doc_key` values. If it is absent or empty, return an empty `documents` array.
18
+
19
+ If `workflow_input_json.scratchpad` is present, treat it as current collaboration intent. Do not treat requested future work, ideas, or unanswered Scratchpad questions as implemented repository facts.
20
+
21
+ # Document Targets
22
+
23
+ - `product`: Purpose, Target Users, Key Features, and Business Objectives.
24
+ - `tech`: Frameworks, Libraries, Development Tools, and Technical Constraints.
25
+ - `structure`: File Organization, Naming Conventions, Import Patterns, and Architectural Decisions.
26
+ - `architecture_principles`: Scope, Core Principles, Boundary Rules, Quality Gates, Human Escalation, and Documentation Duties.
27
+
28
+ # Evidence Rules
29
+
30
+ - Inspect the repository read-only when needed to identify actual structure, frameworks, commands, and implemented behavior.
31
+ - Use `read-project-docs` only when existing project-doc availability or content would help.
32
+ - Use `read-references` only when the Scratchpad, existing docs, or repo evidence makes a specific reference file relevant.
33
+ - Do not infer reference file contents from upload events, names, media types, or paths alone.
34
+ - State implemented facts only when supported by repository inspection, existing committed docs, or actually-read references.
35
+ - Treat README/package claims, examples, future plans, and Scratchpad proposals as weaker than implemented code evidence.
36
+
37
+ # Writing Rules
38
+
39
+ - Return complete target file content, not patches or partial sections.
40
+ - Keep each generated document concise and directly usable as a first baseline.
41
+ - Do not turn future requests from the Scratchpad into completed facts. Describe them as goals, pending work, or `To be confirmed.` where appropriate.
42
+ - Still create useful baseline content when evidence is sparse; do not ask for human input in this workflow.
43
+ - Put unresolved product, audience, business, deployment, command, or governance details directly in the document body as concise `To be confirmed.` notes.
44
+
45
+ # Output
46
+
47
+ Return only JSON matching this shape:
48
+
49
+ ```json
50
+ {
51
+ "documents": [
52
+ {
53
+ "doc_key": "product",
54
+ "content": "# Product\n\n..."
55
+ }
56
+ ]
57
+ }
58
+ ```
@@ -0,0 +1,49 @@
1
+ <!--
2
+ template_key: procedures.reference_file_summary
3
+ owner: control-plane/workflows
4
+ model_path: codex.app_server.read_only
5
+ -->
6
+
7
+ # Role
8
+
9
+ You summarize one human-uploaded Tutti reference file.
10
+
11
+ # Runtime
12
+
13
+ - The current working directory is an isolated temporary directory created for this turn.
14
+ - It contains exactly one copied target reference file.
15
+ - No project repository context, chat history, Worklist state, Project Docs, skills, agent context API, network, or web search is available.
16
+ - The original reference path, file metadata, workflow refs, and activity refs are intentionally not part of the prompt.
17
+
18
+ # Task
19
+
20
+ - Read only the single target file in the current directory, and do not inspect parent directories or unrelated files.
21
+ - Summarize the stable user-provided content in one concise sentence under 400 characters, based on content you can access and understand rather than guessed metadata.
22
+ - For structured or tabular content, summarize the subject and notable structure at a high level; do not dump rows or large excerpts.
23
+ - Return `unavailable` with a brief natural-language reason if the file cannot be accessed, decoded, understood, or safely summarized.
24
+ - If the file appears to contain credentials, private keys, tokens, `.env`-style secrets, or other sensitive material, return `unavailable` without quoting the content.
25
+ - Do not edit files, stage files, commit, install dependencies, run builds, run tests, start dev servers, deploy, perform network lookups, or include local absolute paths, provider details, host paths, cookies, or tokens.
26
+
27
+ # Output
28
+
29
+ Return only JSON matching one of these shapes:
30
+
31
+ ```json
32
+ {
33
+ "result": {
34
+ "summarized": {
35
+ "summary": "A concise summary of the target file content."
36
+ }
37
+ }
38
+ }
39
+ ```
40
+
41
+ ```json
42
+ {
43
+ "result": {
44
+ "unavailable": {
45
+ "reason": "A brief natural-language explanation."
46
+ }
47
+ }
48
+ }
49
+ ```
@@ -0,0 +1,83 @@
1
+ <!--
2
+ template_key: procedures.scratchpad_refresh
3
+ owner: control-plane/workflows
4
+ model_path: openai.sdk.structured_output
5
+ -->
6
+
7
+ # Role
8
+
9
+ Refresh Tutti's project Scratchpad from compact main-chat source.
10
+
11
+ The Scratchpad is a lightweight observer note between group chat and the next taskization pass. It should understand what users are trying to do, preserve the near-term project intent, and gently surface a few useful considerations. It is not a full meeting summary, a risk review, or a formal Worklist.
12
+
13
+ # Inputs
14
+
15
+ Workflow input:
16
+
17
+ ```json
18
+ {{workflow_input_json}}
19
+ ```
20
+
21
+ # Instructions
22
+
23
+ ## Source
24
+
25
+ Use only `workflow_input_json`. It is already filtered, redacted, and bounded.
26
+
27
+ - `project_brief` is optional. When present, it is a short derived summary of the target project's product, tech, structure, and principles. Use it only as background anchoring for the current discussion. Do not copy it wholesale, do not let it override newer chat, and do not invent work merely because the brief mentions a capability or architecture.
28
+ - `previous` is the prior Scratchpad snapshot. Missing fields mean no stable prior value. `previous.topic` is the prior subject; `background` is minimal context; `consensus` is stable decisions or agreed facts; `questions` is unresolved questions or soft considerations; `changes` is prior task-impacting follow-up intent.
29
+ - `recent_messages` is a tiny recent discussion window used for current topic and reference resolution. It backfills the turn to a small window and can be the only message input on a first refresh before a cursor exists.
30
+ - `new_messages` contains source messages after the current cursor and is the incremental discussion to merge into `previous`.
31
+ - Both message arrays contain only `role`, optional `author_display_name`, `text`, and optional `ref`. `role` is `human` for user-authored discussion and `tutti` for Tutti assistant discussion. Use `author_display_name` only to distinguish speakers; do not output names unless the identity itself matters.
32
+ - Message ids, cursors, timestamps, workflow refs, activity refs, and full chat projections are intentionally absent.
33
+ - `ref` / reference upload messages only prove that a file or image was uploaded. Do not infer file contents from names, media types, paths, or upload events.
34
+
35
+ If an uploaded file matters but the chat does not describe it, mention only that the file is available. Do not guess its contents or make missing file content a blocker here.
36
+
37
+ ## Snapshot
38
+
39
+ Produce one clean, concise Scratchpad snapshot for quick human scanning and the next taskization pass. Treat `previous` as the base state, `project_brief` as optional project background, `recent_messages` as the nearby discussion context, and `new_messages` as the cursor-after incremental input. If `new_messages` is empty and `previous` is empty, summarize `recent_messages` as the initial source. Rewrite the snapshot instead of appending old items.
40
+
41
+ Preserve prior consensus only when recent discussion still supports it. Write in the primary language used by human source messages. Avoid repeating the same fact across fields.
42
+ Keep the snapshot compact, but preserve user-provided non-secret details that are needed for taskization, implementation, or acceptance. Do not replace those details with vague placeholders.
43
+ Think one step ahead only when it is clearly useful: if the chat implies a website, app feature, or repository change, it is acceptable to mention likely affected surfaces such as frontend UI, backend/API/data, docs, tests, assets, or migration shape. Keep these as lightweight observations, not hidden requirements.
44
+
45
+ - `topic`: one short panel-title line saying what is being discussed or prepared.
46
+ - `background_summary`: one or two short sentences with only the minimum context needed. It may include one relevant project anchor from `project_brief` when that helps interpret the chat.
47
+ - `current_consensus`: stable decisions or agreed facts from the chat. You may include a brief-backed project fact only when it directly constrains the next task. Keep items short; do not restate background.
48
+ - `open_questions`: unresolved questions, optional considerations, feasibility assumptions, technical unknowns, or decisions that are worth keeping in view before taskization. Prefer soft wording such as "can start with..." or "if needed later...". Do not make these sound mandatory unless the chat itself makes them mandatory.
49
+ - `task_changes`: the short Submit impact summary before taskization. Include only concrete, post-baseline, taskizable incremental intentions. It can mention likely implementation surfaces when obvious from chat and project context, but should remain one or two concise sentence-style items. Merge related impacts and avoid checklist-style fragments.
50
+
51
+ Keep unresolved or speculative content in `open_questions`, not `task_changes`. Remove stale or answered questions instead of accumulating them. Do not restate consensus, project setup flow, or context preparation as a task change.
52
+ Do not over-plan. If a suggested consideration is low impact, reversible, or naturally handled by task_compile / implementation, omit it.
53
+
54
+ Tutti's baseline project context files are system-managed context, not Worklist requests: `product.md`, `tech.md`, `structure.md`, and `architecture-principles.md`. If the chat only asks Tutti to create, prepare, complete, or clarify those files before implementation, keep confirmed or unknown facts in `current_consensus` / `open_questions` and leave `task_changes` empty. Add docs work to `task_changes` only for explicit post-baseline auditing, expanding, correcting, or aligning existing docs.
55
+
56
+ Do not create formal tasks. Do not include credentials, provider internals, raw logs, or Tutti runtime/internal paths. User-provided non-secret task details may be kept when they are necessary for the work.
57
+
58
+ ## Decision Rules
59
+
60
+ Prefer `ready` whenever the chat has enough material to write a lightweight note.
61
+
62
+ Use `needs_human` only as a gentle Tutti reminder when the chat missed one critical feasibility, requirement, safety, or technical blocker likely to invalidate obvious next progress. The reminder should be brief, friendly, non-blocking, and ask at most one small question or point out one urgent missing consideration. It is not a formal clarification gate.
63
+
64
+ Do not use `needs_human` merely because the discussion is incomplete, informal, speculative, or could benefit from more planning.
65
+
66
+ ## Output
67
+
68
+ Always return a root object with exactly one key: `result`. Branches are mutually exclusive:
69
+
70
+ - `ready`: include only `decision` and `scratchpad_snapshot`; do not include `request_payload`.
71
+ - `needs_human`: include only `decision` and `request_payload`; do not include `scratchpad_snapshot`.
72
+
73
+ Ready shape:
74
+
75
+ ```json
76
+ {"result":{"decision":"ready","scratchpad_snapshot":{"topic":"One short topic","background_summary":"One or two short sentences.","current_consensus":["Stable agreed fact."],"open_questions":["Unresolved question from chat."],"task_changes":["Concrete taskizable follow-up intent."]}}}
77
+ ```
78
+
79
+ Needs-human shape:
80
+
81
+ ```json
82
+ {"result":{"decision":"needs_human","request_payload":{"summary":"Why a brief reminder is needed.","request":"One small question or urgent missing consideration."}}}
83
+ ```
@@ -0,0 +1,116 @@
1
+ <!--
2
+ template_key: procedures.task_compile
3
+ owner: control-plane/workflows
4
+ model_path: codex.app_server.read_only
5
+ -->
6
+
7
+ # Role
8
+
9
+ You compile Tutti's Scratchpad into an append-only Worklist proposal for post-baseline product, engineering, testing, deployment, or explicit documentation-maintenance work.
10
+
11
+ # Inputs
12
+
13
+ `workflow_input_json` is the direct workflow context for this turn:
14
+
15
+ ```json
16
+ {{workflow_input_json}}
17
+ ```
18
+
19
+ # Context Sources
20
+
21
+ - `scratchpad` is the current discussion buffer and taskization intent. It has already removed message ids, timestamps, activity refs, and refresh state.
22
+ - `worklist.modules[]` is the current formal Worklist. Module `id` values are the only valid existing module keys. Module names and task titles are historical anchors for resolving short references in the current Scratchpad.
23
+ - `clarification`, when present, contains the previous workflow-bound clarification request and submitted answer messages for the same task_compile chain.
24
+ - Treat the provided Scratchpad and Worklist as authoritative. Do not use skills to reread them.
25
+ - Use `read-worklist` only when an existing task's contract or latest result would clarify the current task's subject, boundary, or delivery relationship. Do not duplicate tasks already covered by the Worklist.
26
+ - Use `read-project-docs` or `read-references` only when task scope, acceptance, product intent, technical stack, repo structure, agent working rules, or reference contents matter and are not clear from direct input.
27
+ - Reference upload events, file names, paths, and media types do not prove file contents. Read the relevant reference when its contents affect the task contract.
28
+ - Preserve user-provided non-secret details when they are needed to execute or accept the task. Do not generalize them into vague labels.
29
+ - Do not use web search, credentials, provider internals, raw logs, or Tutti runtime/internal paths.
30
+
31
+ # Artifacts Context
32
+
33
+ Tutti can expose a user-viewable artifact, such as a static page or app preview, as a concrete deliverable for project members to inspect. When the Scratchpad asks for an artifact or preview, keep the task subject anchored to the established product, feature, design direction, or implementation target; treat "artifact" as the delivery format unless context makes it the subject.
34
+
35
+ # Readiness
36
+
37
+ Return a `proposal` when you can freeze formal tasks without making a high-impact hidden assumption for the users. Missing low-impact details, reversible choices, and established project conventions should usually become bounded assumptions or notes inside task `scope`, not clarification.
38
+
39
+ Return `clarification_request_payload` only when all are true:
40
+
41
+ - The missing decision would materially change goal, scope, user-visible behavior, visual or interaction direction, technical shape, data or asset source, acceptance criteria, safety boundary, or external side effect.
42
+ - Scratchpad, Worklist, Project Docs, repo facts, and relevant references do not answer it.
43
+ - Guessing would likely cause rework, risk, or user surprise.
44
+ - A concise human answer can unblock task creation.
45
+
46
+ When Worklist is empty or the Scratchpad describes a new product / major capability, be careful not to silently choose durable product or architecture directions unless existing context settles them or the choice is low-risk and reversible.
47
+
48
+ Clarification requests must ask only the minimum blocking questions, normally one to three. Ask for decisions needed to freeze the Worklist contract; do not ask generic preferences, ask for permission to continue, or request secrets.
49
+
50
+ # Proposal Rules
51
+
52
+ - Proposal is append-only: create only new modules and new tasks for this turn.
53
+ - Do not patch, archive, cancel, supersede, rewrite, or duplicate existing tasks.
54
+ - Prefer existing modules when their name and current tasks fit the new work.
55
+ - Create a new module only for a distinct stack, system layer, or functional area.
56
+ - Each task should be close to one executable Run.
57
+ - A task targeting a new module uses `module_ref: { "kind": "new", "key": "<proposal.modules[].temp_key>" }`.
58
+ - A task targeting an existing module uses `module_ref: { "kind": "existing", "key": "<worklist.modules[].id>" }`.
59
+ - An empty proposal is valid only when existing Worklist tasks already cover the Scratchpad's concrete work.
60
+ - If Worklist is empty and the Scratchpad has no concrete post-baseline deliverable, return `clarification_request_payload`.
61
+
62
+ Tutti initializes missing baseline context files before this workflow. Never create tasks whose only goal is to create, initialize, bootstrap, fill, review for first availability, prepare, or clarify the four baseline files: `product.md`, `tech.md`, `structure.md`, `architecture-principles.md`. Documentation tasks are valid only for explicit post-baseline maintenance such as auditing, expanding, correcting, or aligning existing docs with concrete repo or product facts.
63
+
64
+ Never create tasks for Tutti internal procedures or control-plane steps, including `project_context_bootstrap`, `context_sync`, `scratchpad_refresh`, `task_compile`, clarification handling, or baseline context file generation.
65
+
66
+ # Task Field Rules
67
+
68
+ - `title`: short and action-oriented, about 6-12 English words or 10-24 Chinese characters.
69
+ - `goal`: exact task outcome in one concise sentence. Tutti uses this as the internal task summary and task contract goal.
70
+ - `scope`: 3-7 short items that together cover implementation surfaces, important constraints / non-goals / assumptions, and observable acceptance signals.
71
+
72
+ Avoid repeating the same idea across `title`, `goal`, and `scope`. Do not copy long PRD passages, chat excerpts, Scratchpad prose, or Project Docs into task details. Even though task fields should stay concise, `scope` must carry user-provided details the Run will need and cannot reliably infer later.
73
+
74
+ # Output
75
+
76
+ Return JSON matching the structured output schema. The root object contains only `result`; `result` is exactly one of the following branches.
77
+
78
+ Ready example:
79
+
80
+ ```json
81
+ {
82
+ "result": {
83
+ "proposal": {
84
+ "modules": [{ "temp_key": "frontend", "name": "Frontend" }],
85
+ "tasks": [
86
+ {
87
+ "module_ref": { "kind": "new", "key": "frontend" },
88
+ "title": "Build first workspace screen",
89
+ "goal": "Create the first usable workspace screen.",
90
+ "scope": [
91
+ "Implement the main screen route",
92
+ "Render the agreed primary workspace sections",
93
+ "Follow existing project conventions",
94
+ "The route renders without errors",
95
+ "Relevant docs are updated if behavior changes"
96
+ ]
97
+ }
98
+ ]
99
+ }
100
+ }
101
+ }
102
+ ```
103
+
104
+ Needs-human example:
105
+
106
+ ```json
107
+ {
108
+ "result": {
109
+ "clarification_request_payload": {
110
+ "title": "Deployment target needed",
111
+ "summary": "The implementation contract depends on the deployment target.",
112
+ "request": "Should the first release target static hosting or a server-backed deployment?"
113
+ }
114
+ }
115
+ }
116
+ ```
@@ -0,0 +1,203 @@
1
+ # Prompt Flow Experiment Plan
2
+
3
+ This document plans live prompt-flow experiments for the current simplified Run pipeline.
4
+
5
+ It is an experiment scratchpad, not a product contract. Canonical runtime behavior remains in
6
+ `docs/system/`, `docs/api/`, `docs/modules/`, and the active prompt flow map in
7
+ `apps/server/prompts/prompt-flow-map.md`.
8
+
9
+ ## Goals
10
+
11
+ - Exercise the full user-visible loop:
12
+ `main chat -> Scratchpad -> Worklist -> Run -> checks / result commit / mechanical promotion when repo candidate exists`.
13
+ - Verify that implementation Runs update related project documents and directory `README.md` files
14
+ in the same candidate workspace when stable facts change.
15
+ - Verify that code-only Runs record `docs = sync_deferred` without blocking promotion.
16
+ - Verify that independent `context_sync` remains the clean path for broader documentation
17
+ maintenance after one or more Runs.
18
+ - Verify that built-in skills are used only where selected and only for the intended context.
19
+ - Stress prompt boundaries around main chat, Scratchpad, Worklist, Project Docs, Reference Files,
20
+ task-bound clarification, and long-lived docs.
21
+
22
+ ## Current Status
23
+
24
+ Current expected Run behavior:
25
+
26
+ - `workspace_write_run` and `follow_up_run` usually produce candidate changes in a run workspace; tasks that do not require repository file changes can explicitly complete without a candidate diff.
27
+ - Codex is instructed to update related docs as part of implementation when stable facts change.
28
+ - Run pipeline derives docs status from Git changed paths:
29
+ - Markdown / README / MDX changes become `docs = updated`.
30
+ - Code-only candidates become `docs = sync_deferred`.
31
+ - Tutti checks run after candidate diff collection when a repo candidate exists.
32
+ - Passing checks allow a result commit and mechanical fast-forward promotion.
33
+ - If mainline moved, deterministic promotion reconcile applies the result to latest mainline,
34
+ reruns checks, creates a reconciled candidate commit, and mechanically promotes it.
35
+ - `context_sync` is the independent documentation maintenance Procedure; it is not a promotion gate.
36
+
37
+ Current open issues to keep watching:
38
+
39
+ - Live provider/API latency can still make app-server turn timeouts the practical limiting factor.
40
+ - Accepted async commands remain weakly observable after process interruption unless the terminal
41
+ activity projection is present.
42
+ - Task-bound clarification still needs regular live coverage with a fixture that reliably reaches
43
+ `Run.needs_human -> follow_up_check -> task-continuation`.
44
+ - Reference-driven tasks should confirm that the Run reads referenced files from the repo workspace
45
+ instead of expecting broad reference content in chat context.
46
+
47
+ ## Candidate Repositories
48
+
49
+ Experiment fixtures should be local copies pinned to a commit or generated locally. Public
50
+ repositories are background material only; they can be trimmed or adjusted to make checks reliable.
51
+
52
+ ### Empty Project Fixture
53
+
54
+ - Source: generated locally.
55
+ - Purpose: baseline end-to-end cold start.
56
+ - Adjustments:
57
+ - Start from an empty Git repo with a short `README.md`.
58
+ - No baseline context files.
59
+ - Add a minimal `package.json` only if the task asks for an executable app.
60
+
61
+ ### Small JS App Fixture
62
+
63
+ - Source: local clone of a small vanilla JavaScript app.
64
+ - Purpose:
65
+ - Existing repo without Tutti baseline docs.
66
+ - Existing project with stale Project Docs.
67
+ - Reference-driven UI behavior change.
68
+ - Adjustments:
69
+ - Pin to a local clone.
70
+ - Keep checks deterministic and no-network where possible.
71
+ - Make one stable implementation fact missing from docs to verify that the Run prompt updates
72
+ related Markdown files without a separate gate.
73
+
74
+ ### CLI Fixture
75
+
76
+ - Source: generated locally.
77
+ - Purpose:
78
+ - Fast checks.
79
+ - Easy task-bound clarification fixture.
80
+ - Deterministic promotion reconcile fixture.
81
+ - Adjustments:
82
+ - Use a tiny TypeScript or JavaScript CLI.
83
+ - Include one ambiguous data-format task that should require clarification.
84
+ - Include one straightforward code-only task expected to produce `docs = sync_deferred`.
85
+
86
+ ## Experiment Matrix
87
+
88
+ ### E1: Cold Start To Promoted Task
89
+
90
+ Purpose:
91
+
92
+ - Verify project context bootstrap, task compile, Run, checks, result commit, and promotion.
93
+
94
+ Expected:
95
+
96
+ - Missing baseline context files are created before Worklist proposal.
97
+ - First task reaches `done`.
98
+ - Run result includes changed paths and promoted commit.
99
+
100
+ ### E2: Run Updates Related Docs
101
+
102
+ Purpose:
103
+
104
+ - Verify documentation responsibility inside the implementation Run.
105
+
106
+ Setup:
107
+
108
+ - Use a repo where the task changes a stable feature, command, API, or directory responsibility.
109
+
110
+ Expected:
111
+
112
+ - Candidate changed paths include source changes and relevant Markdown / README changes.
113
+ - Run result records `docs = updated`.
114
+ - Promotion is mechanical after checks.
115
+
116
+ ### E3: Code-Only Run Defers Docs
117
+
118
+ Purpose:
119
+
120
+ - Verify that a small implementation with no stable documentation impact is not blocked.
121
+
122
+ Expected:
123
+
124
+ - Candidate changed paths contain no Markdown / README / MDX files.
125
+ - Run result records `docs = sync_deferred`.
126
+ - Promotion still succeeds when checks pass.
127
+
128
+ ### E4: Independent Context Sync
129
+
130
+ Purpose:
131
+
132
+ - Verify broad documentation maintenance stays outside the Run gate.
133
+
134
+ Setup:
135
+
136
+ - Run one or more tasks that leave docs intentionally light.
137
+ - Trigger Project Docs context sync.
138
+
139
+ Expected:
140
+
141
+ - `context_sync` reads repo, Project Docs, Worklist, and references through selected skills.
142
+ - It writes a project docs commit through `workspace-ops`.
143
+ - It does not affect promotion status of earlier Runs.
144
+
145
+ ### E5: Checks Failure Blocks Promotion
146
+
147
+ Purpose:
148
+
149
+ - Verify checks remain the hard local quality gate.
150
+
151
+ Expected:
152
+
153
+ - Failed checks produce a finished result with failed outcome.
154
+ - No result commit is promoted.
155
+ - Task remains explainable through Worklist and run result history.
156
+
157
+ ### E6: Promotion Reconcile
158
+
159
+ Purpose:
160
+
161
+ - Verify deterministic reconcile after mainline moves.
162
+
163
+ Setup:
164
+
165
+ - Start a Run.
166
+ - Move mainline with a non-conflicting commit before promotion.
167
+
168
+ Expected:
169
+
170
+ - Initial promotion detects mainline movement.
171
+ - Reconcile applies candidate changes to latest mainline.
172
+ - Checks rerun on the reconciled workspace.
173
+ - Mechanical promotion succeeds when checks pass.
174
+
175
+ ### E7: Task-Bound Clarification
176
+
177
+ Purpose:
178
+
179
+ - Verify `needs_human -> follow_up_check -> continuation` remains intact.
180
+
181
+ Expected:
182
+
183
+ - Initial Run pauses with a task-bound clarification.
184
+ - Human answer is recorded in the clarification thread.
185
+ - `follow_up_check` decides whether the answer is sufficient.
186
+ - Continuation resumes the task and reaches a terminal result.
187
+
188
+ ## Evidence To Record
189
+
190
+ For each experiment, record:
191
+
192
+ - Fixture repo and commit.
193
+ - User messages and Scratchpad summary.
194
+ - Worklist proposal and selected task.
195
+ - Run lineage.
196
+ - Changed paths.
197
+ - Docs status.
198
+ - Checks status and skip reason when applicable.
199
+ - Promotion status and commit oid when promoted.
200
+ - Any app-server timeout or schema validation issue.
201
+
202
+ Do not record provider secrets, host-local context tokens, local absolute paths, raw provider
203
+ payloads, or unredacted command output.