orizu 0.5.20 → 0.5.21

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 (260) hide show
  1. package/dist/archive-artifacts-cli.d.ts +50 -0
  2. package/dist/archive-artifacts-cli.d.ts.map +1 -0
  3. package/dist/artifact-archive.d.ts +48 -0
  4. package/dist/artifact-archive.d.ts.map +1 -0
  5. package/dist/artifact-pull.d.ts +22 -0
  6. package/dist/artifact-pull.d.ts.map +1 -0
  7. package/dist/banner.d.ts +3 -0
  8. package/dist/banner.d.ts.map +1 -0
  9. package/dist/connectors-cli.d.ts +31 -0
  10. package/dist/connectors-cli.d.ts.map +1 -0
  11. package/dist/credentials.d.ts +46 -0
  12. package/dist/credentials.d.ts.map +1 -0
  13. package/dist/csv.d.ts +49 -0
  14. package/dist/csv.d.ts.map +1 -0
  15. package/dist/dataset-download.d.ts +6 -0
  16. package/dist/dataset-download.d.ts.map +1 -0
  17. package/dist/dataset-edit-rows.d.ts +10 -0
  18. package/dist/dataset-edit-rows.d.ts.map +1 -0
  19. package/dist/dataset-upload-snapshot.d.ts +13 -0
  20. package/dist/dataset-upload-snapshot.d.ts.map +1 -0
  21. package/dist/daytona-slice-rehearsal.d.ts +89 -0
  22. package/dist/daytona-slice-rehearsal.d.ts.map +1 -0
  23. package/dist/daytona-slice.d.ts +106 -0
  24. package/dist/daytona-slice.d.ts.map +1 -0
  25. package/dist/deploy-key-merge-core.d.ts +121 -0
  26. package/dist/deploy-key-merge-core.d.ts.map +1 -0
  27. package/dist/diff-comments-cli.d.ts +12 -0
  28. package/dist/diff-comments-cli.d.ts.map +1 -0
  29. package/dist/diff-comments-cli.js +3 -0
  30. package/dist/egress-allowlist-cli.d.ts +23 -0
  31. package/dist/egress-allowlist-cli.d.ts.map +1 -0
  32. package/dist/egress-policy.d.ts +108 -0
  33. package/dist/egress-policy.d.ts.map +1 -0
  34. package/dist/error-response.d.ts +9 -0
  35. package/dist/error-response.d.ts.map +1 -0
  36. package/dist/file-parser.d.ts +5 -0
  37. package/dist/file-parser.d.ts.map +1 -0
  38. package/dist/gepa-engine-dispatch.d.ts +9 -0
  39. package/dist/gepa-engine-dispatch.d.ts.map +1 -0
  40. package/dist/gepa-engine-dispatch.js +48 -2
  41. package/dist/gepa-python-command.d.ts +6 -0
  42. package/dist/gepa-python-command.d.ts.map +1 -0
  43. package/dist/gepa-python-paths.d.ts +6 -0
  44. package/dist/gepa-python-paths.d.ts.map +1 -0
  45. package/dist/gepa-python-paths.js +6 -3
  46. package/dist/git-credential.d.ts +69 -0
  47. package/dist/git-credential.d.ts.map +1 -0
  48. package/dist/git-recovery-environment.d.ts +31 -0
  49. package/dist/git-recovery-environment.d.ts.map +1 -0
  50. package/dist/github-setup.d.ts +122 -0
  51. package/dist/github-setup.d.ts.map +1 -0
  52. package/dist/global-flags.d.ts +12 -0
  53. package/dist/global-flags.d.ts.map +1 -0
  54. package/dist/help.d.ts +46 -0
  55. package/dist/help.d.ts.map +1 -0
  56. package/dist/help.js +91 -23
  57. package/dist/hosted-boot.d.ts +273 -0
  58. package/dist/hosted-boot.d.ts.map +1 -0
  59. package/dist/hosted-bootstrap-rehearsal.d.ts +86 -0
  60. package/dist/hosted-bootstrap-rehearsal.d.ts.map +1 -0
  61. package/dist/hosted-bootstrap.d.ts +188 -0
  62. package/dist/hosted-bootstrap.d.ts.map +1 -0
  63. package/dist/hosted-broker-server.d.ts +50 -0
  64. package/dist/hosted-broker-server.d.ts.map +1 -0
  65. package/dist/hosted-git-http-server.d.ts +36 -0
  66. package/dist/hosted-git-http-server.d.ts.map +1 -0
  67. package/dist/hosted-harness-claude.d.ts +195 -0
  68. package/dist/hosted-harness-claude.d.ts.map +1 -0
  69. package/dist/hosted-harness-opencode.d.ts +227 -0
  70. package/dist/hosted-harness-opencode.d.ts.map +1 -0
  71. package/dist/hosted-harness.d.ts +118 -0
  72. package/dist/hosted-harness.d.ts.map +1 -0
  73. package/dist/hosted-harvest.d.ts +68 -0
  74. package/dist/hosted-harvest.d.ts.map +1 -0
  75. package/dist/hosted-headless.d.ts +72 -0
  76. package/dist/hosted-headless.d.ts.map +1 -0
  77. package/dist/hosted-loop-lifecycle.d.ts +206 -0
  78. package/dist/hosted-loop-lifecycle.d.ts.map +1 -0
  79. package/dist/hosted-loop.d.ts +170 -0
  80. package/dist/hosted-loop.d.ts.map +1 -0
  81. package/dist/hosted-run-event-sink.d.ts +222 -0
  82. package/dist/hosted-run-event-sink.d.ts.map +1 -0
  83. package/dist/hosted-runtime-assets.d.ts +186 -0
  84. package/dist/hosted-runtime-assets.d.ts.map +1 -0
  85. package/dist/hosted-session-cli.d.ts +258 -0
  86. package/dist/hosted-session-cli.d.ts.map +1 -0
  87. package/dist/hosted-skill-staging.d.ts +73 -0
  88. package/dist/hosted-skill-staging.d.ts.map +1 -0
  89. package/dist/http.d.ts +8 -0
  90. package/dist/http.d.ts.map +1 -0
  91. package/dist/index.d.ts +22 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +88 -92
  94. package/dist/instruction-set-gepa-launch.d.ts +3 -0
  95. package/dist/instruction-set-gepa-launch.d.ts.map +1 -0
  96. package/dist/instruction-set-gepa-launch.js +15 -0
  97. package/dist/instruction-set-loader.d.ts +6 -0
  98. package/dist/instruction-set-loader.d.ts.map +1 -0
  99. package/dist/instruction-set-loader.js +59 -0
  100. package/dist/instruction-set-manifest.d.ts +14 -0
  101. package/dist/instruction-set-manifest.d.ts.map +1 -0
  102. package/dist/instruction-set-manifest.js +162 -0
  103. package/dist/instruction-sets-cli.d.ts +40 -0
  104. package/dist/instruction-sets-cli.d.ts.map +1 -0
  105. package/dist/instruction-sets-cli.js +361 -0
  106. package/dist/json-response.d.ts +4 -0
  107. package/dist/json-response.d.ts.map +1 -0
  108. package/dist/jsonl-stream.d.ts +8 -0
  109. package/dist/jsonl-stream.d.ts.map +1 -0
  110. package/dist/kill-switch-cli.d.ts +30 -0
  111. package/dist/kill-switch-cli.d.ts.map +1 -0
  112. package/dist/loopback-serve.d.ts +25 -0
  113. package/dist/loopback-serve.d.ts.map +1 -0
  114. package/dist/manifests-cli.d.ts +22 -0
  115. package/dist/manifests-cli.d.ts.map +1 -0
  116. package/dist/markdown-report-input.d.ts +7 -0
  117. package/dist/markdown-report-input.d.ts.map +1 -0
  118. package/dist/merge-job.d.ts +155 -0
  119. package/dist/merge-job.d.ts.map +1 -0
  120. package/dist/model-configs-cli.d.ts +19 -0
  121. package/dist/model-configs-cli.d.ts.map +1 -0
  122. package/dist/model-configs-cli.js +104 -0
  123. package/dist/optimization-export-cli.d.ts +19 -0
  124. package/dist/optimization-export-cli.d.ts.map +1 -0
  125. package/dist/optimizations-list-cli.d.ts +20 -0
  126. package/dist/optimizations-list-cli.d.ts.map +1 -0
  127. package/dist/optimizations-promote-cli.d.ts +8 -0
  128. package/dist/optimizations-promote-cli.d.ts.map +1 -0
  129. package/dist/optimizations-promote-cli.js +34 -0
  130. package/dist/option-validation.d.ts +15 -0
  131. package/dist/option-validation.d.ts.map +1 -0
  132. package/dist/preview-runtime.d.ts +63 -0
  133. package/dist/preview-runtime.d.ts.map +1 -0
  134. package/dist/prompt-draft-push.d.ts +60 -0
  135. package/dist/prompt-draft-push.d.ts.map +1 -0
  136. package/dist/prompt-label-cli.d.ts +11 -0
  137. package/dist/prompt-label-cli.d.ts.map +1 -0
  138. package/dist/prompt-label-cli.js +29 -0
  139. package/dist/prompt-length-wire.d.ts +28 -0
  140. package/dist/prompt-length-wire.d.ts.map +1 -0
  141. package/dist/prompt-report-cli.d.ts +10 -0
  142. package/dist/prompt-report-cli.d.ts.map +1 -0
  143. package/dist/prompt-summary-table.d.ts +15 -0
  144. package/dist/prompt-summary-table.d.ts.map +1 -0
  145. package/dist/prompt-summary-table.js +6 -0
  146. package/dist/registration-tag-warning.d.ts +32 -0
  147. package/dist/registration-tag-warning.d.ts.map +1 -0
  148. package/dist/report-comments-cli.d.ts +16 -0
  149. package/dist/report-comments-cli.d.ts.map +1 -0
  150. package/dist/report-markdown-blankness.d.ts +2 -0
  151. package/dist/report-markdown-blankness.d.ts.map +1 -0
  152. package/dist/report-replacement-warning.d.ts +17 -0
  153. package/dist/report-replacement-warning.d.ts.map +1 -0
  154. package/dist/repository-backup-core.d.ts +225 -0
  155. package/dist/repository-backup-core.d.ts.map +1 -0
  156. package/dist/repository-recovery-manifest.d.ts +83 -0
  157. package/dist/repository-recovery-manifest.d.ts.map +1 -0
  158. package/dist/run-event-digest.d.ts +74 -0
  159. package/dist/run-event-digest.d.ts.map +1 -0
  160. package/dist/runner-dir-verify.d.ts +66 -0
  161. package/dist/runner-dir-verify.d.ts.map +1 -0
  162. package/dist/runner-instruction-set-contract.d.ts +24 -0
  163. package/dist/runner-instruction-set-contract.d.ts.map +1 -0
  164. package/dist/runner-instruction-set-contract.js +50 -0
  165. package/dist/sandbox-hygiene.d.ts +45 -0
  166. package/dist/sandbox-hygiene.d.ts.map +1 -0
  167. package/dist/sandbox-provider.d.ts +193 -0
  168. package/dist/sandbox-provider.d.ts.map +1 -0
  169. package/dist/scorer-draft-push.d.ts +50 -0
  170. package/dist/scorer-draft-push.d.ts.map +1 -0
  171. package/dist/scorers-cli.d.ts +20 -0
  172. package/dist/scorers-cli.d.ts.map +1 -0
  173. package/dist/scorers-cli.js +22 -0
  174. package/dist/scorers-verify-parity-bridge.d.ts +16 -0
  175. package/dist/scorers-verify-parity-bridge.d.ts.map +1 -0
  176. package/dist/scorers-verify-parity-bridge.js +90 -0
  177. package/dist/scorers-verify-parity.d.ts +81 -0
  178. package/dist/scorers-verify-parity.d.ts.map +1 -0
  179. package/dist/scorers-verify-parity.js +502 -0
  180. package/dist/scores-accept-cli.d.ts +21 -0
  181. package/dist/scores-accept-cli.d.ts.map +1 -0
  182. package/dist/secret-redaction.d.ts +47 -0
  183. package/dist/secret-redaction.d.ts.map +1 -0
  184. package/dist/session-timeline.d.ts +54 -0
  185. package/dist/session-timeline.d.ts.map +1 -0
  186. package/dist/setup-prompt.d.ts +5 -0
  187. package/dist/setup-prompt.d.ts.map +1 -0
  188. package/dist/skill-installer.d.ts +68 -0
  189. package/dist/skill-installer.d.ts.map +1 -0
  190. package/dist/skilled-proposer-launch.d.ts +7 -0
  191. package/dist/skilled-proposer-launch.d.ts.map +1 -0
  192. package/dist/skilled-proposer-launch.js +60 -0
  193. package/dist/smoke.d.ts +102 -0
  194. package/dist/smoke.d.ts.map +1 -0
  195. package/dist/start-intent.d.ts +12 -0
  196. package/dist/start-intent.d.ts.map +1 -0
  197. package/dist/task-assignment-manifest.d.ts +15 -0
  198. package/dist/task-assignment-manifest.d.ts.map +1 -0
  199. package/dist/task-create-error.d.ts +18 -0
  200. package/dist/task-create-error.d.ts.map +1 -0
  201. package/dist/team-connectors-cli.d.ts +29 -0
  202. package/dist/team-connectors-cli.d.ts.map +1 -0
  203. package/dist/types.d.ts +39 -0
  204. package/dist/types.d.ts.map +1 -0
  205. package/dist/vercel-sandbox-provider.d.ts +156 -0
  206. package/dist/vercel-sandbox-provider.d.ts.map +1 -0
  207. package/dist/workbench-cli.d.ts +233 -0
  208. package/dist/workbench-cli.d.ts.map +1 -0
  209. package/dist/workspace-sync.d.ts +207 -0
  210. package/dist/workspace-sync.d.ts.map +1 -0
  211. package/dist/workspace.d.ts +92 -0
  212. package/dist/workspace.d.ts.map +1 -0
  213. package/dist/zip-draft-push.d.ts +55 -0
  214. package/dist/zip-draft-push.d.ts.map +1 -0
  215. package/package.json +14 -1
  216. package/requirements/README.md +138 -0
  217. package/requirements/skilled-proposer.in +66 -0
  218. package/requirements/skilled-proposer.lock +265 -0
  219. package/scripts/ensure-skilled-proposer-venv.mjs +5 -0
  220. package/scripts/refresh-skilled-proposer-lock.mjs +256 -0
  221. package/src/diff-comments-cli.ts +4 -0
  222. package/src/gepa-engine-dispatch.ts +42 -2
  223. package/src/gepa-python-paths.ts +6 -3
  224. package/src/help.ts +93 -23
  225. package/src/index.ts +99 -126
  226. package/src/instruction-set-gepa-launch.ts +28 -0
  227. package/src/instruction-set-loader.ts +37 -0
  228. package/src/instruction-set-manifest.ts +120 -0
  229. package/src/instruction-sets-cli.ts +306 -0
  230. package/src/model-configs-cli.ts +119 -0
  231. package/src/optimizations-promote-cli.ts +41 -0
  232. package/src/prompt-label-cli.ts +55 -0
  233. package/src/prompt-summary-table.ts +12 -0
  234. package/src/runner-instruction-set-contract.ts +64 -0
  235. package/src/scorers-cli.ts +40 -0
  236. package/src/scorers-verify-parity-bridge.ts +90 -0
  237. package/src/scorers-verify-parity.ts +564 -0
  238. package/src/skilled-proposer-launch.ts +89 -0
  239. package/src/skilled-proposer-venv-manager.mjs +757 -0
  240. package/tsconfig.json +2 -0
  241. package/vendor/orizu-gepa/src/orizu_gepa_connector/__init__.py +2 -1
  242. package/vendor/orizu-gepa/src/orizu_gepa_connector/adapter.py +8 -2
  243. package/vendor/orizu-gepa/src/orizu_gepa_connector/callbacks.py +17 -3
  244. package/vendor/orizu-gepa/src/orizu_gepa_connector/engine.py +100 -8
  245. package/vendor/orizu-gepa/src/orizu_gepa_connector/instruction_set_loader.py +52 -0
  246. package/vendor/orizu-gepa/src/orizu_gepa_connector/reflection.py +92 -12
  247. package/vendor/orizu-gepa/src/orizu_gepa_connector/runtime.py +100 -22
  248. package/vendor/orizu-gepa/src/orizu_gepa_connector/skilled_proposer_bridge.py +381 -0
  249. package/vendor/orizu-gepa/src/orizu_gepa_connector/stop_conditions.py +17 -0
  250. package/vendor/orizu-gepa/src/orizu_gepa_connector/translator.py +2 -1
  251. package/vendor/orizu-gepa-python/src/orizu_gepa/client.py +52 -7
  252. package/vendor/orizu-gepa-python/src/orizu_gepa/local_log.py +4 -1
  253. package/vendor/orizu-gepa-python/src/orizu_gepa/optimizer.py +10 -5
  254. package/vendor/orizu-gepa-python/src/orizu_gepa/reflection.py +323 -68
  255. package/vendor/orizu-gepa-python/src/orizu_gepa/runner.py +207 -13
  256. package/vendor/skills/orizu-cli/SKILL.md +2 -0
  257. package/vendor/skills/orizu-cli/references/cli-reference.md +85 -1
  258. package/vendor/skills/orizu-cli/references/migrate-existing-gepa-setup.md +303 -0
  259. package/vendor/skills/orizu-cli/references/optimization-with-gepa.md +25 -0
  260. package/vendor/skills/orizu-cli/references/prompt-control-plane.md +108 -8
