@poe-platform/safe-js 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 (326) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +206 -0
  3. package/dist/agent-defs/agents/claude-code.d.ts +2 -0
  4. package/dist/agent-defs/agents/claude-desktop.d.ts +2 -0
  5. package/dist/agent-defs/agents/codex.d.ts +2 -0
  6. package/dist/agent-defs/agents/cursor.d.ts +2 -0
  7. package/dist/agent-defs/agents/gemini-cli.d.ts +2 -0
  8. package/dist/agent-defs/agents/goose.d.ts +2 -0
  9. package/dist/agent-defs/agents/index.d.ts +10 -0
  10. package/dist/agent-defs/agents/kimi.d.ts +2 -0
  11. package/dist/agent-defs/agents/opencode.d.ts +2 -0
  12. package/dist/agent-defs/agents/pi.d.ts +2 -0
  13. package/dist/agent-defs/agents/poe-agent.d.ts +2 -0
  14. package/dist/agent-defs/capabilities.d.ts +14 -0
  15. package/dist/agent-defs/index.d.ts +6 -0
  16. package/dist/agent-defs/registry.d.ts +3 -0
  17. package/dist/agent-defs/specifier.d.ts +7 -0
  18. package/dist/agent-defs/types.d.ts +35 -0
  19. package/dist/agent-harness-tools/binary-exists.d.ts +10 -0
  20. package/dist/agent-harness-tools/execution-env.d.ts +108 -0
  21. package/dist/agent-harness-tools/hooks.d.ts +30 -0
  22. package/dist/agent-harness-tools/index.d.ts +18 -0
  23. package/dist/agent-harness-tools/log-stream.d.ts +28 -0
  24. package/dist/agent-harness-tools/participant.d.ts +10 -0
  25. package/dist/agent-harness-tools/paths.d.ts +14 -0
  26. package/dist/agent-harness-tools/plan-readiness.d.ts +7 -0
  27. package/dist/agent-harness-tools/plans.d.ts +35 -0
  28. package/dist/agent-harness-tools/poe-command-execution.d.ts +37 -0
  29. package/dist/agent-harness-tools/run-logs.d.ts +17 -0
  30. package/dist/agent-harness-tools/run-poe-command.d.ts +33 -0
  31. package/dist/agent-harness-tools/runner.d.ts +33 -0
  32. package/dist/agent-harness-tools/select-agent.d.ts +18 -0
  33. package/dist/agent-harness-tools/sequence.d.ts +7 -0
  34. package/dist/agent-harness-tools/skill-config.d.ts +1 -0
  35. package/dist/agent-harness-tools/stage.d.ts +22 -0
  36. package/dist/agent-harness-tools/workspace-transfer.d.ts +3 -0
  37. package/dist/agent-spawn/acp/middleware.d.ts +38 -0
  38. package/dist/agent-spawn/acp/types.d.ts +180 -0
  39. package/dist/agent-spawn/adapters/claude.d.ts +3 -0
  40. package/dist/agent-spawn/adapters/codex.d.ts +2 -0
  41. package/dist/agent-spawn/adapters/cursor.d.ts +2 -0
  42. package/dist/agent-spawn/adapters/index.d.ts +12 -0
  43. package/dist/agent-spawn/adapters/kimi.d.ts +2 -0
  44. package/dist/agent-spawn/adapters/native.d.ts +5 -0
  45. package/dist/agent-spawn/adapters/opencode.d.ts +2 -0
  46. package/dist/agent-spawn/adapters/pi.d.ts +2 -0
  47. package/dist/agent-spawn/environment.d.ts +2 -0
  48. package/dist/agent-spawn/parallel.d.ts +30 -0
  49. package/dist/agent-spawn/retry.d.ts +26 -0
  50. package/dist/agent-spawn/types.d.ts +272 -0
  51. package/dist/auth-store/create-secret-store.d.ts +2 -0
  52. package/dist/auth-store/encrypted-file-store.d.ts +47 -0
  53. package/dist/auth-store/index.d.ts +7 -0
  54. package/dist/auth-store/keychain-store.d.ts +25 -0
  55. package/dist/auth-store/provider-store.d.ts +14 -0
  56. package/dist/auth-store/types.d.ts +22 -0
  57. package/dist/config-mutations/execution/run-mutations.d.ts +7 -0
  58. package/dist/config-mutations/fs-utils.d.ts +18 -0
  59. package/dist/config-mutations/index.d.ts +8 -0
  60. package/dist/config-mutations/mutations/config-mutation.d.ts +47 -0
  61. package/dist/config-mutations/mutations/file-mutation.d.ts +62 -0
  62. package/dist/config-mutations/mutations/template-mutation.d.ts +40 -0
  63. package/dist/config-mutations/template/render.d.ts +6 -0
  64. package/dist/config-mutations/types.d.ts +168 -0
  65. package/dist/poe-code-config/compile/schema-compiler.d.ts +11 -0
  66. package/dist/poe-code-config/config.d.ts +2 -0
  67. package/dist/poe-code-config/configured-services.d.ts +29 -0
  68. package/dist/poe-code-config/index.d.ts +16 -0
  69. package/dist/poe-code-config/inspect.d.ts +13 -0
  70. package/dist/poe-code-config/memory.d.ts +14 -0
  71. package/dist/poe-code-config/merge-callbacks.d.ts +38 -0
  72. package/dist/poe-code-config/merge.d.ts +2 -0
  73. package/dist/poe-code-config/plan-scope.d.ts +8 -0
  74. package/dist/poe-code-config/provider-config.d.ts +16 -0
  75. package/dist/poe-code-config/resolve.d.ts +2 -0
  76. package/dist/poe-code-config/runtime.d.ts +114 -0
  77. package/dist/poe-code-config/schema.d.ts +14 -0
  78. package/dist/poe-code-config/state/fs.d.ts +24 -0
  79. package/dist/poe-code-config/state/index.d.ts +12 -0
  80. package/dist/poe-code-config/state/jobs.d.ts +34 -0
  81. package/dist/poe-code-config/state/templates.d.ts +18 -0
  82. package/dist/poe-code-config/store.d.ts +12 -0
  83. package/dist/poe-code-config/types.d.ts +88 -0
  84. package/dist/process-runner/docker/build-context.d.ts +5 -0
  85. package/dist/process-runner/docker/context.d.ts +3 -0
  86. package/dist/process-runner/docker/docker-execution-env.d.ts +28 -0
  87. package/dist/process-runner/docker/docker-runner.d.ts +2 -0
  88. package/dist/process-runner/docker/engine.d.ts +3 -0
  89. package/dist/process-runner/host/host-execution-env.d.ts +2 -0
  90. package/dist/process-runner/host/host-runner.d.ts +3 -0
  91. package/dist/process-runner/index.d.ts +10 -0
  92. package/dist/process-runner/testing/index.d.ts +2 -0
  93. package/dist/process-runner/testing/mock-runner.d.ts +3 -0
  94. package/dist/process-runner/types.d.ts +191 -0
  95. package/dist/process-runner/workspace-transfer.d.ts +61 -0
  96. package/dist/providers/auth/api-key.d.ts +5 -0
  97. package/dist/providers/auth/types.d.ts +14 -0
  98. package/dist/providers/compatibility.d.ts +4 -0
  99. package/dist/providers/index.d.ts +8 -0
  100. package/dist/providers/providers/anthropic.d.ts +1 -0
  101. package/dist/providers/providers/cloudflare.d.ts +1 -0
  102. package/dist/providers/providers/generated.d.ts +5 -0
  103. package/dist/providers/providers/openai.d.ts +1 -0
  104. package/dist/providers/providers/poe.d.ts +2 -0
  105. package/dist/providers/registry.d.ts +44 -0
  106. package/dist/providers/types.d.ts +54 -0
  107. package/dist/safe-fs/bridge/filesystem.d.ts +88 -0
  108. package/dist/safe-fs/bridge/index.d.ts +6 -0
  109. package/dist/safe-fs/bridge/types.d.ts +75 -0
  110. package/dist/safe-fs/config.d.ts +15 -0
  111. package/dist/safe-fs/config.node.d.ts +2 -0
  112. package/dist/safe-fs/contracts/errors.d.ts +50 -0
  113. package/dist/safe-fs/contracts/filesystem.d.ts +96 -0
  114. package/dist/safe-fs/contracts/index.d.ts +4 -0
  115. package/dist/safe-fs/contracts/io.d.ts +8 -0
  116. package/dist/safe-fs/contracts/path.d.ts +8 -0
  117. package/dist/safe-fs/contracts/portable-path.d.ts +13 -0
  118. package/dist/safe-fs/contracts/virtual-path.d.ts +7 -0
  119. package/dist/safe-fs/core.d.ts +12 -0
  120. package/dist/safe-fs/fs/memory/index.d.ts +58 -0
  121. package/dist/safe-fs/fs/mount/comparison.d.ts +19 -0
  122. package/dist/safe-fs/fs/mount/index.d.ts +44 -0
  123. package/dist/safe-fs/fs/overlay/index.d.ts +73 -0
  124. package/dist/safe-fs/fs/readonly/index.d.ts +31 -0
  125. package/dist/safe-fs/fs/real/index.d.ts +76 -0
  126. package/dist/safe-fs/fs/s3/filesystem.d.ts +93 -0
  127. package/dist/safe-fs/fs/s3/http/index.d.ts +2 -0
  128. package/dist/safe-fs/fs/s3/http/transport.d.ts +3 -0
  129. package/dist/safe-fs/fs/s3/http/types.d.ts +30 -0
  130. package/dist/safe-fs/fs/s3/index.d.ts +6 -0
  131. package/dist/safe-fs/fs/s3/mock.d.ts +48 -0
  132. package/dist/safe-fs/fs/s3/transport.d.ts +103 -0
  133. package/dist/safe-fs/fs/webdav/index.d.ts +2 -0
  134. package/dist/safe-fs/fs/webdav/webdav.d.ts +101 -0
  135. package/dist/safe-fs/index.d.ts +14 -0
  136. package/dist/safe-fs/node/filesystem.d.ts +11 -0
  137. package/dist/safe-fs/node/index.d.ts +2 -0
  138. package/dist/safe-fs/node-host.d.ts +1 -0
  139. package/dist/safe-fs/node-unavailable.d.ts +1 -0
  140. package/dist/safe-fs/platform/browser.d.ts +12 -0
  141. package/dist/safe-fs/platform/node.d.ts +13 -0
  142. package/dist/safe-js/browser/chunks/chunk-QGN6DKT5.js +4335 -0
  143. package/dist/safe-js/browser/chunks/chunk-QGN6DKT5.js.map +7 -0
  144. package/dist/safe-js/browser/safe-fs-core.js +67 -0
  145. package/dist/safe-js/browser/safe-fs-core.js.map +7 -0
  146. package/dist/safe-js/browser/safe-fs.js +67 -0
  147. package/dist/safe-js/browser/safe-fs.js.map +7 -0
  148. package/dist/safe-js/chunks/chunk-2QRYPKQQ.js +4315 -0
  149. package/dist/safe-js/chunks/chunk-2QRYPKQQ.js.map +7 -0
  150. package/dist/safe-js/chunks/chunk-4YIDX44G.js +40 -0
  151. package/dist/safe-js/chunks/chunk-4YIDX44G.js.map +7 -0
  152. package/dist/safe-js/chunks/chunk-7M2SJPSZ.js +2613 -0
  153. package/dist/safe-js/chunks/chunk-7M2SJPSZ.js.map +7 -0
  154. package/dist/safe-js/chunks/chunk-DC5B3GYM.js +8248 -0
  155. package/dist/safe-js/chunks/chunk-DC5B3GYM.js.map +7 -0
  156. package/dist/safe-js/chunks/chunk-Z3D76J4U.js +30732 -0
  157. package/dist/safe-js/chunks/chunk-Z3D76J4U.js.map +7 -0
  158. package/dist/safe-js/cli.d.ts +36 -0
  159. package/dist/safe-js/cli.js +724 -0
  160. package/dist/safe-js/cli.js.map +7 -0
  161. package/dist/safe-js/core.d.ts +6 -0
  162. package/dist/safe-js/core.js +14 -0
  163. package/dist/safe-js/core.js.map +7 -0
  164. package/dist/safe-js/dump.d.ts +2 -0
  165. package/dist/safe-js/error/format.d.ts +15 -0
  166. package/dist/safe-js/error/shape.d.ts +28 -0
  167. package/dist/safe-js/index.d.ts +56 -0
  168. package/dist/safe-js/index.js +454 -0
  169. package/dist/safe-js/index.js.map +7 -0
  170. package/dist/safe-js/interp/arguments.d.ts +10 -0
  171. package/dist/safe-js/interp/async.d.ts +56 -0
  172. package/dist/safe-js/interp/budget.d.ts +95 -0
  173. package/dist/safe-js/interp/exceptions.d.ts +45 -0
  174. package/dist/safe-js/interp/generator.d.ts +16 -0
  175. package/dist/safe-js/interp/globals/console-json.d.ts +14 -0
  176. package/dist/safe-js/interp/host-bridge.d.ts +29 -0
  177. package/dist/safe-js/interp/host-call.d.ts +130 -0
  178. package/dist/safe-js/interp/interpreter.d.ts +63 -0
  179. package/dist/safe-js/interp/promise-replay.d.ts +70 -0
  180. package/dist/safe-js/interp/regex/compile-guard.d.ts +33 -0
  181. package/dist/safe-js/interp/regex/parse.d.ts +62 -0
  182. package/dist/safe-js/interp/scope.d.ts +43 -0
  183. package/dist/safe-js/interp/values.d.ts +136 -0
  184. package/dist/safe-js/lint/index.d.ts +38 -0
  185. package/dist/safe-js/lint/rules/AS-export-import-meta.d.ts +21 -0
  186. package/dist/safe-js/lint/rules/module-registry.d.ts +33 -0
  187. package/dist/safe-js/lint.d.ts +1 -0
  188. package/dist/safe-js/loader/extract-block.d.ts +10 -0
  189. package/dist/safe-js/loader/find-exported.d.ts +2 -0
  190. package/dist/safe-js/loader/frontmatter.d.ts +5 -0
  191. package/dist/safe-js/migrate.d.ts +33 -0
  192. package/dist/safe-js/migration-file.d.ts +55 -0
  193. package/dist/safe-js/modules/agent.d.ts +132 -0
  194. package/dist/safe-js/modules/env.d.ts +14 -0
  195. package/dist/safe-js/modules/fail.d.ts +6 -0
  196. package/dist/safe-js/modules/fs-config.d.ts +12 -0
  197. package/dist/safe-js/modules/fs.d.ts +82 -0
  198. package/dist/safe-js/modules/harness.d.ts +19 -0
  199. package/dist/safe-js/modules/log.d.ts +16 -0
  200. package/dist/safe-js/modules/mcp-transport.d.ts +26 -0
  201. package/dist/safe-js/modules/mcp.d.ts +63 -0
  202. package/dist/safe-js/modules/metric.d.ts +4 -0
  203. package/dist/safe-js/modules/registry.d.ts +16 -0
  204. package/dist/safe-js/modules/time.d.ts +12 -0
  205. package/dist/safe-js/observability/otel.d.ts +21 -0
  206. package/dist/safe-js/output-stream.d.ts +12 -0
  207. package/dist/safe-js/parse/parse-export.d.ts +36 -0
  208. package/dist/safe-js/parse/parser.d.ts +356 -0
  209. package/dist/safe-js/parse/tokenizer.d.ts +26 -0
  210. package/dist/safe-js/parse.d.ts +4 -0
  211. package/dist/safe-js/random.d.ts +9 -0
  212. package/dist/safe-js/restore.d.ts +26 -0
  213. package/dist/safe-js/run.d.ts +74 -0
  214. package/dist/safe-js/runner/run-harness.d.ts +32 -0
  215. package/dist/safe-js/safe-fs-core.js +130 -0
  216. package/dist/safe-js/safe-fs-core.js.map +7 -0
  217. package/dist/safe-js/safe-fs-node.js +94 -0
  218. package/dist/safe-js/safe-fs-node.js.map +7 -0
  219. package/dist/safe-js/safe-fs.js +94 -0
  220. package/dist/safe-js/safe-fs.js.map +7 -0
  221. package/dist/safe-js/snapshot/arguments.d.ts +17 -0
  222. package/dist/safe-js/snapshot/backend.d.ts +19 -0
  223. package/dist/safe-js/snapshot/dump-format.d.ts +7 -0
  224. package/dist/safe-js/snapshot/dump.d.ts +23 -0
  225. package/dist/safe-js/snapshot/float32array.d.ts +12 -0
  226. package/dist/safe-js/snapshot/migration.d.ts +35 -0
  227. package/dist/safe-js/snapshot/policy.d.ts +49 -0
  228. package/dist/safe-js/snapshot/replay-data.d.ts +71 -0
  229. package/dist/safe-js/snapshot/validation.d.ts +15 -0
  230. package/dist/task-list/backends/gh-issues-client.d.ts +19 -0
  231. package/dist/task-list/backends/gh-issues-sync.d.ts +46 -0
  232. package/dist/task-list/backends/gh-issues.d.ts +21 -0
  233. package/dist/task-list/index.d.ts +9 -0
  234. package/dist/task-list/move.d.ts +2 -0
  235. package/dist/task-list/open.d.ts +5 -0
  236. package/dist/task-list/state-machine.d.ts +16 -0
  237. package/dist/task-list/state.d.ts +29 -0
  238. package/dist/task-list/types.d.ts +206 -0
  239. package/dist/tiny-mcp-client/index.d.ts +662 -0
  240. package/dist/tiny-stdio-mcp-server/content/audio.d.ts +15 -0
  241. package/dist/tiny-stdio-mcp-server/content/convert.d.ts +16 -0
  242. package/dist/tiny-stdio-mcp-server/content/file-type.d.ts +11 -0
  243. package/dist/tiny-stdio-mcp-server/content/file.d.ts +28 -0
  244. package/dist/tiny-stdio-mcp-server/content/image.d.ts +15 -0
  245. package/dist/tiny-stdio-mcp-server/content/index.d.ts +7 -0
  246. package/dist/tiny-stdio-mcp-server/content/mime.d.ts +7 -0
  247. package/dist/tiny-stdio-mcp-server/content/remote.d.ts +5 -0
  248. package/dist/tiny-stdio-mcp-server/index.d.ts +9 -0
  249. package/dist/tiny-stdio-mcp-server/schema.d.ts +20 -0
  250. package/dist/tiny-stdio-mcp-server/server.d.ts +35 -0
  251. package/dist/tiny-stdio-mcp-server/types.d.ts +247 -0
  252. package/dist/toolcraft-design/acp/components.d.ts +19 -0
  253. package/dist/toolcraft-design/acp/index.d.ts +4 -0
  254. package/dist/toolcraft-design/acp/writer.d.ts +13 -0
  255. package/dist/toolcraft-design/components/browser.d.ts +15 -0
  256. package/dist/toolcraft-design/components/catalog.d.ts +26 -0
  257. package/dist/toolcraft-design/components/color.d.ts +31 -0
  258. package/dist/toolcraft-design/components/command-errors.d.ts +18 -0
  259. package/dist/toolcraft-design/components/detail-card.d.ts +22 -0
  260. package/dist/toolcraft-design/components/file-changes.d.ts +16 -0
  261. package/dist/toolcraft-design/components/help-formatter-plain.d.ts +5 -0
  262. package/dist/toolcraft-design/components/help-formatter.d.ts +50 -0
  263. package/dist/toolcraft-design/components/inspector-card.d.ts +21 -0
  264. package/dist/toolcraft-design/components/logger.d.ts +11 -0
  265. package/dist/toolcraft-design/components/resource-browser.d.ts +21 -0
  266. package/dist/toolcraft-design/components/symbols.d.ts +12 -0
  267. package/dist/toolcraft-design/components/table.d.ts +16 -0
  268. package/dist/toolcraft-design/components/template.d.ts +19 -0
  269. package/dist/toolcraft-design/components/text.d.ts +16 -0
  270. package/dist/toolcraft-design/dashboard/buffer.d.ts +25 -0
  271. package/dist/toolcraft-design/dashboard/components/footer.d.ts +8 -0
  272. package/dist/toolcraft-design/dashboard/dashboard.d.ts +20 -0
  273. package/dist/toolcraft-design/dashboard/index.d.ts +8 -0
  274. package/dist/toolcraft-design/dashboard/should-use-dashboard.d.ts +10 -0
  275. package/dist/toolcraft-design/dashboard/snapshot.d.ts +10 -0
  276. package/dist/toolcraft-design/dashboard/terminal.d.ts +37 -0
  277. package/dist/toolcraft-design/dashboard/types.d.ts +38 -0
  278. package/dist/toolcraft-design/explorer/events.d.ts +77 -0
  279. package/dist/toolcraft-design/explorer/index.d.ts +8 -0
  280. package/dist/toolcraft-design/explorer/keymap.d.ts +31 -0
  281. package/dist/toolcraft-design/explorer/runtime.d.ts +2 -0
  282. package/dist/toolcraft-design/explorer/state.d.ts +224 -0
  283. package/dist/toolcraft-design/index.d.ts +62 -0
  284. package/dist/toolcraft-design/internal/output-format.d.ts +6 -0
  285. package/dist/toolcraft-design/internal/strip-ansi.d.ts +1 -0
  286. package/dist/toolcraft-design/internal/theme-detect.d.ts +12 -0
  287. package/dist/toolcraft-design/internal/theme-state.d.ts +12 -0
  288. package/dist/toolcraft-design/prompts/index.d.ts +91 -0
  289. package/dist/toolcraft-design/prompts/interactive/cancel-symbol.d.ts +2 -0
  290. package/dist/toolcraft-design/prompts/interactive/select.d.ts +18 -0
  291. package/dist/toolcraft-design/prompts/primitives/cancel.d.ts +2 -0
  292. package/dist/toolcraft-design/prompts/primitives/intro.d.ts +1 -0
  293. package/dist/toolcraft-design/prompts/primitives/log.d.ts +18 -0
  294. package/dist/toolcraft-design/prompts/primitives/note.d.ts +1 -0
  295. package/dist/toolcraft-design/prompts/primitives/outro.d.ts +1 -0
  296. package/dist/toolcraft-design/prompts/primitives/spinner.d.ts +6 -0
  297. package/dist/toolcraft-design/prompts/theme.d.ts +11 -0
  298. package/dist/toolcraft-design/screen/screen.d.ts +40 -0
  299. package/dist/toolcraft-design/screen/style.d.ts +16 -0
  300. package/dist/toolcraft-design/static/index.d.ts +4 -0
  301. package/dist/toolcraft-design/static/menu.d.ts +11 -0
  302. package/dist/toolcraft-design/static/spinner.d.ts +14 -0
  303. package/dist/toolcraft-design/terminal/driver.d.ts +34 -0
  304. package/dist/toolcraft-design/terminal/input.d.ts +25 -0
  305. package/dist/toolcraft-design/terminal-markdown/ast.d.ts +98 -0
  306. package/dist/toolcraft-design/terminal-markdown/html-renderer.d.ts +7 -0
  307. package/dist/toolcraft-design/terminal-markdown/index.d.ts +12 -0
  308. package/dist/toolcraft-design/terminal-markdown/parser.d.ts +5 -0
  309. package/dist/toolcraft-design/terminal-markdown/plaintext-renderer.d.ts +11 -0
  310. package/dist/toolcraft-design/terminal-markdown/renderer.d.ts +7 -0
  311. package/dist/toolcraft-design/tokens/brand.d.ts +5 -0
  312. package/dist/toolcraft-design/tokens/colors.d.ts +37 -0
  313. package/dist/toolcraft-design/tokens/index.d.ts +6 -0
  314. package/dist/toolcraft-design/tokens/spacing.d.ts +6 -0
  315. package/dist/toolcraft-design/tokens/typography.d.ts +7 -0
  316. package/dist/toolcraft-design/tokens/widths.d.ts +5 -0
  317. package/dist/toolcraft-schema/index.d.ts +184 -0
  318. package/dist/toolcraft-schema/json-schema/index.d.ts +5 -0
  319. package/dist/toolcraft-schema/json-schema/types.d.ts +33 -0
  320. package/dist/toolcraft-schema/json-schema-document.d.ts +14 -0
  321. package/dist/toolcraft-schema/json.d.ts +10 -0
  322. package/dist/toolcraft-schema/oneof.d.ts +15 -0
  323. package/dist/toolcraft-schema/record.d.ts +5 -0
  324. package/dist/toolcraft-schema/union.d.ts +8 -0
  325. package/dist/toolcraft-schema/validate.d.ts +17 -0
  326. package/package.json +89 -0
