@aiwg/cli 0.0.0-bootstrap.0 → 2026.7.18

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 (467) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -1
  3. package/bin/aiwg.mjs +349 -0
  4. package/dist/src/a2a/agent-card.js +145 -0
  5. package/dist/src/a2a/client.js +411 -0
  6. package/dist/src/a2a/hitl-cli.js +171 -0
  7. package/dist/src/a2a/hitl-driver.js +370 -0
  8. package/dist/src/a2a/hitl.js +181 -0
  9. package/dist/src/a2a/http.js +193 -0
  10. package/dist/src/a2a/jcs.js +128 -0
  11. package/dist/src/a2a/jws.js +187 -0
  12. package/dist/src/a2a/types.js +24 -0
  13. package/dist/src/a2a/webhook.js +240 -0
  14. package/dist/src/activity-log/cli.js +348 -0
  15. package/dist/src/activity-log/parser.js +81 -0
  16. package/dist/src/activity-log/types.js +50 -0
  17. package/dist/src/agents/agent-deployer.js +367 -0
  18. package/dist/src/agents/agent-packager.js +271 -0
  19. package/dist/src/agents/agent-validator.js +271 -0
  20. package/dist/src/agents/grounding/knowledge-base.js +161 -0
  21. package/dist/src/agents/grounding/types.js +12 -0
  22. package/dist/src/agents/index.js +10 -0
  23. package/dist/src/agents/packaged-agent-inventory.js +75 -0
  24. package/dist/src/agents/types.js +7 -0
  25. package/dist/src/api/index.d.ts +10 -0
  26. package/dist/src/api/index.js +10 -0
  27. package/dist/src/artifacts/address-parser.js +73 -0
  28. package/dist/src/artifacts/audit/cli.js +183 -0
  29. package/dist/src/artifacts/audit/drift.js +122 -0
  30. package/dist/src/artifacts/audit/types.js +12 -0
  31. package/dist/src/artifacts/backends/graphology-backend.js +160 -0
  32. package/dist/src/artifacts/backends/json-backend.js +129 -0
  33. package/dist/src/artifacts/backends/sqlite-backend.js +199 -0
  34. package/dist/src/artifacts/browser-export.js +622 -0
  35. package/dist/src/artifacts/capability-resolver.js +94 -0
  36. package/dist/src/artifacts/checksum-manifest.js +91 -0
  37. package/dist/src/artifacts/citation-parser.js +162 -0
  38. package/dist/src/artifacts/cli.js +1486 -0
  39. package/dist/src/artifacts/corpus-tools/citation-densify.js +311 -0
  40. package/dist/src/artifacts/corpus-tools/cli.js +393 -0
  41. package/dist/src/artifacts/corpus-tools/corpus-graph.js +225 -0
  42. package/dist/src/artifacts/corpus-tools/curator.js +186 -0
  43. package/dist/src/artifacts/corpus-tools/discovery-log.js +70 -0
  44. package/dist/src/artifacts/corpus-tools/funder-network.js +141 -0
  45. package/dist/src/artifacts/corpus-tools/induction-audit.js +233 -0
  46. package/dist/src/artifacts/corpus-tools/integrity-scan.js +202 -0
  47. package/dist/src/artifacts/corpus-tools/profile-communities.js +166 -0
  48. package/dist/src/artifacts/corpus-tools/profile-edges.js +72 -0
  49. package/dist/src/artifacts/corpus-tools/profile-embed.js +113 -0
  50. package/dist/src/artifacts/corpus-tools/profile-generate-fm.js +167 -0
  51. package/dist/src/artifacts/corpus-tools/profile-generate.js +181 -0
  52. package/dist/src/artifacts/corpus-tools/profile-metrics.js +98 -0
  53. package/dist/src/artifacts/corpus-tools/profile-status.js +86 -0
  54. package/dist/src/artifacts/corpus-tools/profile-temporal.js +139 -0
  55. package/dist/src/artifacts/corpus-tools/radar-init.js +93 -0
  56. package/dist/src/artifacts/corpus-tools/radar-report.js +118 -0
  57. package/dist/src/artifacts/corpus-tools/radar-shared.js +189 -0
  58. package/dist/src/artifacts/corpus-tools/radar-status.js +68 -0
  59. package/dist/src/artifacts/corpus-tools/sidecar-lint.js +233 -0
  60. package/dist/src/artifacts/corpus-tools/sidecar-repair.js +277 -0
  61. package/dist/src/artifacts/corpus-tools/snapshot.js +591 -0
  62. package/dist/src/artifacts/corpus-tools/source-types.js +164 -0
  63. package/dist/src/artifacts/corpus-tools/vision-extract.js +243 -0
  64. package/dist/src/artifacts/corpus-views/build.js +126 -0
  65. package/dist/src/artifacts/corpus-views/corpus-config.js +124 -0
  66. package/dist/src/artifacts/corpus-views/ref-parser.js +437 -0
  67. package/dist/src/artifacts/corpus-views/renderers.js +353 -0
  68. package/dist/src/artifacts/corpus-views/taxonomies.js +131 -0
  69. package/dist/src/artifacts/dep-graph.js +173 -0
  70. package/dist/src/artifacts/discover-facets.js +375 -0
  71. package/dist/src/artifacts/embedding-index.js +354 -0
  72. package/dist/src/artifacts/enrichment/cli.js +240 -0
  73. package/dist/src/artifacts/enrichment/prompt.js +47 -0
  74. package/dist/src/artifacts/enrichment/store.js +90 -0
  75. package/dist/src/artifacts/enrichment/types.js +12 -0
  76. package/dist/src/artifacts/fortemi-core-query-adapter.js +475 -0
  77. package/dist/src/artifacts/fortemi-core-sync.js +251 -0
  78. package/dist/src/artifacts/fortemi-shard-export.js +44 -0
  79. package/dist/src/artifacts/fulltext.js +108 -0
  80. package/dist/src/artifacts/graph-backend.js +51 -0
  81. package/dist/src/artifacts/graph-query.js +247 -0
  82. package/dist/src/artifacts/hybrid-query.js +225 -0
  83. package/dist/src/artifacts/index-builder.js +1089 -0
  84. package/dist/src/artifacts/index-reader.js +112 -0
  85. package/dist/src/artifacts/index-status.js +193 -0
  86. package/dist/src/artifacts/legacy-index-migration.js +169 -0
  87. package/dist/src/artifacts/move.js +154 -0
  88. package/dist/src/artifacts/operational-state.js +239 -0
  89. package/dist/src/artifacts/prebuilt-build-lock.js +49 -0
  90. package/dist/src/artifacts/query-engine.js +1955 -0
  91. package/dist/src/artifacts/source-graph.js +529 -0
  92. package/dist/src/artifacts/stats.js +169 -0
  93. package/dist/src/artifacts/types.js +606 -0
  94. package/dist/src/artifacts/views/cli.js +293 -0
  95. package/dist/src/artifacts/views/definition.js +170 -0
  96. package/dist/src/artifacts/views/store.js +149 -0
  97. package/dist/src/artifacts/views/types.js +8 -0
  98. package/dist/src/artifacts/watcher.js +255 -0
  99. package/dist/src/catalog/builtin-models.json +636 -0
  100. package/dist/src/catalog/cli.js +228 -0
  101. package/dist/src/catalog/cli.mjs +289 -0
  102. package/dist/src/catalog/index.js +15 -0
  103. package/dist/src/catalog/loader.js +217 -0
  104. package/dist/src/catalog/loader.mjs +251 -0
  105. package/dist/src/catalog/sources.json +41 -0
  106. package/dist/src/catalog/types.js +8 -0
  107. package/dist/src/channel/manager.mjs +504 -0
  108. package/dist/src/cli/agent-spawn.js +178 -0
  109. package/dist/src/cli/cli-extension-loader.js +245 -0
  110. package/dist/src/cli/command-log.js +275 -0
  111. package/dist/src/cli/config-loader.js +232 -0
  112. package/dist/src/cli/env.js +82 -0
  113. package/dist/src/cli/errors.js +150 -0
  114. package/dist/src/cli/find-package-root.js +40 -0
  115. package/dist/src/cli/git-hooks.js +250 -0
  116. package/dist/src/cli/handlers/agentcard.js +206 -0
  117. package/dist/src/cli/handlers/artifacts.js +76 -0
  118. package/dist/src/cli/handlers/best-practices-audit.js +280 -0
  119. package/dist/src/cli/handlers/cockpit.js +137 -0
  120. package/dist/src/cli/handlers/command-log.js +37 -0
  121. package/dist/src/cli/handlers/daemon.js +59 -0
  122. package/dist/src/cli/handlers/diagnose.js +300 -0
  123. package/dist/src/cli/handlers/execution-mode.js +105 -0
  124. package/dist/src/cli/handlers/feedback.js +341 -0
  125. package/dist/src/cli/handlers/help.js +147 -0
  126. package/dist/src/cli/handlers/index.js +302 -0
  127. package/dist/src/cli/handlers/init.js +179 -0
  128. package/dist/src/cli/handlers/install.js +129 -0
  129. package/dist/src/cli/handlers/issues.js +46 -0
  130. package/dist/src/cli/handlers/lint.js +42 -0
  131. package/dist/src/cli/handlers/local-executor.js +315 -0
  132. package/dist/src/cli/handlers/marketplace.js +168 -0
  133. package/dist/src/cli/handlers/mc.js +1010 -0
  134. package/dist/src/cli/handlers/models.js +352 -0
  135. package/dist/src/cli/handlers/packages.js +155 -0
  136. package/dist/src/cli/handlers/ralph-launcher.js +717 -0
  137. package/dist/src/cli/handlers/ralph.js +575 -0
  138. package/dist/src/cli/handlers/refresh.js +432 -0
  139. package/dist/src/cli/handlers/regenerate.js +336 -0
  140. package/dist/src/cli/handlers/repo-access.js +109 -0
  141. package/dist/src/cli/handlers/run.js +165 -0
  142. package/dist/src/cli/handlers/runtime-info.js +301 -0
  143. package/dist/src/cli/handlers/sandbox.js +197 -0
  144. package/dist/src/cli/handlers/scaffolding.js +149 -0
  145. package/dist/src/cli/handlers/script-runner.js +121 -0
  146. package/dist/src/cli/handlers/sdlc-accelerate.js +148 -0
  147. package/dist/src/cli/handlers/serve.js +1835 -0
  148. package/dist/src/cli/handlers/session.js +348 -0
  149. package/dist/src/cli/handlers/setup.js +440 -0
  150. package/dist/src/cli/handlers/skill-lint.js +367 -0
  151. package/dist/src/cli/handlers/skill-usage.js +74 -0
  152. package/dist/src/cli/handlers/steward.js +567 -0
  153. package/dist/src/cli/handlers/subcommands.js +1702 -0
  154. package/dist/src/cli/handlers/team.js +337 -0
  155. package/dist/src/cli/handlers/types.js +11 -0
  156. package/dist/src/cli/handlers/use.js +2772 -0
  157. package/dist/src/cli/handlers/utilities.js +703 -0
  158. package/dist/src/cli/handlers/version.js +134 -0
  159. package/dist/src/cli/handlers/workspace-context.js +93 -0
  160. package/dist/src/cli/handlers/workspace.js +126 -0
  161. package/dist/src/cli/help-generator.js +178 -0
  162. package/dist/src/cli/hooks/builtin/activity-log-hook.js +126 -0
  163. package/dist/src/cli/hooks/executor.js +96 -0
  164. package/dist/src/cli/hooks/index.js +15 -0
  165. package/dist/src/cli/hooks/registry.js +143 -0
  166. package/dist/src/cli/hooks/types.js +13 -0
  167. package/dist/src/cli/log.js +492 -0
  168. package/dist/src/cli/project-isolation/detect.js +70 -0
  169. package/dist/src/cli/project-isolation/index.js +7 -0
  170. package/dist/src/cli/project-isolation/signals.js +17 -0
  171. package/dist/src/cli/project-isolation/warning.js +102 -0
  172. package/dist/src/cli/prompt-utils.js +155 -0
  173. package/dist/src/cli/provider-deployment-plan.js +126 -0
  174. package/dist/src/cli/provider-resolution.js +119 -0
  175. package/dist/src/cli/router.js +305 -0
  176. package/dist/src/cli/scope-resolver.js +392 -0
  177. package/dist/src/cli/skill-usage.js +616 -0
  178. package/dist/src/cli/ui.js +224 -0
  179. package/dist/src/cli/watch-service.js +203 -0
  180. package/dist/src/cli/workflow-orchestrator.js +478 -0
  181. package/dist/src/cli/workspace-signals.js +321 -0
  182. package/dist/src/community/footer.js +14 -0
  183. package/dist/src/community/links.js +123 -0
  184. package/dist/src/community/milestones.js +46 -0
  185. package/dist/src/community/nudge-policy.js +93 -0
  186. package/dist/src/config/aiwg-config.js +883 -0
  187. package/dist/src/config/cli.js +703 -0
  188. package/dist/src/config/gitignore.js +156 -0
  189. package/dist/src/config/project-artifacts.js +76 -0
  190. package/dist/src/config/user-config.js +428 -0
  191. package/dist/src/config/user-registry.js +127 -0
  192. package/dist/src/config/workspace.js +276 -0
  193. package/dist/src/contributors/detect.js +39 -0
  194. package/dist/src/contributors/discover.js +172 -0
  195. package/dist/src/contributors/heuristic.js +186 -0
  196. package/dist/src/contributors/index.js +11 -0
  197. package/dist/src/contributors/types.js +13 -0
  198. package/dist/src/contributors/validation.js +116 -0
  199. package/dist/src/data/community.schema.json +43 -0
  200. package/dist/src/data/community.yaml +16 -0
  201. package/dist/src/extensions/capability-index.js +270 -0
  202. package/dist/src/extensions/claude-hooks-installer.js +268 -0
  203. package/dist/src/extensions/commands/definitions.js +3485 -0
  204. package/dist/src/extensions/deployment-registration.js +463 -0
  205. package/dist/src/extensions/index.js +22 -0
  206. package/dist/src/extensions/loader.js +132 -0
  207. package/dist/src/extensions/managed-marker.js +100 -0
  208. package/dist/src/extensions/manifest.js +196 -0
  209. package/dist/src/extensions/project-local-activity.js +114 -0
  210. package/dist/src/extensions/project-local-discovery.js +261 -0
  211. package/dist/src/extensions/project-local-doctor.js +281 -0
  212. package/dist/src/extensions/project-local-gitignore.js +176 -0
  213. package/dist/src/extensions/project-local-paths.js +121 -0
  214. package/dist/src/extensions/project-local-promote.js +218 -0
  215. package/dist/src/extensions/project-local-remove.js +373 -0
  216. package/dist/src/extensions/project-local-scaffold.js +252 -0
  217. package/dist/src/extensions/project-quickref.js +291 -0
  218. package/dist/src/extensions/registry.js +368 -0
  219. package/dist/src/extensions/shadow-resolver.js +271 -0
  220. package/dist/src/extensions/types.js +86 -0
  221. package/dist/src/extensions/upstream-registry.js +195 -0
  222. package/dist/src/extensions/validation.js +631 -0
  223. package/dist/src/features/catalog.js +88 -0
  224. package/dist/src/features/cli.js +197 -0
  225. package/dist/src/features/installer.js +57 -0
  226. package/dist/src/features/paths.js +14 -0
  227. package/dist/src/features/runtime.js +21 -0
  228. package/dist/src/features/status.js +134 -0
  229. package/dist/src/hooks/laziness-detection.js +532 -0
  230. package/dist/src/intake/git-history-analyzer.js +486 -0
  231. package/dist/src/intake/index.js +9 -0
  232. package/dist/src/issues/cli.js +327 -0
  233. package/dist/src/issues/index.js +5 -0
  234. package/dist/src/issues/live.js +154 -0
  235. package/dist/src/issues/local.js +666 -0
  236. package/dist/src/issues/sync.js +143 -0
  237. package/dist/src/issues/types.js +2 -0
  238. package/dist/src/issues/workflows.js +164 -0
  239. package/dist/src/kb/cli.js +173 -0
  240. package/dist/src/lint/cli.js +171 -0
  241. package/dist/src/lint/loader.js +225 -0
  242. package/dist/src/lint/reporters.js +141 -0
  243. package/dist/src/lint/runner.js +364 -0
  244. package/dist/src/lint/types.js +10 -0
  245. package/dist/src/marketplace/cache.js +110 -0
  246. package/dist/src/marketplace/identifier.js +63 -0
  247. package/dist/src/marketplace/registry.js +36 -0
  248. package/dist/src/marketplace/sources/clawhub.js +53 -0
  249. package/dist/src/marketplace/sources/git.js +45 -0
  250. package/dist/src/marketplace/types.js +9 -0
  251. package/dist/src/mcp/adapters/codex-runtime.js +224 -0
  252. package/dist/src/mcp/cli.mjs +1197 -0
  253. package/dist/src/mcp/elicitation.mjs +149 -0
  254. package/dist/src/mcp/helpers.mjs +287 -0
  255. package/dist/src/mcp/index.mjs +11 -0
  256. package/dist/src/mcp/profiles.js +263 -0
  257. package/dist/src/mcp/profiles.mjs +360 -0
  258. package/dist/src/mcp/registry.js +376 -0
  259. package/dist/src/mcp/registry.mjs +387 -0
  260. package/dist/src/mcp/server.mjs +633 -0
  261. package/dist/src/mcp/test-simple.mjs +271 -0
  262. package/dist/src/mcp/tools/command-run.mjs +101 -0
  263. package/dist/src/mcp/tools/discovery.mjs +291 -0
  264. package/dist/src/mcp/tools/interaction.mjs +87 -0
  265. package/dist/src/mcp/tools/orchestration.mjs +320 -0
  266. package/dist/src/mcp/tools/subsystems.mjs +640 -0
  267. package/dist/src/memory/cli.js +166 -0
  268. package/dist/src/memory/project-registry.js +282 -0
  269. package/dist/src/metrics/artifact-metrics.js +184 -0
  270. package/dist/src/metrics/context-budget.js +174 -0
  271. package/dist/src/metrics/token-counter.js +133 -0
  272. package/dist/src/models/config-loader.js +228 -0
  273. package/dist/src/models/index.js +22 -0
  274. package/dist/src/models/model-capabilities.v1.json +120 -0
  275. package/dist/src/models/model-catalog.v1.json +96 -0
  276. package/dist/src/models/model-discovery.js +521 -0
  277. package/dist/src/models/provider-models.js +73 -0
  278. package/dist/src/models/provider-policy.js +273 -0
  279. package/dist/src/models/resolver.js +245 -0
  280. package/dist/src/models/router.js +70 -0
  281. package/dist/src/models/types.js +8 -0
  282. package/dist/src/models/wrapper-deployment.js +178 -0
  283. package/dist/src/models/wrapper-route.js +54 -0
  284. package/dist/src/ops/cli.js +268 -0
  285. package/dist/src/ops/registry.js +623 -0
  286. package/dist/src/packages/adapters/clawhub.js +113 -0
  287. package/dist/src/packages/adapters/git.js +153 -0
  288. package/dist/src/packages/adapters/gitea.js +93 -0
  289. package/dist/src/packages/adapters/github.js +69 -0
  290. package/dist/src/packages/adapters/local-cache.js +89 -0
  291. package/dist/src/packages/package-registry.js +143 -0
  292. package/dist/src/packages/registry.js +238 -0
  293. package/dist/src/packages/types.js +11 -0
  294. package/dist/src/plugin/cross-framework-ops.js +475 -0
  295. package/dist/src/plugin/framework-config-loader.js +235 -0
  296. package/dist/src/plugin/framework-detector.js +186 -0
  297. package/dist/src/plugin/framework-isolator.js +341 -0
  298. package/dist/src/plugin/framework-migration.js +371 -0
  299. package/dist/src/plugin/metadata-validator.js +906 -0
  300. package/dist/src/plugin/plugin-installer.js +436 -0
  301. package/dist/src/plugin/plugin-status.js +369 -0
  302. package/dist/src/plugin/plugin-uninstaller.js +473 -0
  303. package/dist/src/plugin/registry-validator.js +344 -0
  304. package/dist/src/plugin/skill-command-translator.js +415 -0
  305. package/dist/src/plugin/workspace-creator.js +189 -0
  306. package/dist/src/plugin/workspace-migrator.js +821 -0
  307. package/dist/src/policy/authorization.js +390 -0
  308. package/dist/src/policy/repo-access.js +215 -0
  309. package/dist/src/provenance/cli.js +16 -0
  310. package/dist/src/providers/capability-matrix.js +300 -0
  311. package/dist/src/providers/capability-matrix.yaml +514 -0
  312. package/dist/src/providers/provider-definitions.js +977 -0
  313. package/dist/src/providers/provider-definitions.mjs +159 -0
  314. package/dist/src/providers/provider-inventory.js +169 -0
  315. package/dist/src/quality/feedback-ab.js +174 -0
  316. package/dist/src/quality/feedback-collector.js +176 -0
  317. package/dist/src/quality/feedback-tracker.js +123 -0
  318. package/dist/src/quality/patterns/adr.json +24 -0
  319. package/dist/src/quality/patterns/sad.json +24 -0
  320. package/dist/src/quality/patterns/test-plan.json +24 -0
  321. package/dist/src/quality/patterns/use-case.json +24 -0
  322. package/dist/src/quality/scoring.js +157 -0
  323. package/dist/src/reflections/cli.js +15 -0
  324. package/dist/src/release/plan.js +139 -0
  325. package/dist/src/research/cache/manager.js +227 -0
  326. package/dist/src/research/clients/arxiv.js +156 -0
  327. package/dist/src/research/clients/base.js +197 -0
  328. package/dist/src/research/clients/crossref.js +112 -0
  329. package/dist/src/research/clients/semantic-scholar.js +126 -0
  330. package/dist/src/research/clients/unpaywall.js +87 -0
  331. package/dist/src/research/index.js +14 -0
  332. package/dist/src/research/query-cli.js +336 -0
  333. package/dist/src/research/services/acquisition.js +313 -0
  334. package/dist/src/research/services/archival.js +225 -0
  335. package/dist/src/research/services/citation.js +279 -0
  336. package/dist/src/research/services/discovery.js +243 -0
  337. package/dist/src/research/services/documentation.js +269 -0
  338. package/dist/src/research/services/index.js +14 -0
  339. package/dist/src/research/services/provenance.js +279 -0
  340. package/dist/src/research/services/quality.js +370 -0
  341. package/dist/src/research/services/types.js +7 -0
  342. package/dist/src/research/storage-cli.js +20 -0
  343. package/dist/src/research/types.js +47 -0
  344. package/dist/src/resources/index.d.ts +2 -0
  345. package/dist/src/resources/index.js +2 -0
  346. package/dist/src/resources/web-release.d.ts +89 -0
  347. package/dist/src/resources/web-release.js +886 -0
  348. package/dist/src/rlm/cache/cli.js +162 -0
  349. package/dist/src/rlm/cache/hash.js +35 -0
  350. package/dist/src/rlm/cache/store.js +170 -0
  351. package/dist/src/rlm/cache/types.js +8 -0
  352. package/dist/src/rlm/cli.js +650 -0
  353. package/dist/src/serve/a2a-terminal-observer.js +120 -0
  354. package/dist/src/serve/agent-router.js +205 -0
  355. package/dist/src/serve/dispatch-router.js +171 -0
  356. package/dist/src/serve/executor-registry.js +715 -0
  357. package/dist/src/serve/mission-conductor.js +177 -0
  358. package/dist/src/serve/orchestrator-adapter.js +113 -0
  359. package/dist/src/serve/orchestrator-override.js +94 -0
  360. package/dist/src/serve/orchestrator-pty.js +133 -0
  361. package/dist/src/serve/pty-bridge.js +799 -0
  362. package/dist/src/serve/sandbox-registry.js +832 -0
  363. package/dist/src/serve/screen-reader.js +228 -0
  364. package/dist/src/serve/stack-adapters.js +68 -0
  365. package/dist/src/serve/telemetry.js +143 -0
  366. package/dist/src/skills/adapters/clawhub.js +250 -0
  367. package/dist/src/skills/adapters/local.js +335 -0
  368. package/dist/src/skills/adapters/openclaw.js +316 -0
  369. package/dist/src/skills/cli.js +334 -0
  370. package/dist/src/skills/registry.js +117 -0
  371. package/dist/src/skills/run.js +259 -0
  372. package/dist/src/skills/runtime.js +94 -0
  373. package/dist/src/skills/types.js +10 -0
  374. package/dist/src/smiths/agentsmith/demo.js +116 -0
  375. package/dist/src/smiths/agentsmith/examples.js +300 -0
  376. package/dist/src/smiths/agentsmith/generator.js +503 -0
  377. package/dist/src/smiths/agentsmith/index.js +11 -0
  378. package/dist/src/smiths/agentsmith/types.js +8 -0
  379. package/dist/src/smiths/commandsmith/example.js +220 -0
  380. package/dist/src/smiths/commandsmith/generator.js +288 -0
  381. package/dist/src/smiths/commandsmith/index.js +41 -0
  382. package/dist/src/smiths/commandsmith/templates.js +296 -0
  383. package/dist/src/smiths/commandsmith/types.js +7 -0
  384. package/dist/src/smiths/context-pipeline/aiwg-md.js +104 -0
  385. package/dist/src/smiths/context-pipeline/allowlist.js +195 -0
  386. package/dist/src/smiths/context-pipeline/claude-hook.js +127 -0
  387. package/dist/src/smiths/context-pipeline/discovery.js +187 -0
  388. package/dist/src/smiths/context-pipeline/external-links-section.js +49 -0
  389. package/dist/src/smiths/context-pipeline/finalization.js +147 -0
  390. package/dist/src/smiths/context-pipeline/generator.js +477 -0
  391. package/dist/src/smiths/context-pipeline/index.js +30 -0
  392. package/dist/src/smiths/context-pipeline/legacy-inject.js +103 -0
  393. package/dist/src/smiths/context-pipeline/managed-hook.js +95 -0
  394. package/dist/src/smiths/context-pipeline/overflow.js +212 -0
  395. package/dist/src/smiths/context-pipeline/parallelism-section.js +94 -0
  396. package/dist/src/smiths/context-pipeline/provider-policy.js +64 -0
  397. package/dist/src/smiths/context-pipeline/sanitizer.js +93 -0
  398. package/dist/src/smiths/context-pipeline/types.js +23 -0
  399. package/dist/src/smiths/context-pipeline/workspace-context.js +988 -0
  400. package/dist/src/smiths/hook-bridge/codex-translator.js +129 -0
  401. package/dist/src/smiths/hook-bridge/copilot-translator.js +64 -0
  402. package/dist/src/smiths/hook-bridge/factory-translator.js +43 -0
  403. package/dist/src/smiths/hook-bridge/hermes-translator.js +88 -0
  404. package/dist/src/smiths/hook-bridge/index.js +79 -0
  405. package/dist/src/smiths/hook-bridge/loader.js +116 -0
  406. package/dist/src/smiths/hook-bridge/shim.js +89 -0
  407. package/dist/src/smiths/hook-bridge/types.js +31 -0
  408. package/dist/src/smiths/index.js +39 -0
  409. package/dist/src/smiths/mcpsmith/analyzers/cli-analyzer.js +390 -0
  410. package/dist/src/smiths/mcpsmith/example.js +119 -0
  411. package/dist/src/smiths/mcpsmith/generator.js +236 -0
  412. package/dist/src/smiths/mcpsmith/index.js +17 -0
  413. package/dist/src/smiths/mcpsmith/types.js +10 -0
  414. package/dist/src/smiths/platform-paths.js +101 -0
  415. package/dist/src/smiths/skillsmith/codex-sidecar.js +85 -0
  416. package/dist/src/smiths/skillsmith/collision-detector.js +249 -0
  417. package/dist/src/smiths/skillsmith/demo.js +83 -0
  418. package/dist/src/smiths/skillsmith/examples.js +161 -0
  419. package/dist/src/smiths/skillsmith/generator.js +316 -0
  420. package/dist/src/smiths/skillsmith/index.js +12 -0
  421. package/dist/src/smiths/skillsmith/namespace-adapter.js +180 -0
  422. package/dist/src/smiths/skillsmith/platform-resolver.js +157 -0
  423. package/dist/src/smiths/skillsmith/types.js +9 -0
  424. package/dist/src/smiths/toolsmith/index.js +10 -0
  425. package/dist/src/smiths/toolsmith/runtime-discovery.mjs +710 -0
  426. package/dist/src/smiths/toolsmith/types.js +8 -0
  427. package/dist/src/storage/backends/fortemi.js +227 -0
  428. package/dist/src/storage/backends/fs.js +134 -0
  429. package/dist/src/storage/backends/logseq.js +309 -0
  430. package/dist/src/storage/backends/obsidian.js +233 -0
  431. package/dist/src/storage/cli.js +468 -0
  432. package/dist/src/storage/config.js +272 -0
  433. package/dist/src/storage/index.js +108 -0
  434. package/dist/src/storage/subsystem-cli.js +201 -0
  435. package/dist/src/storage/types.js +33 -0
  436. package/dist/src/testing/corpus/corpus-builder.js +383 -0
  437. package/dist/src/testing/corpus/ground-truth-manager.js +460 -0
  438. package/dist/src/testing/corpus/index.js +10 -0
  439. package/dist/src/testing/fixtures/index.js +9 -0
  440. package/dist/src/testing/fixtures/test-data-factory.js +472 -0
  441. package/dist/src/testing/generators/index.js +11 -0
  442. package/dist/src/testing/generators/test-case-generator.js +393 -0
  443. package/dist/src/testing/generators/test-code-generator.js +384 -0
  444. package/dist/src/testing/generators/use-case-parser.js +325 -0
  445. package/dist/src/testing/index.js +11 -0
  446. package/dist/src/tracker/capability-protocol.js +118 -0
  447. package/dist/src/update/checker.mjs +396 -0
  448. package/dist/src/update/notifier.mjs +235 -0
  449. package/dist/src/writing/content-diversifier.js +804 -0
  450. package/dist/src/writing/example-generator.js +959 -0
  451. package/dist/src/writing/example-templates.js +99 -0
  452. package/dist/src/writing/pattern-library.js +486 -0
  453. package/dist/src/writing/patterns/banned-phrases.json +4413 -0
  454. package/dist/src/writing/patterns/formulaic-structures.json +1300 -0
  455. package/dist/src/writing/patterns/generic-adjectives.json +1510 -0
  456. package/dist/src/writing/patterns/hedging-language.json +2096 -0
  457. package/dist/src/writing/patterns/transition-words.json +1285 -0
  458. package/dist/src/writing/patterns/weak-verbs.json +1112 -0
  459. package/dist/src/writing/prompt-optimizer.js +660 -0
  460. package/dist/src/writing/prompt-templates.js +583 -0
  461. package/dist/src/writing/scoring-config-loader.js +168 -0
  462. package/dist/src/writing/validation-engine.js +595 -0
  463. package/dist/src/writing/validation-rules.js +380 -0
  464. package/dist/src/writing/voice-analyzer.js +439 -0
  465. package/dist/src/writing/voice-calibration.js +661 -0
  466. package/dist/src/writing/voice-profiles.json +588 -0
  467. package/package.json +65 -9
