agent-bios 0.19.2 → 0.19.3

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 (46) hide show
  1. package/DEPENDENCIES.md +32 -4
  2. package/README.md +54 -4
  3. package/claude/guides/cli-multi-model-workflow.md +1 -1
  4. package/claude/guides/coding-staged-workflow.md +17 -0
  5. package/claude/guides/llm-capability-boundary.md +7 -1
  6. package/claude/guides/tooling-gotchas.md +20 -1
  7. package/claude/guides/ui-design/visual-direction.md +88 -0
  8. package/claude/guides/ui-design.md +90 -0
  9. package/claude/guides/verification-discipline.md +10 -1
  10. package/claude/hooks/tooling-gotchas-hook.py +41 -0
  11. package/codex/guides/cli-multi-model-workflow.md +1 -1
  12. package/codex/guides/coding-staged-workflow.md +17 -0
  13. package/codex/guides/llm-capability-boundary.md +7 -1
  14. package/codex/guides/tooling-gotchas.md +20 -1
  15. package/codex/guides/ui-design/visual-direction.md +88 -0
  16. package/codex/guides/ui-design.md +90 -0
  17. package/codex/guides/verification-discipline.md +10 -1
  18. package/compose/app_bridge/scripts/bridge.py +23 -6
  19. package/compose/app_desktop/server.py +250 -0
  20. package/compose/domains.json +1 -0
  21. package/compose/host_platform.py +121 -0
  22. package/compose/instructions-state.py +5 -2
  23. package/compose/instructions_app.py +281 -48
  24. package/compose/instructions_catalog.py +2 -2
  25. package/compose/instructions_import.py +19 -11
  26. package/compose/instructions_install.py +77 -11
  27. package/compose/instructions_session.py +6 -6
  28. package/compose/instructions_setup.py +41 -4
  29. package/compose/instructions_setup_cli.py +31 -10
  30. package/compose/instructions_setup_i18n.py +3 -0
  31. package/compose/instructions_store.py +6 -6
  32. package/compose/instructions_transaction.py +8 -6
  33. package/compose/instructions_ui_runtime.py +2 -1
  34. package/compose/native_cli.py +52 -0
  35. package/compose/runtime_entry.py +58 -0
  36. package/compose/windows_deploy.py +719 -0
  37. package/docs/instructions.md +1 -0
  38. package/docs/releases/0.19.3.md +107 -0
  39. package/docs/session-model.md +8 -0
  40. package/docs/setup.md +36 -0
  41. package/docs/windows.md +99 -0
  42. package/install.sh +1 -0
  43. package/launch/agent-launch.py +12 -4
  44. package/launch/agent-launch.zsh +11 -1
  45. package/package.json +8 -3
  46. package/provenance.json +1 -1
@@ -104,6 +104,7 @@ instruction does not prove that a model read or followed it.
104
104
  | --- | --- |
105
105
  | `cli-multi-model-workflow` | multi-model CLI workflow: Default Frame, role slots/tiers, delegation mechanics, driving Codex CLI directly, cache economy, unattended-batch safety, halt/resume, handoff contract, Environment Binding |
106
106
  | `coding-staged-workflow` | staged development: design → process → implement, lightweight path, review loop, severity contract, stop conditions |
107
+ | `ui-design` | operational task flows, evidence and authority, visual hierarchy, design tokens and layout; conditional visual-direction companion |
107
108
  | `verification-discipline` | verification depth and per-domain mix (owns the Verification Menus), case space, what a green result is worth |
108
109
  | `concept-economy` | concept-surface economy: reuse / extend / rename / split, split triggers, migration compatibility |
109
110
  | `documentation-hygiene` | where comments, history, and handoffs belong; how to phrase rules others follow |
