orizu 0.5.37 → 0.5.39

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 (98) hide show
  1. package/README.md +18 -3
  2. package/dist/app-commands.d.ts.map +1 -1
  3. package/dist/app-commands.js +215 -57
  4. package/dist/app-publish-failure.d.ts +6 -0
  5. package/dist/app-publish-failure.d.ts.map +1 -0
  6. package/dist/app-publish-failure.js +9 -0
  7. package/dist/app-publish-paths.d.ts +4 -0
  8. package/dist/app-publish-paths.d.ts.map +1 -0
  9. package/dist/app-publish-paths.js +32 -0
  10. package/dist/app-publish-workspace.d.ts +16 -0
  11. package/dist/app-publish-workspace.d.ts.map +1 -0
  12. package/dist/app-publish-workspace.js +175 -0
  13. package/dist/artifacts-git-runtime.d.ts +5 -0
  14. package/dist/artifacts-git-runtime.d.ts.map +1 -1
  15. package/dist/artifacts-git-runtime.js +70 -25
  16. package/dist/artifacts-session-merge.d.ts +62 -0
  17. package/dist/artifacts-session-merge.d.ts.map +1 -0
  18. package/dist/artifacts-session-merge.js +123 -0
  19. package/dist/dataset-append-workflow.d.ts +12 -0
  20. package/dist/dataset-append-workflow.d.ts.map +1 -0
  21. package/dist/dataset-append-workflow.js +198 -0
  22. package/dist/dataset-commands.d.ts.map +1 -1
  23. package/dist/dataset-commands.js +11 -130
  24. package/dist/dataset-transfer-download.js +6 -6
  25. package/dist/dataset-transfer-upload.js +8 -8
  26. package/dist/git-credential.d.ts +1 -1
  27. package/dist/git-credential.d.ts.map +1 -1
  28. package/dist/git-credential.js +8 -1
  29. package/dist/help.js +3 -3
  30. package/dist/hosted-boot.d.ts +11 -0
  31. package/dist/hosted-boot.d.ts.map +1 -1
  32. package/dist/hosted-boot.js +46 -1
  33. package/dist/hosted-harvest.d.ts.map +1 -1
  34. package/dist/hosted-harvest.js +11 -1
  35. package/dist/hosted-session-cli.d.ts.map +1 -1
  36. package/dist/hosted-session-cli.js +6 -1
  37. package/dist/hosted-session-seed.d.ts +45 -0
  38. package/dist/hosted-session-seed.d.ts.map +1 -0
  39. package/dist/hosted-session-seed.js +61 -0
  40. package/dist/hosted-skill-staging.d.ts +8 -3
  41. package/dist/hosted-skill-staging.d.ts.map +1 -1
  42. package/dist/hosted-skill-staging.js +10 -3
  43. package/dist/jsonl-stream.d.ts +1 -0
  44. package/dist/jsonl-stream.d.ts.map +1 -1
  45. package/dist/jsonl-stream.js +7 -0
  46. package/dist/provider-list-workflow.d.ts +3 -0
  47. package/dist/provider-list-workflow.d.ts.map +1 -0
  48. package/dist/provider-list-workflow.js +95 -0
  49. package/dist/provider-wire-record.d.ts +3 -0
  50. package/dist/provider-wire-record.d.ts.map +1 -0
  51. package/dist/provider-wire-record.js +4 -0
  52. package/dist/providers-cli.d.ts.map +1 -1
  53. package/dist/providers-cli.js +5 -15
  54. package/dist/publish-merge-job.d.ts +68 -0
  55. package/dist/publish-merge-job.d.ts.map +1 -0
  56. package/dist/publish-merge-job.js +320 -0
  57. package/dist/publish-merge-timing.d.ts +18 -0
  58. package/dist/publish-merge-timing.d.ts.map +1 -0
  59. package/dist/publish-merge-timing.js +23 -0
  60. package/dist/workbench-cli.d.ts +4 -0
  61. package/dist/workbench-cli.d.ts.map +1 -1
  62. package/dist/workbench-cli.js +11 -1
  63. package/dist/workspace-bootstrap-job.d.ts +1 -0
  64. package/dist/workspace-bootstrap-job.d.ts.map +1 -1
  65. package/dist/workspace-bootstrap-job.js +1 -1
  66. package/package.json +5 -2
  67. package/src/app-commands.ts +234 -66
  68. package/src/app-publish-failure.ts +7 -0
  69. package/src/app-publish-paths.ts +27 -0
  70. package/src/app-publish-workspace.ts +207 -0
  71. package/src/artifacts-git-runtime.ts +73 -31
  72. package/src/artifacts-session-merge.ts +253 -0
  73. package/src/dataset-append-workflow.ts +205 -0
  74. package/src/dataset-commands.ts +10 -170
  75. package/src/dataset-transfer-download.ts +5 -5
  76. package/src/dataset-transfer-upload.ts +7 -7
  77. package/src/git-credential.ts +8 -1
  78. package/src/help.ts +3 -3
  79. package/src/hosted-boot.ts +56 -1
  80. package/src/hosted-harvest.ts +11 -1
  81. package/src/hosted-session-cli.ts +6 -1
  82. package/src/hosted-session-seed.ts +78 -0
  83. package/src/hosted-skill-staging.ts +11 -3
  84. package/src/jsonl-stream.ts +8 -0
  85. package/src/provider-list-workflow.ts +108 -0
  86. package/src/provider-wire-record.ts +4 -0
  87. package/src/providers-cli.ts +5 -13
  88. package/src/publish-merge-job.ts +350 -0
  89. package/src/publish-merge-timing.ts +27 -0
  90. package/src/workbench-cli.ts +15 -1
  91. package/src/workspace-bootstrap-job.ts +1 -1
  92. package/vendor/skills/orizu/flows/onboard.md +1 -1
  93. package/vendor/skills/orizu/references/authority-map.md +2 -2
  94. package/vendor/skills/orizu/references/building-apps.md +24 -0
  95. package/vendor/skills/orizu/references/cli-reference.md +13 -4
  96. package/vendor/skills/orizu/references/optimization-reports.md +1 -1
  97. package/vendor/skills/orizu/references/primer.md +1 -0
  98. package/vendor/skills/orizu/references/prompt-control-plane.md +9 -5
