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.
- package/CODE_OF_CONDUCT.md +21 -0
- package/CONTRIBUTING.md +58 -0
- package/LICENSE +21 -0
- package/PRIVACY.md +49 -0
- package/README.md +264 -0
- package/SECURITY.md +31 -0
- package/dist/bridges/chatgptWebBridge.d.ts +2 -0
- package/dist/bridges/chatgptWebBridge.js +981 -0
- package/dist/bridges/chatgptWebBridge.js.map +1 -0
- package/dist/cli/args.d.ts +9 -0
- package/dist/cli/args.js +82 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/format.d.ts +56 -0
- package/dist/cli/format.js +752 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.js +996 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/mcpConfig.d.ts +36 -0
- package/dist/cli/mcpConfig.js +98 -0
- package/dist/cli/mcpConfig.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/protocol.d.ts +44 -0
- package/dist/mcp/protocol.js +33 -0
- package/dist/mcp/protocol.js.map +1 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +106 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +10 -0
- package/dist/mcp/tools.js +2200 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/validation.d.ts +8 -0
- package/dist/mcp/validation.js +67 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/providers/chatgptWeb.d.ts +2 -0
- package/dist/providers/chatgptWeb.js +26 -0
- package/dist/providers/chatgptWeb.js.map +1 -0
- package/dist/providers/claudeCode.d.ts +4 -0
- package/dist/providers/claudeCode.js +32 -0
- package/dist/providers/claudeCode.js.map +1 -0
- package/dist/providers/codexCli.d.ts +6 -0
- package/dist/providers/codexCli.js +25 -0
- package/dist/providers/codexCli.js.map +1 -0
- package/dist/providers/codexCliModels.d.ts +23 -0
- package/dist/providers/codexCliModels.js +147 -0
- package/dist/providers/codexCliModels.js.map +1 -0
- package/dist/providers/localCommand.d.ts +26 -0
- package/dist/providers/localCommand.js +614 -0
- package/dist/providers/localCommand.js.map +1 -0
- package/dist/providers/markdownPayload.d.ts +7 -0
- package/dist/providers/markdownPayload.js +29 -0
- package/dist/providers/markdownPayload.js.map +1 -0
- package/dist/providers/responseSchema.d.ts +3 -0
- package/dist/providers/responseSchema.js +187 -0
- package/dist/providers/responseSchema.js.map +1 -0
- package/dist/providers/router.d.ts +3 -0
- package/dist/providers/router.js +21 -0
- package/dist/providers/router.js.map +1 -0
- package/dist/providers/stub.d.ts +2 -0
- package/dist/providers/stub.js +177 -0
- package/dist/providers/stub.js.map +1 -0
- package/dist/providers/types.d.ts +37 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/runtime/agentBoard.d.ts +79 -0
- package/dist/runtime/agentBoard.js +166 -0
- package/dist/runtime/agentBoard.js.map +1 -0
- package/dist/runtime/agentBoardArtifact.d.ts +9 -0
- package/dist/runtime/agentBoardArtifact.js +171 -0
- package/dist/runtime/agentBoardArtifact.js.map +1 -0
- package/dist/runtime/agentRunner.d.ts +17 -0
- package/dist/runtime/agentRunner.js +92 -0
- package/dist/runtime/agentRunner.js.map +1 -0
- package/dist/runtime/approvalInbox.d.ts +54 -0
- package/dist/runtime/approvalInbox.js +143 -0
- package/dist/runtime/approvalInbox.js.map +1 -0
- package/dist/runtime/approvalPolicy.d.ts +11 -0
- package/dist/runtime/approvalPolicy.js +58 -0
- package/dist/runtime/approvalPolicy.js.map +1 -0
- package/dist/runtime/artifacts.d.ts +23 -0
- package/dist/runtime/artifacts.js +48 -0
- package/dist/runtime/artifacts.js.map +1 -0
- package/dist/runtime/browserManager.d.ts +37 -0
- package/dist/runtime/browserManager.js +356 -0
- package/dist/runtime/browserManager.js.map +1 -0
- package/dist/runtime/canonicalMemory.d.ts +23 -0
- package/dist/runtime/canonicalMemory.js +134 -0
- package/dist/runtime/canonicalMemory.js.map +1 -0
- package/dist/runtime/chatGptPageReadiness.d.ts +16 -0
- package/dist/runtime/chatGptPageReadiness.js +74 -0
- package/dist/runtime/chatGptPageReadiness.js.map +1 -0
- package/dist/runtime/commandRunner.d.ts +18 -0
- package/dist/runtime/commandRunner.js +115 -0
- package/dist/runtime/commandRunner.js.map +1 -0
- package/dist/runtime/commandSafety.d.ts +7 -0
- package/dist/runtime/commandSafety.js +61 -0
- package/dist/runtime/commandSafety.js.map +1 -0
- package/dist/runtime/config.d.ts +10 -0
- package/dist/runtime/config.js +107 -0
- package/dist/runtime/config.js.map +1 -0
- package/dist/runtime/crewLanes.d.ts +2 -0
- package/dist/runtime/crewLanes.js +123 -0
- package/dist/runtime/crewLanes.js.map +1 -0
- package/dist/runtime/criticPolicy.d.ts +17 -0
- package/dist/runtime/criticPolicy.js +50 -0
- package/dist/runtime/criticPolicy.js.map +1 -0
- package/dist/runtime/defaults.d.ts +5 -0
- package/dist/runtime/defaults.js +100 -0
- package/dist/runtime/defaults.js.map +1 -0
- package/dist/runtime/directives.d.ts +3 -0
- package/dist/runtime/directives.js +218 -0
- package/dist/runtime/directives.js.map +1 -0
- package/dist/runtime/doctor.d.ts +36 -0
- package/dist/runtime/doctor.js +185 -0
- package/dist/runtime/doctor.js.map +1 -0
- package/dist/runtime/errors.d.ts +20 -0
- package/dist/runtime/errors.js +41 -0
- package/dist/runtime/errors.js.map +1 -0
- package/dist/runtime/externalTransfer.d.ts +20 -0
- package/dist/runtime/externalTransfer.js +156 -0
- package/dist/runtime/externalTransfer.js.map +1 -0
- package/dist/runtime/fanout.d.ts +64 -0
- package/dist/runtime/fanout.js +263 -0
- package/dist/runtime/fanout.js.map +1 -0
- package/dist/runtime/gitEvidence.d.ts +10 -0
- package/dist/runtime/gitEvidence.js +80 -0
- package/dist/runtime/gitEvidence.js.map +1 -0
- package/dist/runtime/handoffs.d.ts +32 -0
- package/dist/runtime/handoffs.js +100 -0
- package/dist/runtime/handoffs.js.map +1 -0
- package/dist/runtime/ids.d.ts +2 -0
- package/dist/runtime/ids.js +4 -0
- package/dist/runtime/ids.js.map +1 -0
- package/dist/runtime/localStateIgnore.d.ts +9 -0
- package/dist/runtime/localStateIgnore.js +98 -0
- package/dist/runtime/localStateIgnore.js.map +1 -0
- package/dist/runtime/loop.d.ts +14 -0
- package/dist/runtime/loop.js +1863 -0
- package/dist/runtime/loop.js.map +1 -0
- package/dist/runtime/loopRecommendation.d.ts +109 -0
- package/dist/runtime/loopRecommendation.js +566 -0
- package/dist/runtime/loopRecommendation.js.map +1 -0
- package/dist/runtime/loopResponsibilities.d.ts +2 -0
- package/dist/runtime/loopResponsibilities.js +395 -0
- package/dist/runtime/loopResponsibilities.js.map +1 -0
- package/dist/runtime/loopRunner.d.ts +28 -0
- package/dist/runtime/loopRunner.js +81 -0
- package/dist/runtime/loopRunner.js.map +1 -0
- package/dist/runtime/operatorNextActions.d.ts +2 -0
- package/dist/runtime/operatorNextActions.js +344 -0
- package/dist/runtime/operatorNextActions.js.map +1 -0
- package/dist/runtime/paths.d.ts +9 -0
- package/dist/runtime/paths.js +14 -0
- package/dist/runtime/paths.js.map +1 -0
- package/dist/runtime/permissions.d.ts +9 -0
- package/dist/runtime/permissions.js +73 -0
- package/dist/runtime/permissions.js.map +1 -0
- package/dist/runtime/progressPacket.d.ts +12 -0
- package/dist/runtime/progressPacket.js +512 -0
- package/dist/runtime/progressPacket.js.map +1 -0
- package/dist/runtime/protectedPaths.d.ts +6 -0
- package/dist/runtime/protectedPaths.js +48 -0
- package/dist/runtime/protectedPaths.js.map +1 -0
- package/dist/runtime/providers.d.ts +13 -0
- package/dist/runtime/providers.js +60 -0
- package/dist/runtime/providers.js.map +1 -0
- package/dist/runtime/reconciliation.d.ts +17 -0
- package/dist/runtime/reconciliation.js +283 -0
- package/dist/runtime/reconciliation.js.map +1 -0
- package/dist/runtime/redaction.d.ts +1 -0
- package/dist/runtime/redaction.js +5 -0
- package/dist/runtime/redaction.js.map +1 -0
- package/dist/runtime/remoteRepoContext.d.ts +77 -0
- package/dist/runtime/remoteRepoContext.js +316 -0
- package/dist/runtime/remoteRepoContext.js.map +1 -0
- package/dist/runtime/repoContext.d.ts +50 -0
- package/dist/runtime/repoContext.js +399 -0
- package/dist/runtime/repoContext.js.map +1 -0
- package/dist/runtime/repoGateway.d.ts +64 -0
- package/dist/runtime/repoGateway.js +308 -0
- package/dist/runtime/repoGateway.js.map +1 -0
- package/dist/runtime/responseContracts.d.ts +3 -0
- package/dist/runtime/responseContracts.js +86 -0
- package/dist/runtime/responseContracts.js.map +1 -0
- package/dist/runtime/reviewLanes.d.ts +2 -0
- package/dist/runtime/reviewLanes.js +343 -0
- package/dist/runtime/reviewLanes.js.map +1 -0
- package/dist/runtime/reviewRouting.d.ts +51 -0
- package/dist/runtime/reviewRouting.js +152 -0
- package/dist/runtime/reviewRouting.js.map +1 -0
- package/dist/runtime/revisionPacket.d.ts +38 -0
- package/dist/runtime/revisionPacket.js +144 -0
- package/dist/runtime/revisionPacket.js.map +1 -0
- package/dist/runtime/revisionTrail.d.ts +2 -0
- package/dist/runtime/revisionTrail.js +162 -0
- package/dist/runtime/revisionTrail.js.map +1 -0
- package/dist/runtime/role-assignment.d.ts +4 -0
- package/dist/runtime/role-assignment.js +21 -0
- package/dist/runtime/role-assignment.js.map +1 -0
- package/dist/runtime/roleRoster.d.ts +28 -0
- package/dist/runtime/roleRoster.js +96 -0
- package/dist/runtime/roleRoster.js.map +1 -0
- package/dist/runtime/runInsights.d.ts +121 -0
- package/dist/runtime/runInsights.js +305 -0
- package/dist/runtime/runInsights.js.map +1 -0
- package/dist/runtime/runMonitor.d.ts +33 -0
- package/dist/runtime/runMonitor.js +143 -0
- package/dist/runtime/runMonitor.js.map +1 -0
- package/dist/runtime/runtime.d.ts +15 -0
- package/dist/runtime/runtime.js +199 -0
- package/dist/runtime/runtime.js.map +1 -0
- package/dist/runtime/runtimeInfo.d.ts +9 -0
- package/dist/runtime/runtimeInfo.js +76 -0
- package/dist/runtime/runtimeInfo.js.map +1 -0
- package/dist/runtime/store.d.ts +4 -0
- package/dist/runtime/store.js +48 -0
- package/dist/runtime/store.js.map +1 -0
- package/dist/runtime/summons.d.ts +25 -0
- package/dist/runtime/summons.js +403 -0
- package/dist/runtime/summons.js.map +1 -0
- package/dist/runtime/teamPresets.d.ts +14 -0
- package/dist/runtime/teamPresets.js +153 -0
- package/dist/runtime/teamPresets.js.map +1 -0
- package/dist/runtime/types.d.ts +505 -0
- package/dist/runtime/types.js +28 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/validationCommands.d.ts +18 -0
- package/dist/runtime/validationCommands.js +106 -0
- package/dist/runtime/validationCommands.js.map +1 -0
- package/dist/tui/dashboard.d.ts +41 -0
- package/dist/tui/dashboard.js +1115 -0
- package/dist/tui/dashboard.js.map +1 -0
- package/docs/ARCHITECTURE.md +277 -0
- package/docs/CLI_SPEC.md +396 -0
- package/docs/CODEX_SETUP.md +288 -0
- package/docs/COMPLETION_CONTRACT.md +52 -0
- package/docs/CONTRIBUTOR_GUIDE.md +70 -0
- package/docs/DEMO.md +62 -0
- package/docs/GLOSSARY.md +46 -0
- package/docs/GOAL_LOOP_SCHEDULE.md +50 -0
- package/docs/KNOWN_LIMITATIONS.md +29 -0
- package/docs/LICENSING.md +21 -0
- package/docs/LOOP_RECIPES.md +290 -0
- package/docs/LOOP_SELECTION_UX.md +118 -0
- package/docs/MCP_SPEC.md +689 -0
- package/docs/MEMORY_AND_RECONCILIATION.md +222 -0
- package/docs/NPM_PUBLISHING.md +51 -0
- package/docs/OPEN_DECISIONS.md +81 -0
- package/docs/PROMPT_SCHEMAS.md +411 -0
- package/docs/PROVIDER_ADAPTERS.md +323 -0
- package/docs/PROVIDER_MATRIX.md +21 -0
- package/docs/PUBLIC_REPO_READINESS.md +49 -0
- package/docs/RESEARCH_NOTES.md +92 -0
- package/docs/ROADMAP.md +94 -0
- package/docs/ROLE_CONTRACTS.md +252 -0
- package/docs/RUNTIME_LOOP.md +240 -0
- package/docs/SECURITY_AND_PRIVACY.md +161 -0
- package/docs/TESTING_AND_VERIFICATION.md +180 -0
- package/docs/TRUST_MODEL.md +65 -0
- package/docs/decisions/0001-runtime-first-cli-and-mcp.md +23 -0
- package/docs/decisions/0002-provider-neutral-role-mapping.md +43 -0
- package/docs/decisions/0003-separate-implementation-and-verification.md +27 -0
- package/docs/product/README.md +14 -0
- package/docs/product/model-selection.md +88 -0
- package/docs/product/positioning.md +37 -0
- package/docs/product/pro-usage-modes.md +70 -0
- package/docs/product/roadmap.md +57 -0
- package/docs/product/role-policy.md +89 -0
- package/docs/product/runtime-invariants.md +44 -0
- package/docs/release/v0.1.0-preview.0.md +48 -0
- package/examples/stub-demo/README.md +25 -0
- 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
|
+
}
|