thehood 0.1.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/CODE_OF_CONDUCT.md +21 -0
  2. package/CONTRIBUTING.md +58 -0
  3. package/LICENSE +21 -0
  4. package/PRIVACY.md +49 -0
  5. package/README.md +264 -0
  6. package/SECURITY.md +31 -0
  7. package/dist/bridges/chatgptWebBridge.d.ts +2 -0
  8. package/dist/bridges/chatgptWebBridge.js +981 -0
  9. package/dist/bridges/chatgptWebBridge.js.map +1 -0
  10. package/dist/cli/args.d.ts +9 -0
  11. package/dist/cli/args.js +82 -0
  12. package/dist/cli/args.js.map +1 -0
  13. package/dist/cli/format.d.ts +56 -0
  14. package/dist/cli/format.js +752 -0
  15. package/dist/cli/format.js.map +1 -0
  16. package/dist/cli/main.d.ts +2 -0
  17. package/dist/cli/main.js +996 -0
  18. package/dist/cli/main.js.map +1 -0
  19. package/dist/cli/mcpConfig.d.ts +36 -0
  20. package/dist/cli/mcpConfig.js +98 -0
  21. package/dist/cli/mcpConfig.js.map +1 -0
  22. package/dist/index.d.ts +37 -0
  23. package/dist/index.js +38 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/mcp/protocol.d.ts +44 -0
  26. package/dist/mcp/protocol.js +33 -0
  27. package/dist/mcp/protocol.js.map +1 -0
  28. package/dist/mcp/server.d.ts +1 -0
  29. package/dist/mcp/server.js +106 -0
  30. package/dist/mcp/server.js.map +1 -0
  31. package/dist/mcp/tools.d.ts +10 -0
  32. package/dist/mcp/tools.js +2200 -0
  33. package/dist/mcp/tools.js.map +1 -0
  34. package/dist/mcp/validation.d.ts +8 -0
  35. package/dist/mcp/validation.js +67 -0
  36. package/dist/mcp/validation.js.map +1 -0
  37. package/dist/providers/chatgptWeb.d.ts +2 -0
  38. package/dist/providers/chatgptWeb.js +26 -0
  39. package/dist/providers/chatgptWeb.js.map +1 -0
  40. package/dist/providers/claudeCode.d.ts +4 -0
  41. package/dist/providers/claudeCode.js +32 -0
  42. package/dist/providers/claudeCode.js.map +1 -0
  43. package/dist/providers/codexCli.d.ts +6 -0
  44. package/dist/providers/codexCli.js +25 -0
  45. package/dist/providers/codexCli.js.map +1 -0
  46. package/dist/providers/codexCliModels.d.ts +23 -0
  47. package/dist/providers/codexCliModels.js +147 -0
  48. package/dist/providers/codexCliModels.js.map +1 -0
  49. package/dist/providers/localCommand.d.ts +26 -0
  50. package/dist/providers/localCommand.js +614 -0
  51. package/dist/providers/localCommand.js.map +1 -0
  52. package/dist/providers/markdownPayload.d.ts +7 -0
  53. package/dist/providers/markdownPayload.js +29 -0
  54. package/dist/providers/markdownPayload.js.map +1 -0
  55. package/dist/providers/responseSchema.d.ts +3 -0
  56. package/dist/providers/responseSchema.js +187 -0
  57. package/dist/providers/responseSchema.js.map +1 -0
  58. package/dist/providers/router.d.ts +3 -0
  59. package/dist/providers/router.js +21 -0
  60. package/dist/providers/router.js.map +1 -0
  61. package/dist/providers/stub.d.ts +2 -0
  62. package/dist/providers/stub.js +177 -0
  63. package/dist/providers/stub.js.map +1 -0
  64. package/dist/providers/types.d.ts +37 -0
  65. package/dist/providers/types.js +2 -0
  66. package/dist/providers/types.js.map +1 -0
  67. package/dist/runtime/agentBoard.d.ts +79 -0
  68. package/dist/runtime/agentBoard.js +166 -0
  69. package/dist/runtime/agentBoard.js.map +1 -0
  70. package/dist/runtime/agentBoardArtifact.d.ts +9 -0
  71. package/dist/runtime/agentBoardArtifact.js +171 -0
  72. package/dist/runtime/agentBoardArtifact.js.map +1 -0
  73. package/dist/runtime/agentRunner.d.ts +17 -0
  74. package/dist/runtime/agentRunner.js +92 -0
  75. package/dist/runtime/agentRunner.js.map +1 -0
  76. package/dist/runtime/approvalInbox.d.ts +54 -0
  77. package/dist/runtime/approvalInbox.js +143 -0
  78. package/dist/runtime/approvalInbox.js.map +1 -0
  79. package/dist/runtime/approvalPolicy.d.ts +11 -0
  80. package/dist/runtime/approvalPolicy.js +58 -0
  81. package/dist/runtime/approvalPolicy.js.map +1 -0
  82. package/dist/runtime/artifacts.d.ts +23 -0
  83. package/dist/runtime/artifacts.js +48 -0
  84. package/dist/runtime/artifacts.js.map +1 -0
  85. package/dist/runtime/browserManager.d.ts +37 -0
  86. package/dist/runtime/browserManager.js +356 -0
  87. package/dist/runtime/browserManager.js.map +1 -0
  88. package/dist/runtime/canonicalMemory.d.ts +23 -0
  89. package/dist/runtime/canonicalMemory.js +134 -0
  90. package/dist/runtime/canonicalMemory.js.map +1 -0
  91. package/dist/runtime/chatGptPageReadiness.d.ts +16 -0
  92. package/dist/runtime/chatGptPageReadiness.js +74 -0
  93. package/dist/runtime/chatGptPageReadiness.js.map +1 -0
  94. package/dist/runtime/commandRunner.d.ts +18 -0
  95. package/dist/runtime/commandRunner.js +115 -0
  96. package/dist/runtime/commandRunner.js.map +1 -0
  97. package/dist/runtime/commandSafety.d.ts +7 -0
  98. package/dist/runtime/commandSafety.js +61 -0
  99. package/dist/runtime/commandSafety.js.map +1 -0
  100. package/dist/runtime/config.d.ts +10 -0
  101. package/dist/runtime/config.js +107 -0
  102. package/dist/runtime/config.js.map +1 -0
  103. package/dist/runtime/crewLanes.d.ts +2 -0
  104. package/dist/runtime/crewLanes.js +123 -0
  105. package/dist/runtime/crewLanes.js.map +1 -0
  106. package/dist/runtime/criticPolicy.d.ts +17 -0
  107. package/dist/runtime/criticPolicy.js +50 -0
  108. package/dist/runtime/criticPolicy.js.map +1 -0
  109. package/dist/runtime/defaults.d.ts +5 -0
  110. package/dist/runtime/defaults.js +100 -0
  111. package/dist/runtime/defaults.js.map +1 -0
  112. package/dist/runtime/directives.d.ts +3 -0
  113. package/dist/runtime/directives.js +218 -0
  114. package/dist/runtime/directives.js.map +1 -0
  115. package/dist/runtime/doctor.d.ts +36 -0
  116. package/dist/runtime/doctor.js +185 -0
  117. package/dist/runtime/doctor.js.map +1 -0
  118. package/dist/runtime/errors.d.ts +20 -0
  119. package/dist/runtime/errors.js +41 -0
  120. package/dist/runtime/errors.js.map +1 -0
  121. package/dist/runtime/externalTransfer.d.ts +20 -0
  122. package/dist/runtime/externalTransfer.js +156 -0
  123. package/dist/runtime/externalTransfer.js.map +1 -0
  124. package/dist/runtime/fanout.d.ts +64 -0
  125. package/dist/runtime/fanout.js +263 -0
  126. package/dist/runtime/fanout.js.map +1 -0
  127. package/dist/runtime/gitEvidence.d.ts +10 -0
  128. package/dist/runtime/gitEvidence.js +80 -0
  129. package/dist/runtime/gitEvidence.js.map +1 -0
  130. package/dist/runtime/handoffs.d.ts +32 -0
  131. package/dist/runtime/handoffs.js +100 -0
  132. package/dist/runtime/handoffs.js.map +1 -0
  133. package/dist/runtime/ids.d.ts +2 -0
  134. package/dist/runtime/ids.js +4 -0
  135. package/dist/runtime/ids.js.map +1 -0
  136. package/dist/runtime/localStateIgnore.d.ts +9 -0
  137. package/dist/runtime/localStateIgnore.js +98 -0
  138. package/dist/runtime/localStateIgnore.js.map +1 -0
  139. package/dist/runtime/loop.d.ts +14 -0
  140. package/dist/runtime/loop.js +1863 -0
  141. package/dist/runtime/loop.js.map +1 -0
  142. package/dist/runtime/loopRecommendation.d.ts +109 -0
  143. package/dist/runtime/loopRecommendation.js +566 -0
  144. package/dist/runtime/loopRecommendation.js.map +1 -0
  145. package/dist/runtime/loopResponsibilities.d.ts +2 -0
  146. package/dist/runtime/loopResponsibilities.js +395 -0
  147. package/dist/runtime/loopResponsibilities.js.map +1 -0
  148. package/dist/runtime/loopRunner.d.ts +28 -0
  149. package/dist/runtime/loopRunner.js +81 -0
  150. package/dist/runtime/loopRunner.js.map +1 -0
  151. package/dist/runtime/operatorNextActions.d.ts +2 -0
  152. package/dist/runtime/operatorNextActions.js +344 -0
  153. package/dist/runtime/operatorNextActions.js.map +1 -0
  154. package/dist/runtime/paths.d.ts +9 -0
  155. package/dist/runtime/paths.js +14 -0
  156. package/dist/runtime/paths.js.map +1 -0
  157. package/dist/runtime/permissions.d.ts +9 -0
  158. package/dist/runtime/permissions.js +73 -0
  159. package/dist/runtime/permissions.js.map +1 -0
  160. package/dist/runtime/progressPacket.d.ts +12 -0
  161. package/dist/runtime/progressPacket.js +512 -0
  162. package/dist/runtime/progressPacket.js.map +1 -0
  163. package/dist/runtime/protectedPaths.d.ts +6 -0
  164. package/dist/runtime/protectedPaths.js +48 -0
  165. package/dist/runtime/protectedPaths.js.map +1 -0
  166. package/dist/runtime/providers.d.ts +13 -0
  167. package/dist/runtime/providers.js +60 -0
  168. package/dist/runtime/providers.js.map +1 -0
  169. package/dist/runtime/reconciliation.d.ts +17 -0
  170. package/dist/runtime/reconciliation.js +283 -0
  171. package/dist/runtime/reconciliation.js.map +1 -0
  172. package/dist/runtime/redaction.d.ts +1 -0
  173. package/dist/runtime/redaction.js +5 -0
  174. package/dist/runtime/redaction.js.map +1 -0
  175. package/dist/runtime/remoteRepoContext.d.ts +77 -0
  176. package/dist/runtime/remoteRepoContext.js +316 -0
  177. package/dist/runtime/remoteRepoContext.js.map +1 -0
  178. package/dist/runtime/repoContext.d.ts +50 -0
  179. package/dist/runtime/repoContext.js +399 -0
  180. package/dist/runtime/repoContext.js.map +1 -0
  181. package/dist/runtime/repoGateway.d.ts +64 -0
  182. package/dist/runtime/repoGateway.js +308 -0
  183. package/dist/runtime/repoGateway.js.map +1 -0
  184. package/dist/runtime/responseContracts.d.ts +3 -0
  185. package/dist/runtime/responseContracts.js +86 -0
  186. package/dist/runtime/responseContracts.js.map +1 -0
  187. package/dist/runtime/reviewLanes.d.ts +2 -0
  188. package/dist/runtime/reviewLanes.js +343 -0
  189. package/dist/runtime/reviewLanes.js.map +1 -0
  190. package/dist/runtime/reviewRouting.d.ts +51 -0
  191. package/dist/runtime/reviewRouting.js +152 -0
  192. package/dist/runtime/reviewRouting.js.map +1 -0
  193. package/dist/runtime/revisionPacket.d.ts +38 -0
  194. package/dist/runtime/revisionPacket.js +144 -0
  195. package/dist/runtime/revisionPacket.js.map +1 -0
  196. package/dist/runtime/revisionTrail.d.ts +2 -0
  197. package/dist/runtime/revisionTrail.js +162 -0
  198. package/dist/runtime/revisionTrail.js.map +1 -0
  199. package/dist/runtime/role-assignment.d.ts +4 -0
  200. package/dist/runtime/role-assignment.js +21 -0
  201. package/dist/runtime/role-assignment.js.map +1 -0
  202. package/dist/runtime/roleRoster.d.ts +28 -0
  203. package/dist/runtime/roleRoster.js +96 -0
  204. package/dist/runtime/roleRoster.js.map +1 -0
  205. package/dist/runtime/runInsights.d.ts +121 -0
  206. package/dist/runtime/runInsights.js +305 -0
  207. package/dist/runtime/runInsights.js.map +1 -0
  208. package/dist/runtime/runMonitor.d.ts +33 -0
  209. package/dist/runtime/runMonitor.js +143 -0
  210. package/dist/runtime/runMonitor.js.map +1 -0
  211. package/dist/runtime/runtime.d.ts +15 -0
  212. package/dist/runtime/runtime.js +199 -0
  213. package/dist/runtime/runtime.js.map +1 -0
  214. package/dist/runtime/runtimeInfo.d.ts +9 -0
  215. package/dist/runtime/runtimeInfo.js +76 -0
  216. package/dist/runtime/runtimeInfo.js.map +1 -0
  217. package/dist/runtime/store.d.ts +4 -0
  218. package/dist/runtime/store.js +48 -0
  219. package/dist/runtime/store.js.map +1 -0
  220. package/dist/runtime/summons.d.ts +25 -0
  221. package/dist/runtime/summons.js +403 -0
  222. package/dist/runtime/summons.js.map +1 -0
  223. package/dist/runtime/teamPresets.d.ts +14 -0
  224. package/dist/runtime/teamPresets.js +153 -0
  225. package/dist/runtime/teamPresets.js.map +1 -0
  226. package/dist/runtime/types.d.ts +505 -0
  227. package/dist/runtime/types.js +28 -0
  228. package/dist/runtime/types.js.map +1 -0
  229. package/dist/runtime/validationCommands.d.ts +18 -0
  230. package/dist/runtime/validationCommands.js +106 -0
  231. package/dist/runtime/validationCommands.js.map +1 -0
  232. package/dist/tui/dashboard.d.ts +41 -0
  233. package/dist/tui/dashboard.js +1115 -0
  234. package/dist/tui/dashboard.js.map +1 -0
  235. package/docs/ARCHITECTURE.md +277 -0
  236. package/docs/CLI_SPEC.md +396 -0
  237. package/docs/CODEX_SETUP.md +288 -0
  238. package/docs/COMPLETION_CONTRACT.md +52 -0
  239. package/docs/CONTRIBUTOR_GUIDE.md +70 -0
  240. package/docs/DEMO.md +62 -0
  241. package/docs/GLOSSARY.md +46 -0
  242. package/docs/GOAL_LOOP_SCHEDULE.md +50 -0
  243. package/docs/KNOWN_LIMITATIONS.md +29 -0
  244. package/docs/LICENSING.md +21 -0
  245. package/docs/LOOP_RECIPES.md +290 -0
  246. package/docs/LOOP_SELECTION_UX.md +118 -0
  247. package/docs/MCP_SPEC.md +689 -0
  248. package/docs/MEMORY_AND_RECONCILIATION.md +222 -0
  249. package/docs/NPM_PUBLISHING.md +51 -0
  250. package/docs/OPEN_DECISIONS.md +81 -0
  251. package/docs/PROMPT_SCHEMAS.md +411 -0
  252. package/docs/PROVIDER_ADAPTERS.md +323 -0
  253. package/docs/PROVIDER_MATRIX.md +21 -0
  254. package/docs/PUBLIC_REPO_READINESS.md +49 -0
  255. package/docs/RESEARCH_NOTES.md +92 -0
  256. package/docs/ROADMAP.md +94 -0
  257. package/docs/ROLE_CONTRACTS.md +252 -0
  258. package/docs/RUNTIME_LOOP.md +240 -0
  259. package/docs/SECURITY_AND_PRIVACY.md +161 -0
  260. package/docs/TESTING_AND_VERIFICATION.md +180 -0
  261. package/docs/TRUST_MODEL.md +65 -0
  262. package/docs/decisions/0001-runtime-first-cli-and-mcp.md +23 -0
  263. package/docs/decisions/0002-provider-neutral-role-mapping.md +43 -0
  264. package/docs/decisions/0003-separate-implementation-and-verification.md +27 -0
  265. package/docs/product/README.md +14 -0
  266. package/docs/product/model-selection.md +88 -0
  267. package/docs/product/positioning.md +37 -0
  268. package/docs/product/pro-usage-modes.md +70 -0
  269. package/docs/product/roadmap.md +57 -0
  270. package/docs/product/role-policy.md +89 -0
  271. package/docs/product/runtime-invariants.md +44 -0
  272. package/docs/release/v0.1.0-preview.0.md +48 -0
  273. package/examples/stub-demo/README.md +25 -0
  274. package/package.json +55 -0
