opennori 0.1.8 → 0.1.9

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 (149) hide show
  1. package/.opennori/protocol.md +62 -22
  2. package/README.md +88 -47
  3. package/dist/bin/opennori.js +1 -1
  4. package/dist/bin/opennori.js.map +1 -1
  5. package/dist/src/acceptance.d.ts +2 -1
  6. package/dist/src/acceptance.d.ts.map +1 -1
  7. package/dist/src/acceptance.js +181 -3
  8. package/dist/src/acceptance.js.map +1 -1
  9. package/dist/src/architecture/report.d.ts.map +1 -1
  10. package/dist/src/architecture/report.js +2 -1
  11. package/dist/src/architecture/report.js.map +1 -1
  12. package/dist/src/cli/command-tree.d.ts.map +1 -1
  13. package/dist/src/cli/command-tree.js +9 -5
  14. package/dist/src/cli/command-tree.js.map +1 -1
  15. package/dist/src/cli/commands/acceptance/criterion.d.ts +55 -0
  16. package/dist/src/cli/commands/acceptance/criterion.d.ts.map +1 -1
  17. package/dist/src/cli/commands/acceptance/criterion.js +100 -1
  18. package/dist/src/cli/commands/acceptance/criterion.js.map +1 -1
  19. package/dist/src/cli/commands/acceptance/draft.d.ts +9 -0
  20. package/dist/src/cli/commands/acceptance/draft.d.ts.map +1 -1
  21. package/dist/src/cli/commands/acceptance/draft.js +16 -26
  22. package/dist/src/cli/commands/acceptance/draft.js.map +1 -1
  23. package/dist/src/cli/commands/acceptance/runtime-status.d.ts.map +1 -1
  24. package/dist/src/cli/commands/acceptance/runtime-status.js +17 -11
  25. package/dist/src/cli/commands/acceptance/runtime-status.js.map +1 -1
  26. package/dist/src/cli/commands/acceptance.d.ts +1 -1
  27. package/dist/src/cli/commands/acceptance.d.ts.map +1 -1
  28. package/dist/src/cli/commands/acceptance.js +1 -1
  29. package/dist/src/cli/commands/acceptance.js.map +1 -1
  30. package/dist/src/cli/commands/check.d.ts.map +1 -1
  31. package/dist/src/cli/commands/check.js +26 -11
  32. package/dist/src/cli/commands/check.js.map +1 -1
  33. package/dist/src/cli/commands/context.d.ts +17 -8
  34. package/dist/src/cli/commands/context.d.ts.map +1 -1
  35. package/dist/src/cli/commands/context.js +8 -23
  36. package/dist/src/cli/commands/context.js.map +1 -1
  37. package/dist/src/cli/commands/evidence/add.d.ts.map +1 -1
  38. package/dist/src/cli/commands/evidence/add.js +3 -2
  39. package/dist/src/cli/commands/evidence/add.js.map +1 -1
  40. package/dist/src/cli/commands/evidence/prune.d.ts +35 -0
  41. package/dist/src/cli/commands/evidence/prune.d.ts.map +1 -0
  42. package/dist/src/cli/commands/evidence/prune.js +57 -0
  43. package/dist/src/cli/commands/evidence/prune.js.map +1 -0
  44. package/dist/src/cli/commands/evidence.d.ts +1 -0
  45. package/dist/src/cli/commands/evidence.d.ts.map +1 -1
  46. package/dist/src/cli/commands/evidence.js +1 -0
  47. package/dist/src/cli/commands/evidence.js.map +1 -1
  48. package/dist/src/cli/commands/reporting.d.ts.map +1 -1
  49. package/dist/src/cli/commands/reporting.js +7 -4
  50. package/dist/src/cli/commands/reporting.js.map +1 -1
  51. package/dist/src/cli/commands/setup.d.ts +35 -0
  52. package/dist/src/cli/commands/setup.d.ts.map +1 -0
  53. package/dist/src/cli/commands/setup.js +51 -0
  54. package/dist/src/cli/commands/setup.js.map +1 -0
  55. package/dist/src/cli/init.d.ts +9 -0
  56. package/dist/src/cli/init.d.ts.map +1 -0
  57. package/dist/src/cli/init.js +111 -0
  58. package/dist/src/cli/init.js.map +1 -0
  59. package/dist/src/cli/runtime.d.ts +2 -0
  60. package/dist/src/cli/runtime.d.ts.map +1 -1
  61. package/dist/src/cli/runtime.js +15 -5
  62. package/dist/src/cli/runtime.js.map +1 -1
  63. package/dist/src/cli/setup.d.ts +9 -0
  64. package/dist/src/cli/setup.d.ts.map +1 -0
  65. package/dist/src/cli/setup.js +89 -0
  66. package/dist/src/cli/setup.js.map +1 -0
  67. package/dist/src/cli.d.ts.map +1 -1
  68. package/dist/src/cli.js +15 -1
  69. package/dist/src/cli.js.map +1 -1
  70. package/dist/src/core/contract.d.ts +2 -1
  71. package/dist/src/core/contract.d.ts.map +1 -1
  72. package/dist/src/core/contract.js +2 -180
  73. package/dist/src/core/contract.js.map +1 -1
  74. package/dist/src/core/evidence.d.ts +15 -4
  75. package/dist/src/core/evidence.d.ts.map +1 -1
  76. package/dist/src/core/evidence.js +146 -23
  77. package/dist/src/core/evidence.js.map +1 -1
  78. package/dist/src/core/profile.d.ts.map +1 -1
  79. package/dist/src/core/profile.js +10 -0
  80. package/dist/src/core/profile.js.map +1 -1
  81. package/dist/src/core/report.d.ts +9 -4
  82. package/dist/src/core/report.d.ts.map +1 -1
  83. package/dist/src/core/report.js +238 -26
  84. package/dist/src/core/report.js.map +1 -1
  85. package/dist/src/lifecycle/context-export.d.ts.map +1 -1
  86. package/dist/src/lifecycle/context-export.js +6 -4
  87. package/dist/src/lifecycle/context-export.js.map +1 -1
  88. package/dist/src/lifecycle/doctor/manifest-health.js +8 -8
  89. package/dist/src/lifecycle/doctor/manifest-health.js.map +1 -1
  90. package/dist/src/lifecycle/doctor/plugin-health.js +1 -1
  91. package/dist/src/lifecycle/doctor/plugin-health.js.map +1 -1
  92. package/dist/src/lifecycle/doctor/project-health.js +6 -6
  93. package/dist/src/lifecycle/doctor/project-health.js.map +1 -1
  94. package/dist/src/lifecycle/setup.d.ts +47 -0
  95. package/dist/src/lifecycle/setup.d.ts.map +1 -0
  96. package/dist/src/lifecycle/setup.js +275 -0
  97. package/dist/src/lifecycle/setup.js.map +1 -0
  98. package/dist/src/lifecycle/shared.d.ts.map +1 -1
  99. package/dist/src/lifecycle/shared.js +2 -1
  100. package/dist/src/lifecycle/shared.js.map +1 -1
  101. package/dist/src/lifecycle.d.ts +1 -0
  102. package/dist/src/lifecycle.d.ts.map +1 -1
  103. package/dist/src/lifecycle.js +1 -0
  104. package/dist/src/lifecycle.js.map +1 -1
  105. package/dist/src/types.d.ts +25 -1
  106. package/dist/src/types.d.ts.map +1 -1
  107. package/examples/opennori-self.json +15 -7
  108. package/package.json +1 -1
  109. package/plugins/opennori/.codex-plugin/plugin.json +5 -4
  110. package/plugins/opennori/skills/nori/SKILL.md +76 -25
  111. package/plugins/opennori/skills/nori-acceptance/SKILL.md +81 -19
  112. package/plugins/opennori/skills/nori-architecture-apply/SKILL.md +57 -13
  113. package/plugins/opennori/skills/nori-architecture-brainstorm/SKILL.md +63 -19
  114. package/plugins/opennori/skills/nori-architecture-challenge/SKILL.md +52 -10
  115. package/plugins/opennori/skills/nori-build-vs-buy/SKILL.md +61 -9
  116. package/plugins/opennori/skills/nori-capability-profile/SKILL.md +59 -11
  117. package/plugins/opennori/skills/nori-evidence/SKILL.md +65 -11
  118. package/plugins/opennori/skills/nori-project-health/SKILL.md +81 -31
  119. package/plugins/opennori/skills/nori-reporting/SKILL.md +68 -18
  120. package/src/acceptance.ts +223 -3
  121. package/src/architecture/report.ts +2 -1
  122. package/src/cli/command-tree.ts +9 -5
  123. package/src/cli/commands/acceptance/criterion.ts +104 -0
  124. package/src/cli/commands/acceptance/draft.ts +15 -33
  125. package/src/cli/commands/acceptance/runtime-status.ts +17 -11
  126. package/src/cli/commands/acceptance.ts +2 -0
  127. package/src/cli/commands/check.ts +26 -11
  128. package/src/cli/commands/context.ts +8 -23
  129. package/src/cli/commands/evidence/add.ts +3 -1
  130. package/src/cli/commands/evidence/prune.ts +67 -0
  131. package/src/cli/commands/evidence.ts +4 -0
  132. package/src/cli/commands/reporting.ts +7 -4
  133. package/src/cli/commands/setup.ts +66 -0
  134. package/src/cli/init.ts +152 -0
  135. package/src/cli/runtime.ts +17 -5
  136. package/src/cli/setup.ts +139 -0
  137. package/src/cli.ts +18 -1
  138. package/src/core/contract.ts +3 -185
  139. package/src/core/evidence.ts +154 -22
  140. package/src/core/profile.ts +7 -0
  141. package/src/core/report.ts +246 -26
  142. package/src/lifecycle/context-export.ts +6 -4
  143. package/src/lifecycle/doctor/manifest-health.ts +8 -8
  144. package/src/lifecycle/doctor/plugin-health.ts +1 -1
  145. package/src/lifecycle/doctor/project-health.ts +6 -6
  146. package/src/lifecycle/setup.ts +383 -0
  147. package/src/lifecycle/shared.ts +2 -1
  148. package/src/lifecycle.ts +1 -0
  149. package/src/types.ts +27 -0