@@ -0,0 +1,107 @@
1
+ # agent-bios 0.19.3
2
+
3
+ Release changes relative to 0.19.2.
4
+
5
+ ## Windows without npm or WSL
6
+
7
+ Windows installs as scripts and data bound to an approved CPython 3.13, with no
8
+ custom executable and no EXE installer. It targets machines whose application
9
+ control permits PowerShell and Python but blocks unrecognized executables. The
10
+ bootstrap reuses an approved CPython already on the machine, or provisions the
11
+ pinned official embeddable runtime into an application-private folder; neither an
12
+ existing Python nor its packages are modified.
13
+
14
+ The installed commands are `agent-bios` and `agent-launch`. Each is a static
15
+ wrapper plus a generated `.cmd` shim, because Windows does not treat `.ps1` as
16
+ executable: without the shim a PATH directory holding only wrappers is reachable
17
+ from PowerShell alone, and the Command Prompt, the Run box and any program that
18
+ spawns a command find nothing while PATH is correct. The shim is generated at
19
+ installation rather than shipped, since Authenticode cannot sign a `.cmd`; its
20
+ bytes are fixed and recorded in the deployment's ownership inventory, so a
21
+ modified shim is refused exactly like a modified command.
22
+
23
+ `agent-bios uninstall` removes owned commands, shims, shortcuts and the owned
24
+ PATH entry. Private instructions, session records and any preexisting Python are
25
+ retained.
26
+
27
+ ## A fixed installation address
28
+
29
+ The project's installation page serves one explicitly promoted release at a fixed
30
+ URL, so publishing another release does not silently change what the address
31
+ installs. It carries a one-line command per platform.
32
+
33
+ Each command relaxes the PowerShell execution policy for the single process it
34
+ starts, because the default policy on an unconfigured Windows client is
35
+ Restricted and refuses a downloaded script. The machine's saved policy is not
36
+ edited, and a domain-imposed policy still refuses through the invocation's own
37
+ error. The Windows command names the interpreter, so it can be pasted into the
38
+ Command Prompt or the Run box rather than only into an open PowerShell.
39
+
40
+ The macOS and Linux command installs the published npm release and stops, naming
41
+ the command that deploys the work environment: `curl | bash` gives the shell a
42
+ pipe, and the interactive chooser needs a terminal. It also reports the case npm
43
+ leaves behind — a successful global install whose command the caller's PATH does
44
+ not carry.
45
+
46
+ Windows releases come in two channels. Stable is Authenticode-signed and
47
+ timestamped. Preview is published without a signing identity and refuses to run
48
+ unless the caller adds `-AcceptUnsignedPreview`; the hashes pinned inside the
49
+ bootstrap still guard the manifest, the application archive and the runtime
50
+ archive.
51
+
52
+ ## Claude Desktop
53
+
54
+ Claude Desktop opens conversations without a launcher and exposes no skill folder an
55
+ installer can reach ahead of time, so agent-bios reaches it as a local extension the
56
+ user installs once. `agent-bios app desktop` writes a `.mcpb` file under the private
57
+ state root; opening it with Desktop installs a standard-library stdio MCP server with
58
+ four tools: status, preview, use and off. agent-bios writes nothing into Desktop's own
59
+ folders or configuration.
60
+
61
+ `use` returns the saved installation selection, or a selection named in the request,
62
+ as context for that conversation only. Nothing reaches a conversation that did not
63
+ ask, including one already in progress. Desktop sends no conversation identity with a
64
+ tool call, so the first preview or use returns a `session_id` that later calls pass
65
+ back; a repeated use with it returns the same text without recording a second
66
+ delivery. The returned text ends with an `agent-bios end` line, and reporting that
67
+ line through status records that the text was read to its end. It does not record
68
+ whether Desktop kept the text in the message or saved it to a file, which Desktop
69
+ does not reveal to the extension.
70
+
71
+ The file names the absolute Python that generated it, because Desktop resolves a bare
72
+ `python3` through the login shell's PATH, which on stock macOS reaches 3.9. The server
73
+ finds the current installation on every call, so an agent-bios update needs no new
74
+ file; changing that Python does. Desktop delivery has no project scope, so
75
+ project-scoped imported instructions are not included, in chat or in the Code tab.
76
+
77
+ ## Installation reports an unreachable launcher
78
+
79
+ Installation now says when the `agent-launch` it deposits cannot be typed: when
80
+ `~/.local/bin` is not on the shell's PATH, and when the optional zsh connection that
81
+ routes a bare `claude` or `codex` through the launcher is off. Both used to end in a
82
+ success message followed by `command not found`. A reachable installation reports
83
+ nothing new. The terminal interface, the conversation client and the non-interactive
84
+ path share the message.
85
+
86
+ ## Instruction guides
87
+
88
+ The multi-model workflow, staged coding workflow, LLM capability boundary,
89
+ tooling gotchas, verification discipline and UI design guides were revised, and
90
+ lessons paid for on a separate deployment line were carried across where this
91
+ line had not already removed them. The tooling-gotchas hook was updated with
92
+ them.
93
+
94
+ ## Not established by this release
95
+
96
+ No signing identity exists yet, so the published Windows channel is the unsigned
97
+ preview. Approval by an organization policy or endpoint-protection product is not
98
+ established: a green workflow proves the route on a hosted runner where
99
+ PowerShell and Python are permitted. Migration of an existing EXE installation
100
+ into the script route is refused rather than attempted.
101
+
102
+ The Claude Desktop route was measured on Desktop 2.16120.0 for macOS, in chat and in
103
+ the Code tab. It is not available on Windows, and a later Desktop version is not
104
+ established to load the file until someone checks it.
105
+
106
+ Domain knowledge, Decision memory and shared environment editions remain design
107
+ directions rather than features of this release.
@@ -46,6 +46,14 @@ and returned text do not prove native app discovery or model reading. Off stops
46
46
  further managed use, but cannot retract earlier context; a new task is needed for
