@timurproko/a1 0.2.2 → 0.2.3-dev.655

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 (85) hide show
  1. package/dist/app/session-shell/session-shell.js +9 -2
  2. package/dist/composition/owned-ui.js +3 -3
  3. package/dist/contracts/owned-ui/model.d.ts +5 -0
  4. package/dist/foundation/startup/startup-descriptor.js +2 -2
  5. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +114 -126
  6. package/dist/integrations/pi/components/resources/builtin-themes.js +145 -157
  7. package/dist/integrations/pi/components/shell-footer-status.js +12 -8
  8. package/dist/integrations/pi/components/shell-presenters-info.js +1 -1
  9. package/dist/integrations/pi/components/shell-selectors-dialogs.js +1 -0
  10. package/dist/integrations/pi/components/shell-shared-facade.js +1 -2
  11. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
  12. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +2 -2
  13. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
  14. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +1 -1
  15. package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +1 -1
  16. package/dist/integrations/pi/components/upstream/components/daxnuts.js +1 -1
  17. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +1 -1
  18. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +1 -1
  19. package/dist/integrations/pi/components/upstream/components/extension-editor.js +1 -1
  20. package/dist/integrations/pi/components/upstream/components/extension-input.js +1 -1
  21. package/dist/integrations/pi/components/upstream/components/extension-selector.js +1 -1
  22. package/dist/integrations/pi/components/upstream/components/mermaid.js +1 -1
  23. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +1 -1
  24. package/dist/integrations/pi/components/upstream/components/owned-editor.js +1 -1
  25. package/dist/integrations/pi/components/upstream/components/pi-logo.d.ts +2 -0
  26. package/dist/integrations/pi/components/upstream/components/pi-logo.js +21 -0
  27. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +1 -1
  28. package/dist/integrations/pi/components/upstream/components/session-footer.js +13 -6
  29. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +1 -1
  30. package/dist/integrations/pi/components/upstream/components/session-selector.js +1 -1
  31. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +1 -1
  32. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +1 -1
  33. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +1 -1
  34. package/dist/integrations/pi/components/upstream/components/status-indicator.js +1 -1
  35. package/dist/integrations/pi/components/upstream/components/themed-text.d.ts +16 -0
  36. package/dist/integrations/pi/components/upstream/components/themed-text.js +28 -0
  37. package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +1 -1
  38. package/dist/integrations/pi/components/upstream/components/thinking-selector.js +1 -1
  39. package/dist/integrations/pi/components/upstream/components/tool-execution.js +25 -3
  40. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +1 -1
  41. package/dist/integrations/pi/components/upstream/components/tree-selector.js +1 -1
  42. package/dist/integrations/pi/components/upstream/components/trust-selector.js +1 -1
  43. package/dist/integrations/pi/components/upstream/external-editor.js +1 -1
  44. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +1 -1
  45. package/dist/integrations/pi/components/upstream/history/editor-core.js +5 -3
  46. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +1 -1
  47. package/dist/integrations/pi/components/upstream/history/kill-ring.js +1 -1
  48. package/dist/integrations/pi/components/upstream/history/printable-key.js +1 -1
  49. package/dist/integrations/pi/components/upstream/history/text-helpers.js +1 -1
  50. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +1 -1
  51. package/dist/integrations/pi/components/upstream/history/undo-stack.js +1 -1
  52. package/dist/integrations/pi/components/upstream/history/word-navigation.js +1 -1
  53. package/dist/integrations/pi/components/upstream/model-search.d.ts +1 -1
  54. package/dist/integrations/pi/components/upstream/theme/system-theme.d.ts +60 -0
  55. package/dist/integrations/pi/components/upstream/theme/system-theme.js +695 -0
  56. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +1 -1
  57. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +6 -2
  58. package/dist/integrations/pi/components/upstream/theme/theme.js +22 -7
  59. package/dist/integrations/pi/engine/adapter.js +6 -0
  60. package/dist/integrations/pi/engine/pi-settings-metadata.json +10 -0
  61. package/dist/integrations/pi/engine/resources/changelog.json +4 -4
  62. package/dist/integrations/pi/engine/session-integration.d.ts +2 -2
  63. package/dist/integrations/pi/engine/session-integration.js +1 -1
  64. package/dist/integrations/pi/engine/settings-bridge.d.ts +1 -1
  65. package/dist/integrations/pi/engine/settings-bridge.js +9 -0
  66. package/dist/integrations/pi/engine/settings-port.js +4 -1
  67. package/dist/integrations/pi/engine/workflows.d.ts +2 -1
  68. package/dist/integrations/pi/engine/workflows.js +1 -0
  69. package/dist/integrations/pi/startup-public.js +1925 -1309
  70. package/dist/integrations/pi/startup-public.manifest.json +1611 -929
  71. package/dist/integrations/pi/tui-runtime/adapter.d.ts +2 -0
  72. package/dist/integrations/pi/tui-runtime/adapter.js +5 -0
  73. package/dist/integrations/pi/tui-runtime/contracts.d.ts +2 -1
  74. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +1 -1
  75. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +1 -1
  76. package/dist/native/darwin-arm64/manifest.json +3 -3
  77. package/dist/native/darwin-arm64/process-guardian +0 -0
  78. package/dist/native/linux-x64/manifest.json +3 -3
  79. package/dist/native/linux-x64/process-guardian +0 -0
  80. package/dist/native/win32-x64/manifest.json +3 -3
  81. package/dist/native/win32-x64/process-guardian.exe +0 -0
  82. package/dist/runtime-payload-inventory.json +40622 -27400
  83. package/docs/architecture/toolchain.md +1 -1
  84. package/docs/ci-release-runbook.md +19 -11
  85. package/package.json +3 -3