@@ -18,6 +18,16 @@ For non-trivial goals, OpenNori also carries an Architecture Baseline. Product A
18
18
  human user must be able to accept. Architecture Baseline answers what technical architecture the
19
19
  agent must follow while producing that outcome. These are reported together but kept separate.
20
20
 
21
+ OpenNori is installed and used as one agent capability bundle:
22
+
23
+ - Codex Plugin distributes and discovers packaged OpenNori Skills.
24
+ - Skills define the agent behavior protocols and natural-language routing.
25
+ - `opennori` is the deterministic state layer those Skills call.
26
+ - `.opennori/` is the project-local contract, evidence, profile, architecture, health, and report store.
27
+
28
+ Do not present Plugin, Skills, CLI, or `.opennori` state as separate user workflows. Direct CLI use
29
+ is an advanced, automation, or debugging route for the same state layer.
30
+
21
31
  ## Layered Acceptance Criteria v1
22
32
 
23
33
  OpenNori itself is accepted only when it satisfies user-tool-operation acceptance criteria.
@@ -78,7 +88,7 @@ a durable workflow asset.
78
88
  | ID | Tool / entrypoint | User operation | User acceptance criterion | Passing threshold |
79
89
  | --- | --- | --- | --- | --- |
80
90
  | AC-Z-1 | Codex Plugin / package assets | Install or inspect the OpenNori package | The user's agent can discover focused OpenNori Skills without the user memorizing CLI flags. | `.agents/plugins/marketplace.json` points to `./plugins/opennori`; `plugins/opennori/.codex-plugin/plugin.json` points to package-local `skills/`; the `nori` Skill routes natural-language work through acceptance, evidence, profile, architecture, health, and reporting. |