@@ -0,0 +1,370 @@
1
+ /**
2
+ * Quality service for assessing research source quality
3
+ *
4
+ * @module research/services/quality
5
+ */
6
+ /**
7
+ * Quality service for assessing and reporting on source quality
8
+ */
9
+ export class QualityService {
10
+ constructor(_config = {}) {
11
+ // Config values will be used when threshold checking is implemented
12
+ }
13
+ /**
14
+ * Assess GRADE evidence quality level
15
+ */
16
+ assessGRADE(source) {
17
+ const paper = source.paper;
18
+ // Start with baseline based on publication type
19
+ let level = this.getBaselineGRADE(paper.type);
20
+ // Adjust based on other factors
21
+ if (paper.type === 'preprint' && !paper.doi) {
22
+ level = this.downgrade(level); // Not peer-reviewed and no DOI
23
+ }
24
+ if (paper.citationCount && paper.citationCount > 100) {
25
+ level = this.upgrade(level); // High citation count indicates quality
26
+ }
27
+ if (!paper.abstract) {
28
+ level = this.downgrade(level); // Missing metadata
29
+ }
30
+ return level;
31
+ }
32
+ /**
33
+ * Validate FAIR compliance
34
+ */
35
+ validateFAIR(source) {
36
+ const findable = this.assessFindable(source);
37
+ const accessible = this.assessAccessible(source);
38
+ const interoperable = this.assessInteroperable(source);
39
+ const reusable = this.assessReusable(source);
40
+ const overall = (findable.score +
41
+ accessible.score +
42
+ interoperable.score +
43
+ reusable.score) / 4;
44
+ const notes = [];
45
+ if (overall >= 0.9) {
46
+ notes.push('Excellent FAIR compliance');
47
+ }
48
+ else if (overall >= 0.7) {
49
+ notes.push('Good FAIR compliance with room for improvement');
50
+ }
51
+ else if (overall >= 0.5) {
52
+ notes.push('Moderate FAIR compliance - consider enhancements');
53
+ }
54
+ else {
55
+ notes.push('Low FAIR compliance - significant improvements needed');
56
+ }
57
+ return {
58
+ overall,
59
+ findable,
60
+ accessible,
61
+ interoperable,
62
+ reusable,
63
+ notes,
64
+ };
65
+ }
66
+ /**
67
+ * Calculate multi-dimensional quality score
68
+ */
69
+ calculateQualityScore(source) {
70
+ const gradeLevel = this.assessGRADE(source);
71
+ const fairScore = source.fairScore || this.validateFAIR(source);
72
+ const dimensions = {
73
+ methodological: this.assessMethodological(source),
74
+ evidential: this.assessEvidential(source),
75
+ transparency: this.assessTransparency(source),
76
+ reproducibility: this.assessReproducibility(source),
77
+ fairCompliance: fairScore.overall,
78
+ };
79
+ const overall = (dimensions.methodological +
80
+ dimensions.evidential +
81
+ dimensions.transparency +
82
+ dimensions.reproducibility +
83
+ dimensions.fairCompliance) / 5;
84
+ const notes = [];
85
+ if (overall >= 0.8) {
86
+ notes.push('High-quality source suitable for critical decisions');
87
+ }
88
+ else if (overall >= 0.6) {
89
+ notes.push('Moderate-quality source suitable for general reference');
90
+ }
91
+ else {
92
+ notes.push('Lower-quality source - use with caution');
93
+ }
94
+ return {
95
+ overall,
96
+ dimensions,
97
+ gradeLevel,
98
+ sourceType: source.paper.type || 'other',
99
+ notes,
100
+ };
101
+ }
102
+ /**
103
+ * Generate aggregate quality report
104
+ */
105
+ generateReport(sources) {
106
+ const gradeDistribution = {
107
+ HIGH: 0,
108
+ MODERATE: 0,
109
+ LOW: 0,
110
+ VERY_LOW: 0,
111
+ };
112
+ const sourceTypeDistribution = {};
113
+ let totalMethodological = 0;
114
+ let totalEvidential = 0;
115
+ let totalTransparency = 0;
116
+ let totalReproducibility = 0;
117
+ let totalFAIR = 0;
118
+ let totalOverall = 0;
119
+ for (const source of sources) {
120
+ const grade = this.assessGRADE(source);
121
+ gradeDistribution[grade]++;
122
+ const type = source.paper.type || 'other';
123
+ sourceTypeDistribution[type] = (sourceTypeDistribution[type] || 0) + 1;
124
+ const quality = this.calculateQualityScore(source);
125
+ totalMethodological += quality.dimensions.methodological;
126
+ totalEvidential += quality.dimensions.evidential;
127
+ totalTransparency += quality.dimensions.transparency;
128
+ totalReproducibility += quality.dimensions.reproducibility;
129
+ totalFAIR += quality.dimensions.fairCompliance;
130
+ totalOverall += quality.overall;
131
+ }
132
+ const count = sources.length;
133
+ const averageScores = {
134
+ overall: totalOverall / count,
135
+ methodological: totalMethodological / count,
136
+ evidential: totalEvidential / count,
137
+ transparency: totalTransparency / count,
138
+ reproducibility: totalReproducibility / count,
139
+ fairCompliance: totalFAIR / count,
140
+ };
141
+ const summary = this.buildSummary(count, averageScores.overall, gradeDistribution);
142
+ const recommendations = this.buildRecommendations(averageScores, gradeDistribution);
143
+ return {
144
+ generatedAt: new Date().toISOString(),
145
+ totalSources: count,
146
+ gradeDistribution,
147
+ sourceTypeDistribution,
148
+ averageScores,
149
+ summary,
150
+ recommendations,
151
+ };
152
+ }
153
+ /**
154
+ * Get baseline GRADE level for publication type
155
+ */
156
+ getBaselineGRADE(type) {
157
+ if (type === 'journal')
158
+ return 'HIGH';
159
+ if (type === 'conference')
160
+ return 'HIGH';
161
+ if (type === 'preprint')
162
+ return 'MODERATE';
163
+ if (type === 'thesis')
164
+ return 'MODERATE';
165
+ return 'LOW';
166
+ }
167
+ /**
168
+ * Upgrade GRADE level
169
+ */
170
+ upgrade(level) {
171
+ const levels = ['HIGH', 'MODERATE', 'LOW', 'VERY_LOW'];
172
+ const index = levels.indexOf(level);
173
+ return index > 0 ? levels[index - 1] : level;
174
+ }
175
+ /**
176
+ * Downgrade GRADE level
177
+ */
178
+ downgrade(level) {
179
+ const levels = ['HIGH', 'MODERATE', 'LOW', 'VERY_LOW'];
180
+ const index = levels.indexOf(level);
181
+ return index < levels.length - 1 ? levels[index + 1] : level;
182
+ }
183
+ /**
184
+ * Assess Findable dimension
185
+ */
186
+ assessFindable(source) {
187
+ const criteria = [
188
+ {
189
+ id: 'F1',
190
+ description: 'Assigned globally unique identifier',
191
+ met: !!source.refId,
192
+ },
193
+ {
194
+ id: 'F2',
195
+ description: 'Rich metadata',
196
+ met: !!source.paper.abstract && source.paper.authors.length > 0,
197
+ },
198
+ {
199
+ id: 'F3',
200
+ description: 'Metadata includes identifier',
201
+ met: !!(source.paper.doi || source.paper.arxivId),
202
+ },
203
+ {
204
+ id: 'F4',
205
+ description: 'Indexed in searchable resource',
206
+ met: true,
207
+ },
208
+ ];
209
+ const score = criteria.filter((c) => c.met).length / criteria.length;
210
+ return { score, criteria };
211
+ }
212
+ /**
213
+ * Assess Accessible dimension
214
+ */
215
+ assessAccessible(source) {
216
+ const criteria = [
217
+ {
218
+ id: 'A1',
219
+ description: 'Retrievable by identifier',
220
+ met: !!source.filePath,
221
+ },
222
+ {
223
+ id: 'A2',
224
+ description: 'Metadata accessible',
225
+ met: true,
226
+ },
227
+ ];
228
+ const score = criteria.filter((c) => c.met).length / criteria.length;
229
+ return { score, criteria };
230
+ }
231
+ /**
232
+ * Assess Interoperable dimension
233
+ */
234
+ assessInteroperable(source) {
235
+ const criteria = [
236
+ {
237
+ id: 'I1',
238
+ description: 'Formal knowledge representation',
239
+ met: true,
240
+ },
241
+ {
242
+ id: 'I2',
243
+ description: 'FAIR-compliant vocabularies',
244
+ met: true,
245
+ },
246
+ {
247
+ id: 'I3',
248
+ description: 'Qualified references',
249
+ met: !!(source.paper.doi || source.paper.arxivId),
250
+ },
251
+ ];
252
+ const score = criteria.filter((c) => c.met).length / criteria.length;
253
+ return { score, criteria };
254
+ }
255
+ /**
256
+ * Assess Reusable dimension
257
+ */
258
+ assessReusable(source) {
259
+ const criteria = [
260
+ {
261
+ id: 'R1',
262
+ description: 'Accurate metadata',
263
+ met: !!source.paper.abstract,
264
+ },
265
+ {
266
+ id: 'R2',
267
+ description: 'Detailed provenance',
268
+ met: !!source.acquiredAt,
269
+ },
270
+ {
271
+ id: 'R3',
272
+ description: 'Meets community standards',
273
+ met: true,
274
+ },
275
+ ];
276
+ const score = criteria.filter((c) => c.met).length / criteria.length;
277
+ return { score, criteria };
278
+ }
279
+ /**
280
+ * Assess methodological quality
281
+ */
282
+ assessMethodological(source) {
283
+ let score = 0.5; // Base score
284
+ if (source.paper.type === 'journal' || source.paper.type === 'conference') {
285
+ score += 0.3; // Peer-reviewed
286
+ }
287
+ if (source.paper.abstract && source.paper.abstract.length > 100) {
288
+ score += 0.1; // Substantial abstract
289
+ }
290
+ if (source.paper.venue) {
291
+ score += 0.1; // Published in venue
292
+ }
293
+ return Math.min(score, 1.0);
294
+ }
295
+ /**
296
+ * Assess evidential quality
297
+ */
298
+ assessEvidential(source) {
299
+ let score = 0.5; // Base score
300
+ if (source.paper.citationCount) {
301
+ // Log scale for citation count
302
+ const citationScore = Math.log10(source.paper.citationCount + 1) / 3;
303
+ score += Math.min(citationScore, 0.3);
304
+ }
305
+ if (source.paper.year && source.paper.year >= new Date().getFullYear() - 5) {
306
+ score += 0.2; // Recent publication
307
+ }
308
+ return Math.min(score, 1.0);
309
+ }
310
+ /**
311
+ * Assess transparency
312
+ */
313
+ assessTransparency(source) {
314
+ let score = 0.5; // Base score
315
+ if (source.paper.doi) {
316
+ score += 0.2; // Has DOI
317
+ }
318
+ if (source.paper.pdfUrl) {
319
+ score += 0.2; // Accessible PDF
320
+ }
321
+ if (source.paper.authors.length > 0) {
322
+ score += 0.1; // Author information
323
+ }
324
+ return Math.min(score, 1.0);
325
+ }
326
+ /**
327
+ * Assess reproducibility
328
+ */
329
+ assessReproducibility(source) {
330
+ let score = 0.5; // Base score
331
+ if (source.checksum) {
332
+ score += 0.2; // File integrity
333
+ }
334
+ if (source.paper.source) {
335
+ score += 0.2; // Source tracked
336
+ }
337
+ if (source.acquiredAt) {
338
+ score += 0.1; // Acquisition metadata
339
+ }
340
+ return Math.min(score, 1.0);
341
+ }
342
+ /**
343
+ * Build summary text
344
+ */
345
+ buildSummary(count, averageOverall, gradeDistribution) {
346
+ const highCount = gradeDistribution.HIGH;
347
+ const percentage = ((averageOverall * 100) | 0);
348
+ return `Analyzed ${count} sources with average quality score of ${percentage}%. ${highCount} sources rated as HIGH quality.`;
349
+ }
350
+ /**
351
+ * Build recommendations
352
+ */
353
+ buildRecommendations(averageScores, gradeDistribution) {
354
+ const recommendations = [];
355
+ if (averageScores.methodological < 0.7) {
356
+ recommendations.push('Consider increasing proportion of peer-reviewed sources');
357
+ }
358
+ if (averageScores.fairCompliance < 0.7) {
359
+ recommendations.push('Improve FAIR compliance by ensuring all sources have DOIs or persistent identifiers');
360
+ }
361
+ if (averageScores.reproducibility < 0.7) {
362
+ recommendations.push('Enhance reproducibility by maintaining complete acquisition metadata');
363
+ }
364
+ if (gradeDistribution.VERY_LOW > 0) {
365
+ recommendations.push('Review VERY_LOW quality sources and consider replacement with higher-quality alternatives');
366
+ }
367
+ return recommendations;
368
+ }
369
+ }
370
+ //# sourceMappingURL=quality.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Type definitions for Research Framework services
3
+ *
4
+ * @module research/services/types
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Research storage CLI — `aiwg research-store <subcommand>`
3
+ *
4
+ * Thin wrapper around `runSubsystemCli('research', ...)`. Used by
5
+ * research-acquire / corpus-* skills (#968) so the research corpus
6
+ * honors `.aiwg/storage.config` redirection (e.g., `roots.research`
7
+ * pointing at a secondary drive — one of the headline use cases in #934).
8
+ *
9
+ * Note: AIWG already has many `research-*` commands (research-discover,
10
+ * research-acquire, etc.). This new command is named `research-store`
11
+ * to disambiguate — it's the storage primitive layer, not a workflow.
12
+ *
13
+ * @issue #934
14
+ * @issue #968
15
+ */
16
+ import { runSubsystemCli } from '../storage/subsystem-cli.js';
17
+ export async function main(args) {
18
+ await runSubsystemCli('research', args, { displayName: 'research-store' });
19
+ }
20
+ //# sourceMappingURL=storage-cli.js.map
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Type definitions for the Research Framework
3
+ *
4
+ * @module research/types
5
+ */
6
+ /**
7
+ * Research Framework error codes
8
+ */
9
+ export var ResearchErrorCode;
10
+ (function (ResearchErrorCode) {
11
+ // RF-1xx: Client errors
12
+ ResearchErrorCode["RF_100"] = "RF-100: Invalid request parameters";
13
+ ResearchErrorCode["RF_101"] = "RF-101: Missing required parameter";
14
+ ResearchErrorCode["RF_102"] = "RF-102: Invalid API key";
15
+ ResearchErrorCode["RF_103"] = "RF-103: Rate limit exceeded";
16
+ ResearchErrorCode["RF_104"] = "RF-104: Request timeout";
17
+ // RF-2xx: Server errors
18
+ ResearchErrorCode["RF_200"] = "RF-200: API server error";
19
+ ResearchErrorCode["RF_201"] = "RF-201: Service unavailable";
20
+ ResearchErrorCode["RF_202"] = "RF-202: Gateway timeout";
21
+ // RF-3xx: Data errors
22
+ ResearchErrorCode["RF_300"] = "RF-300: Resource not found";
23
+ ResearchErrorCode["RF_301"] = "RF-301: Invalid response format";
24
+ ResearchErrorCode["RF_302"] = "RF-302: Missing required field";
25
+ // RF-4xx: Cache errors
26
+ ResearchErrorCode["RF_400"] = "RF-400: Cache read error";
27
+ ResearchErrorCode["RF_401"] = "RF-401: Cache write error";
28
+ ResearchErrorCode["RF_402"] = "RF-402: Cache invalidation error";
29
+ // RF-5xx: Network errors
30
+ ResearchErrorCode["RF_500"] = "RF-500: Network error";
31
+ ResearchErrorCode["RF_501"] = "RF-501: Connection refused";
32
+ ResearchErrorCode["RF_502"] = "RF-502: DNS resolution failed";
33
+ })(ResearchErrorCode || (ResearchErrorCode = {}));
34
+ /**
35
+ * Research Framework error
36
+ */
37
+ export class ResearchError extends Error {
38
+ code;
39
+ cause;
40
+ constructor(code, message, cause) {
41
+ super(message);
42
+ this.code = code;
43
+ this.cause = cause;
44
+ this.name = 'ResearchError';
45
+ }
46
+ }
47
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,2 @@
1
+ export * from "./web-release.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ export * from "./web-release.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,89 @@
1
+ export declare const DEFAULT_RESOURCE_BASE_URL = "https://releases.aiwg.io";
2
+ export declare const AIWG_RELEASE_PUBLIC_KEY_PEM = "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA8BsJ2vjuHBReexz328sknfL7MKUtxynX6MGfqFVMD38=\n-----END PUBLIC KEY-----";
3
+ export type ResourceSource = "local" | "web" | "auto";
4
+ export type ResourceSelector = {
5
+ kind: "exact";
6
+ value: string;
7
+ } | {
8
+ kind: "channel";
9
+ value: string;
10
+ };
11
+ export interface ResourceFetchResponse {
12
+ ok: boolean;
13
+ status: number;
14
+ headers: {
15
+ get(name: string): string | null;
16
+ };
17
+ body?: {
18
+ getReader(): {
19
+ read(): Promise<{
20
+ done: boolean;
21
+ value?: Uint8Array;
22
+ }>;
23
+ cancel?(reason?: unknown): Promise<void>;
24
+ };
25
+ } | null;
26
+ arrayBuffer(): Promise<ArrayBuffer>;
27
+ }
28
+ export type ResourceFetcher = (input: string | URL, init?: {
29
+ redirect?: "error";
30
+ headers?: Record<string, string>;
31
+ signal?: AbortSignal;
32
+ }) => Promise<ResourceFetchResponse>;
33
+ export interface WebReleaseOptions {
34
+ selector?: string;
35
+ offline?: boolean;
36
+ baseUrl?: string;
37
+ cacheRoot?: string;
38
+ publicKeyPem?: string | Buffer;
39
+ fetcher?: ResourceFetcher;
40
+ /** Test/development escape hatch. HTTP remains restricted to loopback. */
41
+ allowInsecureLoopbackHttp?: boolean;
42
+ }
43
+ export interface VerifiedReleaseDescriptor {
44
+ path: string;
45
+ size: number;
46
+ sha256: string;
47
+ }
48
+ export interface VerifiedWebRelease {
49
+ selector: string;
50
+ selectorKind: ResourceSelector["kind"];
51
+ version: string;
52
+ manifestDigest: string;
53
+ baseUrl: string;
54
+ manifestUrl: string;
55
+ cacheDir: string;
56
+ releaseManifestPath: string;
57
+ releaseSignaturePath: string;
58
+ fortemiManifestPath: string;
59
+ fortemiExportPath: string;
60
+ fortemiManifestSha256: string;
61
+ fortemiManifestSize: number;
62
+ fortemiExportSha256: string;
63
+ fortemiExportSize: number;
64
+ channelSequence?: number;
65
+ descriptors: ReadonlyMap<string, VerifiedReleaseDescriptor>;
66
+ }
67
+ export interface VerifiedRawResourceOptions extends Pick<WebReleaseOptions, "baseUrl" | "fetcher" | "allowInsecureLoopbackHttp"> {
68
+ offline?: boolean;
69
+ }
70
+ export declare function verifySignedResourceBytes(bytes: Uint8Array, signatureBytes: Uint8Array, publicKeyPem?: string | Buffer, label?: string): string;
71
+ export declare function parseResourceSelector(selector: string): ResourceSelector;
72
+ export declare function getResourceCacheRoot(cacheRoot?: string): string;
73
+ export interface BoundedFileReadOptions {
74
+ label: string;
75
+ maxBytes: number;
76
+ expectedSize?: number;
77
+ expectedSha256?: string;
78
+ }
79
+ /**
80
+ * Read a bounded regular file through one descriptor. O_NOFOLLOW closes the
81
+ * final-component symlink race on platforms that support it; lstat/fstat and
82
+ * digest checks retain fail-closed behavior elsewhere.
83
+ */
84
+ export declare function readVerifiedRegularFile(pathname: string, options: BoundedFileReadOptions): Buffer;
85
+ export declare function loadResourceTrustRootFile(pathname: string): Buffer;
86
+ export declare function resolveWebRelease(options?: WebReleaseOptions): Promise<VerifiedWebRelease>;
87
+ export declare function fetchVerifiedRawResource(release: VerifiedWebRelease, resourcePath: string, options?: VerifiedRawResourceOptions): Promise<Buffer>;
88
+ export declare function createWebReleaseTestOptions(baseUrl: string, overrides?: Omit<WebReleaseOptions, "baseUrl" | "allowInsecureLoopbackHttp">): WebReleaseOptions;
89
+ //# sourceMappingURL=web-release.d.ts.map