Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
279 commits
Select commit Hold shift + click to select a range
3e2f1be
docs(agent): skill install leaves with Release B, not a separate stage
gewenyu99 Sep 22, 2026
c620d09
docs(agent): group the entry exports by when they leave
gewenyu99 Sep 22, 2026
889af71
test(agent): cover public prompt streaming entry
gewenyu99 Sep 22, 2026
3ae7846
refactor(programs): move program surface and TUI decks
gewenyu99 Sep 22, 2026
963403d
refactor(skills): separate download files from agent scan
gewenyu99 Sep 22, 2026
9fc46f1
fix(agent): scan project skills before SDK load
gewenyu99 Sep 22, 2026
36f3805
refactor(programs): project agent progress into invocation state
gewenyu99 Sep 22, 2026
111ffba
refactor(programs): add explicit inference credentials providers
gewenyu99 Sep 22, 2026
077cec5
refactor(programs): own binding policy and experiment selection
gewenyu99 Sep 22, 2026
accaeec
fix: clean run-installed skills on failed Wizard exits
gewenyu99 Sep 22, 2026
a24cc40
refactor(programs): resolve dynamic runs from explicit data
gewenyu99 Sep 22, 2026
fb8b36f
feat: run no-agent programs headlessly
gewenyu99 Sep 22, 2026
128c5cf
refactor(programs): resolve dynamic integration recipes from data
gewenyu99 Sep 22, 2026
24a140e
feat(programs): retain invocation data and settled run ledger
gewenyu99 Sep 22, 2026
2fbbdcc
refactor(agent): use caller inference auth in both harnesses
gewenyu99 Sep 22, 2026
36295c9
feat(programs): add callable runProgram host
gewenyu99 Sep 22, 2026
b9b978f
refactor(programs): load callable program config without TUI
gewenyu99 Sep 22, 2026
e9360b6
feat(programs): compose runs and expose invocation outcomes
gewenyu99 Sep 22, 2026
28411b6
refactor(programs): route legacy agent runs through callable host
gewenyu99 Sep 22, 2026
80785b1
feat(agent): propagate host cancellation through active runs
gewenyu99 Sep 22, 2026
33e55dd
feat(programs): honor host cancellation before and during runs
gewenyu99 Sep 22, 2026
565742a
refactor(programs): keep callable host runtime closure headless
gewenyu99 Sep 22, 2026
e334fe9
refactor(programs): finish callable host lifecycle and cleanup
gewenyu99 Sep 22, 2026
2f959db
test(tui): capture status changes and final flow result
gewenyu99 Sep 22, 2026
d53491b
test(programs): preserve gate state and resolve e2e aliases
gewenyu99 Sep 22, 2026
acc5824
docs(programs): add non-TUI developer API reference
gewenyu99 Sep 22, 2026
c15f629
test(e2e): run live TUI parity on temporary app copies
gewenyu99 Sep 22, 2026
49f75e6
refactor(programs): own gateway authentication outside agent
gewenyu99 Sep 22, 2026
e947ed0
chore(programs): sync B3 with gateway-owned B2
gewenyu99 Sep 22, 2026
ccea2e7
refactor(programs): cut deck and task-stream UI dependencies
gewenyu99 Sep 22, 2026
e7b88ef
chore(docs): sync API reference with B3 implementation
gewenyu99 Sep 22, 2026
2902f31
docs(programs): require caller-owned inference authentication
gewenyu99 Sep 22, 2026
f585791
refactor(programs): narrow legacy session dependencies
gewenyu99 Sep 22, 2026
220c846
refactor(programs): cut CLI dispatch and option imports
gewenyu99 Sep 22, 2026
a0046d1
refactor(programs): move framework labels behind config boundary
gewenyu99 Sep 22, 2026
835ed29
test(tui): isolate handoff keyboard parity from GitHub polling
gewenyu99 Sep 22, 2026
9157001
refactor(programs): narrow completion and run inputs
gewenyu99 Sep 22, 2026
81233fc
refactor(programs): pass authentication UI projection explicitly
gewenyu99 Sep 22, 2026
5377d83
refactor(programs): project live completion context at hook time
gewenyu99 Sep 22, 2026
241d3d4
refactor(programs): pass detection inputs and progress explicitly
gewenyu99 Sep 22, 2026
96f8ad6
refactor(ui): expose agent progress bridge at UI entry
gewenyu99 Sep 22, 2026
890cb02
refactor(programs): declare composed child runs by id
gewenyu99 Sep 22, 2026
cd2b9b3
fix(ui): consolidate progress bridge exports
gewenyu99 Sep 22, 2026
e5f9c8f
refactor(programs): narrow auth and warehouse inputs
gewenyu99 Sep 22, 2026
9a75ea4
refactor(programs): define explicit host capabilities
gewenyu99 Sep 22, 2026
d162457
refactor(programs): inject UI effects into project and symbol flows
gewenyu99 Sep 22, 2026
654951d
refactor(runners): move legacy program host out of programs
gewenyu99 Sep 22, 2026
b9cbbaa
docs: point legacy runner references to host adapter
gewenyu99 Sep 22, 2026
7a1dca2
refactor(programs): pass feature effects through host capabilities
gewenyu99 Sep 22, 2026
14c79b9
fix(programs): preserve host callback receivers
gewenyu99 Sep 22, 2026
9f76b5e
Merge branch 'posthog/functional-b3-parity' into posthog/functional-b…
gewenyu99 Sep 22, 2026
630c05e
test(programs): assert forwarded host callbacks
gewenyu99 Sep 22, 2026
161d366
Merge branch 'posthog/functional-b3-parity' into posthog/functional-b…
gewenyu99 Sep 22, 2026
c27c03b
refactor(steps): delete uncalled steps and legacy shims
gewenyu99 Sep 22, 2026
31b7239
refactor(tui): move the TUI tree to src/tui
gewenyu99 Sep 22, 2026
8913a7b
refactor(headless): move the logging renderers to src/headless
gewenyu99 Sep 22, 2026
0289320
refactor(cli): move commands, runners and the wizard entry to src/cli
gewenyu99 Sep 22, 2026
d9bedd5
refactor(programs): upload hosting env vars from posthog-integration
gewenyu99 Sep 22, 2026
f80b83f
docs: point documentation at the src/tui, src/headless and src/cli paths
gewenyu99 Sep 22, 2026
2aee250
fix(agent): propagate terminal failures and cancel sibling work
gewenyu99 Sep 23, 2026
855bcfd
Clarify callable Wizard API contracts
gewenyu99 Sep 23, 2026
1a040d0
Propagate agentic detection failures
gewenyu99 Sep 23, 2026
1443587
test(agent): probe terminal SDK fault propagation
gewenyu99 Sep 23, 2026
4f1940d
Fix program ownership and architecture boundaries
gewenyu99 Sep 23, 2026
429576f
Merge A3 review fixes into B1
gewenyu99 Sep 23, 2026
4f519e8
Merge A3 and B1 review fixes into B2
gewenyu99 Sep 23, 2026
0947e09
fix callable program host boundaries
gewenyu99 Sep 23, 2026
3fedc93
fix: cover run decks and audit runner bridge
gewenyu99 Sep 23, 2026
72d3aff
Merge B2 callable host review fixes
gewenyu99 Sep 23, 2026
4fcdb1f
fix: secure project skill preflight and run cleanup
gewenyu99 Sep 23, 2026
86698e8
Merge B3 TUI review fixes
gewenyu99 Sep 23, 2026
f8fe062
Merge B2 skill security review fixes
gewenyu99 Sep 23, 2026
5e3a0cf
Keep skill cleanup outside UI abort closure
gewenyu99 Sep 23, 2026
0c54a24
Exercise registered cleanup through its runtime path
gewenyu99 Sep 23, 2026
aba2628
docs(agent): clarify B4 result and error ownership
gewenyu99 Sep 23, 2026
3dabc73
Merge A3 through B2 review fixes into B3
gewenyu99 Sep 23, 2026
1c989f1
Fix and typecheck live e2e host and harness
gewenyu99 Sep 23, 2026
ba12c43
Merge B3 live harness review fixes
gewenyu99 Sep 23, 2026
a5aee85
docs: remove ownership rows for deleted deck wrappers
gewenyu99 Sep 23, 2026
634bade
Merge reviewed A3 through B3 stack into B4
gewenyu99 Sep 23, 2026
47c22b1
test: expect deferred skill cleanup in composed runs
gewenyu99 Sep 23, 2026
0cc620d
docs: reconcile agent signal contract after stack merge
gewenyu99 Sep 23, 2026
94d3adf
Merge final B3 contract test correction
gewenyu99 Sep 23, 2026
8e630f5
fix(agent): scan project skills before load and clean failed installs
gewenyu99 Sep 23, 2026
1d40129
chore(programs): sync B1 with the A3 terminal-failure fix
gewenyu99 Sep 23, 2026
0caf084
Keep skill cleanup armed until runner success
gewenyu99 Sep 23, 2026
ee51b5d
fix(agent): harden skill preflight and disarm completed-run cleanup
gewenyu99 Sep 23, 2026
62400eb
fix: retain signal handlers through skill cleanup commit
gewenyu99 Sep 23, 2026
cc26a0a
fix: retain run skill cleanup through complete runner exit
gewenyu99 Sep 23, 2026
0777f83
fix: keep TUI signal cleanup armed through exit
gewenyu99 Sep 23, 2026
8975f7c
Merge standalone skill safety layer before callable host
gewenyu99 Sep 23, 2026
a9d63de
Merge standalone skill safety and final runner cleanup into B3
gewenyu99 Sep 23, 2026
ec58776
Merge standalone skill safety and final runner cleanup into B4
gewenyu99 Sep 23, 2026
abb544d
Merge remote-tracking branch 'origin/posthog/functional-b4-api-refere…
gewenyu99 Sep 23, 2026
42a506a
chore(programs): sync B2 with the A3 terminal-failure fix
gewenyu99 Sep 23, 2026
c5b107f
Merge latest B4 error ownership docs
gewenyu99 Sep 23, 2026
ade12f5
Align runner comment with scan flush contract
gewenyu99 Sep 23, 2026
eee6d58
test(e2e): replace the jest suite with three surface e2e routes
gewenyu99 Sep 23, 2026
8325ad3
Merge latest A3 agent outcomes into B1 review fixes
gewenyu99 Sep 23, 2026
e190a92
chore(programs): sync B3 with B2 and the A3 terminal-failure fix
gewenyu99 Sep 23, 2026
1acd24b
chore(e2e): bring the surface e2e routes into B3
gewenyu99 Sep 23, 2026
161e20f
Merge updated A3 outcomes into skill safety layer
gewenyu99 Sep 23, 2026
2a11a07
chore(programs): sync B4 with B3, the A3 fix and the e2e routes
gewenyu99 Sep 23, 2026
9ec6760
chore: sync C1 with the restacked B stack
gewenyu99 Sep 23, 2026
249a2a3
docs: align agent observer contract with A3
gewenyu99 Sep 23, 2026
c2b9346
Merge updated A3 outcomes and skill scan into B2 callable host
gewenyu99 Sep 23, 2026
a845d1f
docs: align B4 contracts with A3 terminal outcomes
gewenyu99 Sep 23, 2026
3acd86f
Merge updated agent outcomes and skill safety into B3
gewenyu99 Sep 23, 2026
74dcd99
Merge updated B3 agent contracts into B4
gewenyu99 Sep 23, 2026
7068bd3
style(agent): format orchestrator error import
gewenyu99 Sep 23, 2026
99737e6
Merge B1 lint correction into skill safety layer
gewenyu99 Sep 23, 2026
31623cb
Merge B1 formatting follow-up through skill safety layer
gewenyu99 Sep 23, 2026
8392b2e
Merge updated B2 ancestry into B3
gewenyu99 Sep 23, 2026
fa7f08b
Merge final B3 ancestry into B4
gewenyu99 Sep 23, 2026
8ba069a
chore(programs): merge the remote B1 review fixes into the restacked B1
gewenyu99 Sep 23, 2026
4d1367f
chore(programs): join the restacked B2 with the remote B2 review fixes
gewenyu99 Sep 23, 2026
2449b58
chore(programs): bring the joined B1 into B2
gewenyu99 Sep 23, 2026
45b133e
chore(e2e): join the restacked B3 with the remote B3 review fixes
gewenyu99 Sep 23, 2026
3e9aa97
chore(programs): bring the joined B2 into B3
gewenyu99 Sep 23, 2026
d99a266
chore(docs): join the restacked B4 with the remote B4
gewenyu99 Sep 23, 2026
42c71bf
chore(docs): bring the joined B3, with the surface e2e routes, into B4
gewenyu99 Sep 23, 2026
9fb8fb7
chore: sync C1 with the joined B stack
gewenyu99 Sep 23, 2026
cc78e9f
Merge main into posthog/functional-a1-min
gewenyu99 Sep 23, 2026
690bdc0
fix(agent): give each ask its own cancel signal and leave analytics s…
gewenyu99 Sep 23, 2026
0cf68a2
Merge posthog/functional-a1-min into posthog/functional-a2a-edges
gewenyu99 Sep 23, 2026
ec048f7
Merge posthog/functional-a2a-edges into workbench/wizard-functional-a2b
gewenyu99 Sep 23, 2026
da08b1c
Merge workbench/wizard-functional-a2b into posthog/functional-a3-entries
gewenyu99 Sep 23, 2026
c84b5de
fix(programs): keep a successful run successful when its analytics fl…
gewenyu99 Sep 23, 2026
112fce5
Merge posthog/functional-a1-min into posthog/functional-a2a-edges
gewenyu99 Sep 23, 2026
b4b4621
Merge posthog/functional-a2a-edges into workbench/wizard-functional-a2b
gewenyu99 Sep 23, 2026
62c4387
fix(agent): label decided failures as errors and cancel open asks whe…
gewenyu99 Sep 23, 2026
200961f
Merge workbench/wizard-functional-a2b into posthog/functional-a3-entries
gewenyu99 Sep 23, 2026
beb3a04
Merge posthog/functional-a3-entries into posthog/functional-b1-pr
gewenyu99 Sep 23, 2026
0ceca0b
docs: correct stage comments, the shared README and the detection run…
gewenyu99 Sep 23, 2026
a2e50d5
chore(e2e): delete the live-app command check and explain the snapsho…
gewenyu99 Sep 23, 2026
98c3e78
docs: correct the callable program's rejection and signal notes, and …
gewenyu99 Sep 23, 2026
89364ba
Merge posthog/functional-b1-pr into posthog/functional-b-integration
gewenyu99 Sep 23, 2026
64992ed
refactor(programs): stop the adapter's step runner shadowing runProgram
gewenyu99 Sep 23, 2026
c142657
Merge posthog/functional-b-integration into posthog/functional-b3-parity
gewenyu99 Sep 23, 2026
d50ab9e
Merge posthog/functional-b3-parity into posthog/functional-b4-api-ref…
gewenyu99 Sep 23, 2026
da08062
feat(programs): pass the invocation signal to credentials and AI appr…
gewenyu99 Sep 23, 2026
cb6d336
feat(programs): send program-data snapshots through onProgress
gewenyu99 Sep 23, 2026
0b50bae
feat(programs): share the health and settings checks as preflight
gewenyu99 Sep 23, 2026
838bfd0
feat(programs): resolve the binding with launch overrides inside runP…
gewenyu99 Sep 23, 2026
5c9796e
refactor(programs): run agentic detection through runAgent
gewenyu99 Sep 23, 2026
f3bfe2e
feat(programs): identify, stamp and refresh inside runProgram
gewenyu99 Sep 23, 2026
dcf418a
fix(lint): fence directory imports out of the agent too
gewenyu99 Sep 23, 2026
3c7dfb5
test(agent): cover the handoff, benchmark and scan-summary wiring
gewenyu99 Sep 23, 2026
b07faad
feat(programs): answer composition and post-auth pauses through a con…
gewenyu99 Sep 23, 2026
34cab6b
Merge posthog/functional-a2a-edges into workbench/wizard-functional-a2b
gewenyu99 Sep 23, 2026
f4b3417
Merge workbench/wizard-functional-a2b into posthog/functional-a3-entries
gewenyu99 Sep 23, 2026
d110d71
feat(agent): flush the scan report from runAgent and tag runs in prog…
gewenyu99 Sep 23, 2026
38f57e8
fix(agent): report the scan summary when a run is cancelled before it…
gewenyu99 Sep 23, 2026
e06fa16
Merge WP3 lane B (preflight) into posthog/functional-b-integration
gewenyu99 Sep 23, 2026
aa78a96
Merge WP3 lane C (detection through runAgent) into posthog/functional…
gewenyu99 Sep 23, 2026
17c02e4
Merge posthog/functional-b-integration into posthog/functional-b3-parity
gewenyu99 Sep 23, 2026
0d80f8d
Merge posthog/functional-a3-entries into posthog/functional-b1-pr
gewenyu99 Sep 23, 2026
ee2e72f
refactor(programs): shrink the legacy adapter to host wiring
gewenyu99 Sep 23, 2026
5bb7e18
Merge posthog/functional-b1-pr into posthog/functional-b-integration
gewenyu99 Sep 23, 2026
ea1c5f6
Merge main into posthog/functional-a1-min
gewenyu99 Sep 23, 2026
c26e22d
Merge posthog/functional-a1-min into posthog/functional-a2a-edges
gewenyu99 Sep 23, 2026
c89ad5a
Merge posthog/functional-a2a-edges into workbench/wizard-functional-a2b
gewenyu99 Sep 23, 2026
9eb5375
Merge workbench/wizard-functional-a2b into posthog/functional-a3-entries
gewenyu99 Sep 23, 2026
91bc9b5
Merge main into posthog/functional-a1-min
gewenyu99 Sep 23, 2026
d81afb9
Merge posthog/functional-a1-min into posthog/functional-a2a-edges
gewenyu99 Sep 23, 2026
ae7d08a
Merge posthog/functional-a2a-edges into workbench/wizard-functional-a2b
gewenyu99 Sep 23, 2026
bfe4c8e
Merge workbench/wizard-functional-a2b into posthog/functional-a3-entries
gewenyu99 Sep 23, 2026
8ec5235
refactor(programs): watch each program file once, in runProgram
gewenyu99 Sep 23, 2026
df329b6
feat(programs): read live completion URLs and snapshot program input
gewenyu99 Sep 23, 2026
d938a43
Merge WP3 lane E (live completion reads) into posthog/functional-b-in…
gewenyu99 Sep 23, 2026
43a369e
refactor(programs): keep one skill-cleanup handle per runProgram call
gewenyu99 Sep 23, 2026
50c2edb
refactor(agent): close the entry's pre-runAgent door
gewenyu99 Sep 23, 2026
e5bc2b8
perf(agent): keep the runner out of the startup closure
gewenyu99 Sep 23, 2026
62cb971
docs: name the default agent binding correctly in AGENTS.md
gewenyu99 Sep 23, 2026
fbddbb2
Merge posthog/functional-b-integration into posthog/functional-b3-parity
gewenyu99 Sep 23, 2026
632b881
Merge posthog/functional-b3-parity into posthog/functional-b4-api-ref…
gewenyu99 Sep 23, 2026
a4919dc
docs(programs): add the programs reference for the current contracts
gewenyu99 Sep 23, 2026
133571e
Merge posthog/functional-b3-parity into posthog/functional-b4-api-ref…
gewenyu99 Sep 23, 2026
ba93d81
docs: describe the post-WP3 agent and program contracts
gewenyu99 Sep 23, 2026
446562f
Merge posthog/functional-a3-entries into posthog/functional-b1-pr
gewenyu99 Sep 24, 2026
edbf1f9
docs(shared): analytics reads the session until C2a
gewenyu99 Sep 24, 2026
07d4f16
Merge posthog/functional-b1-pr into posthog/functional-b-integration
gewenyu99 Sep 24, 2026
7f8f045
refactor(shared): move cleanup, scan consent, run tags and ask policy…
gewenyu99 Sep 24, 2026
57f1a82
refactor(shared): move the OAuth token helpers into oauth-token
gewenyu99 Sep 24, 2026
acecf6b
refactor(shared): move the gateway bearer type and checks into gatewa…
gewenyu99 Sep 24, 2026
1eb4fe5
refactor(shared): move the JSON file watcher into shared
gewenyu99 Sep 24, 2026
0eb5f73
refactor(shared): move the self-driving pricing copy into shared
gewenyu99 Sep 24, 2026
aed5499
refactor(agent): move the wizard-tools names into tool-names
gewenyu99 Sep 24, 2026
3215137
refactor(programs): move program run data into run and abort-case mod…
gewenyu99 Sep 24, 2026
6b60093
Merge main into posthog/functional-b1-pr
gewenyu99 Sep 24, 2026
bd2657e
Merge posthog/functional-b1-pr into posthog/functional-b-integration
gewenyu99 Sep 24, 2026
9fea057
Merge posthog/functional-b1-pr into posthog/functional-b2-move
gewenyu99 Sep 24, 2026
9044670
chore(e2e): move the headless program and agent routes to the workbench
gewenyu99 Sep 24, 2026
bf9c7c6
refactor(agent): delete project-skill scan at load
gewenyu99 Sep 24, 2026
cec8176
refactor(agent): leave the case-insensitive skill glob to its own PR
gewenyu99 Sep 24, 2026
4e4b693
refactor(agent): restore downloadSkill to its B1 shape
gewenyu99 Sep 24, 2026
bfa5be3
test(agent): move the A3 cancellation tests out of B2
gewenyu99 Sep 24, 2026
06e0eab
refactor(agent): one host-signal channel and no redundant abort returns
gewenyu99 Sep 24, 2026
23c56e4
test(agent): drop duplicate, private-wiring and unreachable-path tests
gewenyu99 Sep 24, 2026
3629a81
refactor(agent): slim the run contract and the harness resolver
gewenyu99 Sep 24, 2026
8c2bb29
test(architecture): one closure walker and one runProgram closure test
gewenyu99 Sep 24, 2026
4d88468
refactor(agent): revert formatting, reorder and README rewrap churn
gewenyu99 Sep 24, 2026
bca4bf2
refactor(programs): drop the test-only run-definition dispatcher
gewenyu99 Sep 24, 2026
452d5ea
refactor(programs): keep the health-check list on the runtime registry
gewenyu99 Sep 24, 2026
ffc210a
refactor(programs): use the agent's binding types and drop repeated t…
gewenyu99 Sep 24, 2026
1d6e20b
refactor(programs): drop the duplicate program-id guard and merge aut…
gewenyu99 Sep 24, 2026
2a03385
refactor(shared): delete the dead addOverride and package.json writers
gewenyu99 Sep 24, 2026
dbf087b
refactor(programs): trim the legacy adapter to one function
gewenyu99 Sep 24, 2026
b6f374f
refactor(programs): import integration effects the recipe can reach i…
gewenyu99 Sep 24, 2026
db8b743
refactor(programs): fold small per-program files and duplicate tests
gewenyu99 Sep 24, 2026
7108df5
refactor: drop the forwarding shims so moves read as renames
gewenyu99 Sep 24, 2026
d88f335
refactor(ci): keep the lazy CI bearer in the e2e host that needs it
gewenyu99 Sep 24, 2026
3f22d9c
refactor(programs): build runProgram's outcome in one place
gewenyu99 Sep 24, 2026
4fac3ea
refactor(programs): run no-agent programs through the host workflow only
gewenyu99 Sep 24, 2026
11ced24
refactor(programs): keep ProgramStore to the data runProgram reads
gewenyu99 Sep 24, 2026
8ae91e6
refactor(programs): one pre-agent try in runProgram
gewenyu99 Sep 24, 2026
280804a
test(programs): one runProgram test per behavior
gewenyu99 Sep 24, 2026
4721d12
refactor(programs): one type re-export block per module, no test-only…
gewenyu99 Sep 24, 2026
4cde604
test(programs): key the runProgram host tables by capability
gewenyu99 Sep 24, 2026
d953e8c
refactor(skills): match skill-run cleanup to the fix PR off main
gewenyu99 Sep 24, 2026
7995240
Merge posthog/functional-b2-move into posthog/functional-b-integration
gewenyu99 Sep 24, 2026
71d813d
docs(programs): drop formatting-only churn in the self-driving archit…
gewenyu99 Sep 24, 2026
44e52fc
test(programs): keep one runProgram test per contract
gewenyu99 Sep 24, 2026
d4bcaf5
test(programs): trim the legacy adapter's host-wiring tests
gewenyu99 Sep 24, 2026
550f066
test(programs): trim the watcher, store, preflight and run-definition…
gewenyu99 Sep 24, 2026
77c6712
test(detection): check the deferred scan report on the runAgent call
gewenyu99 Sep 24, 2026
af5c8da
Merge posthog/functional-b-integration into posthog/functional-b3-parity
gewenyu99 Sep 24, 2026
c3edf8e
Merge posthog/functional-b3-parity into posthog/functional-b4-api-ref…
gewenyu99 Sep 24, 2026
4b14d0b
Merge posthog/functional-b4-api-reference into posthog/functional-c1-…
gewenyu99 Sep 24, 2026
f9d2dad
refactor(programs): run the health and settings gates in the adapter …
gewenyu99 Sep 24, 2026
793a34f
refactor(programs): own binding policy and experiment selection
gewenyu99 Sep 24, 2026
a3cff67
refactor(programs): run the caller's run definition and program settings
gewenyu99 Sep 24, 2026
09c681b
refactor(agent): move the harness resolver into resolve-harness
gewenyu99 Sep 24, 2026
dbc41fe
refactor(programs): restore the per-program files and the task stream
gewenyu99 Sep 24, 2026
ef5ee43
refactor(programs): move the sequence precedence into binding
gewenyu99 Sep 24, 2026
1988473
refactor(shared): restore gateway-auth and scan-consent to the base
gewenyu99 Sep 24, 2026
7e0aac3
test(programs): fold the signal and skill-commit checks into their co…
gewenyu99 Sep 24, 2026
d7a895a
Merge posthog/functional-b2-move into posthog/functional-b-integration
gewenyu99 Sep 24, 2026
50fe9e4
Merge posthog/functional-b-integration into posthog/functional-b3-parity
gewenyu99 Sep 24, 2026
dd37610
Merge posthog/functional-b3-parity into posthog/functional-b4-api-ref…
gewenyu99 Sep 24, 2026
49d53ea
docs: describe the caller-built program run and the host-owned gates
gewenyu99 Sep 24, 2026
9c432df
Merge posthog/functional-b4-api-reference into posthog/functional-c1-…
gewenyu99 Sep 24, 2026
bc7101a
refactor(runners): move the legacy program adapter into runners
gewenyu99 Sep 24, 2026
663861c
Merge posthog/functional-b1-pr into posthog/functional-b-integration
gewenyu99 Sep 24, 2026
862b007
refactor(programs): reduce B2 to the runProgram surface shell
gewenyu99 Sep 24, 2026
746c704
Merge posthog/functional-b-integration into posthog/functional-b3-parity
gewenyu99 Sep 24, 2026
b6e02f4
docs: return the B3 doc changes to their B2 versions for B4
gewenyu99 Sep 24, 2026
23a1edf
Merge posthog/functional-b3-parity into posthog/functional-b4-api-ref…
gewenyu99 Sep 24, 2026
ec7953a
Merge posthog/functional-b4-api-reference into posthog/functional-c1-…
gewenyu99 Sep 24, 2026
ea1e28d
refactor: C1 move-only — rebuild on main with every move
gewenyu99 Sep 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 9 additions & 9 deletions .claude/skills/adding-skill-program/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ them.
`cliEntries`. A new skill-backed child of an existing family ships through
context-mill; inspect
[family dispatch](../../../src/programs/dispatch-family.ts). Unpromoted
skills run through [the skill command](../../../src/commands/skill.ts).
skills run through [the skill command](../../../src/cli/commands/skill.ts).
- **Native program:** use a
[ProgramConfig](../../../src/programs/program-step.ts) when the wizard
needs its own flow, screens, detection, composition, or other native behavior.
Expand Down Expand Up @@ -66,7 +66,7 @@ changing execution behavior.
[Existing binding checks](../../../src/agent/runner/__tests__/switchboard.test.ts)
enforce coverage; `ProgramId` currently widens to `string`.
4. For a standalone native command, create a command module with
[nativeCommandFactory](../../../src/commands/factories/native-command-factory.ts)
[nativeCommandFactory](../../../src/cli/commands/factories/native-command-factory.ts)
and register it in [bin.ts](../../../bin.ts). A native family child uses the
handlers in family dispatch. Program registration derives screen sequences
and store lookup, not the top-level CLI `.use()` chain.
Expand All @@ -82,7 +82,7 @@ or changing gateway-required prompt material.
## Simple linear programs and existing flows