81
- | AC-Z-2 | CLI | Run `opennori install` | The user can install OpenNori into a project without unexpected overwrites. | Install shows created/skipped assets; existing user content is not overwritten by default. |
91
+ | AC-Z-2 | CLI | Run `opennori init` or `opennori install` | The user can initialize OpenNori project state without unexpected overwrites. | Init/install shows created/skipped assets; existing user content is not overwritten by default. |
82
92
  | AC-Z-3 | Git / PR diff | Review the agent's changes | The user can separate acceptance evidence changes from implementation noise. | Summary defaults to AC status changes, evidence changes, and user impact. |
83
93
  | AC-Z-4 | CLI | Run `opennori list` and select a goal | The user can see multiple active goals and choose one explicitly. | Multiple active goals are listed with status, gap, and paths; `--goal` selects the target. |
84
94
  | AC-Z-5 | CLI | Archive a completed or blocked goal | The user removes it from active work while preserving evidence and report. | Active no longer lists the goal; contract, ledger, and report remain recoverable. |
@@ -88,11 +98,13 @@ a durable workflow asset.
88
98
  | AC-Z-9 | CLI | Preview install with `opennori install --dry-run` | The user can judge what OpenNori would create, skip, update, or overwrite before writing to the project. | Install plan lists action, kind, managed status, write intent, destructive flag, and reason; dry-run reports zero actual writes. |
89
99
  | AC-Z-10 | CLI | Apply force install | The user must preview and explicitly confirm destructive install actions before files are overwritten. | Real `opennori install --force` fails without confirmation; dry-run previews destructive overwrites; confirmed force install may write. |
90
100
  | AC-Z-11 | CLI | Preview and apply uninstall | The user can uninstall OpenNori entry assets without losing acceptance state by default. | Uninstall plan shows removals and preserved state; real uninstall requires confirmation; `.opennori` state is deleted only with `--include-state --confirm`. |
91
- | AC-Z-12 | Codex Plugin / Codex Skills | Use OpenNori Plugin Skills | The agent gets focused OpenNori Skills for acceptance, evidence, Nori Profile, architecture, project health, and reporting while the user keeps using natural language. | The npm package ships `.agents/plugins/marketplace.json`, `plugins/opennori/.codex-plugin/plugin.json`, and `plugins/opennori/skills/nori*/SKILL.md`; install does not copy Skills into the project; manifest records `plugin`; doctor detects missing packaged Plugin Skills. |
101
+ | AC-Z-12 | Codex Plugin / Codex Skills | Use OpenNori Plugin Skills | The agent gets focused OpenNori Skills for acceptance, evidence, Nori Profile, architecture, project health, reporting, and next-loop candidates while the user keeps using natural language. | The npm package ships `.agents/plugins/marketplace.json`, `plugins/opennori/.codex-plugin/plugin.json`, and `plugins/opennori/skills/nori*/SKILL.md`; each Skill is an agent behavior protocol with trigger semantics, state reading, natural-language mapping, state write boundaries, handoffs, user reply shape, and misuse guards; install does not copy Skills into the project; manifest records `plugin`; doctor detects missing packaged Plugin Skills. |
92
102
  | AC-Z-13 | CLI / project file browser | Establish an Architecture Baseline | The user can see what architecture the agent must follow while implementing Product AC. | `.opennori/architecture/baseline.json`, `.opennori/architecture/baseline.md`, and `.opennori/agent-guide.md` expose the baseline to agents and reviewers. |
93
103
  | AC-Z-14 | CLI / project file browser | Add a project Architecture Profile | The user can extend built-in profiles with a reviewed project profile. | `opennori architecture profile --from <profile.json>` writes `.opennori/architecture/profiles/<id>.json`; `architecture profiles` lists it before built-ins. |
94
104
  | AC-Z-15 | CLI / report | Challenge a baseline | The user can review evidence before an agent changes architecture. | `opennori architecture challenge` records current baseline, conflict evidence, recommendation, and user confirmation requirement. |
95
105
  | AC-Z-16 | CLI / report | Record build-vs-buy decisions | The user can see whether existing dependencies, standard libraries, official SDKs, and mature OSS were checked before self-building infrastructure. | `opennori architecture build-vs-buy` records the decision under `.opennori/architecture/decisions/` and status/report summarize it. |