@@ -0,0 +1,89 @@
1
+ # Role Policy
2
+
3
+ TheHood separates authority from judgment. Models can advise, plan, implement, or review according to their role. The runtime decides what is allowed.
4
+
5
+ ## Runtime Conductor
6
+
7
+ The runtime is the mechanical conductor.
8
+
9
+ It owns:
10
+
11
+ - loop control
12
+ - role assignment and role separation
13
+ - stop conditions
14
+ - permission checks
15
+ - approval gates
16
+ - evidence capture
17
+ - artifact storage
18
+ - schema validation
19
+ - provider readiness checks
20
+ - directive acknowledgement validation
21
+ - integration and protected-path policy
22
+
23
+ The runtime does not delegate these responsibilities to Pro, Codex, Claude, or any other provider.
24
+
25
+ ## Strategic Pro Conductor
26
+
27
+ Pro is a premium strategic reviewer and planner. It can be the final strategic approver for product direction, architecture judgment, reconciliation, or high-reputation review.
28
+
29
+ It owns:
30
+
31
+ - ambiguous planning
32
+ - product and architecture judgment
33
+ - reconciliation across conflicting agent outputs
34
+ - critique of a proposed direction
35
+ - high-reputation narrative review
36
+ - recommendations to continue, revise, delegate, verify, or abort
37
+
38
+ It does not own:
39
+
40
+ - file edits
41
+ - shell execution
42
+ - dependency installation
43
+ - network permission decisions
44
+ - approval bypasses
45
+ - artifact authority
46
+ - protected-path decisions
47
+ - runtime loop termination outside the provider response contract
48
+
49
+ ## Claude Second Judge
50
+
51
+ Claude is an independent model-family reviewer or preferred alternate worker. It is not positioned as a backup to GPT. It is the user's way to bring Claude into the Codex workflow when a second judgment, different reasoning style, or Claude-led implementation is useful.
52
+
53
+ It owns, when assigned:
54
+
55
+ - contrarian critique of Codex or Pro output
56
+ - independent verifier review when Codex implemented the change
57
+ - implementation when the user prefers Claude Code for the build lane
58
+ - product, architecture, writing, or cautious reasoning review
59
+ - high-assurance cross-checks before final strategic approval
60
+
61
+ It does not own:
62
+
63
+ - approval bypasses
64
+ - final runtime authority
65
+ - protected-path decisions
66
+ - test acceptance without runtime evidence
67
+ - verifier authority when it was also the implementer for the same task
68
+
69
+ ## Planner
70
+
71
+ The planner creates small, reversible execution paths. It separates facts from assumptions, names risks, defines acceptance criteria, and requests bounded evidence only when needed.
72
+
73
+ ## Implementer
74
+
75
+ The implementer executes the approved slice with minimal scope. It must not reinterpret product strategy unless the plan is impossible, unsafe, or contradicted by repository evidence.
76
+
77
+ ## QA Tester
78
+
79
+ The QA tester is read-only advisory review. It finds missed cases and recommends deterministic validation, but it does not satisfy runtime validation gates.
80
+
81
+ ## Verifier
82
+
83
+ The verifier checks runtime-captured evidence against acceptance criteria. It has no edit tools and cannot replace runtime command evidence.
84
+
85
+ When Pro, Claude, Codex, or another provider is assigned as verifier, it is the reviewer for that slice. It still cannot bypass runtime enforcement.
86
+
87
+ ## Critic
88
+
89
+ The critic challenges product, safety, architecture, and UX assumptions. Critic output can trigger revision, but it cannot approve integration or replace verification.
@@ -0,0 +1,44 @@
1
+ # Runtime Invariants
2
+
3
+ Configuration changes how TheHood chooses providers and when it escalates. It does not change the trust boundary.
4
+
5
+ ## Configurable Policy
6
+
7
+ Users and repos may configure:
8
+
9
+ - default agent usage mode
10
+ - role-to-provider assignments
11
+ - model aliases and passthrough model names for supported providers
12
+ - Claude second-judge, Claude builder, Pro-led, or high-assurance team presets
13
+ - Pro and Claude escalation thresholds
14
+ - automatic provider call budget, frequency, and context size
15
+ - phases that can use Claude or Pro automatically
16
+ - evidence redaction preferences
17
+ - path sensitivity labels
18
+ - external transfer policy within runtime limits
19
+ - user-facing verbosity for model-use explanations
20
+ - whether provider usage appears as a banner, timeline event, or compact audit entry
21
+
22
+ ## Non-Configurable Runtime Enforcement
23
+
24
+ These are runtime invariants:
25
+
26
+ - The runtime owns loop control.
27
+ - The runtime owns approval enforcement.
28
+ - The runtime validates provider responses and directive acknowledgements.
29
+ - The runtime records artifacts, evidence refs, and provider invocation metadata.
30
+ - The runtime enforces edit, shell, dependency, network, external-transfer, and protected-path gates.
31
+ - The runtime rejects stale provider-session responses.
32
+ - Models cannot grant themselves permissions.
33
+ - Implementer and verifier authority remain separate.
34
+ - Runtime-captured command evidence beats model summaries.
35
+ - Provider choice cannot make a protected path unprotected.
36
+ - Model preference cannot let an agent verify its own implementation.
37
+ - Pro cannot bypass Codex or tenant host policy.
38
+ - Connector mode is a safe handoff path, not a host-policy bypass.
39
+
40
+ ## Final Approval Boundary
41
+
42
+ Pro can be configured as the final strategic approver for a product or architecture slice. Claude can be configured as the independent second judge or verifier before that final strategic approval. That means the selected model gives the last model-backed judgment for its assigned role.
43
+
44
+ Final strategic approval is not final runtime authority. The runtime still decides whether required gates are satisfied and whether evidence is complete.
@@ -0,0 +1,48 @@
1
+ # v0.1.0-preview.0 Release Notes
2
+
3
+ Status: planned developer preview. Do not publish this release until the final release audit passes.
4
+
5
+ ## Position
6
+
7
+ TheHood `v0.1.0-preview.0` is a local runtime for governed software goal loops.
8
+
9
+ It should be evaluated as a developer tool for local orchestration, approvals, evidence, role separation, provider routing, and verification. It is not a hosted agent service, cloud scheduler, or polished native app.
10
+
11
+ ## Included
12
+
13
+ - CLI and stdio MCP surfaces over the same local runtime.
14
+ - Codex-first role defaults with provider-neutral role mapping.
15
+ - Local Codex CLI and Claude Code command adapters.
16
+ - ChatGPT Web bridge support when a user configures their own authenticated bridge.
17
+ - Experimental ChatGPT MCP connector guidance when the user's workspace exposes the required connector and tunnel flow.
18
+ - Deterministic `stub` provider for local smoke tests and synthetic demos.
19
+ - Bounded `goal`, `run`, `continue`, and `loop` workflows.
20
+ - Runtime-owned approvals, evidence artifacts, transfer manifests, review routing, QA/verifier/critic lanes, revision packets, and final reports.
21
+ - npm preview packaging metadata and tag-triggered Trusted Publishing workflow.
22
+ - Public contributor rails: issue templates, PR template, CODEOWNERS, and contributor guide.
23
+
24
+ ## Not Included
25
+
26
+ - Hosted execution.
27
+ - Timer schedules or overnight automation.
28
+ - Production OpenAI API or Anthropic API provider adapters.
29
+ - A polished web dashboard or macOS app.
30
+ - Automatic native Codex visual rendering beyond explicit artifact/dashboard payloads.
31
+ - Public release of private run logs, browser state, local `.thehood/` directories, provider transcripts, or real customer artifacts.
32
+
33
+ ## Validation Gate
34
+
35
+ The release audit should pass:
36
+
37
+ ```bash
38
+ npm ci
39
+ npm run release:check
40
+ npm_config_cache=/private/tmp/thehood-npm-cache npm pack --dry-run --json
41
+ git --no-pager diff --check
42
+ ```
43
+
44
+ The release audit should also inspect package contents and GitHub repository settings before publishing.
45
+
46
+ ## Publish Boundary
47
+
48
+ Publishing must happen through npm Trusted Publishing from the tag-triggered workflow. Do not publish locally, do not add npm tokens to the repo, and do not tag the release until README, docs, package contents, and CI evidence agree.
@@ -0,0 +1,25 @@
1
+ # Stub Demo
2
+
3
+ This example is the public-preview demo path for TheHood.
4
+
5
+ It runs a bounded goal loop against a temporary synthetic repository using only the deterministic `stub` provider. It does not call external models, browser providers, API providers, or connector tools.
6
+
7
+ From the repository root:
8
+
9
+ ```bash
10
+ npm run build
11
+ DEMO_REPO="$(mktemp -d)"
12
+ node dist/cli/main.js init --repo "$DEMO_REPO"
13
+ node dist/cli/main.js approvals policy set mode autopilot --repo "$DEMO_REPO"
14
+ cat > "$DEMO_REPO/package.json" <<'JSON'
15
+ {
16
+ "scripts": {
17
+ "typecheck": "node -e \"process.stdout.write('demo validation ok\\n')\""
18
+ }
19
+ }
20
+ JSON
21
+ node dist/cli/main.js goal "Synthetic demo: prove a governed local loop can complete" --repo "$DEMO_REPO" --orchestrator stub:orchestrator --implementer stub:implementer --qa stub:qa --verifier stub:verifier --critic stub:critic --max-iterations 5 --json
22
+ node dist/cli/main.js status --repo "$DEMO_REPO"
23
+ ```
24
+
25
+ See [docs/DEMO.md](../../docs/DEMO.md) for the demo boundary and expected evidence.
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "thehood",
3
+ "version": "0.1.0-preview.0",
4
+ "description": "A local, provider-neutral runtime for governed software agent loops.",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/lemberalla/the-hood.git"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/lemberalla/the-hood/issues"
12
+ },
13
+ "homepage": "https://github.com/lemberalla/the-hood#readme",
14
+ "bin": {
15
+ "thehood": "dist/cli/main.js",
16
+ "thehood-chatgpt-web-bridge": "dist/bridges/chatgptWebBridge.js"
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "README.md",
21
+ "LICENSE",
22
+ "PRIVACY.md",
23
+ "docs",
24
+ "examples",
25
+ "SECURITY.md",
26
+ "CONTRIBUTING.md",
27
+ "CODE_OF_CONDUCT.md"
28
+ ],
29
+ "scripts": {
30
+ "build": "tsc -p tsconfig.json && node scripts/prepare-bin.mjs",
31
+ "typecheck": "tsc -p tsconfig.json --noEmit",
32
+ "test": "npm run typecheck && npm run build && npm run smoke:mcp && npm run smoke:codex-config && npm run smoke:runtime",
33
+ "release:check": "npm test && npm run pack:check && git --no-pager diff --check",
34
+ "pack:check": "node scripts/verify-pack-manifest.mjs",
35
+ "smoke:codex-config": "node scripts/smoke-codex-config.mjs",
36
+ "smoke:mcp": "node scripts/smoke-mcp.mjs",
37
+ "smoke:runtime": "node scripts/smoke-runtime.mjs",
38
+ "clean": "rm -rf dist"
39
+ },
40
+ "engines": {
41
+ "node": ">=22.0.0"
42
+ },
43
+ "keywords": [
44
+ "agents",
45
+ "mcp",
46
+ "codex",
47
+ "orchestration",
48
+ "runtime"
49
+ ],
50
+ "license": "MIT",
51
+ "devDependencies": {
52
+ "@types/node": "^24.0.0",
53
+ "typescript": "^5.8.3"
54
+ }
55
+ }