agent-bios 0.19.1 → 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.
- package/DEPENDENCIES.md +58 -30
- package/INSTALL.md +4 -4
- package/README.md +105 -28
- package/claude/CLAUDE.md +1 -1
- package/claude/guides/claude-prompting.md +1 -1
- package/claude/guides/cli-multi-model-workflow.md +4 -4
- package/claude/guides/coding-staged-workflow.md +17 -0
- package/claude/guides/documentation-hygiene.md +3 -0
- package/claude/guides/gpt-prompting.md +1 -1
- package/claude/guides/korean-writing.md +153 -0
- package/claude/guides/learning-flow.md +4 -4
- package/claude/guides/llm-capability-boundary.md +7 -1
- package/claude/guides/session-distill-workflow.md +8 -8
- package/claude/guides/slide-writing/RUNBOOK.md +5 -5
- package/claude/guides/tooling-gotchas.md +20 -1
- package/claude/guides/ui-design/visual-direction.md +88 -0
- package/claude/guides/ui-design.md +90 -0
- package/claude/guides/verification-discipline.md +10 -1
- package/claude/hooks/tooling-gotchas-hook.py +41 -0
- package/claude/skills/repo-charter/SKILL.md +3 -3
- package/claude/skills/understand/SKILL.md +5 -5
- package/codex/AGENTS.md +1 -1
- package/codex/guides/claude-prompting.md +1 -1
- package/codex/guides/cli-multi-model-workflow.md +4 -4
- package/codex/guides/coding-staged-workflow.md +17 -0
- package/codex/guides/documentation-hygiene.md +3 -0
- package/codex/guides/gpt-prompting.md +1 -1
- package/codex/guides/korean-writing.md +153 -0
- package/codex/guides/learning-flow.md +4 -4
- package/codex/guides/llm-capability-boundary.md +7 -1
- package/codex/guides/session-distill-workflow.md +8 -8
- package/codex/guides/slide-writing/RUNBOOK.md +5 -5
- package/codex/guides/tooling-gotchas.md +20 -1
- package/codex/guides/ui-design/visual-direction.md +88 -0
- package/codex/guides/ui-design.md +90 -0
- package/codex/guides/verification-discipline.md +10 -1
- package/compose/app_bridge/SKILL.md +12 -12
- package/compose/app_bridge/scripts/bridge.py +35 -10
- package/compose/app_desktop/server.py +250 -0
- package/compose/assemble.py +5 -5
- package/compose/bootstrap/SKILL.md +18 -18
- package/compose/canary.sh +4 -4
- package/compose/check-domains.py +6 -6
- package/compose/corpus-state.py +16 -1168
- package/compose/corpus.py +13 -402
- package/compose/corpus_app.py +14 -450
- package/compose/corpus_catalog.py +15 -926
- package/compose/corpus_import.py +14 -523
- package/compose/corpus_install.py +14 -1847
- package/compose/corpus_session.py +16 -848
- package/compose/corpus_setup.py +16 -672
- package/compose/corpus_setup_cli.py +15 -580
- package/compose/corpus_setup_i18n.py +20 -324
- package/compose/corpus_setup_ui.py +18 -645
- package/compose/corpus_store.py +16 -1664
- package/compose/corpus_transaction.py +15 -284
- package/compose/corpus_ui.py +17 -972
- package/compose/corpus_ui_runtime.py +16 -274
- package/compose/corpus_understand.py +13 -671
- package/compose/domains.json +3 -1
- package/compose/host_platform.py +121 -0
- package/compose/instructions-state.py +1178 -0
- package/compose/instructions.py +409 -0
- package/compose/instructions_app.py +697 -0
- package/compose/instructions_catalog.py +931 -0
- package/compose/instructions_import.py +537 -0
- package/compose/instructions_install.py +1932 -0
- package/compose/instructions_session.py +852 -0
- package/compose/instructions_setup.py +713 -0
- package/compose/instructions_setup_cli.py +607 -0
- package/compose/instructions_setup_i18n.py +327 -0
- package/compose/instructions_setup_ui.py +647 -0
- package/compose/instructions_store.py +1668 -0
- package/compose/instructions_transaction.py +308 -0
- package/compose/instructions_ui.py +975 -0
- package/compose/instructions_ui_runtime.py +279 -0
- package/compose/instructions_understand.py +678 -0
- package/compose/native_cli.py +52 -0
- package/compose/register-hooks.py +1 -1
- package/compose/runtime_entry.py +58 -0
- package/compose/setup/START.md +11 -11
- package/compose/windows_deploy.py +719 -0
- package/docs/advanced-launch.md +11 -11
- package/docs/instructions-compatibility.md +86 -0
- package/docs/{corpus.md → instructions.md} +36 -8
- package/docs/recovery.md +10 -10
- package/docs/releases/0.19.2.md +38 -0
- package/docs/releases/0.19.3.md +107 -0
- package/docs/session-model.md +31 -20
- package/docs/setup.md +63 -26
- package/docs/understand.md +6 -6
- package/docs/windows.md +99 -0
- package/install.sh +71 -69
- package/launch/agent-launch.py +309 -293
- package/launch/agent-launch.toml +2 -2
- package/launch/agent-launch.zsh +11 -1
- package/launch/i18n/en.toml +55 -55
- package/launch/i18n/ja.toml +56 -56
- package/launch/i18n/ko.toml +56 -56
- package/launch/shell_integration.py +4 -4
- package/learn/collect-learning.py +10 -10
- package/learn/learning.schema.json +1 -1
- package/learn/migrate-learnings.py +51 -51
- package/package.json +33 -12
- package/provenance.json +1 -1
- /package/docs/assets/{corpus-studio.svg → instructions-studio.svg} +0 -0
package/docs/setup.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Setup, app connection, and personal instructions
|
|
2
2
|
|
|
3
|
-
[← Overview](../README.md) · [
|
|
3
|
+
[← Overview](../README.md) · [Instructions](instructions.md) · [Sessions](session-model.md) · [Recovery](recovery.md)
|
|
4
4
|
|
|
5
|
-
Install `agent-bios@0.19.
|
|
5
|
+
Install `agent-bios@0.19.0` through the [README quick start](../README.md#quick-start)
|
|
6
6
|
to use the guided installer, conversation setup, app bridge and instruction import.
|
|
7
7
|
Commands below use the installed `agent-bios` CLI. From a source checkout, run
|
|
8
8
|
`bash install.sh <command>` at its root instead.
|
|
@@ -33,7 +33,7 @@ older installation mode.
|
|
|
33
33
|
Install the exact package version, then start setup:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
npm install -g agent-bios@0.19.
|
|
36
|
+
npm install -g agent-bios@0.19.0
|
|
37
37
|
agent-bios install
|
|
38
38
|
```
|
|
39
39
|
|
|
@@ -43,33 +43,33 @@ For the source alternative, obtain the repository through its Code menu and run
|
|
|
43
43
|
`install` and `onboard` open the wizard by default. After the language choice,
|
|
44
44
|
four stages collect the choices:
|
|
45
45
|
|
|
46
|
-
1. **
|
|
46
|
+
1. **Instructions:** no active instructions, all available instructions, selected packages/domains,
|
|
47
47
|
or saved policy on an existing installation. **Connect to the Codex app** is
|
|
48
48
|
an independent option for adding `$agent-bios` to app conversations.
|
|
49
49
|
2. **Personal instructions:** optionally add project folders and select detected
|
|
50
|
-
global/project instruction files for capture. This is independent of
|
|
50
|
+
global/project instruction files for capture. This is independent of instructions use.
|
|
51
51
|
3. **Dependencies:** inspect the full inventory. Ready dependencies are checked
|
|
52
52
|
and cannot be toggled; only missing dependencies with a supported recipe can
|
|
53
53
|
be selected for installation. Leaving those unselected installs none.
|
|
54
54
|
4. **Review:** inspect the effects and, when useful, expand exact commands and
|
|
55
55
|
paths before Apply.
|
|
56
56
|
|
|
57
|
-
The fresh wizard starts with no active
|
|
58
|
-
unless you change them. No active
|
|
59
|
-
no
|
|
57
|
+
The fresh wizard starts with no active instructions. Reinstalling keeps saved choices
|
|
58
|
+
unless you change them. Selecting **No active instructions** retains the library privately but delivers
|
|
59
|
+
no agent-bios instruction text or management bootstrap. Explicit selected mode includes
|
|
60
60
|
only its targets within applicable host/project scope; it does not add unrelated
|
|
61
61
|
enabled items or implicit core content.
|
|
62
62
|
|
|
63
63
|
Personal instructions and host learning records already on this device appear in
|
|
64
64
|
a separate checked, read-only list with stored item counts. These entries describe
|
|
65
|
-
retained content across project scopes, not the active
|
|
66
|
-
choices. No active
|
|
65
|
+
retained content across project scopes, not the active instructions policy or new installation
|
|
66
|
+
choices. Selecting **No active instructions** preserves them. Use Instructions Studio for personal content and
|
|
67
67
|
selection changes; merely displaying stored content does not activate it. The list
|
|
68
68
|
can also show retained content after private runtime removal.
|
|
69
69
|
|
|
70
|
-
The installer, launcher and
|
|
70
|
+
The installer, launcher and Instructions Studio use a verified UI bundle without downloading or installing
|
|
71
71
|
Textual. Its extraction is temporary and removed on exit. Missing or damaged
|
|
72
|
-
bundled UI fails explicitly. Language changes presentation, not
|
|
72
|
+
bundled UI fails explicitly. Language changes presentation, not instructions text,
|
|
73
73
|
identifiers or host settings.
|
|
74
74
|
|
|
75
75
|
Back preserves your choices. Cancelling before Apply performs no planned setup
|
|
@@ -81,8 +81,8 @@ before retrying rather than assuming everything rolled back.
|
|
|
81
81
|
Selection flags seed the wizard; they do not skip it:
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
agent-bios install --
|
|
85
|
-
agent-bios install --
|
|
84
|
+
agent-bios install --instructions none
|
|
85
|
+
agent-bios install --instructions selected --select '@agent-bios/core/builder-base'
|
|
86
86
|
agent-bios install --dry-run
|
|
87
87
|
```
|
|
88
88
|
|
|
@@ -90,15 +90,15 @@ agent-bios install --dry-run
|
|
|
90
90
|
machine route. Direct storage-only examples are:
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
|
-
agent-bios install --non-interactive --
|
|
94
|
-
agent-bios install --non-interactive --
|
|
95
|
-
agent-bios install --non-interactive --
|
|
93
|
+
agent-bios install --non-interactive --instructions none
|
|
94
|
+
agent-bios install --non-interactive --instructions all
|
|
95
|
+
agent-bios install --non-interactive --instructions selected --select '@agent-bios/core/builder-base'
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
Those direct commands do not collect dependency, app or import choices. Use the
|
|
99
99
|
shared conversation protocol below for a complete machine setup plan. The legacy
|
|
100
100
|
`--domains` flag requires `--non-interactive` and retains its implicit core/infra
|
|
101
|
-
meaning; `--domains none` is different from `--
|
|
101
|
+
meaning; `--domains none` is different from `--instructions none`.
|
|
102
102
|
|
|
103
103
|
## Setup through conversation or automation
|
|
104
104
|
|
|
@@ -119,7 +119,7 @@ agent-bios setup resume --review-id REVIEW_ID
|
|
|
119
119
|
`start` returns the supported languages, execution target and guide without
|
|
120
120
|
dependency probes or private setup writes. Choose the language before `inspect`.
|
|
121
121
|
The agent produces the six choice fields from your answers and saves the entire
|
|
122
|
-
engine-issued review. It shows the selected commands, destinations,
|
|
122
|
+
engine-issued review. It shows the selected commands, destinations, instructions policy,
|
|
123
123
|
app change and capture sources before applying authorized effects. The engine
|
|
124
124
|
rejects a changed source, environment, plan or state; `--yes` alone is not evidence
|
|
125
125
|
that the effects were reviewed.
|
|
@@ -127,7 +127,8 @@ that the effects were reviewed.
|
|
|
127
127
|
Dependency readiness and installation intent are separate: an already available
|
|
128
128
|
dependency never belongs in the requested `dependencies` list or new install actions.
|
|
129
129
|
The separate `retained_corpus` inventory contains `{target, label, item_count}` rows,
|
|
130
|
-
with localized labels in `display.retained_corpus`, and no instruction bodies.
|
|
130
|
+
with localized labels in `display.retained_corpus`, and no instruction bodies. These
|
|
131
|
+
serialized names remain for [compatibility](instructions-compatibility.md). Source
|
|
131
132
|
package choices and the selected activation policy remain independent of that storage
|
|
132
133
|
view; retained entries are not added to `targets` by being displayed.
|
|
133
134
|
|
|
@@ -139,7 +140,43 @@ it does not replay uncertain operations. The agent follows the full procedure in
|
|
|
139
140
|
[START.md](../compose/setup/START.md), including exact review preservation and verified
|
|
140
141
|
entrypoint handoff. Source and reviewed artifacts remain available for recovery.
|
|
141
142
|
|
|
142
|
-
## Use
|
|
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
|
+
|
|
179
|
+
## Use instructions in a Codex app task
|
|
143
180
|
|
|
144
181
|
Choose **Connect to the Codex app** during setup, or explicitly run:
|
|
145
182
|
|
|
@@ -155,7 +192,7 @@ entry is preserved. Registration on disk does not prove the app discovered it;
|
|
|
155
192
|
setup can return a usable helper path to continue before discovery refreshes.
|
|
156
193
|
|
|
157
194
|
Once discovered, use `$agent-bios` in the chosen task. Ask it to manage the library,
|
|
158
|
-
change setup, show task status, or explicitly use selected
|
|
195
|
+
change setup, show task status, or explicitly use selected instructions in this task.
|
|
159
196
|
A setup or management request does not activate content. Each task starts with
|
|
160
197
|
managed delivery off and requires its own explicit use.
|
|
161
198
|
|
|
@@ -165,13 +202,13 @@ Use previews a `ContentRef` and then returns the exact snapshot's
|
|
|
165
202
|
Session operations require the real task ID, normally `CODEX_THREAD_ID`. Setup and
|
|
166
203
|
management do not require that ID. App use enables no hooks, agents or permissions.
|
|
167
204
|
|
|
168
|
-
Ask `$agent-bios` to turn
|
|
205
|
+
Ask `$agent-bios` to turn instructions delivery off to stop consulting it in subsequent
|
|
169
206
|
work. Text already returned cannot be erased; a fresh task is needed for clean
|
|
170
207
|
exclusion. A resumed or forked conversation can carry earlier content independently
|
|
171
208
|
of the new task's receipt. Native global/project instructions still follow host rules.
|
|
172
209
|
|
|
173
210
|
`agent-bios app unregister` removes only the owned discovery link. It does not erase
|
|
174
|
-
prior task context or personal
|
|
211
|
+
prior task context or personal instructions data. Instructions Studio can also run in the app's
|
|
175
212
|
integrated terminal; editing it changes future snapshots, not current task context.
|
|
176
213
|
|
|
177
214
|
## Import existing instructions
|
|
@@ -190,14 +227,14 @@ agent-bios import apply PLAN_ID --expected-revision REV --json
|
|
|
190
227
|
Discovery checks known global locations and fixed filenames in chosen project
|
|
191
228
|
roots. It does not crawl the home directory or follow instruction references.
|
|
192
229
|
Capture preserves originals and stores redacted evidence with source digests
|
|
193
|
-
privately. It is pending review, not an automatically optimized personal
|
|
230
|
+
privately. It is pending review, not an automatically optimized personal instructions.
|
|
194
231
|
|
|
195
232
|
In an app task, ask `$agent-bios` to review the returned capture ID. The agent
|
|
196
233
|
proposes content, `always`/`relevant`/`requested` placement, rationale, and source-line
|
|
197
234
|
coverage or exclusions. The runtime checks the evidence and structure, and Apply
|
|
198
235
|
requires the reviewed revision. Changed originals or conflicting edits require
|
|
199
236
|
fresh review. Project-scoped imports remain limited to their recorded root and
|
|
200
|
-
applicable hosts, even when all
|
|
237
|
+
applicable hosts, even when all instructions or an enable override is selected.
|
|
201
238
|
|
|
202
239
|
Native hosts may still read the untouched originals. Importing a procedure as
|
|
203
240
|
requested content does not suppress the same rule in a native file, and changing
|
package/docs/understand.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Understand why the
|
|
1
|
+
# Understand why the instructions work this way
|
|
2
2
|
|
|
3
|
-
[← Overview](../README.md) · [Setup](setup.md) · [
|
|
3
|
+
[← Overview](../README.md) · [Setup](setup.md) · [Instructions](instructions.md) · [Sessions](session-model.md) · [Recovery](recovery.md) · [Launch](advanced-launch.md) · [Understand!](understand.md)
|
|
4
4
|
|
|
5
|
-
Understand! is learning for the person using the
|
|
5
|
+
Understand! is learning for the person using the instructions, not model training. It explores reasons and limits through a conversation rather than asking you to memorize files.
|
|
6
6
|
|
|
7
7
|
## Start a learning session
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ agent-launch --understand core-purpose claude # or codex
|
|
|
16
16
|
|
|
17
17
|
The selection is a coherent bundle, not an individual file: core groups cover goals
|
|
18
18
|
and scope, decision support, adaptation, evidence/safety, and retained learning;
|
|
19
|
-
domain and personal bundles come from the effective
|
|
19
|
+
domain and personal bundles come from the effective instructions. A session freezes its
|
|
20
20
|
selected source references and edited content. The tutor explains the purpose,
|
|
21
21
|
background, mechanisms, tradeoffs, and limits, distinguishing documented rationale
|
|
22
22
|
from inference. The tutor chooses a small finite set of core points and tracks their
|
|
@@ -74,11 +74,11 @@ ordering, and asks for a later exact save confirmation. Unsupported provenance l
|
|
|
74
74
|
the award pending, without blocking learning. Significance and semantic originality
|
|
75
75
|
remain explicit tutor/user judgments; transcript validation does not prove them or
|
|
76
76
|
authenticate against an owner who can edit local files. Only a successfully saved
|
|
77
|
-
requested-only personal
|
|
77
|
+
requested-only personal instructions note can unlock the trophy. The CLI prints it, and the
|
|
78
78
|
TUI shows it when there is room. Retries do not duplicate the note; updates and note
|
|
79
79
|
deletion retain the trophy. Full reset archives the active unlock generation and clears
|
|
80
80
|
the display; older discovery records cannot reactivate it. Native global files and
|
|
81
|
-
|
|
81
|
+
instructions source rules are not rewritten by learning.
|
|
82
82
|
|
|
83
83
|
The runtime checks a new proposal's complete review-response size before storing
|
|
84
84
|
its candidate. An oversized proposal can be shortened and retried without leaving
|
package/docs/windows.md
ADDED
|
@@ -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.
|