106
+ | AC-Z-18 | README / website / Plugin description | First read the OpenNori entry material | The user understands OpenNori as one agent capability bundle: Plugin discovery, packaged Skills, deterministic CLI state layer, and `.opennori` project state work together. | README Install/Quick Start, website Start, Plugin longDescription, and nori/project-health Skills do not present Plugin, Skills, or CLI as separate user paths; they explain that missing bundle parts should be recovered through doctor/health rather than used as a half-installed workflow. |
107
+ | AC-Z-19 | CLI / Codex / npm | Run `npx opennori setup`, then use `opennori init` in projects | The user installs the complete OpenNori capability bundle from one explicit setup entry and can initialize projects with the global CLI. | Setup previews Codex Plugin registration, packaged Skill availability, global CLI install, project `.opennori` initialization, and doctor; unconfirmed setup writes nothing; confirmed setup uses official `codex plugin` and npm commands plus OpenNori project initialization. |
96
108
 
97
109
  ## Required Artifact Pair
98
110
 
@@ -134,7 +146,9 @@ Each active goal has:
134
146
  - Architecture Baseline, profile, challenge, build-vs-buy, and agent-readable surface state
135
147
  - protocol capabilities exposed by this CLI
136
148
 
137
- `opennori install` creates or refreshes the manifest. State-changing OpenNori commands refresh it when
149
+ `opennori init` creates project state through the same preview-first lifecycle used by install.
150
+ `opennori install` remains a deterministic project-asset command for agents and automation.
151
+ State-changing OpenNori commands refresh the manifest when
138
152
  `.opennori/` already exists.
139
153
 
140
154
  `opennori install --dry-run` returns an install plan. The plan uses deterministic action semantics:
@@ -159,8 +173,9 @@ directory requires both `--include-state` and `--confirm`.
159
173
 
160
174
  ## OpenNori Plugin Skills
161
175
 
162
- OpenNori exposes Codex Skills through its Plugin and package assets. The user should not need to
163
- remember these Skill names; the root `nori` Skill routes natural-language requests to focused Skills:
176
+ OpenNori exposes Codex Skills through its Plugin and package assets. These Skills are agent
177
+ behavior protocols, not CLI manuals for users. The user should not need to remember Skill names or
178
+ command flags; the root `nori` Skill routes natural-language requests to focused Skills:
164
179
 
165
180
  - `nori`: root router for OpenNori turns
166
181
  - `nori-acceptance`: discover AC gaps, brainstorm, draft, approve, and revise human-facing ACs
@@ -171,7 +186,11 @@ remember these Skill names; the root `nori` Skill routes natural-language reques
171
186
  - `nori-architecture-challenge`: raise evidence-backed requests to revise a baseline
172
187
  - `nori-build-vs-buy`: record dependency/library/self-build decisions before infrastructure work
173
188
  - `nori-project-health`: install, upgrade, uninstall, doctor, manifest, Plugin health, and project recoverability
174
- - `nori-reporting`: status, report, current gap, user intervention, and changes
189
+ - `nori-reporting`: status, report, current gap, user intervention, changes, and context export
190
+
191
+ Each packaged Skill states its mission, starting state reads, natural-language mapping, allowed
192
+ state writes, handoff rules, user-facing reply shape, and misuse guards. This lets agents use
193
+ OpenNori from natural language while the CLI remains a deterministic state layer.
175
194
 
176
195
  The package ships `.agents/plugins/marketplace.json` pointing to `./plugins/opennori`, where
177
196
  `plugins/opennori/.codex-plugin/plugin.json` declares `skills: "./skills/"`. `opennori install`
@@ -180,13 +199,15 @@ The manifest records `plugin` state, and `opennori doctor` checks whether packag
180
199
  present and whether the manifest Plugin state is stale.
181
200
 
182
201
  When upgrading an existing OpenNori project, upgrade entry assets first, then run `opennori check`.
183
- `check` validates active Nori Contracts, reports `acceptance_quality` warnings for vague ACs
184
- such as "modify profile fields" or "show an error", and reports `architecture_check` warnings when
185
- the active goal has no confirmed Architecture Baseline, stale agent-readable surface, or unresolved
186
- Architecture Challenges. It also reports `evidence_health` warnings when a complete-looking goal
187
- relies on stale, broad, source-free, or non-reviewable evidence. It does not rewrite existing
188
- contracts, evidence, reports, archives, brainstorms, or baselines. The user decides whether to
189
- revise affected criteria, architecture, or evidence.
202
+ `check` validates active Nori Contract integrity as hard state structure, then reports
203
+ `acceptance_review` findings for vague or possibly implementation-centered ACs such as "modify
204
+ profile fields" or "show an error". These review findings are questions for the agent and user,
205
+ not hard protocol rejection. `check` also reports `architecture_check` warnings when the active goal
206
+ has no confirmed Architecture Baseline, stale agent-readable surface, or unresolved Architecture
207
+ Challenges. It reports `evidence_health` warnings when a complete-looking goal relies on stale,
208
+ broad, source-free, or non-reviewable evidence. It does not rewrite existing contracts, evidence,
209
+ reports, archives, brainstorms, or baselines. The user decides whether to revise affected criteria,
210
+ confirm assumptions, accept review risk, revise architecture, or refresh evidence.
190
211
 
191
212
  ## Nori Profile
192
213
 
@@ -209,7 +230,7 @@ Profile items have:
209
230
  Completion rules:
210
231
 
211
232
  - `must` blocks completion until satisfied or waived.
212
- - `prefer` is reported but does not block completion.
233
+ - `prefer` does not block objective completion, but unknown or violated preferences become `profile_review` risk before confident completion.
213
234
  - `avoid` blocks completion if violated.
214
235
 
215
236
  Agents translate the user's natural-language preferences into profile records. Users should not