47
47
  clean exclusion. Management and instruction capture do not activate task context.
48
48
 
49
+ ## Claude Desktop conversations
50
+
51
+ Desktop conversations pull through the [Desktop extension](setup.md#use-instructions-in-claude-desktop).
52
+ Use returns the selected snapshot as a tool result and records a `returned-as-context`
53
+ receipt under an identity agent-bios mints, because Desktop sends none. An end-marker line
54
+ reported back confirms the text was read to its end, not that it stayed inline. Nothing
55
+ reaches a conversation that did not ask, including one already in progress.
56
+
49
57
  ## Storage layout
50
58
 
51
59
  From a clone, `bash install.sh install` is the same default path. The release lives
package/docs/setup.md CHANGED
@@ -140,6 +140,42 @@ it does not replay uncertain operations. The agent follows the full procedure in
140
140
  [START.md](../compose/setup/START.md), including exact review preservation and verified
141
141
  entrypoint handoff. Source and reviewed artifacts remain available for recovery.
142
142
 
143
+ ## Use instructions in Claude Desktop
144
+
145
+ Claude Desktop has no launcher to start its conversations and no skill folder an
146
+ installer can reach, so agent-bios reaches it through a local extension:
147
+
148
+ ```bash
149
+ agent-bios app desktop --dry-run --json
150
+ agent-bios app desktop
151
+ ```
152
+
153
+ The command writes `agent-bios.mcpb` under the private state root and prints its path.
154
+ Open that file with Claude Desktop and confirm the installation dialog; agent-bios never
155
+ writes into Desktop's own folders or configuration. The extension runs Python at the
156
+ absolute path the file names — the interpreter that ran the command, which must be 3.11
157
+ or newer. Run the command again after changing that Python; an agent-bios update alone
158
+ needs no new file, because the extension finds the current installation on every call.
159
+
160
+ In a conversation, ask for your agent-bios instructions. The assistant calls `use`, which
161
+ returns your saved installation selection, or a selection you name in the request.
162
+ Desktop sends no conversation identity, so the first preview or use returns a
163
+ `session_id` that later calls in the same conversation pass back. Desktop delivery has
164
+ no project scope: imported instructions scoped to a project folder are not included.
165
+
166
+ The returned text ends with a line beginning `agent-bios end`. When the assistant reports
167
+ that line through `status`, the receipt records that the text was read to its end. It
168
+ does not show whether Desktop kept the text in the message or saved it to a file, and a
169
+ delivery never reported back stays unconfirmed. Off stops further use in that
170
+ conversation but cannot remove text already returned; start a new conversation for clean
171
+ exclusion.
172
+
173
+ The extension adds four tools to every Desktop conversation, in chat and in the Code tab.
174
+ Remove it from Desktop's extension settings to stop that cost. The Code tab also has a
175
+ working folder, but the extension cannot see it, so project-scoped instructions stay
176
+ excluded there as well. This route was measured on Claude Desktop 2.16120.0 for macOS;
177
+ Windows is not supported yet.
178
+
143
179
  ## Use instructions in a Codex app task
144
180
 
145
181
  Choose **Connect to the Codex app** during setup, or explicitly run:
@@ -0,0 +1,99 @@
1
+ # Windows native installation
2
+
3
+ The Windows build provides a per-user installer and `agent-bios.exe` with its own
4
+ Python runtime. Node.js, npm, a system Python installation and WSL are not required
5
+ for the Instructions library and setup. Model host CLIs remain separate dependencies.
6
+
7
+ Run the Windows x64 setup executable, then open setup from the final page or the
8
+ Start menu. A newly opened PowerShell can run `agent-bios install` or
9
+ `agent-bios instructions`. Existing terminal processes need restarting to pick up
10
+ user PATH changes. The installer does not change PowerShell execution policy or
11
+ intercept bare model commands.
12
+
13
+ Re-running the installer updates program files. `agent-bios install` refreshes the
14
+ private library while retaining saved selection and personal authoring. Removing
15
+ the application removes its owned PATH entry; private instructions and session
16
+ records remain in the user's home. Windows and WSL have separate homes and stores.
17
+
18
+ The native build is experimental until the Windows workflow's artifact and lifecycle
19
+ checks pass for the exact candidate. Fixture tests do not establish live host login,
20
+ model execution, app skill discovery or interactive Korean IME behavior. Native
21
+ hooks and the shell-based multi-model worker adapters require separate Windows
22
+ qualification. File contents are flushed; process-recovery tests are not proof of
23
+ power-loss durability on Windows.
24
+
25
+ ## Script distribution with an approved Python
26
+
27
+ A second Windows route installs agent-bios as scripts and data without a custom
28
+ EXE launcher or an EXE installer. It targets organizations whose application
29
+ control permits PowerShell and CPython but blocks unrecognized executables. The
30
+ Windows workflow builds and exercises this route on every change; the Windows
31
+ script release workflow publishes it as a GitHub release whose page carries the
32
+ one-line PowerShell command for that exact release.
33
+
34
+ The repository's GitHub Pages installation page also provides a shorter command
35
+ at a fixed address. It names `powershell` and relaxes that process's execution
36
+ policy, so it runs from the Command Prompt and the Run box as well as from an open
37
+ PowerShell, and on a machine whose policy nobody changed. It saves the script to a
38
+ fixed name under the temporary directory and invokes that file, rather than
39
+ evaluating the downloaded text: the bootstrap authenticates itself through its own
40
+ file path, which text piped into the shell does not have. The command carries no
41
+ PowerShell variable, because a command pasted into PowerShell is expanded by that
42
+ shell before the child starts. This convenience command trusts the HTTPS
43
+ site for the initial script; it does not check that script's hash before execution.
44
+ Dependent downloads still undergo the installer's checks. The fixed address
45
+ serves an explicitly promoted release, so publishing another release does not
46
+ silently change it. Preview commands retain `-AcceptUnsignedPreview`.
47
+
48
+ The same page carries a `curl` one-liner for macOS and Linux. That route is not
49
+ this Windows distribution: it installs the published npm package, which needs
50
+ Node.js and python3 already present, and then names the command that deploys the
51
+ work environment rather than opening its chooser over a pipe.
52
+
53
+ Releases come in two channels. A stable release is Authenticode-signed with the
54
+ project's release signing identity. Copy the version-specific command from its
55
+ release page: the command carries the SHA-256 of that final bootstrap and the
56
+ approved signer thumbprint, and checks both before invoking the saved script.
57
+ The generic latest URL is not an execution command: a moving asset cannot match
58
+ a fixed digest indefinitely. Release publication generates the command only after
59
+ all script signing is complete.
60
+
61
+ A preview release is published as a prerelease without a signing identity. Its
62
+ bootstrap refuses to run unless the caller adds `-AcceptUnsignedPreview`, and
63
+ it prints a warning when accepted; the manifest and asset hashes pinned inside
64
+ the script are still enforced. New preview release pages carry a tag-pinned command with that flag and a
65
+ bootstrap digest check before execution. Older preview pages may require the user
66
+ to compare the published bootstrap digest separately; their assets are not rewritten. Each published
67
+ command relaxes the execution policy for the process it starts, because a machine
68
+ nobody configured refuses scripts under the default Restricted policy. Neither
69
+ that relaxation nor anything installed edits the machine's saved policy, and a
70
+ policy imposed by a domain still refuses: the invocation's own error names it.
71
+
72
+ After caller-side verification, the bootstrap verifies the pinned release manifest
73
+ and dependent archives before running downloaded application or runtime code. It reuses an approved
74
+ CPython 3.13 x64 installation found on the machine, or provisions the pinned
75
+ official embeddable runtime into an application-private folder. Neither an
76
+ existing Python nor its packages are modified. The bootstrap adds the command
77
+ directory to the current PowerShell session, so `agent-bios` and `agent-launch`
78
+ work without reopening the terminal; other open terminals are unaffected.
79
+
80
+ The installed commands are static signed wrappers, `agent-bios.ps1` and
81
+ `agent-launch.ps1`, that read a local deployment binding and run the bundled
82
+ application through the bound interpreter. Beside each one the installer writes a
83
+ generated `.cmd` shim, because Windows does not treat `.ps1` as executable: without
84
+ the shim the PATH entry serves PowerShell alone and `agent-bios` is unavailable in
85
+ the Command Prompt, the Run box, and to any program that spawns a command. The
86
+ shim is generated rather than shipped since Authenticode cannot sign a `.cmd`; its
87
+ bytes are fixed and recorded in the deployment's ownership inventory, so a modified
88
+ shim is refused exactly like a modified command. `agent-bios uninstall` removes owned
89
+ commands, shims, shortcuts and the owned PATH entry; private instructions, session
90
+ records and any preexisting Python are retained.
91
+
92
+ This route is qualified on the Windows workflow runner in PowerShell 5.1 and 7
93
+ with runner-only test signing, and the release workflow re-runs that
94
+ qualification on the exact assets before it publishes them and then verifies
95
+ the published command anonymously. Validation on a policy-managed machine is a
96
+ separate step that no workflow establishes. Executable code still runs:
97
+ PowerShell, curl and Python, plus native modules inside the dependency bundle.
98
+ Migration of an existing EXE installation into this route is refused rather
99
+ than attempted.
package/install.sh CHANGED
@@ -1764,6 +1764,7 @@ agent-bios — manage private instructions content for explicitly activated sess
1764
1764
  agent-bios app register an explicit Codex app bridge or manage per-task instructions input
1765
1765
  agent-bios app session use return selected instructions as context for this Codex app task
1766
1766
  agent-bios app session off stop future delivery; earlier context requires a new task to exclude
1767
+ agent-bios app desktop write the Claude Desktop extension file; you install it in Desktop
1767
1768
  agent-bios understand list instructions learning bundles; --help shows session/discovery commands
1768
1769
  agent-bios shell show the optional zsh connection status
1769
1770
  agent-bios shell restore make bare claude/codex open the launcher TUI
@@ -6,7 +6,6 @@ from __future__ import annotations
6
6
  import argparse
7
7
  import copy
8
8
  import datetime
9
- import fcntl
10
9
  import hashlib
11
10
  import json
12
11
  import os
@@ -24,6 +23,12 @@ import uuid
24
23
  from dataclasses import dataclass, field
25
24
  from typing import Any, Callable, NoReturn
26
25
 
26
+ if os.name == "nt":
27
+ sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1] / "compose"))
28
+ from host_platform import file_locks as fcntl
29
+ else:
30
+ import fcntl
31
+
27
32
 