@@ -81,7 +81,7 @@ Presentation acceptance is the reader comparing `a1 pi` with pinned Pi. `node sc
81
81
 
82
82
  ## Publication
83
83
 
84
- One reusable workflow publishes both npm channels: `.github/workflows/publish.yml`. Pushes do not publish. Nightly development verification runs at `03:17 UTC`; `npm run develop` dispatches the development wrapper for a numbered preview. `npm run release -- patch` generates a source-bound draft GitHub Release with a Pi-style version/date heading and categorized change sections, starts `.github/workflows/release-candidate.yml` to run the complete stable suite on that source, prints the run link, waits for it, and prints the draft editing link once only after it passes. Choosing native **Publish release** on the draft is the only stable npm trigger: GitHub creates the tag at the bound source, and the `release.published` workflow calls the default-branch publisher, which derives the authorized human actor, source, Release identity, normalized body, and digest, and requires the successful candidate run for that source and version. A preview is stamped as `-dev.<merged pull-request number>` and uses npm `next` only as an internal dist-tag. New candidates pack the application and dependency-free installer once each—including committed release history plus the approved current note snapshot—and validate their exact bytes on Windows, Linux, and macOS; after the click the published note is repacked and the exact-package gates run on the final bytes. A repeated nightly verifies both immutable registry tarballs. After npm verification, publication uploads the asset and fast-forwards `master`, then App-authenticated automation proposes one exact, manually merged reopening PR storing both next `-dev` versions and the note. A failure before either package reaches npm returns the Release to draft and deletes its unconsumed tag, the only tag deletion the release-automation App may perform; after npm, the same run's failed jobs are rerun. Tags are never moved or reused. All npm publication uses provenance from the `npm-publish` environment, a preview never changes `latest`, and one global non-cancelling concurrency group serializes the final registry check.
84
+ One reusable workflow publishes both npm channels: `.github/workflows/publish.yml`. Pushes do not publish. Nightly development verification runs at `03:17 UTC`; `npm run develop` dispatches the development wrapper for a numbered preview. `npm run release -- patch` generates a source-bound draft GitHub Release with a Pi-style version/date heading and categorized change sections, starts `.github/workflows/release-candidate.yml` to run the complete stable suite on that source, prints the run link, waits for it, and prints the draft editing link once only after it passes. Choosing native **Publish release** on the draft is the only stable npm trigger: GitHub creates the tag at the bound source, and the `release.published` workflow calls the default-branch publisher, which derives the authorized human actor, source, Release identity, normalized body, and digest, and requires the successful candidate run for that source and version. A preview is stamped as `-dev.<merged pull-request number>` and uses npm `next` only as an internal dist-tag. New candidates pack the application and dependency-free installer once each—including committed release history plus the approved current note snapshot—and validate their exact bytes on Windows, Linux, and macOS; after the click the published note is repacked and the exact-package gates run on the final bytes. A repeated nightly verifies both immutable registry tarballs. After npm verification, publication uploads the asset and fast-forwards `master`, then App-authenticated automation proposes one exact reopening PR, which documentation auto-merge re-verifies and merges after required CI, storing both next `-dev` versions and the note. A failure before either package reaches npm returns the Release to draft and deletes its unconsumed tag, the only tag deletion the release-automation App may perform; after npm, the same run's failed jobs are rerun. Tags are never moved or reused. All npm publication uses provenance from the `npm-publish` environment, a preview never changes `latest`, and one global non-cancelling concurrency group serializes the final registry check.
85
85
 
86
86
  `docs/ci-release-runbook.md` is the operational reference.
87
87
 
@@ -13,7 +13,7 @@ channel. It starts at `03:17 UTC` for nightly development verification or as a
13
13
  trusted reusable workflow: `npm run develop` dispatches `develop.yml`, the stable
14
14
  release command dispatches `release-candidate.yml` to validate the prepared source
15
15
  without publishing, and native **Publish release** on the prepared draft runs
16
- `finalize-release.yml`, which publishes.
16
+ `release.yml`, which publishes.
17
17
  The maintainer never opens Actions or re-enters the version.
18
18
 
19
19
  npm trusted publishing binds authorization to the exact workflow filename of the
@@ -23,13 +23,16 @@ npmjs.com, with repository `timurproko/a1` and environment `npm-publish`:
23
23
 
24
24
  | Trusted publisher workflow | Publishes |
25
25
  | --- | --- |
26
- | `finalize-release.yml` | stable `latest` after native **Publish release** |
26
+ | `release.yml` | stable `latest` after native **Publish release** |
27
27
  | `develop.yml` | numbered previews from `npm run develop` |
28
28
  | `publish.yml` | nightly `next` from its own schedule |
29
29
 
30
- The retired `release.yml` entry grants nothing and should be removed. No npm token is
31
- used: before either upload, the publish job requires npm >= 11.5.1 and completes the
32
- trusted-publishing token exchange for both packages. A refusal fails there, before
30
+ Before native stable publication, both package settings must show `release.yml`, and the
31
+ draft's bound source must contain `.github/workflows/release.yml`; reprepare any draft
32
+ bound to an older source rather than publishing it. Both packages should list exactly
33
+ these active caller identities; obsolete trusted-publisher entries should be removed.
34
+ No npm token is used: before either upload, the publish job requires npm >= 11.5.1
35
+ and completes the trusted-publishing token exchange for both packages. A refusal fails there, before
33
36
  anything is uploaded, and names the workflow and environment to register. When a
34
37
  caller's path changes, update both packages before the next publication through it.
35
38
 
@@ -82,7 +85,7 @@ effect of stable publication, not a trigger.
82
85
  | `npm run develop` | Preview package gates on Windows, Linux, and macOS; an existing numbered preview is an early successful no-op |
83
86
  | Nightly at `03:17 UTC` | One full documentation review plus the complete non-physical suite on Windows, Linux, and macOS, every night |
84
87
  | `npm run release -- ...` | Creates an editable source-bound draft (or refreshes the existing draft of that version bound to an older `develop`, regenerating its notes and removing duplicate drafts of that version), starts the complete stable suite on that source in `.github/workflows/release-candidate.yml`, prints its run link, waits, and prints the draft edit link only after validation passes |
85
- | Native **Publish release** on the prepared draft | GitHub creates the source-bound tag; `.github/workflows/finalize-release.yml` requires the successful candidate run, adopts the package pair it validated (replacing only the packaged release-note resource when the note was edited), proves npm trust, publishes both packages to npm `latest`, and proposes one manually merged reopening-and-note PR; a failure before npm returns the Release to draft |
88
+ | Native **Publish release** on the prepared draft | GitHub creates the source-bound tag; `.github/workflows/release.yml` requires the successful candidate run, adopts the package pair it validated (replacing only the packaged release-note resource when the note was edited), proves npm trust, publishes both packages to npm `latest`, and proposes one reopening-and-note PR that auto-merges after required CI; a failure before npm returns the Release to draft |
86
89
  | `.github/workflows/release-tag-cleanup.yml` | When a stable Release is deleted, or on dispatch with a version (`gh workflow run release-tag-cleanup.yml -f version=X.Y.Z`): the release-automation App deletes the leftover `vX.Y.Z` tag only while no Release uses it and npm serves neither package; a published version's tag is permanent |
87
90
  | `.github/workflows/full-regression.yml` | Additional on-demand complete regression without publication authority |
88
91
  | `.github/workflows/pi-upstream-sync.yml` | Nightly at `03:23 UTC`: when npm publishes a newer Pi than the pin that no closed proposal skipped, proposes the upgrade as a draft pull request with the vendored copies that follow upstream merged, the kept copies reported with their upstream delta, the ledger, headers, inventories, public API and feature baselines, startup graph, and parity evidence regenerated, and every gate verdict (passed, failed, or blocked by conflict markers) and review item in the body; never merges and never replaces a proposal a human has continued |
@@ -166,7 +169,11 @@ succeeds. If validation finishes before auto-merge can be armed and GitHub alrea
166
169
  reports the pull request clean, the reconciler squash-merges only the validated head
167
170
  SHA. Every current and renamed-from path must be under `openspec/**`, under
168
171
  `docs/**` other than `docs/releases/**`, or exactly the root `README.md`. Release
169
- history always requires manual integration. Eligible pull requests must use a
172
+ history requires manual integration except in the verified release reopening PR:
173
+ a `chore/release-X.Y.Z-dev` PR opened by `openspec-ci[bot]` that modifies only the
174
+ three version declarations (base `<released>-dev`, head its patch successor `-dev`,
175
+ nothing else in the manifests) and adds exactly `docs/releases/<released>.md` equal
176
+ to the published stable Release body. It takes the same validated squash route. Eligible pull requests must use a
170
177
  non-draft branch in this repository and target `develop`. Implementation-associated PRs and newly introduced active OpenSpec changes are held for manual integration even when their diff is documentation-only. Body edits trigger reconciliation; removing a marker cannot bypass the base/head tree check. Standalone existing-change revisions and archive moves remain eligible.
171
178
 
172
179
  The exact allowlist covers maintained OpenSpec, architecture, feature, manual,
@@ -273,7 +280,7 @@ the version. The retired `--approve` form remains a mutation-free usage error.
273
280
  2. **Edit.** When validation passes, open the printed Releases URL and edit the
274
281
  changelog. **Save draft** is optional and starts nothing.
275
282
  3. **Publish.** Choose native **Publish release**. GitHub creates the tag at the bound
276
- source, and its `release.published` event starts `finalize-release.yml`. Trusted default-branch code requires the
283
+ source, and its `release.published` event starts `release.yml`. Trusted default-branch code requires the
277
284
  publisher to be a GitHub `User` with `write`, `maintain`, or `admin` permission,
278
285
  the Release and tag to match the bound source, both npm versions to be absent, and
279
286
  the candidate validation of that exact source and version to have succeeded. Apps,
@@ -288,8 +295,9 @@ the version. The retired `--approve` form remains a mutation-free usage error.
288
295
  uploads the asset, fast-forwards `master`, and creates or exactly reuses
289
296
  `chore/release-0.1.9-dev`. That PR's single commit changes only the application
290
297
  manifest, root lockfile, installer version, and exact `docs/releases/0.1.8.md`.
291
- Let required CI pass and **merge it manually**. Automation never merges or
292
- enables auto-merge.
298
+ Documentation auto-merge re-verifies that exact content and squash-merges it
299
+ once required CI passes on its current head. If any check fails it disables
300
+ auto-merge; then let required CI pass and **merge it manually**.
293
301
 
294
302
  Publishing before validation finishes is safe: publication fails before npm and the
295
303
  Release returns to draft. Publish the draft again once validation has succeeded.
@@ -366,7 +374,7 @@ Rules that do not bend:
366
374
  - **Draft preparation stops:** inspect the reported draft Release. Preparation may safely reuse an exact source-bound draft without overwriting edits, and reuses a running or successful validation of the same source and version. If `develop` advanced, retire the stale draft explicitly and prepare a new one from synchronized `develop`.
367
375
  - **Candidate validation fails:** do not publish the draft. Fix the failure on `develop`, retire the draft, and prepare again; the new draft binds the new source. Publishing anyway fails before npm and returns the Release to draft.
368
376
  - **Publication fails before npm:** the rollback job returns the Release to draft and deletes the unconsumed tag, so no manual tag cleanup is needed. Read the failed `Publish stable release` run, fix the cause (for example, wait for validation, undo a body edit made after publishing, rerun candidate validation when its retained package is missing or older than 30 days, or register the trusted publisher the npm preflight names), and choose **Publish release** again. If the rollback job itself failed, rerun it; never delete or move a tag by hand.
369
- - **Publication fails after npm:** the Release and tag stay. Rerun the failed jobs of that same run: its retained candidate and digests make the final registry check an exact-byte no-op for any package already published. Any recovered reopening PR must contain only both next `-dev` version declarations and the exact approved `docs/releases/<released>.md`; merge it by hand after CI. Never republish immutable bytes. Never repeat stable publication for a published version.
377
+ - **Publication fails after npm:** the Release and tag stay. Rerun the failed jobs of that same run: its retained candidate and digests make the final registry check an exact-byte no-op for any package already published. Any recovered reopening PR must contain only both next `-dev` version declarations and the exact approved `docs/releases/<released>.md`; it auto-merges after CI when it verifies, otherwise merge it by hand. Never republish immutable bytes. Never repeat stable publication for a published version.
370
378
 
371
379
  ## Safe release-command validation
372
380
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timurproko/a1",
3
- "version": "0.2.2",
3
+ "version": "0.2.3-dev.655",
4
4
  "description": "Standalone terminal workspace for supervised native and managed agents",
5
5
  "type": "module",
6
6
  "privateLaunchContract": "neutral-launch-v1",
@@ -64,8 +64,8 @@
64
64
  "typecheck:bin": "tsgo -p tsconfig.bin.json"
65
65
  },
66
66
  "dependencies": {
67
- "@earendil-works/pi-coding-agent": "0.87.1",
68
- "@earendil-works/pi-tui": "0.87.1",
67
+ "@earendil-works/pi-coding-agent": "0.99.2",
68
+ "@earendil-works/pi-tui": "0.99.2",
69
69
  "@silvia-odwyer/photon-node": "0.3.4",
70
70
  "chalk": "5.6.2",
71
71
  "cross-spawn": "7.0.6",