@@ -272,6 +293,13 @@ open-source libraries, and documented reference projects:
272
293
  opennori architecture build-vs-buy --root <project> --area "<area>" --need "<need>" --recommendation <reuse|buy|self-build> --summary "<decision>" --json
273
294
  ```
274
295
 
296
+ Architecture state affects completion confidence, not Product AC shape. When every required Product
297
+ AC is `passing` or `waived` but the active goal has a missing/draft/invalid/challenged baseline,
298
+ stale agent-readable architecture surface, or unhealthy build-vs-buy decisions, OpenNori reports
299
+ `objective_complete: true` with `confidence: review-risk`. It must not create synthetic ARCH
300
+ acceptance criteria or replace `current_gap` unless a real Product AC or blocking Profile item is
301
+ still incomplete.
302
+
275
303
  ## Status Model
276
304
 
277
305
  - `unknown`: no user-understandable evidence exists
@@ -282,7 +310,15 @@ opennori architecture build-vs-buy --root <project> --area "<area>" --need "<nee
282
310
 
283
311
  The workflow ledger is complete only when every required criterion is `passing` or `waived`.
284
312
  The user-facing completion answer is not confidently complete while `evidence_health` has review
285
- findings, even if the ledger status is already `complete`.
313
+ findings, `profile_review` is unresolved, `architecture_review` remains, or `build_vs_buy` is
314
+ unhealthy, even if the ledger status is already `complete`.
315
+
316
+ When a goal is confidently complete, `next_recommendation` may include `candidate_goals`.
317
+ These candidates help the agent continue when the user has asked to keep going. Each candidate
318
+ names a possible next human-facing goal, the user value, acceptance directions, and risks.
319
+ Candidates are not phases, task lists, approved acceptance criteria, or completion evidence. The
320
+ agent must turn a selected or revised candidate into a new draft Nori Contract before using it for
321
+ completion judgment.
286
322
 
287
323
  ## Risk Gate
288
324
 
@@ -349,13 +385,15 @@ On every turn:
349
385
  12. Before implementing an acceptance gap, read `.opennori/architecture/baseline.md` and keep Product AC separate from Architecture Checks.
350
386
  13. Before self-building infrastructure, record a build-vs-buy decision.
351
387
  14. If project evidence conflicts with the baseline, run `opennori architecture challenge`; do not silently replace the baseline.
352
- 15. If the user revises a criterion later, run `opennori criterion update --root <repo> --criterion <id> ... --json`; old evidence for the changed criterion is cleared.
353
- 16. If the user asks to update an existing OpenNori project, run `opennori doctor`, use `opennori upgrade --dry-run/--confirm` for manifest/protocol/guide refreshes, then run `opennori check`; ask the user before revising any existing AC flagged by `acceptance_quality`. If packaged Plugin Skills are missing, reinstall or update the OpenNori package instead of copying Skills into the project.
354
- 17. Run `opennori resume --root <repo>` or `opennori next --root <repo>` to recover the active goal and current acceptance gap from repository files.
355
- 18. Work only to produce evidence for that gap under the confirmed Architecture Baseline.
356
- 19. Add acceptance evidence with `opennori evidence add`; choose any suitable verification method, but record basis, sources, reviewability, confidence, and limitations. Add profile compliance evidence with `opennori profile evidence` when profile items exist.
357
- 15. Run `opennori evaluate`.
358
- 16. Report acceptance state, profile compliance, and evidence, not implementation steps.
388
+ 15. If the user adds a new acceptance boundary after approval, run `opennori criterion add --root <repo> --id <id> ... --json`; the new criterion becomes an evidence gap without forcing the agent to edit state files manually.
389
+ 16. If the user revises a criterion later, run `opennori criterion update --root <repo> --criterion <id> ... --json`; old evidence for the changed criterion is cleared.
390
+ 17. If the user asks to update an existing OpenNori project, run `opennori doctor`, use `opennori upgrade --dry-run/--confirm` for manifest/protocol/guide refreshes, then run `opennori check`; ask the user before revising any existing AC flagged by `acceptance_review`. If packaged Plugin Skills are missing, reinstall or update the OpenNori package instead of copying Skills into the project.
391
+ 18. Run `opennori resume --root <repo>` or `opennori next --root <repo>` to recover the active goal and current acceptance gap from repository files.
392
+ 19. Work only to produce evidence for that gap under the confirmed Architecture Baseline.
393
+ 20. Add acceptance evidence with `opennori evidence add`; choose any suitable verification method, but record basis, sources, reviewability, confidence, and limitations. If existing evidence is invalid or obsolete, run `opennori evidence prune` first so stale proof does not occupy active context. Add profile compliance evidence with `opennori profile evidence` when profile items exist.
394
+ 21. Run `opennori evaluate`.
395
+ 22. Report acceptance state, profile compliance, and evidence, not implementation steps.
396
+ 23. If the goal is complete and the user asked to continue, review `next_recommendation.candidate_goals`, choose or refine the strongest human-facing next goal, then run discovery or draft for a new Nori Contract. Do not treat candidate goals as approved AC, phases, task lists, or evidence.
359
397
 
360
398
  Useful commands:
361
399
 
@@ -364,8 +402,10 @@ Useful commands:
364
402
  - `opennori draft --goal "<goal>" --root <repo>`: create a draft Nori Contract that needs user approval.
365
403
  - `opennori draft --from-brainstorm <brainstorm-id> --candidate <A|B|C> --root <repo>`: convert a selected brainstorm direction into a draft contract.
366
404
  - `opennori approve --root <repo>`: mark the acceptance basis as approved so completion can be decided.
405
+ - `opennori criterion add --root <repo> --id <id> ...`: add a newly confirmed acceptance boundary to the active contract and ledger.
367
406
  - `opennori criterion update --root <repo> --criterion <id> ...`: preserve a user revision as the new acceptance basis.
368
407
  - `opennori evidence add --root <repo> --criterion <id> --kind <kind> --summary "<summary>" --result <passing|failing|blocked|waived> --basis <basis> --source '<json-or-label>' --reviewability "<how to review>" --limitations "<known limits>"`: attach user-understandable, reviewable evidence without forcing a fixed adapter.
408
+ - `opennori evidence prune --root <repo> --criterion <id> --reason "<reason>"`: remove invalid or obsolete evidence from an active criterion so reports and context exports only carry current proof.
369
409
  - `opennori profile add --root <repo> --type <skill|stack|constraint> --name "<name>" --strength <must|prefer|avoid>`: record user execution preferences separately from ACs.
370
410
  - `opennori profile evidence --root <repo> --item <item-id> --result <satisfied|violated|waived>`: record whether the agent followed the profile.
371
411
  - `opennori profile show --root <repo>`: show profile compliance and blocking items.
package/README.md CHANGED
@@ -14,62 +14,67 @@ plan internally, but the user-facing loop stays centered on what the user wants,
14
14
  what acceptance checks define done, what evidence supports each check, and
15
15
  whether the goal is complete.
16
16
 
17
- ## Install
17
+ ## Install OpenNori Capability Bundle
18
18
 
19
- Choose one path.
19
+ OpenNori is one agent capability bundle, not three separate products:
20
20
 
21
- ### Install the Codex Plugin
21
+ - Codex Plugin distributes and discovers the packaged OpenNori Skills.
22
+ - OpenNori Skills are agent behavior protocols for natural-language work.
23
+ - `opennori` is the deterministic state layer those Skills call.
24
+ - `.opennori/` stores project contracts, evidence, profile, architecture, health, and reports.
22
25
 
23
- Use this when you want Codex to discover OpenNori Skills from natural language:
26
+ First-time setup installs the complete bundle with preview and explicit
27
+ confirmation:
24
28
 
25
29
  ```bash