@@ -1608,3 +1608,27 @@ Before `orizu apps create`:
1608
1608
  - [ ] `?` shortcut overlay or visible cheat sheet
1609
1609
  - [ ] Smoke test passes (`node scripts/test-app.mjs ...`)
1610
1610
  - [ ] Local preview renders and screenshot is inspected against the user's intended workflow (`orizu apps preview ... --screenshot preview.png`)
1611
+
1612
+ ---
1613
+
1614
+ ## Publishing from a hosted session
1615
+
1616
+ In a hosted session, `orizu apps create` and `orizu apps update` publish through git. Pass `--file`, `--input-schema` and `--output-schema` as usual; the command then:
1617
+
1618
+ 1. Copies the three files into `projects/<project-slug>/apps/<app-id>/` in the workspace as `App.tsx`, `input.schema.json` and `output.schema.json`, commits only App.tsx, input.schema.json, and output.schema.json, and pushes the session copy.
1619
+ 2. Merges the session into the team copy, then records the version. It prints `Merged into the team copy: <sha>` or `Already in the team copy: <sha>`.
1620
+
1621
+ Edit an existing app in its folder and pass those files to `apps update`. A new app can live anywhere until `apps create` places it.
1622
+
1623
+ The merge includes all earlier committed work on the session branch, including files outside the app folder. Review that work before publishing. Unrelated uncommitted work stays local. A conflict may name files outside the app folder; resolve and commit those files too.
1624
+
1625
+ When a hosted `apps create` or `apps update` stops after its folder is known, its error prints `App ID`, `Folder`, and a full `Retry` command. Keep that ID and folder. After all three app files have been written, the retry uses safe canonical files, preserving committed conflict resolutions. If the attempt stops before all three files are written, the retry keeps the original input paths. Both retries preserve the selected server. After following the error's instructions, run the printed retry command; create keeps its original `--id`, and update keeps its `--app`. This also applies when the push is rejected, the API refuses the create, or the merge is still running. The files and commits already made stay in the workspace; a refused push has not sent them to the server.
1626
+
1627
+ An explicit publish refusal before recording means no app version was recorded. Act on its message, then use the printed retry command. If transport fails or the response cannot be read, the outcome is uncertain: check the retained app ID before retrying.
1628
+
1629
+ - **Conflict** (names the files): run the full printed `Recovery` command. It checks whether the workspace is shallow, fetches missing history from origin if needed, then pulls the team copy with an explicit merge strategy. If ancestry preparation fails, stop and repair origin before retrying; the team pull must not run. Resolve those files and commit. For `apps create`, use the printed retry command with its original `--id`, so the app keeps its folder.
1630
+ - **Session copy has commits this workspace does not**: run `git pull --no-rebase --no-edit`, then retry. For `apps create`, keep the printed `--id`.
1631
+ - **Still merging, other publishes landed first, or failed**: retry. For `apps create`, use the printed retry command with its original `--id`; for `apps update`, use its printed retry command.
1632
+ - **Refused** (the session ended or the team paused agents): stop and tell the user.
1633
+
1634
+ Outside a hosted session the command records the version only, and prints a note that it is not in the team repository yet.
@@ -192,10 +192,17 @@ Profile, never a version, and exposes no fallback or affected-Profile list.
192
192
  `default move` repoints
