@wenathlan/saddle 1.8.7 → 1.8.9

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 (751) hide show
  1. package/README.md +18 -18
  2. package/dist/adapters/forge.d.ts +17 -0
  3. package/dist/adapters/forge.d.ts.map +1 -0
  4. package/dist/adapters/forge.js +19 -0
  5. package/dist/adapters/forge.js.map +1 -0
  6. package/dist/adapters/forgejo.d.ts +49 -0
  7. package/dist/adapters/forgejo.d.ts.map +1 -0
  8. package/{adapters → dist/adapters}/forgejo.js +1 -1
  9. package/dist/adapters/forgejo.js.map +1 -0
  10. package/dist/adapters/github.d.ts +12 -0
  11. package/dist/adapters/github.d.ts.map +1 -0
  12. package/dist/adapters/github.js +20 -0
  13. package/dist/adapters/github.js.map +1 -0
  14. package/dist/adapters/gitlab.d.ts +17 -0
  15. package/dist/adapters/gitlab.d.ts.map +1 -0
  16. package/dist/adapters/gitlab.js +10 -0
  17. package/dist/adapters/gitlab.js.map +1 -0
  18. package/dist/adapters/huggingface.d.ts +17 -0
  19. package/dist/adapters/huggingface.d.ts.map +1 -0
  20. package/{adapters → dist/adapters}/huggingface.js +1 -1
  21. package/dist/adapters/huggingface.js.map +1 -0
  22. package/dist/adapters/socket.d.ts +11 -0
  23. package/dist/adapters/socket.d.ts.map +1 -0
  24. package/dist/adapters/socket.js +17 -0
  25. package/dist/adapters/socket.js.map +1 -0
  26. package/dist/adapters/transport.d.ts +7 -0
  27. package/dist/adapters/transport.d.ts.map +1 -0
  28. package/dist/adapters/transport.js +36 -0
  29. package/dist/adapters/transport.js.map +1 -0
  30. package/dist/ai/chunk.d.ts +2 -0
  31. package/dist/ai/chunk.d.ts.map +1 -0
  32. package/dist/ai/chunk.js +36 -0
  33. package/dist/ai/chunk.js.map +1 -0
  34. package/dist/ai/llmstxt.d.ts +6 -0
  35. package/dist/ai/llmstxt.d.ts.map +1 -0
  36. package/dist/ai/llmstxt.js +12 -0
  37. package/dist/ai/llmstxt.js.map +1 -0
  38. package/dist/ai/provenance.d.ts +22 -0
  39. package/dist/ai/provenance.d.ts.map +1 -0
  40. package/dist/ai/provenance.js +25 -0
  41. package/dist/ai/provenance.js.map +1 -0
  42. package/dist/ai/rag.d.ts +26 -0
  43. package/dist/ai/rag.d.ts.map +1 -0
  44. package/dist/ai/rag.js +22 -0
  45. package/dist/ai/rag.js.map +1 -0
  46. package/dist/ai/tokens.d.ts +15 -0
  47. package/dist/ai/tokens.d.ts.map +1 -0
  48. package/{ai → dist/ai}/tokens.js +1 -1
  49. package/dist/ai/tokens.js.map +1 -0
  50. package/dist/api/auth.d.ts +16 -0
  51. package/dist/api/auth.d.ts.map +1 -0
  52. package/dist/api/auth.js +19 -0
  53. package/dist/api/auth.js.map +1 -0
  54. package/dist/api/contracts.d.ts +28 -0
  55. package/dist/api/contracts.d.ts.map +1 -0
  56. package/{api → dist/api}/contracts.js +3 -6
  57. package/dist/api/contracts.js.map +1 -0
  58. package/dist/api/control.d.ts +10 -0
  59. package/dist/api/control.d.ts.map +1 -0
  60. package/dist/api/control.js +35 -0
  61. package/dist/api/control.js.map +1 -0
  62. package/dist/api/http.d.ts +7 -0
  63. package/dist/api/http.d.ts.map +1 -0
  64. package/{api → dist/api}/http.js +5 -5
  65. package/dist/api/http.js.map +1 -0
  66. package/dist/api/rate.d.ts +28 -0
  67. package/dist/api/rate.d.ts.map +1 -0
  68. package/dist/api/rate.js +36 -0
  69. package/dist/api/rate.js.map +1 -0
  70. package/dist/api/security.d.ts +12 -0
  71. package/dist/api/security.d.ts.map +1 -0
  72. package/dist/api/security.js +56 -0
  73. package/dist/api/security.js.map +1 -0
  74. package/dist/api/service.d.ts +5 -0
  75. package/dist/api/service.d.ts.map +1 -0
  76. package/dist/api/service.js +70 -0
  77. package/dist/api/service.js.map +1 -0
  78. package/dist/apps/registry.d.ts +33 -0
  79. package/dist/apps/registry.d.ts.map +1 -0
  80. package/dist/apps/registry.js +24 -0
  81. package/dist/apps/registry.js.map +1 -0
  82. package/dist/binary/build.d.ts +29 -0
  83. package/dist/binary/build.d.ts.map +1 -0
  84. package/dist/binary/build.js +17 -0
  85. package/dist/binary/build.js.map +1 -0
  86. package/dist/bot/adapter.d.ts +5 -0
  87. package/dist/bot/adapter.d.ts.map +1 -0
  88. package/dist/bot/adapter.js +11 -0
  89. package/dist/bot/adapter.js.map +1 -0
  90. package/dist/bot/bot.d.ts +28 -0
  91. package/dist/bot/bot.d.ts.map +1 -0
  92. package/dist/bot/bot.js +52 -0
  93. package/dist/bot/bot.js.map +1 -0
  94. package/dist/bot/commands.d.ts +8 -0
  95. package/dist/bot/commands.d.ts.map +1 -0
  96. package/dist/bot/commands.js +19 -0
  97. package/dist/bot/commands.js.map +1 -0
  98. package/dist/bot/permissions.d.ts +13 -0
  99. package/dist/bot/permissions.d.ts.map +1 -0
  100. package/dist/bot/permissions.js +16 -0
  101. package/dist/bot/permissions.js.map +1 -0
  102. package/dist/browser/actions.d.ts +33 -0
  103. package/dist/browser/actions.d.ts.map +1 -0
  104. package/dist/browser/actions.js +44 -0
  105. package/dist/browser/actions.js.map +1 -0
  106. package/dist/browser/agent.d.ts +21 -0
  107. package/dist/browser/agent.d.ts.map +1 -0
  108. package/dist/browser/agent.js +13 -0
  109. package/dist/browser/agent.js.map +1 -0
  110. package/dist/browser/context.d.ts +43 -0
  111. package/dist/browser/context.d.ts.map +1 -0
  112. package/dist/browser/context.js +54 -0
  113. package/dist/browser/context.js.map +1 -0
  114. package/dist/browser/fingerprint.d.ts +4 -0
  115. package/dist/browser/fingerprint.d.ts.map +1 -0
  116. package/{browser → dist/browser}/fingerprint.js +4 -4
  117. package/dist/browser/fingerprint.js.map +1 -0
  118. package/dist/browser/index.d.ts +11 -0
  119. package/dist/browser/index.d.ts.map +1 -0
  120. package/{browser → dist/browser}/index.js +1 -0
  121. package/dist/browser/index.js.map +1 -0
  122. package/dist/browser/playwright.d.ts +11 -0
  123. package/dist/browser/playwright.d.ts.map +1 -0
  124. package/dist/browser/playwright.js +24 -0
  125. package/dist/browser/playwright.js.map +1 -0
  126. package/dist/browser/recorder.d.ts +27 -0
  127. package/dist/browser/recorder.d.ts.map +1 -0
  128. package/dist/browser/recorder.js +22 -0
  129. package/dist/browser/recorder.js.map +1 -0
  130. package/dist/browser/session.d.ts +14 -0
  131. package/dist/browser/session.d.ts.map +1 -0
  132. package/dist/browser/session.js +21 -0
  133. package/dist/browser/session.js.map +1 -0
  134. package/dist/browser/snapshot.d.ts +57 -0
  135. package/dist/browser/snapshot.d.ts.map +1 -0
  136. package/dist/browser/snapshot.js +57 -0
  137. package/dist/browser/snapshot.js.map +1 -0
  138. package/dist/captcha/contract.d.ts +35 -0
  139. package/dist/captcha/contract.d.ts.map +1 -0
  140. package/dist/captcha/contract.js +17 -0
  141. package/dist/captcha/contract.js.map +1 -0
  142. package/dist/captcha/evidence.d.ts +10 -0
  143. package/dist/captcha/evidence.d.ts.map +1 -0
  144. package/dist/captcha/evidence.js +9 -0
  145. package/dist/captcha/evidence.js.map +1 -0
  146. package/dist/captcha/guard.d.ts +23 -0
  147. package/dist/captcha/guard.d.ts.map +1 -0
  148. package/dist/captcha/guard.js +12 -0
  149. package/dist/captcha/guard.js.map +1 -0
  150. package/dist/cli/main.d.ts +4 -0
  151. package/dist/cli/main.d.ts.map +1 -0
  152. package/dist/cli/main.js +46 -0
  153. package/dist/cli/main.js.map +1 -0
  154. package/dist/core/errors.d.ts +84 -0
  155. package/dist/core/errors.d.ts.map +1 -0
  156. package/dist/core/errors.js +54 -0
  157. package/dist/core/errors.js.map +1 -0
  158. package/dist/core/events.d.ts +9 -0
  159. package/dist/core/events.d.ts.map +1 -0
  160. package/dist/core/events.js +21 -0
  161. package/dist/core/events.js.map +1 -0
  162. package/dist/core/hash.d.ts +10 -0
  163. package/dist/core/hash.d.ts.map +1 -0
  164. package/dist/core/hash.js +82 -0
  165. package/dist/core/hash.js.map +1 -0
  166. package/dist/core/ids.d.ts +10 -0
  167. package/dist/core/ids.d.ts.map +1 -0
  168. package/dist/core/ids.js +15 -0
  169. package/dist/core/ids.js.map +1 -0
  170. package/dist/deploy/index.d.ts +6 -0
  171. package/dist/deploy/index.d.ts.map +1 -0
  172. package/dist/deploy/index.js +6 -0
  173. package/dist/deploy/index.js.map +1 -0
  174. package/dist/dispatch/resumable.d.ts +85 -0
  175. package/dist/dispatch/resumable.d.ts.map +1 -0
  176. package/dist/dispatch/resumable.js +39 -0
  177. package/dist/dispatch/resumable.js.map +1 -0
  178. package/dist/dispatch/workflow.d.ts +6 -0
  179. package/dist/dispatch/workflow.d.ts.map +1 -0
  180. package/dist/dispatch/workflow.js +37 -0
  181. package/dist/dispatch/workflow.js.map +1 -0
  182. package/dist/domain/artifacts.d.ts +12 -0
  183. package/dist/domain/artifacts.d.ts.map +1 -0
  184. package/dist/domain/artifacts.js +14 -0
  185. package/dist/domain/artifacts.js.map +1 -0
  186. package/dist/domain/jobs.d.ts +12 -0
  187. package/dist/domain/jobs.d.ts.map +1 -0
  188. package/dist/domain/jobs.js +20 -0
  189. package/dist/domain/jobs.js.map +1 -0
  190. package/dist/domain/providers.d.ts +10 -0
  191. package/dist/domain/providers.d.ts.map +1 -0
  192. package/{domain → dist/domain}/providers.js +2 -2
  193. package/dist/domain/providers.js.map +1 -0
  194. package/dist/domain/runtime.d.ts +14 -0
  195. package/dist/domain/runtime.d.ts.map +1 -0
  196. package/{domain → dist/domain}/runtime.js +3 -3
  197. package/dist/domain/runtime.js.map +1 -0
  198. package/dist/domain/sessions.d.ts +12 -0
  199. package/dist/domain/sessions.d.ts.map +1 -0
  200. package/dist/domain/sessions.js +57 -0
  201. package/dist/domain/sessions.js.map +1 -0
  202. package/dist/examples/localjob.d.ts +2 -0
  203. package/dist/examples/localjob.d.ts.map +1 -0
  204. package/{examples → dist/examples}/localjob.js +1 -1
  205. package/dist/examples/localjob.js.map +1 -0
  206. package/dist/examples/publicapi.d.ts +2 -0
  207. package/dist/examples/publicapi.d.ts.map +1 -0
  208. package/{examples → dist/examples}/publicapi.js +1 -1
  209. package/dist/examples/publicapi.js.map +1 -0
  210. package/dist/extension/build.d.ts +9 -0
  211. package/dist/extension/build.d.ts.map +1 -0
  212. package/dist/extension/build.js +61 -0
  213. package/dist/extension/build.js.map +1 -0
  214. package/dist/extension/content.d.ts +6 -0
  215. package/dist/extension/content.d.ts.map +1 -0
  216. package/dist/extension/content.js +135 -0
  217. package/dist/extension/content.js.map +1 -0
  218. package/dist/extension/index.d.ts +7 -0
  219. package/dist/extension/index.d.ts.map +1 -0
  220. package/{extension → dist/extension}/index.js +1 -0
  221. package/dist/extension/index.js.map +1 -0
  222. package/dist/extension/pagebridge.d.ts +6 -0
  223. package/dist/extension/pagebridge.d.ts.map +1 -0
  224. package/dist/extension/pagebridge.js +42 -0
  225. package/dist/extension/pagebridge.js.map +1 -0
  226. package/dist/extension/permissions.d.ts +26 -0
  227. package/dist/extension/permissions.d.ts.map +1 -0
  228. package/dist/extension/permissions.js +28 -0
  229. package/dist/extension/permissions.js.map +1 -0
  230. package/dist/extension/popup.d.ts +5 -0
  231. package/dist/extension/popup.d.ts.map +1 -0
  232. package/dist/extension/popup.js +26 -0
  233. package/dist/extension/popup.js.map +1 -0
  234. package/dist/extension/protocol.d.ts +58 -0
  235. package/dist/extension/protocol.d.ts.map +1 -0
  236. package/dist/extension/protocol.js +101 -0
  237. package/dist/extension/protocol.js.map +1 -0
  238. package/dist/extension/serviceworker.d.ts +25 -0
  239. package/dist/extension/serviceworker.d.ts.map +1 -0
  240. package/dist/extension/serviceworker.js +102 -0
  241. package/dist/extension/serviceworker.js.map +1 -0
  242. package/dist/extension/worker.d.ts +28 -0
  243. package/dist/extension/worker.d.ts.map +1 -0
  244. package/dist/extension/worker.js +22 -0
  245. package/dist/extension/worker.js.map +1 -0
  246. package/dist/format/check.d.ts +8 -0
  247. package/dist/format/check.d.ts.map +1 -0
  248. package/dist/format/check.js +38 -0
  249. package/dist/format/check.js.map +1 -0
  250. package/dist/index.d.ts +117 -0
  251. package/dist/index.d.ts.map +1 -0
  252. package/{index.js → dist/index.js} +3 -7
  253. package/dist/index.js.map +1 -0
  254. package/dist/library/public.d.ts +53 -0
  255. package/dist/library/public.d.ts.map +1 -0
  256. package/dist/library/public.js +83 -0
  257. package/dist/library/public.js.map +1 -0
  258. package/dist/mcp/browser.d.ts +9 -0
  259. package/dist/mcp/browser.d.ts.map +1 -0
  260. package/dist/mcp/browser.js +13 -0
  261. package/dist/mcp/browser.js.map +1 -0
  262. package/dist/mcp/server.d.ts +35 -0
  263. package/dist/mcp/server.d.ts.map +1 -0
  264. package/dist/mcp/server.js +40 -0
  265. package/dist/mcp/server.js.map +1 -0
  266. package/dist/mcp/transport.d.ts +7 -0
  267. package/dist/mcp/transport.d.ts.map +1 -0
  268. package/dist/mcp/transport.js +17 -0
  269. package/dist/mcp/transport.js.map +1 -0
  270. package/dist/memory/bridge.d.ts +14 -0
  271. package/dist/memory/bridge.d.ts.map +1 -0
  272. package/dist/memory/bridge.js +16 -0
  273. package/dist/memory/bridge.js.map +1 -0
  274. package/dist/memory/engine.d.ts +28 -0
  275. package/dist/memory/engine.d.ts.map +1 -0
  276. package/dist/memory/engine.js +59 -0
  277. package/dist/memory/engine.js.map +1 -0
  278. package/dist/memory/modes.d.ts +43 -0
  279. package/dist/memory/modes.d.ts.map +1 -0
  280. package/dist/memory/modes.js +66 -0
  281. package/dist/memory/modes.js.map +1 -0
  282. package/dist/memory/objects.d.ts +21 -0
  283. package/dist/memory/objects.d.ts.map +1 -0
  284. package/dist/memory/objects.js +20 -0
  285. package/dist/memory/objects.js.map +1 -0
  286. package/dist/memory/targets.d.ts +78 -0
  287. package/dist/memory/targets.d.ts.map +1 -0
  288. package/dist/memory/targets.js +29 -0
  289. package/dist/memory/targets.js.map +1 -0
  290. package/dist/memory/transforms.d.ts +19 -0
  291. package/dist/memory/transforms.d.ts.map +1 -0
  292. package/dist/memory/transforms.js +14 -0
  293. package/dist/memory/transforms.js.map +1 -0
  294. package/dist/modes/matrix.d.ts +23 -0
  295. package/dist/modes/matrix.d.ts.map +1 -0
  296. package/{modes → dist/modes}/matrix.js +8 -10
  297. package/dist/modes/matrix.js.map +1 -0
  298. package/dist/modes/modes.d.ts +33 -0
  299. package/dist/modes/modes.d.ts.map +1 -0
  300. package/{modes → dist/modes}/modes.js +3 -4
  301. package/dist/modes/modes.js.map +1 -0
  302. package/dist/modes/resolve.d.ts +41 -0
  303. package/dist/modes/resolve.d.ts.map +1 -0
  304. package/dist/modes/resolve.js +39 -0
  305. package/dist/modes/resolve.js.map +1 -0
  306. package/dist/observability/metrics.d.ts +14 -0
  307. package/dist/observability/metrics.d.ts.map +1 -0
  308. package/dist/observability/metrics.js +18 -0
  309. package/dist/observability/metrics.js.map +1 -0
  310. package/dist/packager/manifest.d.ts +49 -0
  311. package/dist/packager/manifest.d.ts.map +1 -0
  312. package/dist/packager/manifest.js +49 -0
  313. package/dist/packager/manifest.js.map +1 -0
  314. package/dist/packager/publish.d.ts +51 -0
  315. package/dist/packager/publish.d.ts.map +1 -0
  316. package/dist/packager/publish.js +18 -0
  317. package/dist/packager/publish.js.map +1 -0
  318. package/dist/packager/targetcli.d.ts +7 -0
  319. package/dist/packager/targetcli.d.ts.map +1 -0
  320. package/dist/packager/targetcli.js +22 -0
  321. package/dist/packager/targetcli.js.map +1 -0
  322. package/dist/persistence/adapter.d.ts +5 -0
  323. package/dist/persistence/adapter.d.ts.map +1 -0
  324. package/dist/persistence/adapter.js +11 -0
  325. package/dist/persistence/adapter.js.map +1 -0
  326. package/dist/persistence/drizzle.d.ts +2 -0
  327. package/dist/persistence/drizzle.d.ts.map +1 -0
  328. package/dist/persistence/drizzle.js +12 -0
  329. package/dist/persistence/drizzle.js.map +1 -0
  330. package/dist/persistence/memory.d.ts +2 -0
  331. package/dist/persistence/memory.d.ts.map +1 -0
  332. package/dist/persistence/memory.js +27 -0
  333. package/dist/persistence/memory.js.map +1 -0
  334. package/dist/persistence/migrations.d.ts +19 -0
  335. package/dist/persistence/migrations.d.ts.map +1 -0
  336. package/{persistence → dist/persistence}/migrations.js +4 -5
  337. package/dist/persistence/migrations.js.map +1 -0
  338. package/dist/persistence/prisma.d.ts +2 -0
  339. package/dist/persistence/prisma.d.ts.map +1 -0
  340. package/dist/persistence/prisma.js +25 -0
  341. package/dist/persistence/prisma.js.map +1 -0
  342. package/dist/persistence/schema.d.ts +63 -0
  343. package/dist/persistence/schema.d.ts.map +1 -0
  344. package/dist/persistence/schema.js +28 -0
  345. package/dist/persistence/schema.js.map +1 -0
  346. package/dist/persistence/sql.d.ts +3 -0
  347. package/dist/persistence/sql.d.ts.map +1 -0
  348. package/dist/persistence/sql.js +37 -0
  349. package/dist/persistence/sql.js.map +1 -0
  350. package/dist/protocol/blocks.d.ts +10 -0
  351. package/dist/protocol/blocks.d.ts.map +1 -0
  352. package/dist/protocol/blocks.js +26 -0
  353. package/dist/protocol/blocks.js.map +1 -0
  354. package/dist/protocol/json.d.ts +6 -0
  355. package/dist/protocol/json.d.ts.map +1 -0
  356. package/{protocol → dist/protocol}/json.js +1 -0
  357. package/dist/protocol/json.js.map +1 -0
  358. package/dist/protocol/ndjson.d.ts +3 -0
  359. package/dist/protocol/ndjson.d.ts.map +1 -0
  360. package/dist/protocol/ndjson.js +20 -0
  361. package/dist/protocol/ndjson.js.map +1 -0
  362. package/dist/protocol/sse.d.ts +7 -0
  363. package/dist/protocol/sse.d.ts.map +1 -0
  364. package/dist/protocol/sse.js +25 -0
  365. package/dist/protocol/sse.js.map +1 -0
  366. package/dist/proxy/pool.d.ts +9 -0
  367. package/dist/proxy/pool.d.ts.map +1 -0
  368. package/dist/proxy/pool.js +27 -0
  369. package/dist/proxy/pool.js.map +1 -0
  370. package/dist/queue/idempotency.d.ts +10 -0
  371. package/dist/queue/idempotency.d.ts.map +1 -0
  372. package/dist/queue/idempotency.js +13 -0
  373. package/dist/queue/idempotency.js.map +1 -0
  374. package/dist/queue/persistent.d.ts +13 -0
  375. package/dist/queue/persistent.d.ts.map +1 -0
  376. package/dist/queue/persistent.js +49 -0
  377. package/dist/queue/persistent.js.map +1 -0
  378. package/dist/queue/queue.d.ts +7 -0
  379. package/dist/queue/queue.d.ts.map +1 -0
  380. package/dist/queue/queue.js +55 -0
  381. package/dist/queue/queue.js.map +1 -0
  382. package/dist/queue/saga.d.ts +5 -0
  383. package/dist/queue/saga.d.ts.map +1 -0
  384. package/dist/queue/saga.js +20 -0
  385. package/dist/queue/saga.js.map +1 -0
  386. package/dist/release/assets.d.ts +118 -0
  387. package/dist/release/assets.d.ts.map +1 -0
  388. package/dist/release/assets.js +69 -0
  389. package/dist/release/assets.js.map +1 -0
  390. package/dist/runners/health.d.ts +36 -0
  391. package/dist/runners/health.d.ts.map +1 -0
  392. package/dist/runners/health.js +26 -0
  393. package/dist/runners/health.js.map +1 -0
  394. package/dist/runners/heartbeat.d.ts +23 -0
  395. package/dist/runners/heartbeat.d.ts.map +1 -0
  396. package/dist/runners/heartbeat.js +29 -0
  397. package/dist/runners/heartbeat.js.map +1 -0
  398. package/dist/runners/inprocess.d.ts +17 -0
  399. package/dist/runners/inprocess.d.ts.map +1 -0
  400. package/dist/runners/inprocess.js +20 -0
  401. package/dist/runners/inprocess.js.map +1 -0
  402. package/dist/runners/scheduler.d.ts +5 -0
  403. package/dist/runners/scheduler.d.ts.map +1 -0
  404. package/dist/runners/scheduler.js +19 -0
  405. package/dist/runners/scheduler.js.map +1 -0
  406. package/dist/runtime/abort.d.ts +8 -0
  407. package/dist/runtime/abort.d.ts.map +1 -0
  408. package/dist/runtime/abort.js +13 -0
  409. package/dist/runtime/abort.js.map +1 -0
  410. package/dist/runtime/compatibility.d.ts +37 -0
  411. package/dist/runtime/compatibility.d.ts.map +1 -0
  412. package/{runtime → dist/runtime}/compatibility.js +1 -4
  413. package/dist/runtime/compatibility.js.map +1 -0
  414. package/dist/runtime/detect.d.ts +13 -0
  415. package/dist/runtime/detect.d.ts.map +1 -0
  416. package/dist/runtime/detect.js +18 -0
  417. package/dist/runtime/detect.js.map +1 -0
  418. package/dist/runtime/engine.d.ts +20 -0
  419. package/dist/runtime/engine.d.ts.map +1 -0
  420. package/dist/runtime/engine.js +61 -0
  421. package/dist/runtime/engine.js.map +1 -0
  422. package/dist/runtime/retry.d.ts +19 -0
  423. package/dist/runtime/retry.d.ts.map +1 -0
  424. package/dist/runtime/retry.js +54 -0
  425. package/dist/runtime/retry.js.map +1 -0
  426. package/dist/runtime/worker.d.ts +10 -0
  427. package/dist/runtime/worker.d.ts.map +1 -0
  428. package/dist/runtime/worker.js +25 -0
  429. package/dist/runtime/worker.js.map +1 -0
  430. package/dist/scrape/cache.d.ts +45 -0
  431. package/dist/scrape/cache.d.ts.map +1 -0
  432. package/dist/scrape/cache.js +45 -0
  433. package/dist/scrape/cache.js.map +1 -0
  434. package/dist/scrape/crawl.d.ts +47 -0
  435. package/dist/scrape/crawl.d.ts.map +1 -0
  436. package/dist/scrape/crawl.js +114 -0
  437. package/dist/scrape/crawl.js.map +1 -0
  438. package/dist/scrape/extract.d.ts +63 -0
  439. package/dist/scrape/extract.d.ts.map +1 -0
  440. package/dist/scrape/extract.js +47 -0
  441. package/dist/scrape/extract.js.map +1 -0
  442. package/dist/scrape/normalize.d.ts +52 -0
  443. package/dist/scrape/normalize.d.ts.map +1 -0
  444. package/dist/scrape/normalize.js +102 -0
  445. package/dist/scrape/normalize.js.map +1 -0
  446. package/dist/scrape/robots.d.ts +37 -0
  447. package/dist/scrape/robots.d.ts.map +1 -0
  448. package/dist/scrape/robots.js +71 -0
  449. package/dist/scrape/robots.js.map +1 -0
  450. package/dist/scrape/schema.d.ts +5 -0
  451. package/dist/scrape/schema.d.ts.map +1 -0
  452. package/dist/scrape/schema.js +25 -0
  453. package/dist/scrape/schema.js.map +1 -0
  454. package/dist/scrape/scraper.d.ts +6 -0
  455. package/dist/scrape/scraper.d.ts.map +1 -0
  456. package/dist/scrape/scraper.js +46 -0
  457. package/dist/scrape/scraper.js.map +1 -0
  458. package/dist/scrape/semantic.d.ts +25 -0
  459. package/dist/scrape/semantic.d.ts.map +1 -0
  460. package/dist/scrape/semantic.js +27 -0
  461. package/dist/scrape/semantic.js.map +1 -0
  462. package/dist/server/node.d.ts +7 -0
  463. package/dist/server/node.d.ts.map +1 -0
  464. package/dist/server/node.js +38 -0
  465. package/dist/server/node.js.map +1 -0
  466. package/dist/sessions/file.d.ts +25 -0
  467. package/dist/sessions/file.d.ts.map +1 -0
  468. package/dist/sessions/file.js +13 -0
  469. package/dist/sessions/file.js.map +1 -0
  470. package/dist/sessions/replay.d.ts +9 -0
  471. package/dist/sessions/replay.d.ts.map +1 -0
  472. package/dist/sessions/replay.js +70 -0
  473. package/dist/sessions/replay.js.map +1 -0
  474. package/dist/sessions/store.d.ts +25 -0
  475. package/dist/sessions/store.d.ts.map +1 -0
  476. package/dist/sessions/store.js +13 -0
  477. package/dist/sessions/store.js.map +1 -0
  478. package/dist/storage/adapter.d.ts +5 -0
  479. package/dist/storage/adapter.d.ts.map +1 -0
  480. package/dist/storage/adapter.js +11 -0
  481. package/dist/storage/adapter.js.map +1 -0
  482. package/dist/storage/cache.d.ts +23 -0
  483. package/dist/storage/cache.d.ts.map +1 -0
  484. package/dist/storage/cache.js +79 -0
  485. package/dist/storage/cache.js.map +1 -0
  486. package/dist/storage/checksum.d.ts +3 -0
  487. package/dist/storage/checksum.d.ts.map +1 -0
  488. package/dist/storage/checksum.js +19 -0
  489. package/dist/storage/checksum.js.map +1 -0
  490. package/dist/storage/chunked.d.ts +21 -0
  491. package/dist/storage/chunked.d.ts.map +1 -0
  492. package/dist/storage/chunked.js +67 -0
  493. package/dist/storage/chunked.js.map +1 -0
  494. package/dist/storage/content.d.ts +24 -0
  495. package/dist/storage/content.d.ts.map +1 -0
  496. package/dist/storage/content.js +44 -0
  497. package/dist/storage/content.js.map +1 -0
  498. package/dist/storage/filehosting.d.ts +2 -0
  499. package/dist/storage/filehosting.d.ts.map +1 -0
  500. package/dist/storage/filehosting.js +24 -0
  501. package/dist/storage/filehosting.js.map +1 -0
  502. package/dist/storage/githubcontents.d.ts +2 -0
  503. package/dist/storage/githubcontents.d.ts.map +1 -0
  504. package/dist/storage/githubcontents.js +29 -0
  505. package/dist/storage/githubcontents.js.map +1 -0
  506. package/dist/storage/index.d.ts +11 -0
  507. package/dist/storage/index.d.ts.map +1 -0
  508. package/{storage → dist/storage}/index.js +1 -0
  509. package/dist/storage/index.js.map +1 -0
  510. package/dist/storage/local.d.ts +2 -0
  511. package/dist/storage/local.d.ts.map +1 -0
  512. package/dist/storage/local.js +72 -0
  513. package/dist/storage/local.js.map +1 -0
  514. package/dist/storage/memory.d.ts +6 -0
  515. package/dist/storage/memory.d.ts.map +1 -0
  516. package/dist/storage/memory.js +36 -0
  517. package/dist/storage/memory.js.map +1 -0
  518. package/dist/storage/s3compatible.d.ts +2 -0
  519. package/dist/storage/s3compatible.d.ts.map +1 -0
  520. package/dist/storage/s3compatible.js +31 -0
  521. package/dist/storage/s3compatible.js.map +1 -0
  522. package/dist/storage/sync.d.ts +47 -0
  523. package/dist/storage/sync.d.ts.map +1 -0
  524. package/dist/storage/sync.js +75 -0
  525. package/dist/storage/sync.js.map +1 -0
  526. package/dist/surfaces/adapters.d.ts +97 -0
  527. package/dist/surfaces/adapters.d.ts.map +1 -0
  528. package/dist/surfaces/adapters.js +50 -0
  529. package/dist/surfaces/adapters.js.map +1 -0
  530. package/dist/surfaces/controls.d.ts +18 -0
  531. package/dist/surfaces/controls.d.ts.map +1 -0
  532. package/dist/surfaces/controls.js +45 -0
  533. package/dist/surfaces/controls.js.map +1 -0
  534. package/dist/surfaces/manifest.d.ts +68 -0
  535. package/dist/surfaces/manifest.d.ts.map +1 -0
  536. package/dist/surfaces/manifest.js +42 -0
  537. package/dist/surfaces/manifest.js.map +1 -0
  538. package/dist/surfaces/n8n.d.ts +25 -0
  539. package/dist/surfaces/n8n.d.ts.map +1 -0
  540. package/dist/surfaces/n8n.js +31 -0
  541. package/dist/surfaces/n8n.js.map +1 -0
  542. package/dist/surfaces/operations.d.ts +32 -0
  543. package/dist/surfaces/operations.d.ts.map +1 -0
  544. package/dist/surfaces/operations.js +53 -0
  545. package/dist/surfaces/operations.js.map +1 -0
  546. package/dist/surfaces/targets.d.ts +196 -0
  547. package/dist/surfaces/targets.d.ts.map +1 -0
  548. package/dist/surfaces/targets.js +27 -0
  549. package/dist/surfaces/targets.js.map +1 -0
  550. package/dist/webhook/delivery.d.ts +18 -0
  551. package/dist/webhook/delivery.d.ts.map +1 -0
  552. package/dist/webhook/delivery.js +36 -0
  553. package/dist/webhook/delivery.js.map +1 -0
  554. package/dist/webhook/receiver.d.ts +26 -0
  555. package/dist/webhook/receiver.d.ts.map +1 -0
  556. package/dist/webhook/receiver.js +24 -0
  557. package/dist/webhook/receiver.js.map +1 -0
  558. package/dist/webhook/signature.d.ts +3 -0
  559. package/dist/webhook/signature.d.ts.map +1 -0
  560. package/{webhook → dist/webhook}/signature.js +1 -1
  561. package/dist/webhook/signature.js.map +1 -0
  562. package/dist/workflow/manifest.d.ts +21 -0
  563. package/dist/workflow/manifest.d.ts.map +1 -0
  564. package/dist/workflow/manifest.js +20 -0
  565. package/dist/workflow/manifest.js.map +1 -0
  566. package/dist/workflow/registry.d.ts +7 -0
  567. package/dist/workflow/registry.d.ts.map +1 -0
  568. package/dist/workflow/registry.js +18 -0
  569. package/dist/workflow/registry.js.map +1 -0
  570. package/dist/workflow/templates.d.ts +6 -0
  571. package/dist/workflow/templates.d.ts.map +1 -0
  572. package/dist/workflow/templates.js +18 -0
  573. package/dist/workflow/templates.js.map +1 -0
  574. package/dist/workflow/triggers.d.ts +36 -0
  575. package/dist/workflow/triggers.d.ts.map +1 -0
  576. package/dist/workflow/triggers.js +33 -0
  577. package/dist/workflow/triggers.js.map +1 -0
  578. package/docs/enginearchitecture.md +5 -4
  579. package/docs/gapmatrix.md +2 -2
  580. package/docs/libraryapi.md +4 -4
  581. package/docs/release.md +5 -5
  582. package/docs/releaseassets.md +1 -1
  583. package/docs/reorganization-1.8.8.md +31 -0
  584. package/docs/reorganization-1.8.9.md +28 -0
  585. package/docs/toolchainresearch-1.8.9.md +18 -0
  586. package/extension/manifest.json +1 -1
  587. package/package.json +61 -91
  588. package/adapters/forge.js +0 -16
  589. package/adapters/github.js +0 -19
  590. package/adapters/gitlab.js +0 -10
  591. package/adapters/socket.js +0 -14
  592. package/adapters/transport.js +0 -30
  593. package/ai/chunk.js +0 -22
  594. package/ai/llmstxt.js +0 -12
  595. package/ai/provenance.js +0 -18
  596. package/ai/rag.js +0 -14
  597. package/api/auth.js +0 -13
  598. package/api/control.js +0 -33
  599. package/api/rate.js +0 -31
  600. package/api/security.js +0 -42
  601. package/api/service.js +0 -36
  602. package/binary/build.js +0 -17
  603. package/bot/adapter.js +0 -8
  604. package/bot/bot.js +0 -39
  605. package/bot/commands.js +0 -18
  606. package/bot/permissions.js +0 -16
  607. package/browser/actions.js +0 -33
  608. package/browser/agent.js +0 -9
  609. package/browser/context.js +0 -52
  610. package/browser/playwright.js +0 -22
  611. package/browser/recorder.js +0 -21
  612. package/browser/session.js +0 -19
  613. package/browser/snapshot.js +0 -57
  614. package/captcha/contract.js +0 -15
  615. package/captcha/evidence.js +0 -9
  616. package/captcha/guard.js +0 -10
  617. package/cli/main.js +0 -36
  618. package/core/errors.js +0 -37
  619. package/core/events.js +0 -21
  620. package/core/hash.js +0 -73
  621. package/core/ids.js +0 -15
  622. package/crawl/crawler.js +0 -29
  623. package/crawl/frontier.js +0 -34
  624. package/crawl/normalize.js +0 -14
  625. package/crawl/persistent.js +0 -13
  626. package/dispatch/resumable.js +0 -31
  627. package/dispatch/workflow.js +0 -33
  628. package/domain/artifacts.js +0 -13
  629. package/domain/jobs.js +0 -20
  630. package/domain/sessions.js +0 -46
  631. package/errors/taxonomy.js +0 -18
  632. package/extension/build.js +0 -46
  633. package/extension/content.js +0 -127
  634. package/extension/pagebridge.js +0 -41
  635. package/extension/permissions.js +0 -22
  636. package/extension/popup.css +0 -13
  637. package/extension/popup.html +0 -24
  638. package/extension/popup.js +0 -25
  639. package/extension/protocol.js +0 -95
  640. package/extension/serviceworker.js +0 -109
  641. package/extension/worker.js +0 -22
  642. package/format/check.js +0 -21
  643. package/library/public.js +0 -85
  644. package/mcp/browser.js +0 -12
  645. package/mcp/server.js +0 -28
  646. package/mcp/transport.js +0 -14
  647. package/memory/bridge.js +0 -16
  648. package/memory/engine.js +0 -45
  649. package/memory/modes.js +0 -55
  650. package/memory/objects.js +0 -18
  651. package/memory/targets.js +0 -21
  652. package/memory/transforms.js +0 -15
  653. package/modes/resolve.js +0 -39
  654. package/packager/manifest.js +0 -28
  655. package/packager/publish.js +0 -15
  656. package/persistence/adapter.js +0 -8
  657. package/persistence/drizzle.js +0 -10
  658. package/persistence/memory.js +0 -26
  659. package/persistence/prisma.js +0 -23
  660. package/persistence/schema.js +0 -29
  661. package/persistence/sql.js +0 -30
  662. package/protocol/blocks.js +0 -18
  663. package/protocol/ndjson.js +0 -17
  664. package/protocol/sse.js +0 -22
  665. package/proxy/pool.js +0 -12
  666. package/queue/idempotency.js +0 -12
  667. package/queue/persistent.js +0 -44
  668. package/queue/queue.js +0 -50
  669. package/queue/saga.js +0 -13
  670. package/release/assets.js +0 -70
  671. package/retry/circuit.js +0 -15
  672. package/retry/policy.js +0 -12
  673. package/runners/health.js +0 -23
  674. package/runners/heartbeat.js +0 -26
  675. package/runners/inprocess.js +0 -19
  676. package/runners/scheduler.js +0 -16
  677. package/runtime/abort.js +0 -10
  678. package/runtime/detect.js +0 -14
  679. package/runtime/engine.js +0 -56
  680. package/runtime/worker.js +0 -18
  681. package/scrape/agent.ts +0 -122
  682. package/scrape/batch.ts +0 -79
  683. package/scrape/biome.json +0 -76
  684. package/scrape/browser.ts +0 -222
  685. package/scrape/cache.js +0 -14
  686. package/scrape/cache.ts +0 -84
  687. package/scrape/chunking.ts +0 -193
  688. package/scrape/cli.ts +0 -105
  689. package/scrape/crawler.ts +0 -115
  690. package/scrape/dev-server.ts +0 -94
  691. package/scrape/errors.ts +0 -132
  692. package/scrape/events.ts +0 -26
  693. package/scrape/extract.js +0 -14
  694. package/scrape/extract.ts +0 -165
  695. package/scrape/fetch.ts +0 -105
  696. package/scrape/formats.ts +0 -85
  697. package/scrape/headers.ts +0 -71
  698. package/scrape/index.ts +0 -92
  699. package/scrape/jsdom.d.ts +0 -6
  700. package/scrape/llms-txt.ts +0 -84
  701. package/scrape/middleware.ts +0 -90
  702. package/scrape/normalize.js +0 -86
  703. package/scrape/pool.ts +0 -95
  704. package/scrape/port.ts +0 -18
  705. package/scrape/proxy.ts +0 -103
  706. package/scrape/rate-limiter.ts +0 -95
  707. package/scrape/renderer.ts +0 -194
  708. package/scrape/retry.ts +0 -64
  709. package/scrape/robots.js +0 -32
  710. package/scrape/robots.ts +0 -137
  711. package/scrape/schema.js +0 -21
  712. package/scrape/scrape.ts +0 -123
  713. package/scrape/scraper.js +0 -40
  714. package/scrape/semantic.js +0 -22
  715. package/scrape/serialize.ts +0 -310
  716. package/scrape/server.ts +0 -137
  717. package/scrape/session.ts +0 -109
  718. package/scrape/sitemap.ts +0 -131
  719. package/scrape/tokens.ts +0 -45
  720. package/scrape/tsconfig.json +0 -28
  721. package/scrape/types.ts +0 -214
  722. package/scrape/utils.ts +0 -77
  723. package/scrape/vite.config.ts +0 -55
  724. package/scrape/vitest.config.ts +0 -17
  725. package/server/node.js +0 -34
  726. package/sessions/file.js +0 -13
  727. package/sessions/replay.js +0 -61
  728. package/sessions/store.js +0 -13
  729. package/storage/adapter.js +0 -8
  730. package/storage/cache.js +0 -54
  731. package/storage/checksum.js +0 -17
  732. package/storage/chunked.js +0 -58
  733. package/storage/content.js +0 -42
  734. package/storage/filehosting.js +0 -17
  735. package/storage/githubcontents.js +0 -18
  736. package/storage/local.js +0 -35
  737. package/storage/memory.js +0 -28
  738. package/storage/s3compatible.js +0 -23
  739. package/storage/sync.js +0 -55
  740. package/surfaces/adapters.js +0 -48
  741. package/surfaces/controls.js +0 -37
  742. package/surfaces/manifest.js +0 -25
  743. package/surfaces/n8n.js +0 -24
  744. package/surfaces/operations.js +0 -43
  745. package/surfaces/targets.js +0 -16
  746. package/webhook/delivery.js +0 -26
  747. package/webhook/receiver.js +0 -20
  748. package/workflow/manifest.js +0 -20
  749. package/workflow/registry.js +0 -16
  750. package/workflow/templates.js +0 -18
  751. package/workflow/triggers.js +0 -31