@@ -0,0 +1,46 @@
1
+ import { type GhClient } from "./gh-issues-client.js";
2
+ export interface VerifyGhProjectOptions {
3
+ owner: string;
4
+ number: number;
5
+ requiredStates: readonly string[];
6
+ client?: GhClient;
7
+ fetch?: typeof fetch;
8
+ auth?: {
9
+ token: string;
10
+ };
11
+ }
12
+ export interface VerifyGhProjectReport {
13
+ ok: boolean;
14
+ project: {
15
+ id: string;
16
+ number: number;
17
+ owner: string;
18
+ } | null;
19
+ statusField: {
20
+ id: string;
21
+ options: readonly string[];
22
+ } | null;
23
+ missingProject: boolean;
24
+ missingStatusField: boolean;
25
+ missingOptions: readonly string[];
26
+ }
27
+ export interface SyncGhProjectOptions extends VerifyGhProjectOptions {
28
+ title?: string;
29
+ yes?: boolean;
30
+ }
31
+ export interface SyncGhProjectReport extends VerifyGhProjectReport {
32
+ created: readonly string[];
33
+ updated: readonly string[];
34
+ }
35
+ export declare class GhProjectSyncError extends Error {
36
+ readonly op: "lookup" | "createProject" | "createField" | "createOption";
37
+ readonly target: string;
38
+ constructor(options: {
39
+ op: "lookup" | "createProject" | "createField" | "createOption";
40
+ target: string;
41
+ cause?: unknown;
42
+ message: string;
43
+ });
44
+ }
45
+ export declare function verifyGhProject(opts: VerifyGhProjectOptions): Promise<VerifyGhProjectReport>;
46
+ export declare function syncGhProject(opts: SyncGhProjectOptions): Promise<SyncGhProjectReport>;
@@ -0,0 +1,21 @@
1
+ import { type StateMachineDef } from "../state-machine.js";
2
+ import type { TaskDefaults, TaskList } from "../types.js";
3
+ export declare const PROJECT_ORGANIZATION_QUERY = "query Project($owner: String!, $number: Int!) {\n organization(login: $owner) {\n projectV2(number: $number) {\n id\n title\n field(name: \"Status\") {\n ... on ProjectV2SingleSelectField {\n id\n name\n options { id name color description }\n }\n }\n fields(first: 100) {\n nodes {\n ... on ProjectV2SingleSelectField {\n id\n name\n options { id name color description }\n }\n }\n }\n }\n }\n}";
4
+ export declare const PROJECT_USER_QUERY = "query Project($owner: String!, $number: Int!) {\n user(login: $owner) {\n projectV2(number: $number) {\n id\n title\n field(name: \"Status\") {\n ... on ProjectV2SingleSelectField {\n id\n name\n options { id name color description }\n }\n }\n fields(first: 100) {\n nodes {\n ... on ProjectV2SingleSelectField {\n id\n name\n options { id name color description }\n }\n }\n }\n }\n }\n}";
5
+ export interface GhIssuesBackendDeps {
6
+ repo: string;
7
+ project?: {
8
+ owner: string;
9
+ number: number;
10
+ };
11
+ filter?: string;
12
+ state?: {
13
+ labelPrefix?: string;
14
+ };
15
+ stateMachine?: StateMachineDef;
16
+ defaults: Required<TaskDefaults>;
17
+ token: string;
18
+ endpoint: string;
19
+ fetch?: typeof fetch;
20
+ }
21
+ export declare function ghIssuesBackend(deps: GhIssuesBackendDeps): Promise<TaskList>;
@@ -0,0 +1,9 @@
1
+ export { openTaskList } from "./open.js";
2
+ export { moveTasks } from "./move.js";
3
+ export { assertEvent, assertTransition, defaultStateMachine, type TaskEvent } from "./state.js";
4
+ export { eventsFromState, findEvent, validateMachine, type EventDef, type StateMachineDef } from "./state-machine.js";
5
+ export { AnchorNotFoundError, InvalidTransitionError, MalformedTaskError, OrderMismatchError, TaskAlreadyExistsError, TaskNotFoundError, type ListFilter, type MoveProgressEvent, type MoveResult, type MoveTasksOptions, type MoveAnchor, type OpenGhIssuesOptions, type OpenMarkdownDirOptions, type OpenTaskListOptions, type OpenYamlFileOptions, type Task, type TaskCreate, type TaskDefaults, type TaskFireOptions, type TaskList, type TaskListOptions, type TaskListFs, type TaskOrder, type TaskState, type Tasks, type TaskUpdate } from "./types.js";
6
+ export { resolveAuth } from "./backends/gh-issues-client.js";
7
+ export type { GhClient, GhClientOptions, ResolveAuthOptions, ResolveEndpointOptions } from "./backends/gh-issues-client.js";
8
+ export type { GhIssuesBackendDeps } from "./backends/gh-issues.js";
9
+ export { GhProjectSyncError, syncGhProject, verifyGhProject, type SyncGhProjectOptions, type SyncGhProjectReport, type VerifyGhProjectOptions, type VerifyGhProjectReport } from "./backends/gh-issues-sync.js";
@@ -0,0 +1,2 @@
1
+ import type { MoveResult, MoveTasksOptions } from "./types.js";
2
+ export declare function moveTasks(options: MoveTasksOptions): Promise<MoveResult>;
@@ -0,0 +1,5 @@
1
+ import type { BackendFactory, OpenMarkdownDirOptions, OpenTaskListOptions, OpenYamlFileOptions, TaskList } from "./types.js";
2
+ type FileBackendOptions = OpenMarkdownDirOptions | OpenYamlFileOptions;
3
+ export declare const backendFactories: Record<FileBackendOptions["type"], BackendFactory>;
4
+ export declare function openTaskList(options: OpenTaskListOptions): Promise<TaskList>;
5
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { Task } from "./types.js";
2
+ export interface StateMachineDef<TState extends string = string, TEvent extends string = string> {
3
+ readonly initial: TState;
4
+ readonly states: readonly TState[];
5
+ readonly events: Readonly<Record<TEvent, EventDef<TState>>>;
6
+ }
7
+ export interface EventDef<TState extends string = string> {
8
+ readonly from: readonly TState[] | "*";
9
+ readonly to: TState;
10
+ readonly guard?: (task: Task) => true | string;
11
+ readonly onEnter?: (task: Task) => void | Promise<void>;
12
+ readonly onExit?: (task: Task) => void | Promise<void>;
13
+ }
14
+ export declare function validateMachine(machine: StateMachineDef): void;
15
+ export declare function eventsFromState<TState extends string, TEvent extends string>(machine: StateMachineDef<TState, TEvent>, fromState: TState): readonly TEvent[];
16
+ export declare function findEvent<TState extends string, TEvent extends string>(machine: StateMachineDef<TState, TEvent>, fromState: TState, eventName: TEvent): EventDef<TState> | undefined;
@@ -0,0 +1,29 @@
1
+ import { type EventDef, type StateMachineDef } from "./state-machine.js";
2
+ import { type TaskState } from "./types.js";
3
+ export type TaskEvent = "plan" | "start" | "complete" | "archive";
4
+ export declare const defaultStateMachine: {
5
+ readonly initial: "draft";
6
+ readonly states: readonly ["draft", "planned", "in-progress", "done", "archived"];
7
+ readonly events: {
8
+ readonly plan: {
9
+ readonly from: readonly ["draft"];
10
+ readonly to: "planned";
11
+ };
12
+ readonly start: {
13
+ readonly from: readonly ["planned"];
14
+ readonly to: "in-progress";
15
+ };
16
+ readonly complete: {
17
+ readonly from: readonly ["in-progress"];
18
+ readonly to: "done";
19
+ };
20
+ readonly archive: {
21
+ readonly from: "*";
22
+ readonly to: "archived";
23
+ };
24
+ };
25
+ };
26
+ export declare function resolveStateMachine(stateMachine?: StateMachineDef): StateMachineDef;
27
+ export declare function assertEvent<TState extends string, TEvent extends string>(machine: StateMachineDef<TState, TEvent>, fromState: TState, eventName: TEvent): EventDef<TState>;
28
+ export declare function assertTransition(from: TaskState, to: TaskState): void;
29
+ export declare function assertTransition<TState extends string, TEvent extends string>(machine: StateMachineDef<TState, TEvent>, from: TState, to: TState): void;
@@ -0,0 +1,206 @@
1
+ import type { StateMachineDef } from "./state-machine.js";
2
+ export type TaskState = "draft" | "planned" | "in-progress" | "done" | "archived";
3
+ export interface Task {
4
+ list: string;
5
+ id: string;
6
+ qualifiedId: string;
7
+ name: string;
8
+ state: string;
9
+ description: string;
10
+ metadata: Record<string, unknown>;
11
+ sourcePath?: string;
12
+ }
13
+ export interface TaskCreate {
14
+ id?: string;
15
+ name: string;
16
+ description?: string;
17
+ metadata?: Record<string, unknown>;
18
+ }
19
+ export interface TaskUpdate {
20
+ name?: string;
21
+ description?: string;
22
+ metadata?: Record<string, unknown>;
23
+ state?: never;
24
+ }
25
+ export interface TaskFireOptions {
26
+ metadataPatch?: Record<string, unknown>;
27
+ }
28
+ export type TaskOrder = "priority" | "alphabetical" | "created";
29
+ export interface ListFilter {
30
+ state?: string;
31
+ includeArchived?: boolean;
32
+ order?: TaskOrder;
33
+ }
34
+ export type MoveAnchor = {
35
+ before: string;
36
+ } | {
37
+ after: string;
38
+ } | {
39
+ position: "top" | "bottom";
40
+ };
41
+ export interface Tasks {
42
+ readonly name: string;
43
+ readonly stateMachine: StateMachineDef;
44
+ all(filter?: ListFilter): Promise<Task[]>;
45
+ get(id: string): Promise<Task>;
46
+ create(input: TaskCreate): Promise<Task>;
47
+ update(id: string, patch: TaskUpdate): Promise<Task>;
48
+ fire(id: string, event: string, opts?: TaskFireOptions): Promise<Task>;
49
+ comment?(id: string, body: string): Promise<void>;
50
+ canFire(id: string, event: string): Promise<boolean>;
51
+ events(id: string): Promise<readonly string[]>;
52
+ delete(id: string): Promise<void>;
53
+ move(id: string, anchor: MoveAnchor): Promise<Task>;
54
+ reorder(ids: readonly string[]): Promise<readonly Task[]>;
55
+ }
56
+ export interface TaskList {
57
+ list(name: string): Tasks;
58
+ lists(): Promise<string[]>;
59
+ allTasks(filter?: ListFilter): Promise<Task[]>;
60
+ get(qualifiedId: string): Promise<Task>;
61
+ moveBetweenLists(qualifiedId: string, targetList: string): Promise<Task>;
62
+ }
63
+ export interface TaskDefaults {
64
+ metadata?: Record<string, unknown>;
65
+ }
66
+ export interface TaskListFs {
67
+ lstat(path: string): Promise<{
68
+ isSymbolicLink(): boolean;
69
+ }>;
70
+ mkdir(path: string, options?: {
71
+ recursive?: boolean;
72
+ }): Promise<void>;
73
+ readFile(path: string, encoding: BufferEncoding): Promise<string>;
74
+ readdir(path: string): Promise<string[]>;
75
+ rename(fromPath: string, toPath: string): Promise<void>;
76
+ rmdir(path: string): Promise<void>;
77
+ stat(path: string): Promise<{
78
+ isDirectory(): boolean;
79
+ isFile(): boolean;
80
+ mtimeMs: number;
81
+ }>;
82
+ unlink(path: string): Promise<void>;
83
+ writeFile(path: string, data: string | NodeJS.ArrayBufferView, options?: BufferEncoding | {
84
+ encoding?: BufferEncoding;
85
+ flag?: string;
86
+ }): Promise<void>;
87
+ }
88
+ export type OpenTaskListOptions = OpenMarkdownDirOptions | OpenYamlFileOptions | OpenGhIssuesOptions;
89
+ export type TaskListOptions = OpenTaskListOptions;
90
+ export interface MoveTasksOptions {
91
+ source: TaskListOptions;
92
+ target: TaskListOptions;
93
+ deleteSource?: boolean;
94
+ limit?: number;
95
+ rate?: number;
96
+ dryRun?: boolean;
97
+ stateMap?: Record<string, string>;
98
+ onProgress?: (event: MoveProgressEvent) => void;
99
+ }
100
+ export interface MoveResult {
101
+ created: number;
102
+ skipped: number;
103
+ errors: Array<{
104
+ id: string;
105
+ error: string;
106
+ }>;
107
+ }
108
+ export type MoveProgressEvent = {
109
+ type: "created";
110
+ id: string;
111
+ source: Task;
112
+ target: Task;
113
+ targetList: string;
114
+ targetState: string;
115
+ } | {
116
+ type: "skipped";
117
+ id: string;
118
+ source: Task;
119
+ targetList: string;
120
+ targetState: string;
121
+ reason: "dry-run";
122
+ } | {
123
+ type: "error";
124
+ id: string;
125
+ source: Task;
126
+ error: string;
127
+ };
128
+ export interface OpenMarkdownDirOptions {
129
+ type: "markdown-dir";
130
+ path: string;
131
+ defaults?: TaskDefaults;
132
+ create?: boolean;
133
+ singleList?: string;
134
+ frontmatterMode?: "strict" | "passthrough";
135
+ fs?: TaskListFs;
136
+ stateMachine?: StateMachineDef;
137
+ }
138
+ export interface OpenYamlFileOptions {
139
+ type: "yaml-file";
140
+ path: string;
141
+ defaults?: TaskDefaults;
142
+ create?: boolean;
143
+ fs?: TaskListFs;
144
+ stateMachine?: StateMachineDef;
145
+ }
146
+ export interface OpenGhIssuesOptions {
147
+ type: "gh-issues";
148
+ repo: string;
149
+ project?: {
150
+ owner: string;
151
+ number: number;
152
+ };
153
+ filter?: string;
154
+ state?: {
155
+ labelPrefix?: string;
156
+ };
157
+ stateMachine?: StateMachineDef;
158
+ defaults?: TaskDefaults;
159
+ auth?: {
160
+ token: string;
161
+ };
162
+ fetch?: typeof fetch;
163
+ }
164
+ export interface BackendDeps {
165
+ path: string;
166
+ defaults: Required<TaskDefaults>;
167
+ singleList?: string;
168
+ frontmatterMode: "strict" | "passthrough";
169
+ create: boolean;
170
+ fs: TaskListFs;
171
+ stateMachine?: StateMachineDef;
172
+ }
173
+ export type BackendFactory = (deps: BackendDeps) => Promise<TaskList>;
174
+ export declare class TaskNotFoundError extends Error {
175
+ constructor(message?: string);
176
+ }
177
+ export declare class TaskAlreadyExistsError extends Error {
178
+ constructor(message?: string);
179
+ }
180
+ export declare class InvalidTransitionError extends Error {
181
+ readonly task?: Task;
182
+ readonly event?: string;
183
+ readonly to?: string;
184
+ readonly reason: string;
185
+ constructor(messageOrOptions?: string | {
186
+ task?: Task;
187
+ event?: string;
188
+ to?: string;
189
+ reason: string;
190
+ });
191
+ }
192
+ export declare class MalformedTaskError extends Error {
193
+ constructor(message?: string);
194
+ }
195
+ export declare class OrderMismatchError extends Error {
196
+ readonly missing: readonly string[];
197
+ readonly extra: readonly string[];
198
+ constructor(options: {
199
+ missing: readonly string[];
200
+ extra: readonly string[];
201
+ });
202
+ }
203
+ export declare class AnchorNotFoundError extends Error {
204
+ readonly anchor: string;
205
+ constructor(anchor: string);
206
+ }