193
193
  Default to the named Profile without moving Production; if that Profile is
194
194
  unpromoted, bare resolution refuses with `instruction_set_profile_not_promoted`.
195
- `shape add` and `shape remove` create a new complete version for every profile;
196
- they never move Default or a Production label. The set does not resolve for affected model
197
- configs until those pointers move to the new shape-change profile versions; the
198
- text CLI prints the required follow-up commands.
195
+ `shape add` and `shape remove` work only until the first promotion of any
196
+ profile. They create a new complete unpromoted version for every profile and
197
+ never move Default or a Production label. First promotion permanently freezes
198
+ the shape; changing component names after publication requires a new instruction
199
+ set, even after archiving or removing production pointers. Every set that
200
+ existed when this rule shipped is already frozen, including drafts, so a 409
201
+ `Instruction set shape is permanently frozen` on an existing set means: create a
202
+ new instruction set. If sync or a run refuses with
203
+ `instruction_set_production_shape_mismatch`, the Production version predates the
204
+ freeze and disagrees with the set's components; hand off creating and promoting
205
+ a compatible version to a human. Exact `@vN` sync still works.
199
206
 
200
207
  The manifest is a JSON object with `name`, optional unversioned `description`,
201
208
  ordered `shape`, and `components`. The description belongs to the instruction
@@ -309,6 +316,8 @@ orizu apps update \
309
316
  --output-schema ./schemas/output.json
310
317
  ```
311
318
 
319
+ In a hosted session both commands commit the app into `projects/<project-slug>/apps/<app-id>/` and merge it into the team copy before recording it; `apps create --id <app-id>` reruns a create that stopped and keeps its folder. See [building-apps.md](building-apps.md#publishing-from-a-hosted-session).
320
+
312
321
  Link dataset:
313
322
 
314
323
  ```bash
@@ -52,7 +52,7 @@ Second, before pushing, require the target profile's `model_config_settings_vers
52
52
 
53
53
  Once a supported surface can prove equality, the agent may copy the selected value exactly into the complete manifest while preserving every other override and pin, then use the runner-pinned push above on the local surface. Moving exactly one verified serving pointer remains human-only. An existing Production Profile would be promoted by the human and recover with `orizu instructions profiles rollback <set> --project <team/project> --model-config <identity> --to <previous-production-version-number>`. A human managing Default would first confirm the target Profile has a reviewed Production Version, move Default to that Profile identity, and recover by moving the prior Default Profile identity back. If a change must affect only one identity, a curator establishes a dedicated Profile only when none exists and confirms a recovery target; an existing unpromoted Profile makes `profiles new` reject and remains unusable until promoted. These are blocked flow shapes, not permission to bypass the settings proof.