@@ -0,0 +1,196 @@
1
+ /**
2
+ * target profiles keep platform packaging open and describe capability boundaries.
3
+ */
4
+ export declare const targetprofiles: Readonly<{
5
+ application: {
6
+ runtime: string;
7
+ entry: string;
8
+ capabilities: string[];
9
+ formats: string[];
10
+ };
11
+ computer: {
12
+ runtime: string;
13
+ entry: string;
14
+ capabilities: string[];
15
+ formats: string[];
16
+ };
17
+ desktopapp: {
18
+ runtime: string;
19
+ entry: string;
20
+ capabilities: string[];
21
+ formats: string[];
22
+ };
23
+ mobileapp: {
24
+ runtime: string;
25
+ entry: string;
26
+ capabilities: string[];
27
+ formats: string[];
28
+ };
29
+ android: {
30
+ runtime: string;
31
+ entry: string;
32
+ capabilities: string[];
33
+ formats: string[];
34
+ };
35
+ ios: {
36
+ runtime: string;
37
+ entry: string;
38
+ capabilities: string[];
39
+ formats: string[];
40
+ };
41
+ cli: {
42
+ runtime: string;
43
+ entry: string;
44
+ capabilities: string[];
45
+ formats: string[];
46
+ };
47
+ binary: {
48
+ runtime: string;
49
+ entry: string;
50
+ capabilities: string[];
51
+ formats: string[];
52
+ };
53
+ browser: {
54
+ runtime: string;
55
+ entry: string;
56
+ capabilities: string[];
57
+ formats: string[];
58
+ };
59
+ extension: {
60
+ runtime: string;
61
+ entry: string;
62
+ capabilities: string[];
63
+ formats: string[];
64
+ };
65
+ internet: {
66
+ runtime: string;
67
+ entry: string;
68
+ capabilities: string[];
69
+ formats: string[];
70
+ };
71
+ web: {
72
+ runtime: string;
73
+ entry: string;
74
+ capabilities: string[];
75
+ formats: string[];
76
+ };
77
+ libreoffice: {
78
+ runtime: string;
79
+ entry: string;
80
+ capabilities: string[];
81
+ formats: string[];
82
+ };
83
+ mcp: {
84
+ runtime: string;
85
+ entry: string;
86
+ capabilities: string[];
87
+ formats: string[];
88
+ };
89
+ vsix: {
90
+ runtime: string;
91
+ entry: string;
92
+ capabilities: string[];
93
+ formats: string[];
94
+ };
95
+ container: {
96
+ runtime: string;
97
+ entry: string;
98
+ capabilities: string[];
99
+ formats: string[];
100
+ };
101
+ }>;
102
+ /** Creates a surface target with caller supplied entry and capabilities. */
103
+ export declare function targetmanifest(target: any, options?: {}): {
104
+ target: any;
105
+ runtime: any;
106
+ entry: any;
107
+ formats: any;
108
+ capabilities: any;
109
+ permissions: any;
110
+ metadata: any;
111
+ };
112
+ /** Returns all supported target profiles for documentation and tooling. */
113
+ export declare function targetcatalog(): {
114
+ [k: string]: {
115
+ runtime: string;
116
+ entry: string;
117
+ formats: string[];
118
+ capabilities: string[];
119
+ } | {
120
+ runtime: string;
121
+ entry: string;
122
+ formats: string[];
123
+ capabilities: string[];
124
+ } | {
125
+ runtime: string;
126
+ entry: string;
127
+ formats: string[];
128
+ capabilities: string[];
129
+ } | {
130
+ runtime: string;
131
+ entry: string;
132
+ formats: string[];
133
+ capabilities: string[];
134
+ } | {
135
+ runtime: string;
136
+ entry: string;
137
+ formats: string[];
138
+ capabilities: string[];
139
+ } | {
140
+ runtime: string;
141
+ entry: string;
142
+ formats: string[];
143
+ capabilities: string[];
144
+ } | {
145
+ runtime: string;
146
+ entry: string;
147
+ formats: string[];
148
+ capabilities: string[];
149
+ } | {
150
+ runtime: string;
151
+ entry: string;
152
+ formats: string[];
153
+ capabilities: string[];
154
+ } | {
155
+ runtime: string;
156
+ entry: string;
157
+ formats: string[];
158
+ capabilities: string[];
159
+ } | {
160
+ runtime: string;
161
+ entry: string;
162
+ formats: string[];
163
+ capabilities: string[];
164
+ } | {
165
+ runtime: string;
166
+ entry: string;
167
+ formats: string[];
168
+ capabilities: string[];
169
+ } | {
170
+ runtime: string;
171
+ entry: string;
172
+ formats: string[];
173
+ capabilities: string[];
174
+ } | {
175
+ runtime: string;
176
+ entry: string;
177
+ formats: string[];
178
+ capabilities: string[];
179
+ } | {
180
+ runtime: string;
181
+ entry: string;
182
+ formats: string[];
183
+ capabilities: string[];
184
+ } | {
185
+ runtime: string;
186
+ entry: string;
187
+ formats: string[];
188
+ capabilities: string[];
189
+ } | {
190
+ runtime: string;
191
+ entry: string;
192
+ formats: string[];
193
+ capabilities: string[];
194
+ };
195
+ };
196
+ //# sourceMappingURL=targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../surfaces/targets.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,cAAc;;QACV,OAAO;QAAY,KAAK;QAAmB,YAAY;QAAoC,OAAO;;;QACrG,OAAO;QAAU,KAAK;QAAmB,YAAY;QAAmC,OAAO;;;QAC7F,OAAO;QAAY,KAAK;QAAmB,YAAY;QAAiC,OAAO;;;QAChG,OAAO;QAAa,KAAK;QAAmB,YAAY;QAAoC,OAAO;;;QACrG,OAAO;QAAa,KAAK;QAAmB,YAAY;QAAoC,OAAO;;;QACvG,OAAO;QAAS,KAAK;QAAmB,YAAY;QAAoC,OAAO;;;QAC/F,OAAO;QAAU,KAAK;QAAsB,YAAY;QAAoC,OAAO;;;QAChG,OAAO;QAAY,KAAK;QAAsB,YAAY;QAAmC,OAAO;;;QACnG,OAAO;QAAa,KAAK;QAAmB,YAAY;QAAoC,OAAO;;;QACjG,OAAO;QAAa,KAAK;QAA6B,YAAY;QAAqC,OAAO;;;QAC/G,OAAO;QAAY,KAAK;QAAmB,YAAY;QAAiC,OAAO;;;QACpG,OAAO;QAAa,KAAK;QAAgC,YAAY;QAA0B,OAAO;;;QAC9F,OAAO;QAAY,KAAK;QAAmB,YAAY;QAAuB,OAAO;;;QAC7F,OAAO;QAAY,KAAK;QAAwB,YAAY;QAAsB,OAAO;;;QACxF,OAAO;QAAY,KAAK;QAAmB,YAAY;QAA0B,OAAO;;;QACnF,OAAO;QAAU,KAAK;QAAmB,YAAY;QAAoC,OAAO;;EAC7G,CAAC;AAEH,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,MAAM,KAAA,EAAE,OAAO,KAAK;;;;;;;;EAAqZ;AAExc,2EAA2E;AAC3E,wBAAgB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAmJ"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * target profiles keep platform packaging open and describe capability boundaries.
3
+ */
4
+ export const targetprofiles = Object.freeze({
5
+ application: { runtime: "caller", entry: "dist/index.js", capabilities: ["memory", "storage", "network"], formats: ["zip", "tarball"] },
6
+ computer: { runtime: "node", entry: "dist/index.js", capabilities: ["memory", "storage", "runner"], formats: ["node", "bun", "deno", "singlefile"] },
7
+ desktopapp: { runtime: "caller", entry: "dist/index.js", capabilities: ["memory", "file", "visible"], formats: ["appimage", "deb", "rpm", "snap", "flatpak", "dmg", "pkg", "exe", "msi", "msix"] },
8
+ mobileapp: { runtime: "browser", entry: "dist/index.js", capabilities: ["memory", "network", "visible"], formats: ["apk", "aab", "ipa"] },
9
+ android: { runtime: "android", entry: "dist/index.js", capabilities: ["memory", "network", "visible"], formats: ["apk", "aab"] },
10
+ ios: { runtime: "ios", entry: "dist/index.js", capabilities: ["memory", "network", "visible"], formats: ["ipa"] },
11
+ cli: { runtime: "node", entry: "dist/cli/main.js", capabilities: ["memory", "storage", "network"], formats: ["node", "bun", "deno", "singlefile", "exe", "deb", "rpm"] },
12
+ binary: { runtime: "caller", entry: "dist/cli/main.js", capabilities: ["memory", "storage", "runner"], formats: ["sea", "singlefile", "wasm"] },
13
+ browser: { runtime: "browser", entry: "dist/index.js", capabilities: ["memory", "network", "visible"], formats: ["html", "pwa", "wasm"] },
14
+ extension: { runtime: "browser", entry: "dist/extension/index.js", capabilities: ["browser", "network", "visible"], formats: ["crx", "xpi", "safariextz"] },
15
+ internet: { runtime: "caller", entry: "dist/index.js", capabilities: ["network", "webhook", "api"], formats: ["http", "websocket", "grpc", "rest"] },
16
+ web: { runtime: "browser", entry: "web/dist/public/index.html", capabilities: ["network", "visible"], formats: ["html", "pwa", "ssg", "ssr", "wasm"] },
17
+ libreoffice: { runtime: "caller", entry: "dist/index.js", capabilities: ["file", "network"], formats: ["oxt", "zip"] },
18
+ mcp: { runtime: "caller", entry: "dist/mcp/server.js", capabilities: ["network", "api"], formats: ["stdio", "jsonrpc"] },
19
+ vsix: { runtime: "caller", entry: "dist/index.js", capabilities: ["network", "visible"], formats: ["vsix"] },
20
+ container: { runtime: "node", entry: "dist/index.js", capabilities: ["memory", "storage", "network"], formats: ["oci", "docker"] }
21
+ });
22
+ /** Creates a surface target with caller supplied entry and capabilities. */
23
+ export function targetmanifest(target, options = {}) { const profile = targetprofiles[target]; if (!profile)
24
+ throw new TypeError(`unsupported target: ${target}`); return { target, runtime: options.runtime ?? profile.runtime, entry: options.entry ?? profile.entry, formats: options.formats ?? [...profile.formats], capabilities: options.capabilities ?? [...profile.capabilities], permissions: options.permissions ?? [], metadata: options.metadata ?? {} }; }
25
+ /** Returns all supported target profiles for documentation and tooling. */
26
+ export function targetcatalog() { return Object.fromEntries(Object.entries(targetprofiles).map(([key, value]) => [key, { ...value, capabilities: [...value.capabilities] }])); }
27
+ //# sourceMappingURL=targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../surfaces/targets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * webhook delivery tracks attempts and dead letters without choosing a queue vendor.
3
+ */
4
+ /** Creates a sequential delivery queue with retryable failure handling. */
5
+ export declare function deliveryqueue(options?: {}): {
6
+ deliver: (input: {}, handler: any) => Promise<{
7
+ id: string;
8
+ status: string;
9
+ attempts: number;
10
+ createdat: number;
11
+ event: any;
12
+ metadata: any;
13
+ }>;
14
+ get(id: any): any;
15
+ list(): any[];
16
+ deadletters(): any[];
17
+ };
18
+ //# sourceMappingURL=delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../webhook/delivery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,OAAO,KAAK;;;;;;;;;;;;EAoBzC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * webhook delivery tracks attempts and dead letters without choosing a queue vendor.
3
+ */
4
+ /** Creates a sequential delivery queue with retryable failure handling. */
5
+ export function deliveryqueue(options = {}) {
6
+ const maxattempts = Number(options.maxattempts ?? 3);
7
+ const records = new Map();
8
+ const dead = [];
9
+ async function deliver(input = {}, handler) {
10
+ if (typeof handler !== "function")
11
+ throw new TypeError("delivery handler must be a function");
12
+ const id = String(input.id ?? `delivery${Date.now().toString(36)}${records.size}`);
13
+ const record = { id, status: "pending", attempts: 0, createdat: Date.now(), event: input.event, metadata: { ...(input.metadata ?? {}) } };
14
+ records.set(id, record);
15
+ while (record.attempts < maxattempts) {
16
+ record.attempts += 1;
17
+ try {
18
+ record.result = await handler(input.event, input);
19
+ record.status = "delivered";
20
+ record.updatedat = Date.now();
21
+ return { ...record };
22
+ }
23
+ catch (error) {
24
+ record.error = { code: String(error.code ?? "DELIVERY_FAILED"), message: String(error.message ?? error), retryable: Boolean(error.retryable) };
25
+ if (!error.retryable)
26
+ break;
27
+ }
28
+ }
29
+ record.status = "dead";
30
+ dead.push({ ...record });
31
+ record.updatedat = Date.now();
32
+ return { ...record };
33
+ }
34
+ return { deliver, get(id) { return records.get(String(id)); }, list() { return [...records.values()].map((record) => ({ ...record })); }, deadletters() { return dead.map((record) => ({ ...record })); } };
35
+ }
36
+ //# sourceMappingURL=delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../webhook/delivery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,OAAO,GAAG,EAAE;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,UAAU,OAAO,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO;QACxC,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC9F,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1I,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC;gBAAC,MAAM,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAAC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;gBAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;YAAC,CAAC;YAC5I,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,CAAC,SAAS;oBAAE,MAAM;YAAC,CAAC;QAChM,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9M,CAAC"}
@@ -0,0 +1,26 @@
1
+ export declare function webhookreceiver(options?: {}): {
2
+ receive(input?: {}): Promise<{
3
+ accepted: boolean;
4
+ status: number;
5
+ reason: string;
6
+ duplicate?: undefined;
7
+ deliveryid?: undefined;
8
+ result?: undefined;
9
+ } | {
10
+ reason?: undefined;
11
+ accepted: boolean;
12
+ status: number;
13
+ duplicate: boolean;
14
+ deliveryid?: undefined;
15
+ result?: undefined;
16
+ } | {
17
+ reason?: undefined;
18
+ duplicate?: undefined;
19
+ accepted: boolean;
20
+ status: number;
21
+ deliveryid: any;
22
+ result: any;
23
+ }>;
24
+ deliveries(): unknown[];
25
+ };
26
+ //# sourceMappingURL=receiver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver.d.ts","sourceRoot":"","sources":["../../webhook/receiver.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,CAAC,OAAO,KAAK;IAIlC,OAAO;;;;;;;;;;;;;;;;;;;;;;IAQb,UAAU;EAEb"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * webhook receiver validates signatures before dispatch and drops duplicate delivery ids.
3
+ */
4
+ import { webhookverify } from "./signature.js";
5
+ export function webhookreceiver(options = {}) {
6
+ if (typeof options.secret !== "string" || typeof options.handle !== "function")
7
+ throw new TypeError("webhook receiver requires secret and handler");
8
+ const deliveries = new Set();
9
+ return {
10
+ async receive(input = {}) {
11
+ if (!webhookverify(input.body, input.signature, options.secret))
12
+ return { accepted: false, status: 401, reason: "invalid signature" };
13
+ const id = input.deliveryid ?? input.eventid;
14
+ if (id && deliveries.has(id))
15
+ return { accepted: false, status: 200, duplicate: true };
16
+ if (id)
17
+ deliveries.add(id);
18
+ const result = await options.handle(input.event, input.body);
19
+ return { accepted: true, status: 202, deliveryid: id, result };
20
+ },
21
+ deliveries() { return [...deliveries]; }
22
+ };
23
+ }
24
+ //# sourceMappingURL=receiver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver.js","sourceRoot":"","sources":["../../webhook/receiver.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,UAAU,eAAe,CAAC,OAAO,GAAG,EAAE;IAC1C,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;IACpJ,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YACtI,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC;YAC7C,IAAI,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACvF,IAAI,EAAE;gBAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACjE,CAAC;QACD,UAAU,KAAK,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function webhooksig(payload: any, secret: any): string;
2
+ export declare function webhookverify(payload: any, signature: any, secret: any): boolean;
3
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../webhook/signature.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,OAAO,KAAA,EAAE,MAAM,KAAA,UAAiG;AAC3I,wBAAgB,aAAa,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,MAAM,KAAA,WAAuE"}
@@ -2,6 +2,6 @@
2
2
  * webhook signatures use hmac sha256 and keep secrets outside serialized events.