26
- codex plugin marketplace add okbexx/opennori --ref main
27
- codex plugin add opennori@opennori
30
+ npx opennori setup
31
+ ```
32
+
33
+ Setup previews the Codex Plugin registration, packaged Skill availability,
34
+ global `opennori` CLI installation, current project `.opennori/` initialization,
35
+ and final doctor check before it writes anything.
36
+
37
+ After setup, initialize any project from that project directory:
38
+
39
+ ```bash
40
+ opennori init
28
41
  ```
29
42
 
30
- For local development from a checkout:
43
+ For local OpenNori development from a checkout:
31
44
 
32
45
  ```bash
33
46
  codex plugin marketplace add .
34
47
  codex plugin add opennori@opennori
35
48
  ```
36
49
 
37
- After installing the plugin, open a new Codex session and say:
50
+ After installing the capability bundle, open a new Codex session and say:
38
51
 
39
52
  ```text
40
53
  Use OpenNori for this goal.
41
54
  ```
42
55
 
43
- ### Try the CLI once
56
+ For advanced recovery, the setup command is equivalent to previewing and then
57
+ confirming the same official Codex and npm actions:
44
58
 
45
59
  ```bash
46
- npx opennori
47
- ```
48
-
49
- ### Pin the CLI to a project
50
-
51
- ```bash
52
- npm install -D opennori
53
- opennori
60
+ codex plugin marketplace add okbexx/opennori --ref main
61
+ codex plugin add opennori@opennori
62
+ npm install -g opennori@latest
54
63
  ```
55
64
 
56
- The Codex Plugin gives agents the Skills. The `opennori` CLI is the
57
- deterministic state layer those Skills call to create `.opennori/`, update
58
- contracts, record evidence, run doctor checks, and generate reports. Project
59
- installs expose `opennori` through npm scripts, package-manager exec, and
60
- agent/tool environments that load `node_modules/.bin`. Use `npx opennori` when
61
- you want npm to resolve OpenNori for a one-off command.
65
+ Direct CLI use is an advanced or automation path, not a separate product path
66
+ from the Plugin and Skills.
62
67
 
63
68
  ## Quick Start
64
69
 
65
- Run OpenNori in a project:
70
+ If OpenNori is already installed on this machine, run the project initializer:
66
71
 
67
72
  ```bash
68
- opennori
73
+ opennori init
69
74
  ```
70
75
 
71
- The interactive entry previews the `.opennori/` state it would create and asks
72
- before writing. Agents and CI can use `--json` for deterministic machine-readable
76
+ The initializer previews the `.opennori/` state it would create and asks before
77
+ writing. Agents and CI can use `--json` for deterministic machine-readable
73
78
  output.
74
79
 
75
80
  Then talk to your agent:
@@ -81,9 +86,8 @@ non-trivial work, and keep working from acceptance gaps until the report can
81
86
  say whether it is complete.
82
87
  ```
83
88
 
84
- Users do not need to memorize CLI flags. OpenNori ships Codex Plugin Skills and
85
- a Codex marketplace entry; those Skills map natural language to the
86
- deterministic `opennori` state layer.
89
+ Users do not need to memorize CLI flags or Skill names. The bundled Skills map
90
+ natural language to the deterministic `opennori` state layer.
87
91
 
88
92
  ## What It Creates
89
93
 