54
54
 
55
- If the blocked set-of-one run should instead become a profile-recorded optimization, change the instruction-set shape to more than one real, separately optimized component, validate the new multi-component manifest and dataset contract, and only then rerun. Repeating the same one-component shape remains a prompt-version run. If that material redesign is not warranted, keep the current run at **Gather more evidence**.
55
+ If the blocked set-of-one run should instead become a profile-recorded optimization, give it more than one real, separately optimized component, validate the new multi-component manifest and dataset contract, and only then rerun. Shape edits work only until a set's first promotion; a published or rollout-frozen set needs a new instruction set with the new shape. Repeating the same one-component shape remains a prompt-version run. If that material redesign is not warranted, keep the current run at **Gather more evidence**.
56
56
 
57
57
  Pre-promotion Final-held-out confirmation is unsupported for a plain-prompt run today: the selected prompt version does not exist until its live pointer move. The report must present validation-only evidence, mark Final-held-out as **not obtainable before promotion**, and never describe Final-held-out proof as completed. If policy requires Final-held-out evidence before production, recommend **Gather more evidence** and do not run the promotion command. If a human explicitly accepts live-first verification, phrase the ship recommendation as a **post-promotion verification plan**: name the watch window, failure threshold, and confirmed rollback path before promotion. The current CLI has no plain-prompt rollback command, so do not invent one; if no external/manual rollback path is confirmed, recommend **Gather more evidence**. A set-of-one run also stops today when complete local runner evidence is unavailable and, even when that runner is known, because run-versus-target settings equality cannot be proven through the supported CLI.
58
58
 
@@ -125,6 +125,7 @@ Two artifacts: an **app** (custom labeler UI) and a **task** (the labeling round
125
125
 
126
126
  ```bash
127
127
  # 1. Create the labeler app, bound to the dataset
128
+ # (in a hosted session it is committed and merged into the team copy first; see building-apps.md)
128
129
  orizu apps create \
129
130
  --project <teamSlug>/<projectSlug> \
130
131
  --name "Support QA Labeler" \
@@ -67,17 +67,21 @@ display name. Archiving changes list visibility only, so archived sets still res
67
67
  and sync; use `--status archived` or `--status all` to find them before
68
68
  restoring.
69
69
 
70
- Shape changes create unpromoted profile heads but leave the default and
71
- production pointers in place. The instruction set does not resolve for affected
72
- model configs until those pointers move to their new shape-change versions; use
73
- the follow-up commands printed by the text CLI.
70
+ Shape add/remove works only until the first promotion of any profile. Draft
71
+ shape changes create unpromoted profile heads and leave Default in place. First
72
+ promotion permanently freezes component names; changing a published shape
73
+ requires a new instruction set, even after archiving or removing production
74
+ pointers. Sets that existed when this rule shipped are frozen too, including
75
+ drafts. `instruction_set_production_shape_mismatch` means a pre-freeze Production
76
+ version disagrees with the set's components; a human must promote a compatible
77
+ version, and exact `@vN` sync still works meanwhile.
74
78
 
75
79
  `default show` reports the Default Profile and the Version its Production
76
80
  currently names, or `null` when that Profile is unpromoted. `default move`
77
81
  targets a Profile by model-config identity, never a Version, and does not move
78
82
  Production. Moving Default to an unpromoted Profile makes bare resolution refuse
79
83
  with `instruction_set_profile_not_promoted`; no other Profile falls back to it.
80
- Shape changes create a new `shape_change` Version for every Profile; they do not
84
+ Before first promotion, shape changes create a new `shape_change` Version for every Profile; they do not
81
85
  repoint Default or any Production label.
82
86
 
83
87
  Sync an offline runner directory with `orizu instructions sync planner