3
3
  */
4
4
  import { constanttimeequal, hmacsha256 } from "../core/hash.js";
5
-
6
5
  export function webhooksig(payload, secret) { return hmacsha256(typeof payload === "string" ? payload : JSON.stringify(payload), secret); }
7
6
  export function webhookverify(payload, signature, secret) { return constanttimeequal(webhooksig(payload, secret), signature); }
7
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../webhook/signature.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,UAAU,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,UAAU,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3I,MAAM,UAAU,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,OAAO,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * workflow manifests describe the same job surface for different forge runtimes.
3
+ */
4
+ export declare const forgeprofiles: readonly string[];
5
+ export declare function workflowmanifest(options?: {}): {
6
+ name: any;
7
+ command: any;
8
+ trigger: any;
9
+ platforms: any;
10
+ environment: any;
11
+ artifacts: any;
12
+ timeoutminutes: any;
13
+ publicrunner: any;
14
+ };
15
+ export declare function workflowinputs(manifest: any): {
16
+ name: any;
17
+ command: any;
18
+ timeoutminutes: any;
19
+ artifacts: any;
20
+ };
21
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../workflow/manifest.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,aAAa,mBAAwE,CAAC;AAEnG,wBAAgB,gBAAgB,CAAC,OAAO,KAAK;IAGzC,IAAI;IACJ,OAAO;IACP,OAAO;IACP,SAAS;IACT,WAAW;IACX,SAAS;IACT,cAAc;IACd,YAAY;EAEf;AAED,wBAAgB,cAAc,CAAC,QAAQ,KAAA;IAAa,IAAI;IAAiB,OAAO;IAAoB,cAAc;IAA2B,SAAS;EAAmC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * workflow manifests describe the same job surface for different forge runtimes.
3
+ */
4
+ export const forgeprofiles = Object.freeze(["github", "forgejo", "gitea", "woodpecker", "gitlab"]);
5
+ export function workflowmanifest(options = {}) {
6
+ if (!options.name || !options.command)
7
+ throw new TypeError("workflow manifest requires name and command");
8
+ return {
9
+ name: options.name,
10
+ command: options.command,
11
+ trigger: options.trigger ?? ["manual", "dispatch"],
12
+ platforms: options.platforms ?? forgeprofiles,
13
+ environment: options.environment ?? {},
14
+ artifacts: options.artifacts ?? ["results/**"],
15
+ timeoutminutes: options.timeoutminutes ?? 30,
16
+ publicrunner: options.publicrunner ?? true
17
+ };
18
+ }
19
+ export function workflowinputs(manifest) { return { name: manifest.name, command: manifest.command, timeoutminutes: manifest.timeoutminutes, artifacts: manifest.artifacts.join(",") }; }
20
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../workflow/manifest.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnG,MAAM,UAAU,gBAAgB,CAAC,OAAO,GAAG,EAAE;IAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IAC1G,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;QAClD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,aAAa;QAC7C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC;QAC9C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAQ,IAAI,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function workflowregistry(): {
2
+ register(manifest: any): any;
3
+ get(name: any): any;
4
+ render(name: any, forge: any): any;
5
+ list(): any[];
6
+ };
7
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../workflow/registry.ts"],"names":[],"mappings":"AAMA,wBAAgB,gBAAgB;;;;;EAS/B"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * workflow registry stores generated manifests and templates for later dispatch.
3
+ */
4
+ import { forgeprofiles } from "./manifest.js";
5
+ import { forgejoworkflow, giteaworkflow, githubworkflow, gitlabworkflow, woodpeckerworkflow } from "./templates.js";
6
+ export function workflowregistry() {
7
+ const manifests = new Map();
8
+ const renderers = { github: githubworkflow, forgejo: forgejoworkflow, gitea: giteaworkflow, woodpecker: woodpeckerworkflow, gitlab: gitlabworkflow };
9
+ return {
10
+ register(manifest) { manifests.set(manifest.name, manifest); return manifest; },
11
+ get(name) { return manifests.get(name) ?? null; },
12
+ render(name, forge) { if (!renderers[forge] || !forgeprofiles.includes(forge))
13
+ throw new TypeError(`unsupported forge: ${forge}`); const manifest = manifests.get(name); if (!manifest)
14
+ throw new Error(`workflow not found: ${name}`); return renderers[forge](manifest); },
15
+ list() { return [...manifests.values()]; }
16
+ };
17
+ }
18
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../workflow/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACrJ,OAAO;QACL,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC;QAC/E,GAAG,CAAC,IAAI,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5Q,IAAI,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function githubworkflow(manifest: any): string;
2
+ export declare function forgejoworkflow(manifest: any): string;
3
+ export declare function giteaworkflow(manifest: any): string;
4
+ export declare function woodpeckerworkflow(manifest: any): string;
5
+ export declare function gitlabworkflow(manifest: any): string;
6
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../workflow/templates.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,QAAQ,KAAA,UAGtC;AAED,wBAAgB,eAAe,CAAC,QAAQ,KAAA,UAAkD;AAC1F,wBAAgB,aAAa,CAAC,QAAQ,KAAA,UAAgD;AACtF,wBAAgB,kBAAkB,CAAC,QAAQ,KAAA,UAC1C;AACD,wBAAgB,cAAc,CAAC,QAAQ,KAAA,UAA2P"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * workflow templates use explicit environment names and keep provider secrets external.
3
+ */
4
+ import { workflowinputs } from "./manifest.js";
5
+ export function githubworkflow(manifest) {
6
+ const input = workflowinputs(manifest);
7
+ return `name: ${manifest.name}\non:\n workflow_dispatch:\n inputs:\n jobid:\n required: true\n type: string\n command:\n required: true\n type: string\n default: ${manifest.command}\n repository_dispatch:\n types: [saddle-job]\npermissions:\n contents: read\njobs:\n process:\n runs-on: ubuntu-latest\n timeout-minutes: ${input.timeoutminutes}\n steps:\n - uses: actions/checkout@v4\n - uses: actions/setup-node@v4\n with:\n node-version: 26.7.0\n - run: npm ci\n - run: \${{ github.event.inputs.command || '${manifest.command}' }}\n env:\n SBOT_JOB_ID: \${{ github.event.inputs.jobid || github.event.client_payload.jobid }}\n - uses: actions/upload-artifact@v4\n with:\n name: saddle-results\n path: ${manifest.artifacts.join("\n ")}\n if-no-files-found: ignore\n`;
8
+ }
9
+ export function forgejoworkflow(manifest) { return genericworkflow(manifest, "forgejo"); }
10
+ export function giteaworkflow(manifest) { return genericworkflow(manifest, "gitea"); }
11
+ export function woodpeckerworkflow(manifest) {
12
+ return `when:\n - event: push\n - event: manual\nsteps:\n process:\n image: node:26.7.0\n commands:\n - npm ci\n - ${manifest.command}\n`;
13
+ }
14
+ export function gitlabworkflow(manifest) { return `stages:\n - process\nprocess:\n stage: process\n image: node:26.7.0\n script:\n - npm ci\n - ${manifest.command}\n artifacts:\n when: always\n paths:\n${manifest.artifacts.map((item) => ` - ${item}`).join("\n")}\n`; }
15
+ function genericworkflow(manifest, name) {
16
+ return `name: ${manifest.name}\non:\n workflow_dispatch:\njobs:\n process:\n runs-on: ubuntu-latest\n timeout-minutes: ${manifest.timeoutminutes}\n steps:\n - uses: actions/checkout@v4\n - uses: actions/setup-node@v4\n with:\n node-version: 26.7.0\n - run: npm ci\n - run: ${manifest.command}\n`;
17
+ }
18
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../workflow/templates.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,UAAU,cAAc,CAAC,QAAQ;IACrC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,SAAS,QAAQ,CAAC,IAAI,wLAAwL,QAAQ,CAAC,OAAO,0JAA0J,KAAK,CAAC,cAAc,+MAA+M,QAAQ,CAAC,OAAO,+NAA+N,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,yCAAyC,CAAC;AACt6B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAQ,IAAI,OAAO,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1F,MAAM,UAAU,aAAa,CAAC,QAAQ,IAAI,OAAO,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACtF,MAAM,UAAU,kBAAkB,CAAC,QAAQ;IAAI,OAAO,iIAAiI,QAAQ,CAAC,OAAO,IAAI,CAAC;AAC5M,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,QAAQ,IAAI,OAAO,0GAA0G,QAAQ,CAAC,OAAO,iDAAiD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAElS,SAAS,eAAe,CAAC,QAAQ,EAAE,IAAI;IAAI,OAAO,SAAS,QAAQ,CAAC,IAAI,oGAAoG,QAAQ,CAAC,cAAc,0KAA0K,QAAQ,CAAC,OAAO,IAAI,CAAC;AAClY,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * workflow triggers normalize manual, event, schedule and retry starts without binding a forge.
3
+ */
4
+ export declare const triggernames: readonly string[];
5
+ /** Validates and normalizes a trigger declaration. */
6
+ export declare function workflowtriggers(value?: string[]): string[];
7
+ /** Matches a workflow trigger against an incoming event without executing it. */
8
+ export declare function triggermatch(manifest: any, event?: {}): {
9
+ matched: boolean;
10
+ type: string;
11
+ reason: string;
12
+ requestid?: undefined;
13
+ } | {
14
+ reason?: undefined;
15
+ matched: boolean;
16
+ type: string;
17
+ requestid: any;
18
+ };
19
+ /** Keeps trigger declarations and produces deterministic matching results. */
20
+ export declare function triggerregistry(): {
21
+ register: (manifest: any) => any;
22
+ get: (name: any) => any;
23
+ match: (name: any, event: any) => {
24
+ matched: boolean;
25
+ type: string;
26
+ reason: string;
27
+ requestid?: undefined;
28
+ } | {
29
+ reason?: undefined;
30
+ matched: boolean;
31
+ type: string;
32
+ requestid: any;
33
+ };
34
+ list: () => any[];
35
+ };
36
+ //# sourceMappingURL=triggers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../../workflow/triggers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,mBAAqF,CAAC;AAE/G,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,KAAK,WAAa,YAIlD;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,QAAQ,KAAA,EAAE,KAAK,KAAK;;;;;;;;;;EAMhD;AAED,8EAA8E;AAC9E,wBAAgB,eAAe;;;;;;;;;;;;;;;EAO9B"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * workflow triggers normalize manual, event, schedule and retry starts without binding a forge.
3
+ */
4
+ export const triggernames = Object.freeze(["manual", "dispatch", "webhook", "schedule", "retry", "heartbeat"]);
5
+ /** Validates and normalizes a trigger declaration. */
6
+ export function workflowtriggers(value = ["manual"]) {
7
+ const list = Array.isArray(value) ? value : [value];
8
+ if (list.length === 0 || list.some((name) => !triggernames.includes(name)))
9
+ throw new TypeError("workflow trigger is unsupported");
10
+ return [...new Set(list)];
11
+ }
12
+ /** Matches a workflow trigger against an incoming event without executing it. */
13
+ export function triggermatch(manifest, event = {}) {
14
+ const triggers = workflowtriggers(manifest?.trigger);
15
+ const type = String(event.type ?? "manual");
16
+ if (!triggers.includes(type))
17
+ return { matched: false, type, reason: "trigger-not-declared" };
18
+ if (type === "schedule" && event.at !== undefined && Number(event.at) > Date.now())
19
+ return { matched: false, type, reason: "not-due" };
20
+ return { matched: true, type, requestid: event.requestid ?? `${manifest.name}/${type}/${event.id ?? Date.now()}` };
21
+ }
22
+ /** Keeps trigger declarations and produces deterministic matching results. */
23
+ export function triggerregistry() {
24
+ const values = new Map();
25
+ function register(manifest) { if (!manifest?.name)
26
+ throw new TypeError("trigger manifest requires name"); const normalized = { ...manifest, trigger: workflowtriggers(manifest.trigger) }; values.set(normalized.name, normalized); return normalized; }
27
+ function get(name) { return values.get(name); }
28
+ function match(name, event) { const manifest = get(name); if (!manifest)
29
+ throw new Error(`workflow not found: ${name}`); return triggermatch(manifest, event); }
30
+ function list() { return [...values.values()].map((manifest) => ({ ...manifest, trigger: [...manifest.trigger] })); }
31
+ return { register, get, match, list };
32
+ }
33
+ //# sourceMappingURL=triggers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../workflow/triggers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAE/G,sDAAsD;AACtD,MAAM,UAAU,gBAAgB,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACnI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;IAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IAC9F,IAAI,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACvI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AACrH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,SAAS,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC,CAAC,MAAM,UAAU,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;IACxP,SAAS,GAAG,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,SAAS,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChK,SAAS,IAAI,KAAK,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC"}
@@ -12,17 +12,18 @@ The project has no `src` folder. The root is the map of the engine.
12
12
 