@@ -125,14 +129,17 @@ A Nori Contract combines:
125
129
  - current acceptance gap
126
130
  - completion judgment
127
131
 
128
- Acceptance checks describe user-visible operations and judgments, not files,
129
- commands, modules, tests, Skills, or technology choices.
132
+ Acceptance checks should describe user-visible operations and judgments, not
133
+ implementation files, modules, tests, Skills, or technology choices. OpenNori
134
+ surfaces likely mistakes as review questions for the agent and user; it does
135
+ not reject a contract just because a heuristic sees a technical word.
130
136
 
131
137
  ### Acceptance Discovery
132
138
 
133
- Nori should not accept vague criteria such as "modify fields" or "show an
134
- error". Before drafting a contract, OpenNori helps the agent ask the questions
135
- that decide whether the user can accept the result:
139
+ Nori should review vague criteria such as "modify fields" or "show an error"
140
+ with the user instead of silently treating them as done. Before drafting or
141
+ claiming confident completion, OpenNori helps the agent ask the questions that
142
+ decide whether the user can accept the result:
136
143
 
137
144
  - which fields can be changed
138
145
  - what validation rules apply
@@ -153,6 +160,11 @@ project evidence conflicts with it, the agent creates an Architecture Challenge
153
160
  instead of silently changing the technology stack, state model, dependency
154
161
  policy, or directory boundary.
155
162
 
163
+ Missing, challenged, or stale architecture state is reported as
164
+ `architecture_review`: the Product AC can be objectively complete, but OpenNori
165
+ will not report confident completion until the agent or user reviews the
166
+ architecture risk.
167
+
156
168
  ### Evidence Record
157
169
 
158
170
  Evidence can come from tests, screenshots, URLs, artifacts, logs, human
@@ -160,12 +172,28 @@ confirmation, waivers, or other reviewable sources. OpenNori keeps evidence
160
172
  flexible, but high-risk completion should not rely only on an agent's
161
173
  self-summary.
162
174
 
175
+ ### Next Loop Candidates
176
+
177
+ When a goal is confidently complete, `resume`, `status`, `next`, `report`, and
178
+ context export include `next_recommendation.candidate_goals`. These are small
179
+ candidate starts for the next Nori Contract: each candidate names the goal, user
180
+ value, acceptance directions, and risks.
181
+
182
+ Candidate goals are not phases, task lists, approved acceptance checks, or
183
+ completion evidence. They help the agent continue after the user says
184
+ "continue" without making the user invent the next prompt from scratch.
185
+
163
186
  ### Nori Profile
164
187
 
165
188
  Nori Profile records execution preferences such as required Skills, preferred
166
189
  stacks, avoided tools, and install policy. These preferences influence
167
190
  completion risk and blocking status, but they are not user acceptance checks.
168
191
 
192
+ Build-vs-buy findings work the same way. They are architecture review risks,
193
+ not Product AC. If self-built infrastructure lacks reuse research or a
194
+ self-build reason, status/report say `build_vs_buy` review is required before
195
+ claiming mature completion.
196
+
169
197
  ## Example Uses
170
198
 
171
199
  ### Frontend Feature
@@ -176,10 +204,11 @@ User prompt:
176
204
  Use OpenNori for a settings page where users edit profile details.
177
205
  ```
178
206
 
179
- Nori should reject vague acceptance checks like "modify fields" and ask which
180
- fields, validation rules, save feedback, persistence behavior, failed-save
181
- states, and out-of-scope boundaries matter. The final contract should describe
182
- what the user opens, edits, saves, refreshes, and expects to see.
207
+ Nori should flag vague acceptance checks like "modify fields" as
208
+ `acceptance_review` findings and ask which fields, validation rules, save
209
+ feedback, persistence behavior, failed-save states, and out-of-scope boundaries
210
+ matter. The final contract should describe what the user opens, edits, saves,
211
+ refreshes, and expects to see.
183
212
 
184
213
  ### Skill And Stack Preference
185
214
 
@@ -191,7 +220,9 @@ and avoid adding another UI framework.
191
220
  ```
192
221
 
193
222
  Nori records these as Profile items, not acceptance checks. A violated `must` or
194
- `avoid` item can block completion unless the user waives it.
223
+ `avoid` item can block completion unless the user waives it. An unknown or
224
+ violated `prefer` item becomes `profile_review`: objectively complete work can
225
+ still require user or agent review before it is reported as confidently complete.
195
226
 
196
227
  ### Architecture Baseline
197
228
 
@@ -206,6 +237,10 @@ Nori lists available architecture profiles, previews the baseline, and asks the
206
237
  user to confirm before implementation. Status and report then show Product
207
238
  decision and Architecture decision separately.
208
239
 
240
+ If all Product ACs pass while the Architecture Baseline is missing, challenged,
241
+ or build-vs-buy is unhealthy, status/report answer: objectively complete with
242
+ review risk, not confidently complete.
243
+
209
244
  ### Existing OpenNori Project
210
245
 
211
246
  User prompt:
@@ -226,7 +261,8 @@ Users should start with natural language through an agent. These commands are
226
261
  the deterministic state layer for agents and automation:
227
262
 
228
263
  ```bash
229
- opennori bootstrap
264
+ opennori setup
265
+ opennori init
230
266
  opennori doctor --root .
231
267
  opennori check --root .
232
268
  opennori architecture profiles --root . --json
@@ -237,19 +273,21 @@ opennori draft --goal "Ship a user-visible result" --root .
237
273
  opennori approve --root . --summary "User approved the acceptance checks."
238
274
  opennori status --root .
239
275
  opennori evidence add --root . --criterion AC-1 --kind review-result --summary "..." --result passing
276
+ opennori evidence prune --root . --criterion AC-1 --reason "Evidence no longer proves the current AC"
240
277
  opennori report --root .
241
278
  ```