28
33
  TIER_ORDER = ("frontier", "helm", "workhorse", "sweep")
29
34
  # Review is not work any tier can do. A reviewer must be at least this capable; helm or
@@ -4123,6 +4128,8 @@ _UI_RUNTIME_RELEASE: Callable[[], None] | None = None
4123
4128
  def exec_backend(command: str, args: list[str], env: dict[str, str] | None = None) -> NoReturn:
4124
4129
  if _UI_RUNTIME_RELEASE is not None:
4125
4130
  _UI_RUNTIME_RELEASE()
4131
+ if os.name == "nt":
4132
+ raise SystemExit(subprocess.call([command, *args], env=os.environ.copy() if env is None else env))
4126
4133
  os.execve(command, [command, *args], os.environ.copy() if env is None else env)
4127
4134
 
4128
4135
 
@@ -4208,7 +4215,8 @@ def _snapshot_from_config(store, config_path, generation, host, selected, *, dry
4208
4215
 
4209
4216
  def open_instructions_studio() -> None:
4210
4217
  root = instructions_package_root()
4211
- result = subprocess.run([sys.executable, str(root / "compose/instructions.py"), "--repo", str(root)])
4218
+ from host_platform import python_argv
4219
+ result = subprocess.run(python_argv(root / "compose/instructions.py", "--repo", str(root)))
4212
4220
  if result.returncode:
4213
4221
  print(f"agent-launch: Instructions Studio exited {result.returncode}", file=sys.stderr)
4214
4222
 
@@ -6618,7 +6626,7 @@ def register_reviewer_wizard(
6618
6626
  # a planted symlink and truncates whatever it points at, merely by
6619
6627
  # opening the wizard.
6620
6628
  lock_fd = os.open(
6621
- lock_path, os.O_CREAT | os.O_WRONLY | os.O_NOFOLLOW, 0o600
6629
+ lock_path, os.O_CREAT | os.O_WRONLY | getattr(os, "O_NOFOLLOW", 0), 0o600
6622
6630
  )
6623
6631
  with os.fdopen(lock_fd, "w") as lock_handle:
6624
6632
  fcntl.flock(lock_handle, fcntl.LOCK_EX)
@@ -7667,7 +7675,7 @@ def save_preset(
7667
7675
  try:
7668
7676
  target.parent.mkdir(parents=True, exist_ok=True)
7669
7677
  lock_path = target.with_name(target.name + ".lock")
7670
- lock_fd = os.open(lock_path, os.O_CREAT | os.O_WRONLY | os.O_NOFOLLOW, 0o600)
7678
+ lock_fd = os.open(lock_path, os.O_CREAT | os.O_WRONLY | getattr(os, "O_NOFOLLOW", 0), 0o600)
7671
7679
  with os.fdopen(lock_fd, "w") as lock_handle:
7672
7680
  fcntl.flock(lock_handle, fcntl.LOCK_EX)
7673
7681
  try:
@@ -17,7 +17,17 @@ _agent_launch_direct() {
17
17
  # provide is handed to whatever the user's function does. `builtin` cannot be shadowed,
18
18
  # so the resolution is the one the comment above already promised.
19
19
  if [[ "$host" == "claude" && -z "${_agent_launch_private_connection:-}" ]]; then
20
- builtin command claude --dangerously-skip-permissions "$@"
20
+ case "${1-}" in
21
+ # These six background-session verbs are dispatched only from the first argument:
22
+ # with a flag in front, `claude attach <id>` is a new session whose prompt is
23
+ # "attach <id>". Measured on 2.1.280 over all 21 subcommand spellings — only these
24
+ # six are displaced, and the other fifteen (mcp, doctor, plugin, project, auth,
25
+ # agents, ultrareview, update ...) parse the flag in front, which is what makes the
26
+ # list this short rather than every verb. They act on a session that already exists,
27
+ # so no permission default belongs in front of them.
28
+ logs|attach|stop|kill|respawn|rm) builtin command claude "$@" ;;
29
+ *) builtin command claude --dangerously-skip-permissions "$@" ;;
30
+ esac
21
31
  else
22
32
  builtin command "$host" "$@"
23
33
  fi
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agent-bios",
3
- "version": "0.19.2",
4
- "releaseDate": "2026-09-14",
3
+ "version": "0.19.3",
4
+ "releaseDate": "2026-09-29",
5
5
  "description": "A thin, low-level instruction layer for LLM CLI agents: one set of principles and behavior whichever model you run. Stores private, editable instructions for explicitly activated sessions.",
6
6
  "bin": {
7
7
  "agent-bios": "install.sh"
@@ -64,6 +64,7 @@
64
64
  "compose/instructions_import.py",
65
65
  "compose/instructions_app.py",
66
66
  "compose/app_bridge/",
67
+ "compose/app_desktop/",
67
68
  "compose/instructions_transaction.py",
68
69
  "compose/instructions_understand.py",
69
70
  "compose/bootstrap/",
@@ -83,7 +84,11 @@
83
84
  "README.md",
84
85
  "INSTALL.md",
85
86
  "DEPENDENCIES.md",
86
- "provenance.json"
87
+ "provenance.json",
88
+ "compose/native_cli.py",
89
+ "compose/host_platform.py",
90
+ "compose/runtime_entry.py",
91
+ "compose/windows_deploy.py"
87
92
  ],
88
93
  "scripts": {
89
94
  "postinstall": "printf '\\n> agent-bios installed. Deploy into this environment with: agent-bios install\\n> Then: agent-bios verify | status | uninstall\\n\\n'",
package/provenance.json CHANGED
@@ -1 +1 @@
1
- {"commit":"172928b728c7048ef77b810da61261594ddd75aa","committedAt":"2026-09-14T01:42:28+09:00","dirty":false}
1
+ {"commit":"338a16e35f0b6262107a808c9cc20721b6f4facd","committedAt":"2026-09-30T20:23:32+09:00","dirty":false}