For a very simple linear flow, use
[createSkillProgram](../../../src/programs/agent-skill/index.ts) to
[createSkillProgram](../../../src/programs/shared/skill-program.ts) to
configure installation of one skill. Register the native program as above with
an explicit Pi/linear binding; the factory does not select a sequence. Read
`SkillProgramOptions` for required fields;
Expand All @@ -102,21 +102,21 @@ does not preserve these behaviors automatically.

## Screens, prerequisites, and composition

Reuse [AGENT_SKILL_STEPS](../../../src/programs/agent-skill/steps.ts):
Reuse [AGENT_SKILL_STEPS](../../../src/programs/shared/skill-steps.ts):
intro, health check, auth, run, outro, and keep-skills. Auth also applies the
shared [AI opt-in gate](../../../src/programs/ai-opt-in-gate.ts) for agent
programs. Override `screenId`, not `screen`, when adapting a step. New screens
need an entry in [ScreenId](../../../src/ui/tui/screen-sequences.ts), a
need an entry in [ScreenId](../../../src/tui/screen-sequences.ts), a
component, and registration in
[screen-registry](../../../src/ui/tui/screen-registry.tsx). Follow
[screen-registry](../../../src/tui/screen-registry.tsx). Follow
[ink-tui](../ink-tui/SKILL.md) for rendering and store usage.