242
279
 
243
280
  ## Product Boundaries
244
281
 
245
- - `bootstrap` gives agents one short entry for readiness checks and first-time
246
- preview.
282
+ - `setup` is the first-time machine installer for the complete capability
283
+ bundle: Codex Plugin, packaged Skills, global CLI, project state, and doctor.
284
+ - `init` prepares or refreshes `.opennori/` state in the current project.
247
285
  - `install`, `upgrade`, and `uninstall` support preview-first workflows;
248
286
  destructive writes require explicit confirmation.
249
- - OpenNori Plugin Skills are package assets. Install and upgrade write project
250
- state, not project-local copies of OpenNori Skills.
251
- - In a human terminal, `opennori` is interactive. With `--json` or
252
- non-interactive stdio it returns structured JSON.
287
+ - OpenNori Plugin Skills are package behavior protocols for agents. Install and
288
+ upgrade write project state, not project-local copies of OpenNori Skills.
289
+ - In a human terminal, `opennori setup` and `opennori init` are interactive.
290
+ With `--json` or non-interactive stdio they return structured JSON.
253
291
  - `discover` finds underspecified acceptance gaps before draft, so vague ACs
254
292
  become user questions instead of weak contracts.
255
293
  - `doctor` reports whether project state is `ready`, `needs-action`, or
@@ -264,6 +302,9 @@ opennori report --root .
264
302
  - Context export can give review tools the current goal, checks, profile,
265
303
  Architecture Baseline, evidence, and report, but review tools do not take over
266
304
  the agent loop.
305
+ - Complete goals can expose `candidate_goals` for the next acceptance loop; the
306
+ agent still turns the chosen candidate into a new draft Nori Contract before
307
+ completion judgment begins.
267
308
 
268
309
  ## Development
269
310
 
@@ -6,7 +6,7 @@ import { main } from "../src/cli.js";
6
6
  export function commandArgsFromProcessArgs(args) {
7
7
  const firstArg = args[0];
8
8
  return args.length === 0 || (firstArg !== undefined && firstArg.startsWith("-") && !["--help", "-h"].includes(firstArg))
9
- ? ["bootstrap", ...args]
9
+ ? ["setup", ...args]
10
10
  : args;
11
11
  }
12
12
  function printFatalError(error) {
@@ -1 +1 @@
1
- {"version":3,"file":"opennori.js","sourceRoot":"","sources":["../../bin/opennori.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtH,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3B,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACL,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE;KACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,WAAW,CAAC;IACnD,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzB,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACzC,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"opennori.js","sourceRoot":"","sources":["../../bin/opennori.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtH,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3B,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACL,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE;KACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,WAAW,CAAC;IACnD,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzB,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACzC,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -5,7 +5,8 @@ export declare function discoverAcceptanceGaps(text: string, { fallback, allowed
5
5
  allowedIds?: Set<string> | null | undefined;
6
6
  }): AcceptanceDiscoveryGap[];
7
7
  export declare function discoverAcceptance(goal: string, explicitId?: string | undefined): AcceptanceDiscovery;
8
- export declare function auditAcceptanceQuality(contract: NoriContract): AcceptanceQualityAudit;
8
+ export declare function reviewAcceptanceQuality(contract: NoriContract): AcceptanceQualityAudit;
9
+ export declare const auditAcceptanceQuality: typeof reviewAcceptanceQuality;
9
10
  export declare function renderDiscoveryMarkdown(discovery: AcceptanceDiscovery): string;
10
11
  export declare function renderBrainstormMarkdown(brainstorm: Brainstorm): string;
11
12
  export declare function briefFromGoal(goal: string, goalId?: string | undefined): NoriBrief;
@@ -1 +1 @@
1
- {"version":3,"file":"acceptance.d.ts","sourceRoot":"","sources":["../../src/acceptance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EAEtB,UAAU,EAEV,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAyCpB,eAAO,MAAM,gBAAgB,EAAE,mBAAmB,EAsBjD,CAAC;AA0DF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAgB,EAAE,UAAuC,EAAE;;;CAAK,GAAG,sBAAsB,EAAE,CAyBjJ;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,GAAG,SAAqB,GAAG,mBAAmB,CAkBhH;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,GAAG,sBAAsB,CA4ErF;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,CA+B9E;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAiCvE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,SAAqB,GAAG,SAAS,CAO7F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,GAAG,SAAqB,GAAG,UAAU,CAUpG;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAkB1F"}
1
+ {"version":3,"file":"acceptance.d.ts","sourceRoot":"","sources":["../../src/acceptance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EAEtB,UAAU,EAEV,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAyCpB,eAAO,MAAM,gBAAgB,EAAE,mBAAmB,EAsBjD,CAAC;AA0MF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAgB,EAAE,UAAuC,EAAE;;;CAAK,GAAG,sBAAsB,EAAE,CAyBjJ;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,GAAG,SAAqB,GAAG,mBAAmB,CAkBhH;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,sBAAsB,CAsJtF;AAED,eAAO,MAAM,sBAAsB,gCAA0B,CAAC;AAE9D,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,CA+B9E;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAiCvE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,SAAqB,GAAG,SAAS,CAO7F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,GAAG,SAAqB,GAAG,UAAU,CAUpG;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAkB1F"}