13
13
  | folder | responsibility |
14
14
  |---|---|
15
- | `core` | errors, ids, clock, events, and tracing primitives |
15
+ | `core` | engine errors, scrape error taxonomy, ids, events, and hashing primitives |
16
16
  | `domain` | jobs, sessions, artifacts, providers, and runtime records |
17
17
  | `storage` | storage adapter contract, local backend, and checksums |
18
18
  | `memory` | working set preparation, sync, and cleanup |
19
19
  | `runners` | provider factories and deterministic scheduling |
20
- | `runtime` | engine orchestration and output encoding |
20
+ | `runtime` | engine orchestration, capability detection, worker boundary, retry and circuit context |
21
+ | `scrape` | single page extraction, response normalization, robots policy and grouped crawl context |
21
22
  | `cli` | explicit command surface with local error handling |
22
23
  | `tests` | local deterministic tests without credentials |
23
24
  | `examples` | small runnable integration examples |
24
25
 
25
- All internal file names are lowercase and contain no underscore or hyphen. Related logic stays grouped and each module remains small enough to reason about in isolation.
26
+ All internal file names are lowercase and contain no underscore or hyphen. Related logic stays grouped and each module remains small enough to reason about in isolation. Version 1.8.9 uses TypeScript source at the root and groups crawl URL normalization, traversal, frontier budgets and persistence in `scrape/crawl.ts`; it does not merge distinct storage cache, job queue or browser session contracts merely because they use similar words.
26
27
 
27
28
  ## public contracts
28
29
 
@@ -64,7 +65,7 @@ The same contracts support paired modes. A mode can exist without its pair, and
64
65
  | browser | headless job definition | capture and replay adapter |
65
66
  | network | local deterministic job | remote provider and storage adapter |
66
67
 
67
- The first cut implements library, cli, binary entry point, internal memory, and internal file. The other modes are extension points, not hardcoded promises.
68
+ The first cut implements library, CLI, binary entry point, internal memory, and internal file. The other modes are extension points and declarative target plans, not hardcoded platform promises. Version 1.8.9 preserves this boundary while compiling the active engine to ignored `dist/` output.
68
69
 
69
70
  ## infrastructure rules
70
71