Use a headless step's `onReady` for session-dependent detection, then render
structured `frameworkContext.detectError` data in the intro. `onInit` runs when
the TUI starts rendering with its initial session; `onReady` runs after the real
session is assigned. See [store hooks](../../../src/ui/tui/store.ts) and
[run-wizard](../../../src/lib/runners/run-wizard.ts). The
[noninteractive runner](../../../src/lib/runners/run-non-interactive.ts) also
session is assigned. See [store hooks](../../../src/tui/store.ts) and
[run-wizard](../../../src/cli/runners/run-wizard.ts). The
[noninteractive runner](../../../src/cli/runners/run-non-interactive.ts) also
walks `onReady` by default; set `ciPreRun` only when it needs a different
prerequisite strategy.

Expand Down
20 changes: 10 additions & 10 deletions .claude/skills/ink-tui/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ conventions rather than copying upstream component manuals.

## Add a screen

1. Create a component in [screens](../../../src/ui/tui/screens/).
1. Create a component in [screens](../../../src/tui/screens/).
2. Add its `ScreenId` in
[screen-sequences.ts](../../../src/ui/tui/screen-sequences.ts).
[screen-sequences.ts](../../../src/tui/screen-sequences.ts).
3. Register the component in
[screen-registry.tsx](../../../src/ui/tui/screen-registry.tsx).
[screen-registry.tsx](../../../src/tui/screen-registry.tsx).
4. Reference it through `screenId` in the owning
[program's steps](../../../src/programs/), with the appropriate
visibility, completion, and gate predicates.
Expand All @@ -51,25 +51,25 @@ service wiring depends on the screen's needs; `App` remains the shared shell.

Business logic calls [WizardUI](../../../src/ui/wizard-ui.ts) through
[getUI](../../../src/ui/index.ts). Screens use
[WizardStore](../../../src/ui/tui/store.ts) setters for reactive changes. The
[WizardStore](../../../src/tui/store.ts) setters for reactive changes. The
router resolves program screens from session predicates; overlays interrupt that
resolution. Local state is appropriate for presentation details such as tab
selection, not wizard progression.

For new state, first decide whether it belongs in
[WizardSession](../../../src/lib/wizard-session.ts) or display-only store state.
Use an explicit setter that notifies subscribers. When business logic needs the
operation, extend `WizardUI`, [InkUI](../../../src/ui/tui/ink-ui.ts), and
[LoggingUI](../../../src/ui/logging-ui.ts) together. Reuse existing enums and
operation, extend `WizardUI`, [InkUI](../../../src/tui/ink-ui.ts), and
[LoggingUI](../../../src/headless/renderers/logging-ui.ts) together. Reuse existing enums and
union types rather than introducing competing status vocabularies.

## Reuse and check

Compose existing primitives and use [styles.ts](../../../src/ui/tui/styles.ts)
Compose existing primitives and use [styles.ts](../../../src/tui/styles.ts)
for shared colors, icons, and alignment. Export new public primitives from
[primitives/index.ts](../../../src/ui/tui/primitives/index.ts), add a realistic
[playground demo](../../../src/ui/tui/playground/demos/), and register it in
[PlaygroundApp.tsx](../../../src/ui/tui/playground/PlaygroundApp.tsx).
[primitives/index.ts](../../../src/tui/primitives/index.ts), add a realistic
[playground demo](../../../src/tui/playground/demos/), and register it in
[PlaygroundApp.tsx](../../../src/tui/playground/PlaygroundApp.tsx).

Run `pnpm try --playground` to inspect primitives. Use
[exploring-the-wizard](../exploring-the-wizard/SKILL.md) when exercising actual
Expand Down
28 changes: 14 additions & 14 deletions .claude/skills/ink-tui/references/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [WizardSession](../../../../src/lib/wizard-session.ts) | Run configuration, decisions, credentials, and lifecycle state |
| [ProgramStep](../../../../src/programs/program-step.ts) | Screens, visibility/completion predicates, gates, and initialization hooks |
| [screen-sequences.ts](../../../../src/ui/tui/screen-sequences.ts) | `ScreenId`, `Screen`, `Sequence`, and the derived `PROGRAM_SEQUENCES` |
| [WizardRouter](../../../../src/ui/tui/router.ts) | Resolution and the `Overlay` stack |
| [WizardStore](../../../../src/ui/tui/store.ts) | Reactive state, gate promises, display observations, and pending interactions |
| [screen-sequences.ts](../../../../src/tui/screen-sequences.ts) | `ScreenId`, `Screen`, `Sequence`, and the derived `PROGRAM_SEQUENCES` |
| [WizardRouter](../../../../src/tui/router.ts) | Resolution and the `Overlay` stack |
| [WizardStore](../../../../src/tui/store.ts) | Reactive state, gate promises, display observations, and pending interactions |
| [WizardUI](../../../../src/ui/wizard-ui.ts) | Typed operations available to business logic |

## Program screens
Expand All @@ -23,7 +23,7 @@ with store gate creation.
`WizardRouter.resolve(session)` first checks the overlay stack, then returns the
first visible, incomplete screen. It also handles the failed-authentication
outro case. Follow this method and the
[router tests](../../../../src/ui/tui/__tests__/router.test.ts) for exact
[router tests](../../../../src/tui/__tests__/router.test.ts) for exact
behavior; there is no program cursor or `next()` API.

The screen sequence is a presentation projection of the program. It is distinct
Expand All @@ -40,13 +40,13 @@ Read `ProgramStep` before adding asynchronous work:
assigned. Reserve it for work independent of that session.
- `onReady` runs after the real session is assigned and is awaited in order.

[The store](../../../../src/ui/tui/store.ts) derives gate promises from the
[The store](../../../../src/tui/store.ts) derives gate promises from the
program. `getGate(stepId)` resolves once: a predicate becoming false later does
not close it again. A missing gate returns a resolved promise.
`waitUntil(predicate)` evaluates live state at the await point; use that
distinction when a decision can change after startup.

[startTUI](../../../../src/ui/tui/start-tui.ts) invokes `runInitHooks` after
[startTUI](../../../../src/tui/start-tui.ts) invokes `runInitHooks` after
rendering starts. Merely constructing a store for a test or playground does not
start those effects.

Expand All @@ -62,7 +62,7 @@ separate store atoms. Reuse the existing setters (`pushStatus`, `syncTodos`,
`setEventPlan`) for those updates. Do not mutate session fields behind the store
after attaching the session.

[InkUI](../../../../src/ui/tui/ink-ui.ts) translates `getUI()` calls into store
[InkUI](../../../../src/tui/ink-ui.ts) translates `getUI()` calls into store
operations. Business logic should use this interface rather than import the
store; screens can use the store directly.

Expand All @@ -75,10 +75,10 @@ Their cancellation methods settle pending requests and dismiss the corresponding
overlay. Use the established methods rather than pushing a question overlay
without its pending state or promise.

Read [WizardAskScreen](../../../../src/ui/tui/screens/WizardAskScreen.tsx),
[TaskNoticeScreen](../../../../src/ui/tui/screens/TaskNoticeScreen.tsx), and the
Read [WizardAskScreen](../../../../src/tui/screens/WizardAskScreen.tsx),
[TaskNoticeScreen](../../../../src/tui/screens/TaskNoticeScreen.tsx), and the
matching store methods before changing their lifecycle.
[LoggingUI](../../../../src/ui/logging-ui.ts) rejects question requests,
[LoggingUI](../../../../src/headless/renderers/logging-ui.ts) rejects question requests,
declines optional task notices, and leaves the manual-auth-code promise pending;
it cannot collect terminal input.

Expand All @@ -89,17 +89,17 @@ actual overlay values from the enum; health checks are program screens.

## Components and services

[App](../../../../src/ui/tui/App.tsx) creates the service bundle and screen
[App](../../../../src/tui/App.tsx) creates the service bundle and screen
registry, then renders
[ScreenContainer](../../../../src/ui/tui/primitives/ScreenContainer.tsx). The
[ScreenContainer](../../../../src/tui/primitives/ScreenContainer.tsx). The
registry injects services where needed, such as the
[MCP installer](../../../../src/ui/tui/services/mcp-installer.ts). Prefer this
[MCP installer](../../../../src/tui/services/mcp-installer.ts). Prefer this
boundary when a screen needs external operations rather than coupling a new
component to step internals.

`ScreenContainer` owns transitions, shared keyboard hints, viewport handling,
and
[ScreenErrorBoundary](../../../../src/ui/tui/primitives/ScreenErrorBoundary.tsx).
[ScreenErrorBoundary](../../../../src/tui/primitives/ScreenErrorBoundary.tsx).
The boundary records an error outro and run phase on render failure. When
changing completion predicates, verify that failure and dismissal remain
reachable; the boundary does not replace those predicates.
20 changes: 10 additions & 10 deletions .claude/skills/ink-tui/references/PATTERNS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ codebase.

| Task | Start here |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Compose a run screen with conditional event-plan tab | [RunScreen](../../../../src/ui/tui/screens/RunScreen.tsx) |
| Build a program intro | [IntroScreenLayout](../../../../src/ui/tui/screens/IntroScreenLayout.tsx) |
| Compose a learning deck | [LearnCard](../../../../src/ui/tui/components/LearnCard.tsx), [LearnDeckDemo](../../../../src/ui/tui/playground/demos/LearnDeckDemo.tsx) |
| Compare layout primitives | [LayoutDemo](../../../../src/ui/tui/playground/demos/LayoutDemo.tsx) |
| Exercise picker and confirmation controls | [InputDemo](../../../../src/ui/tui/playground/demos/InputDemo.tsx) |
| Add an interaction modal | [WizardAskScreen](../../../../src/ui/tui/screens/WizardAskScreen.tsx), [AskModalDemo](../../../../src/ui/tui/playground/demos/AskModalDemo.tsx) |
| Compose a run screen with conditional event-plan tab | [RunScreen](../../../../src/tui/screens/RunScreen.tsx) |
| Build a program intro | [IntroScreenLayout](../../../../src/tui/screens/IntroScreenLayout.tsx) |
| Compose a learning deck | [LearnCard](../../../../src/tui/components/LearnCard.tsx), [LearnDeckDemo](../../../../src/tui/playground/demos/LearnDeckDemo.tsx) |
| Compare layout primitives | [LayoutDemo](../../../../src/tui/playground/demos/LayoutDemo.tsx) |
| Exercise picker and confirmation controls | [InputDemo](../../../../src/tui/playground/demos/InputDemo.tsx) |
| Add an interaction modal | [WizardAskScreen](../../../../src/tui/screens/WizardAskScreen.tsx), [AskModalDemo](../../../../src/tui/playground/demos/AskModalDemo.tsx) |

## Keep progression in session state

Expand All @@ -21,14 +21,14 @@ through its session predicate and explicit setter. Do not create a parallel

## Keyboard handling

Use [useKeyBindings](../../../../src/ui/tui/hooks/useKeyBindings.ts) for visible
Use [useKeyBindings](../../../../src/tui/hooks/useKeyBindings.ts) for visible
shortcuts: it couples handlers to labels in the shared hints bar.
[KeyboardHintsDemo](../../../../src/ui/tui/playground/demos/KeyboardHintsDemo.tsx)
[KeyboardHintsDemo](../../../../src/tui/playground/demos/KeyboardHintsDemo.tsx)
shows the pattern. Reuse its `KeyMatch` vocabulary and choose a distinct
registration id for each mounted control.

For an ordinary-key dismissal, use
[useDismissOnAnyKey](../../../../src/ui/tui/hooks/useDismissOnAnyKey.ts). It
[useDismissOnAnyKey](../../../../src/tui/hooks/useDismissOnAnyKey.ts). It
ignores Ctrl/Meta combinations so the global Ctrl+T HUD shortcut does not also
dismiss the screen.

Expand All @@ -43,7 +43,7 @@ handlers will receive the same key.

Visible text belongs inside Ink `Text`. Reuse the shared color/alignment
constants and the relevant primitive's border treatment. Use
[useStdoutDimensions](../../../../src/ui/tui/hooks/useStdoutDimensions.ts) when
[useStdoutDimensions](../../../../src/tui/hooks/useStdoutDimensions.ts) when
layout must update on terminal resize; reading `useStdout` alone does not
subscribe. Account for the shell's title, hints, tabs, status expansion, and
optional HUD rather than allocating the full terminal height to screen content.
Expand Down
Loading
Loading