@@ -0,0 +1,122 @@
1
+ /**
2
+ * GitHub link + hosted-repo attach for `orizu setup` (ALI-971 / WS-C + WS-D).
3
+ *
4
+ * Pure logic + injected HTTP/git/io so index.ts stays thin and the flows are
5
+ * unit-testable without a real browser, server, or git. Two responsibilities:
6
+ *
7
+ * 1. `runGithubLink` — the REQUIRED team-setup link step: POST the link route,
8
+ * open/print the App-install URL, then poll until the org is connected
9
+ * (with a timeout + resume guidance).
10
+ * 2. `runHostedAttach` — clone the provisioned workbench repo and wire the
11
+ * repo-local git credential helper so future pull/push flow through the
12
+ * Orizu broker. Never stores a long-lived credential: the clone uses a
13
+ * one-shot brokered token embedded only in the transient clone URL, which
14
+ * is immediately rewritten to a clean origin.
15
+ */
16
+ export type SetupFetcher = (path: string, init?: RequestInit) => Promise<Response>;
17
+ export interface GithubLinkIo {
18
+ print: (line: string) => void;
19
+ fetcher?: SetupFetcher;
20
+ openUrl?: (url: string) => void;
21
+ sleep?: (ms: number) => Promise<void>;
22
+ now?: () => number;
23
+ pollIntervalMs?: number;
24
+ pollTimeoutMs?: number;
25
+ /**
26
+ * Second-factor confirmation of the bound org (confused-deputy defense). The
27
+ * callback binds the installation but parks it in `pending_confirmation`; this
28
+ * asks the human to confirm the org they were shown before it becomes active.
29
+ */
30
+ confirm?: (orgLogin: string | null) => Promise<boolean>;
31
+ }
32
+ export interface GithubLinkResult {
33
+ status: 'active';
34
+ orgLogin: string | null;
35
+ alreadyLinked: boolean;
36
+ }
37
+ /**
38
+ * Begin (or resume) the required GitHub link for a team and block until the
39
+ * customer org is connected. Throws with resume guidance on timeout.
40
+ */
41
+ export declare function runGithubLink(teamSlug: string, io: GithubLinkIo): Promise<GithubLinkResult>;
42
+ export type SetupMode = 'local' | 'attach' | 'provision-then-attach';
43
+ /**
44
+ * Decide how `orizu setup` should materialize the workspace. `--local` (or the
45
+ * absence of a linked org) keeps Phase 1 scaffolding; a linked org with a
46
+ * provisioned repo attaches by clone; a linked org without a repo provisions
47
+ * first, then attaches.
48
+ */
49
+ export declare function decideSetupMode(input: {
50
+ local: boolean;
51
+ activeInstallation: boolean;
52
+ repoFullName: string | null;
53
+ }): SetupMode;
54
+ export interface GitRunResult {
55
+ status: number;
56
+ stderr?: string;
57
+ }
58
+ export interface GitRunOpts {
59
+ cwd?: string;
60
+ env?: Record<string, string>;
61
+ }
62
+ export type GitRunner = (args: string[], opts?: GitRunOpts) => GitRunResult;
63
+ export interface HostedAttachIo {
64
+ print: (line: string) => void;
65
+ fetcher?: SetupFetcher;
66
+ git: GitRunner;
67
+ /** Overridable for tests; defaults to creating `.orizu/` on disk. */
68
+ ensureOrizuDir?: (repoDir: string) => void;
69
+ /** True when `targetDir` already holds the cloned workbench repo (an
70
+ * idempotent `orizu setup` re-run). Overridable for tests; defaults to a
71
+ * `.git` presence check. */
72
+ repoAlreadyCloned?: (targetDir: string) => boolean;
73
+ }
74
+ export interface HostedAttachOptions {
75
+ workspaceId: string;
76
+ repoFullName: string | null;
77
+ targetDir: string;
78
+ }
79
+ export interface HostedAttachResult {
80
+ repoFullName: string;
81
+ provisioned: boolean;
82
+ targetDir: string;
83
+ }
84
+ /**
85
+ * Provision-if-needed, then clone with the Orizu credential helper already
86
+ * configured so the brokered token NEVER touches argv, the clone URL, or
87
+ * .git/config. The helper resolves the workspace during clone via the
88
+ * `ORIZU_WORKSPACE_ID` env var (the working tree — and orizu.team.json — does
89
+ * not exist yet), then mints on demand. Repo-local config persists the helper
90
+ * for subsequent pull/push, which resolve the workspace from cwd.
91
+ */
92
+ export declare function runHostedAttach(options: HostedAttachOptions, io: HostedAttachIo): Promise<HostedAttachResult>;
93
+ export interface InteractiveHostedSetupInput {
94
+ teamSlug: string;
95
+ targetDir: string;
96
+ /** The `--local` flag: forces Phase-1 scaffolding regardless of linkage. */
97
+ local: boolean;
98
+ /** True once the required github-link step has connected an active org. */
99
+ activeInstallation: boolean;
100
+ }
101
+ export interface InteractiveHostedSetupIo {
102
+ print: (line: string) => void;
103
+ fetcher?: SetupFetcher;
104
+ git?: GitRunner;
105
+ ensureOrizuDir?: (repoDir: string) => void;
106
+ }
107
+ export interface InteractiveHostedSetupResult {
108
+ mode: SetupMode;
109
+ /** True when the hosted repo was cloned; false means the caller scaffolds locally. */
110
+ attached: boolean;
111
+ repoFullName: string | null;
112
+ }
113
+ /**
114
+ * Bridge the required github-link step to the hosted attach. Create-or-attaches
115
+ * the server workspace (whose response now surfaces repoProvider/repoFullName —
116
+ * ALI-972), then routes through the already-tested `decideSetupMode`:
117
+ * - `local` → returns `attached: false`; the caller scaffolds.
118
+ * - `attach` / `provision-then-attach` → clones (provisioning first if needed)
119
+ * via `runHostedAttach` and returns `attached: true`.
120
+ */
121
+ export declare function runInteractiveHostedSetup(input: InteractiveHostedSetupInput, io: InteractiveHostedSetupIo): Promise<InteractiveHostedSetupResult>;
122
+ //# sourceMappingURL=github-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-setup.d.ts","sourceRoot":"","sources":["../src/github-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface GlobalFlags {
2
+ local: boolean;
3
+ server: string | null;
4
+ }
5
+ export interface ParsedGlobalFlags {
6
+ flags: GlobalFlags;
7
+ args: string[];
8
+ }
9
+ export declare function normalizeBaseUrl(url: string): string;
10
+ export declare function parseGlobalFlags(argv: string[]): ParsedGlobalFlags;
11
+ export declare function getFlagBaseUrl(flags: GlobalFlags): string | null;
12
+ //# sourceMappingURL=global-flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-flags.d.ts","sourceRoot":"","sources":["../src/global-flags.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,CAAA;IAClB,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAqBpD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAiClE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAUhE"}
package/dist/help.d.ts ADDED
@@ -0,0 +1,46 @@
1
+ export interface CliOptionDoc {
2
+ name: string;
3
+ help: string;
4
+ required?: boolean;
5
+ repeatable?: boolean;
6
+ choices?: string[];
7
+ }
8
+ export interface CliCommandDoc {
9
+ path: string[];
10
+ usage: string;
11
+ summary: string;
12
+ group: string;
13
+ aliases?: string[][];
14
+ options?: CliOptionDoc[];
15
+ examples?: string[];
16
+ }
17
+ export declare const COMMAND_DOCS: CliCommandDoc[];
18
+ export declare function findCommandDoc(args: string[]): CliCommandDoc | undefined;
19
+ export declare function commandDocsWithPrefix(args: string[]): CliCommandDoc[];
20
+ export declare function renderRootHelp(): string;
21
+ export declare function renderGroupHelp(args: string[]): string;
22
+ export declare function renderCommandHelp(doc: CliCommandDoc): string;
23
+ export declare function renderHelpForArgs(args: string[]): string;
24
+ export declare function getCapabilities(version: string): {
25
+ name: string;
26
+ version: string;
27
+ globalOptions: {
28
+ name: string;
29
+ help: string;
30
+ }[];
31
+ commands: {
32
+ name: string;
33
+ usage: string;
34
+ help: string;
35
+ group: string;
36
+ aliases: string[];
37
+ params: {
38
+ name: string;
39
+ help: string;
40
+ required: boolean;
41
+ repeatable: boolean;
42
+ choices: string[] | undefined;
43
+ }[];
44
+ }[];
45
+ };
46
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAoCD,eAAO,MAAM,YAAY,EAAE,aAAa,EAumCvC,CAAA;AAUD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,SAAS,CAMxE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAWrE;AAOD,wBAAgB,cAAc,IAAI,MAAM,CA0CvC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAoBtD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CA4B5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAgBxD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;EAoB9C"}
package/dist/help.js CHANGED
@@ -11,6 +11,7 @@ const GROUPS = [
11
11
  { name: 'Teams', summary: 'Manage teams and team memberships.' },
12
12
  { name: 'Projects', summary: 'Manage projects inside teams.' },
13
13
  { name: 'Prompts and judges', summary: 'Work with versioned prompt and judge artifacts.' },
14
+ { name: 'Instruction sets', summary: 'Inspect the project-scoped instruction-set control plane.' },
14
15
  { name: 'Report comments', summary: 'Review and mutate anchored report comments across prompt, optimization, and task reports.' },
15
16
  { name: 'Diff comments', summary: 'Export inline comments with recoverable prompt-diff context.' },
16
17
  { name: 'Scorers and runners', summary: 'Register scorers, push runnable artifacts, execute runners, and submit scores.' },
@@ -25,6 +26,44 @@ const GROUPS = [
25
26
  { name: 'Promotion manifests', summary: 'List, inspect, approve, reject, and idempotently apply promotion manifests.' },
26
27
  ];
27
28
  export const COMMAND_DOCS = [
29
+ { path: ['instructions', 'create'], aliases: [['instruction-sets', 'create']], usage: 'orizu instructions create <manifest> --project <team/project> [--runner-version <id>] [--model-config <identity>] [--json]', summary: 'Create an instruction set from a local manifest.', group: 'Instruction sets', options: [{ name: '--runner-version <id>', help: 'Pin the runner version for component prompt versions.' }, { name: '--model-config <identity>', help: 'Select the default model configuration.' }, { name: '--json', help: 'Print one JSON document.' }], examples: ['orizu instructions create ./orizu.instruction-set.json --project core/evals --model-config anthropic/claude-haiku'] },
30
+ { path: ['instructions', 'push'], aliases: [['instruction-sets', 'push']], usage: 'orizu instructions push <manifest> --project <team/project> [--set <slug-or-exact-name>] [--runner-version <id>] [--json]', summary: 'Push a new instruction-set profile version.', group: 'Instruction sets', options: [{ name: '--set <slug-or-exact-name>', help: 'Target the stable set handle when it differs from the manifest name.' }, { name: '--runner-version <id>', help: 'Pin the runner version for changed component prompt versions.' }, { name: '--json', help: 'Print one JSON document.' }], examples: ['orizu instructions push ./orizu.instruction-set.json --project core/evals --set planner'] },
31
+ {
32
+ path: ['instructions', 'list'],
33
+ aliases: [['instruction-sets', 'list']],
34
+ usage: 'orizu instructions list [--project <team/project>] [--status active|archived|all] [--json]',
35
+ summary: 'List instruction sets in a project.',
36
+ group: 'Instruction sets',
37
+ options: [{ name: '--project <team/project>', help: 'Project slug (defaults to configured context).' }, { name: '--status <active|archived|all>', help: 'Filter archived instruction sets.' }, { name: '--json', help: 'Print JSON.' }],
38
+ examples: ['orizu instructions list --project core/evals', 'orizu instructions list --status archived --json'],
39
+ },
40
+ {
41
+ path: ['instructions', 'show'],
42
+ aliases: [['instruction-sets', 'show']],
43
+ usage: 'orizu instructions show <set> [--project <team/project>] [--status active|archived|all] [--json]',
44
+ summary: 'Show an instruction set shape, default, and profile production state.',
45
+ group: 'Instruction sets',
46
+ options: [{ name: '--project <team/project>', help: 'Project slug (defaults to configured context).' }, { name: '--status <active|archived|all>', help: 'Filter archived instruction sets.' }, { name: '--json', help: 'Print JSON.' }],
47
+ examples: ['orizu instructions show research --project core/evals', 'orizu instructions show research --json'],
48
+ },
49
+ { path: ['instructions', 'profiles', 'new'], aliases: [['instruction-sets', 'profiles', 'new']], usage: 'orizu instructions profiles new <set> --project <team/project> --model-config <identity> [--json]', summary: 'Create a model-config profile seeded from the instruction-set default.', group: 'Instruction sets', options: [{ name: '--model-config <identity>', help: 'Model config identity for the new profile.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions profiles new planner --project core/evals --model-config anthropic/claude-haiku'] },
50
+ { path: ['instructions', 'profiles', 'promote'], aliases: [['instruction-sets', 'profiles', 'promote']], usage: 'orizu instructions profiles promote <set> --project <team/project> --model-config <identity> --version <n> [--json]', summary: 'Move one profile version to production.', group: 'Instruction sets', options: [{ name: '--model-config <identity>', help: 'Profile model config.', required: true }, { name: '--version <n>', help: 'Profile version to promote.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions profiles promote planner --project core/evals --model-config anthropic/claude-haiku --version 2'] },
51
+ { path: ['instructions', 'profiles', 'rollback'], aliases: [['instruction-sets', 'profiles', 'rollback']], usage: 'orizu instructions profiles rollback <set> --project <team/project> --model-config <identity> --to <n> [--json]', summary: 'Create a rollback version and move profile production to it.', group: 'Instruction sets', options: [{ name: '--model-config <identity>', help: 'Profile model config.', required: true }, { name: '--to <n>', help: 'Historical profile version to copy.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions profiles rollback planner --project core/evals --model-config anthropic/claude-haiku --to 1'] },
52
+ { path: ['instructions', 'default', 'show'], aliases: [['instruction-sets', 'default', 'show']], usage: 'orizu instructions default show <set> --project <team/project> [--json]', summary: 'Show the instruction-set default and its resolution impact.', group: 'Instruction sets', options: [{ name: '--project <team/project>', help: 'Project slug.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions default show planner --project core/evals'] },
53
+ { path: ['instructions', 'default', 'move'], aliases: [['instruction-sets', 'default', 'move']], usage: 'orizu instructions default move <set> --project <team/project> --model-config <identity> --version <n> [--json]', summary: 'Move the instruction-set default to a profile version.', group: 'Instruction sets', options: [{ name: '--project <team/project>', help: 'Project slug.', required: true }, { name: '--model-config <identity>', help: 'Target model config.', required: true }, { name: '--version <n>', help: 'Target profile version.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions default move planner --project core/evals --model-config anthropic/claude-haiku --version 2'] },
54
+ { path: ['instructions', 'shape', 'add'], aliases: [['instruction-sets', 'shape', 'add']], usage: 'orizu instructions shape add <set> --project <team/project> --key <key> --from <manifest> [--json]', summary: 'Add one component key to every instruction-set profile.', group: 'Instruction sets', options: [{ name: '--project <team/project>', help: 'Project slug.', required: true }, { name: '--key <key>', help: 'Component key to add.', required: true }, { name: '--from <manifest>', help: 'Manifest containing the component body.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions shape add planner --project core/evals --key skill --from planner.json'] },
55
+ { path: ['instructions', 'shape', 'remove'], aliases: [['instruction-sets', 'shape', 'remove']], usage: 'orizu instructions shape remove <set> --project <team/project> --key <key> [--json]', summary: 'Remove one component key from every instruction-set profile.', group: 'Instruction sets', options: [{ name: '--project <team/project>', help: 'Project slug.', required: true }, { name: '--key <key>', help: 'Component key to remove.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions shape remove planner --project core/evals --key skill'] },
56
+ {
57
+ path: ['instructions', 'sync'],
58
+ aliases: [['instruction-sets', 'sync']],
59
+ usage: 'orizu instructions sync <set> --out <dir> [--model-config <identity>] [--project <team/project>] [--json]',
60
+ summary: 'Write an instruction set for offline runner loading.',
61
+ group: 'Instruction sets',
62
+ options: [{ name: '--out <dir>', help: 'Destination parent directory.', required: true }, { name: '--model-config <identity>', help: 'Sync only one profile plus default.' }, { name: '--project <team/project>', help: 'Project slug.' }, { name: '--json', help: 'Print source transport JSON.' }],
63
+ examples: ['orizu instructions sync planner --out ./instructions --project core/evals'],
64
+ },
65
+ { path: ['instructions', 'archive'], aliases: [['instruction-sets', 'archive']], usage: 'orizu instructions archive <slug-or-exact-name> --project <team/project> [--json]', summary: 'Archive an instruction set without changing resolution or sync.', group: 'Instruction sets', options: [{ name: '--project <team/project>', help: 'Project slug.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions archive planner --project core/evals'] },
66
+ { path: ['instructions', 'restore'], aliases: [['instruction-sets', 'restore']], usage: 'orizu instructions restore <slug-or-exact-name> --project <team/project> [--json]', summary: 'Restore an archived instruction set.', group: 'Instruction sets', options: [{ name: '--project <team/project>', help: 'Project slug.', required: true }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu instructions restore planner --project core/evals'] },
28
67
  {
29
68
  path: ['login'],
30
69
  usage: 'orizu login [--no-prompt-if-logged-in]',
@@ -317,30 +356,12 @@ export const COMMAND_DOCS = [
317
356
  summary: 'List prompt artifacts in a project.',
318
357
  group: 'Prompts and judges',
319
358
  },
320
- {
321
- path: ['prompts', 'archive'],
322
- usage: 'orizu prompts archive <prompt-id-or-name> --project <team/project> [--json]',
323
- summary: 'Mark a prompt artifact as archived.',
324
- group: 'Prompts and judges',
325
- },
326
- {
327
- path: ['prompts', 'restore'],
328
- usage: 'orizu prompts restore <prompt-id-or-name> --project <team/project> [--json]',
329
- summary: 'Restore an archived prompt artifact to active status.',
330
- group: 'Prompts and judges',
331
- },
332
359
  {
333
360
  path: ['prompts', 'pull'],
334
361
  usage: 'orizu prompts pull <prompt-id-or-name> --project <team/project> --out <dir> [--label <label> | --version <id>] [--json]',
335
362
  summary: 'Pull a prompt artifact version to a local directory.',
336
363
  group: 'Prompts and judges',
337
364
  },
338
- {
339
- path: ['prompts', 'push'],
340
- usage: 'orizu prompts push <dir> [--runner-version <id>] [--project <team/project>] [--parent <version-id>] [--session <session-id>] [--report-file <path>] [--json]',
341
- summary: 'Push a local prompt artifact directory as a new version (with --session: a commit-first git draft).',
342
- group: 'Prompts and judges',
343
- },
344
365
  {
345
366
  path: ['prompts', 'report', 'set'],
346
367
  usage: 'orizu prompts report set --prompt <id-or-name> [--project <team/project>] (--version <n> | --version-id <id>) (--report <markdown|@file> | --report-file <path>) [--json]',
@@ -364,7 +385,7 @@ export const COMMAND_DOCS = [
364
385
  {
365
386
  path: ['prompts', 'labels', 'set'],
366
387
  usage: 'orizu prompts labels set <prompt-name> <label> --version <version-id> [--project <team/project>] [--json]',
367
- summary: 'Move or set a prompt label to a version.',
388
+ summary: 'Move or set a non-production prompt label; use instructions profiles promote for production.',
368
389
  group: 'Prompts and judges',
369
390
  },
370
391
  {
@@ -439,6 +460,12 @@ export const COMMAND_DOCS = [
439
460
  summary: 'Execute a scorer locally for a prompt version or optimization candidate.',
440
461
  group: 'Scorers and runners',
441
462
  },
463
+ {
464
+ path: ['scorers', 'verify-parity'],
465
+ usage: 'orizu scorers verify-parity --scorer-version <id> --dataset-version <id> --split-set <id> [--split <name>] --outputs <outputs.jsonl> --original <module:function> [--scorer-input-contract gepa|flat_row] [--scorer-candidate-field <row-field>] [--runner-dir <dir>] [--python <cmd>] [--tolerance <float>] [--limit <n>] [--json]',
466
+ summary: 'Prove a migrated scorer runner scores rows the same as the original Python metric.',
467
+ group: 'Scorers and runners',
468
+ },
442
469
  {
443
470
  path: ['scores', 'submit'],
444
471
  usage: 'orizu scores submit <results.jsonl|results.json> --scorer-version <id> (--subject-version <prompt-version-id> | --optimization-run <id> --candidate <id>) [--aggregate] [--dataset-version <id> --split-set <id> --split <name>] [--project <team/project>] [--json]',
@@ -511,6 +538,7 @@ export const COMMAND_DOCS = [
511
538
  summary: 'List optimization runs with explicit archive visibility.',
512
539
  group: 'Optimizations',
513
540
  },
541
+ { path: ['optimizations', 'promote'], usage: 'orizu optimizations promote <run-id> --candidate <id> [--label production] [--project <team/project>] [--json]', summary: 'Promote a selected optimization candidate.', group: 'Optimizations', options: [{ name: '--candidate <id>', help: 'Candidate to promote.', required: true }, { name: '--label production', help: 'Move the new tuple profile version to production.' }, { name: '--project <team/project>', help: 'Project slug (defaults to configured context).' }, { name: '--json', help: 'Print JSON.' }], examples: ['orizu optimizations promote <run-id> --candidate candidate-2 --label production'] },
514
542
  {
515
543
  path: ['optimizations', 'archive'],
516
544
  usage: 'orizu optimizations archive <run-id> [--project <team/project>] [--json]',
@@ -525,8 +553,8 @@ export const COMMAND_DOCS = [
525
553
  },
526
554
  {
527
555
  path: ['optimizations', 'run-gepa'],
528
- usage: 'orizu optimizations run-gepa --project <team/project> --optimizer-version-id <id> --candidate-version-id <id> --runner-version-id <id> --candidate-runner-dir <dir> --scorer-version-id <id> --scorer-runner-version-id <id> --scorer-runner-dir <dir> [--engine official|legacy] [--scorer-input-contract gepa|flat_row] [--scorer-candidate-field <row-field>] [--allow-degenerate-seed] --dataset-version-id <id> --split-set-id <id> [--train-split train] [--val-split validation] [--budget auto|light|medium|heavy | --max-metric-calls <n> | --max-full-evals <n> | --max-iterations <n> | --max-candidate-proposals <n>] [--num-threads auto|N] [--reflection-retry-attempts N] [--reflection-http-timeout-seconds N] [--log-dir logs]',
529
- summary: 'Run official GEPA locally and stream events; pass --engine legacy only for the frozen safety hatch. --max-candidate-proposals is official-engine-only. Validates the scorer contract on the seed before iterating; judge runners built for flat-row score runs need --scorer-input-contract flat_row (ALI-1158).',
556
+ usage: 'orizu optimizations run-gepa --project <team/project> --optimizer-version-id <id> (--candidate-version-id <id> | --instruction-set <name> --model-config <identity> [--component-selector round-robin|all]) --runner-version-id <id> --candidate-runner-dir <dir> --scorer-version-id <id> --scorer-runner-version-id <id> --scorer-runner-dir <dir> [--engine official|legacy] [--scorer-input-contract gepa|flat_row] [--scorer-candidate-field <row-field>] [--allow-degenerate-seed] --dataset-version-id <id> --split-set-id <id> [--train-split train] [--val-split validation] [--budget auto|light|medium|heavy | --max-metric-calls <n> | --max-full-evals <n> | --max-iterations <n> | --max-candidate-proposals <n>] [--num-threads auto|N] [--reflection-retry-attempts N] [--reflection-http-timeout-seconds N] [--log-dir logs]',
557
+ summary: 'Run official GEPA locally and stream events; pass --engine legacy only for the frozen safety hatch. --instruction-set requires --model-config and cannot be combined with --candidate-version-id; round-robin updates one component-map entry per round and all updates every component. --max-candidate-proposals is official-engine-only. Validates the scorer contract on the seed before iterating; judge runners built for flat-row score runs need --scorer-input-contract flat_row (ALI-1158).',
530
558
  group: 'Optimizations',
531
559
  },
532
560
  {
@@ -1029,6 +1057,46 @@ export const COMMAND_DOCS = [
1029
1057
  ],
1030
1058
  examples: ['orizu connectors', 'orizu connectors status --project highlight/hip --json'],
1031
1059
  },
1060
+ {
1061
+ path: ['model-configs', 'create'],
1062
+ usage: 'orizu model-configs create <provider/model> [--settings <json|@file>] [--name <name>] [--project <team/project>] [--json]',
1063
+ summary: 'Create a provider-qualified model config with its first settings version.',
1064
+ group: 'Model configs',
1065
+ options: [{ name: '--settings <json|@file>', help: 'Optional JSON settings object or a JSON file; defaults to {}.' }, { name: '--name <name>', help: 'Optional display name.' }, { name: '--project <team/project>', help: 'Project that owns the config.' }, { name: '--json', help: 'Emit the machine-readable model config.' }],
1066
+ examples: ['orizu model-configs create azure/gpt-5.4-mini --settings @settings.json'],
1067
+ },
1068
+ {
1069
+ path: ['model-configs', 'list'],
1070
+ usage: 'orizu model-configs list [--project <team/project>] [--json]',
1071
+ summary: 'List model configs for a project.',
1072
+ group: 'Model configs',
1073
+ options: [{ name: '--project <team/project>', help: 'Project whose configs to list.' }, { name: '--json', help: 'Emit machine-readable model configs.' }],
1074
+ examples: ['orizu model-configs list --project core/evals --json'],
1075
+ },
1076
+ {
1077
+ path: ['model-configs', 'show'],
1078
+ usage: 'orizu model-configs show <provider/model> [--project <team/project>] [--json]',
1079
+ summary: 'Show a model config and its current settings version.',
1080
+ group: 'Model configs',
1081
+ options: [{ name: '--project <team/project>', help: 'Project that owns the config.' }, { name: '--json', help: 'Emit the machine-readable model config.' }],
1082
+ examples: ['orizu model-configs show openai/gpt-5.4-mini'],
1083
+ },
1084
+ {
1085
+ path: ['model-configs', 'settings', 'set'],
1086
+ usage: 'orizu model-configs settings set <provider/model> --settings <json|@file> [--project <team/project>] [--json]',
1087
+ summary: 'Add a settings version and advance the config current pointer.',
1088
+ group: 'Model configs',
1089
+ options: [{ name: '--settings <json|@file>', help: 'JSON settings object or a JSON file.', required: true }, { name: '--project <team/project>', help: 'Project that owns the config.' }, { name: '--json', help: 'Emit the machine-readable model config.' }],
1090
+ examples: ["orizu model-configs settings set openai/gpt-5.4-mini --settings '{\"temperature\":0.2}'"],
1091
+ },
1092
+ {
1093
+ path: ['model-configs', 'copy'],
1094
+ usage: 'orizu model-configs copy <provider/model> --to <provider/model> [--project <team/project>] [--json]',
1095
+ summary: 'Copy the current settings snapshot to a new provider-qualified config.',
1096
+ group: 'Model configs',
1097
+ options: [{ name: '--to <provider/model>', help: 'New provider-qualified config identity.', required: true }, { name: '--project <team/project>', help: 'Project that owns the config.' }, { name: '--json', help: 'Emit the machine-readable model config.' }],
1098
+ examples: ['orizu model-configs copy openai/gpt-5.4-mini --to azure/gpt-5.4-mini'],
1099
+ },
1032
1100
  {
1033
1101
  path: ['manifests', 'list'],
1034
1102
  usage: 'orizu manifests list [--project <team/project>] [--status <status>] [--json]',
@@ -1097,8 +1165,8 @@ export function commandDocsWithPrefix(args) {
1097
1165
  if (args.length === 0) {
1098
1166
  return COMMAND_DOCS;
1099
1167
  }
1100
- return COMMAND_DOCS.filter(doc => args.every((part, index) => doc.path[index] === part) &&
1101
- doc.path.length > args.length);
1168
+ return COMMAND_DOCS.filter(doc => [doc.path, ...(doc.aliases || [])].some(path => args.every((part, index) => path[index] === part) &&
1169
+ path.length > args.length));
1102
1170
  }
1103
1171
  function formatRows(rows, indent = ' ') {
1104
1172
  const width = Math.max(...rows.map(row => row[0].length));