@nimiplatform/nimi-coding 0.2.7 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -80
- package/CONTRIBUTING.md +5 -34
- package/README.md +47 -350
- package/README.zh-CN.md +33 -287
- package/cli/commands/start.mjs +48 -688
- package/cli/commands/validate-spec-audit.mjs +1 -5
- package/cli/constants.mjs +9 -417
- package/cli/dev/run-cli-smoke.mjs +24 -0
- package/cli/dev/run-suite.mjs +17 -0
- package/cli/help.mjs +28 -145
- package/cli/index.mjs +5 -33
- package/cli/lib/blueprint-audit.mjs +5 -12
- package/cli/lib/bootstrap.mjs +0 -9
- package/cli/lib/contracts.mjs +0 -163
- package/cli/lib/doctor.mjs +155 -10
- package/cli/lib/entrypoints.mjs +63 -167
- package/cli/lib/internal/contracts-loaders.mjs +0 -85
- package/cli/lib/internal/contracts-parse.mjs +84 -520
- package/cli/lib/internal/governance/ai/check-agents-freshness.mjs +13 -8
- package/cli/lib/internal/surface-taxonomy-validators.mjs +316 -66
- package/cli/lib/internal/validators-shared.mjs +0 -16
- package/cli/lib/internal/validators-spec-helpers.mjs +7 -140
- package/cli/lib/internal/validators-spec.mjs +103 -342
- package/cli/lib/shared.mjs +1 -42
- package/cli/lib/validators.mjs +0 -48
- package/cli/seeds/seed-policy.yaml +0 -3
- package/config/bootstrap.yaml +4 -4
- package/config/spec-generation-inputs.yaml +6 -12
- package/contracts/domain-admission.schema.yaml +3 -3
- package/contracts/migration-inventory.schema.yaml +12 -75
- package/contracts/negative-fixtures.yaml +19 -99
- package/contracts/placement-contract.schema.yaml +49 -78
- package/contracts/projection-edge.schema.yaml +37 -121
- package/contracts/shared-enums.yaml +4 -8
- package/contracts/spec-generation-inputs.schema.yaml +15 -112
- package/contracts/spec-layout.schema.yaml +32 -0
- package/contracts/surface-taxonomy.schema.yaml +43 -94
- package/contracts/table-family.schema.yaml +1 -1
- package/contracts/tracked-output-admission.schema.yaml +13 -66
- package/methodology/core.yaml +33 -25
- package/methodology/four-closure-policy.yaml +18 -26
- package/methodology/role-separation-policy.yaml +21 -27
- package/methodology/spec-reconstruction.yaml +17 -34
- package/package.json +4 -6
- package/spec/_meta/spec-tree-model.yaml +5 -101
- package/spec/product-scope.yaml +25 -57
- package/adapters/README.md +0 -25
- package/adapters/claude/README.md +0 -89
- package/adapters/claude/profile.yaml +0 -70
- package/adapters/codex/README.md +0 -53
- package/adapters/codex/profile.yaml +0 -78
- package/adapters/oh-my-codex/README.md +0 -184
- package/adapters/oh-my-codex/profile.yaml +0 -46
- package/cli/commands/admit-high-risk-decision.mjs +0 -108
- package/cli/commands/audit-sweep.mjs +0 -364
- package/cli/commands/closeout.mjs +0 -186
- package/cli/commands/decide-high-risk-execution.mjs +0 -124
- package/cli/commands/handoff.mjs +0 -123
- package/cli/commands/ingest-high-risk-execution.mjs +0 -95
- package/cli/commands/review-high-risk-execution.mjs +0 -95
- package/cli/commands/sweep-design.mjs +0 -295
- package/cli/commands/sweep.mjs +0 -22
- package/cli/commands/topic-formatters.mjs +0 -382
- package/cli/commands/topic-goal.mjs +0 -33
- package/cli/commands/topic-options-shared.mjs +0 -27
- package/cli/commands/topic-options-workflow.mjs +0 -767
- package/cli/commands/topic-options.mjs +0 -626
- package/cli/commands/topic-runner.mjs +0 -169
- package/cli/commands/topic.mjs +0 -795
- package/cli/commands/validate-acceptance.mjs +0 -5
- package/cli/commands/validate-execution-packet.mjs +0 -5
- package/cli/commands/validate-orchestration-state.mjs +0 -5
- package/cli/commands/validate-prompt.mjs +0 -5
- package/cli/commands/validate-worker-output.mjs +0 -5
- package/cli/lib/adapter-profiles.mjs +0 -403
- package/cli/lib/audit-execution.mjs +0 -52
- package/cli/lib/audit-sweep-runtime/admissions.mjs +0 -508
- package/cli/lib/audit-sweep-runtime/audit-validity.mjs +0 -356
- package/cli/lib/audit-sweep-runtime/chunks.mjs +0 -697
- package/cli/lib/audit-sweep-runtime/claude-auditor.mjs +0 -647
- package/cli/lib/audit-sweep-runtime/closeout.mjs +0 -144
- package/cli/lib/audit-sweep-runtime/codex-auditor-evidence.mjs +0 -654
- package/cli/lib/audit-sweep-runtime/codex-auditor.mjs +0 -516
- package/cli/lib/audit-sweep-runtime/common.mjs +0 -341
- package/cli/lib/audit-sweep-runtime/coverage-quality.mjs +0 -172
- package/cli/lib/audit-sweep-runtime/evidence-assignment.mjs +0 -155
- package/cli/lib/audit-sweep-runtime/format.mjs +0 -57
- package/cli/lib/audit-sweep-runtime/ingest.mjs +0 -486
- package/cli/lib/audit-sweep-runtime/inventory-spec-chunks.mjs +0 -425
- package/cli/lib/audit-sweep-runtime/inventory.mjs +0 -798
- package/cli/lib/audit-sweep-runtime/ledger.mjs +0 -315
- package/cli/lib/audit-sweep-runtime/p0p1-profile.mjs +0 -101
- package/cli/lib/audit-sweep-runtime/remediation.mjs +0 -349
- package/cli/lib/audit-sweep-runtime/rerun.mjs +0 -129
- package/cli/lib/audit-sweep-runtime/risk-budget.mjs +0 -300
- package/cli/lib/audit-sweep-runtime/status.mjs +0 -62
- package/cli/lib/audit-sweep-runtime/validators-ledger.mjs +0 -215
- package/cli/lib/audit-sweep-runtime/validators.mjs +0 -797
- package/cli/lib/audit-sweep.mjs +0 -19
- package/cli/lib/authority-convergence.mjs +0 -704
- package/cli/lib/closeout.mjs +0 -732
- package/cli/lib/codex-sdk-runner.mjs +0 -76
- package/cli/lib/external-execution.mjs +0 -101
- package/cli/lib/handoff.mjs +0 -812
- package/cli/lib/high-risk-admission.mjs +0 -512
- package/cli/lib/high-risk-decision.mjs +0 -353
- package/cli/lib/high-risk-ingest.mjs +0 -321
- package/cli/lib/high-risk-review.mjs +0 -267
- package/cli/lib/internal/contracts-parse-high-risk.mjs +0 -131
- package/cli/lib/internal/contracts-validators.mjs +0 -399
- package/cli/lib/internal/doctor-bootstrap-surface.mjs +0 -406
- package/cli/lib/internal/doctor-delegated-surface.mjs +0 -256
- package/cli/lib/internal/doctor-finalize.mjs +0 -383
- package/cli/lib/internal/doctor-format.mjs +0 -286
- package/cli/lib/internal/doctor-inspectors.mjs +0 -327
- package/cli/lib/internal/doctor-state.mjs +0 -205
- package/cli/lib/internal/validators-artifacts.mjs +0 -515
- package/cli/lib/sweep-design-runtime/common.mjs +0 -246
- package/cli/lib/sweep-design-runtime/engine.mjs +0 -733
- package/cli/lib/sweep-design-runtime/fix-topic.mjs +0 -414
- package/cli/lib/sweep-design-runtime/lifecycle.mjs +0 -54
- package/cli/lib/sweep-design-runtime/results.mjs +0 -324
- package/cli/lib/sweep-design.mjs +0 -8
- package/cli/lib/topic-artifacts.mjs +0 -186
- package/cli/lib/topic-authority-coverage.mjs +0 -73
- package/cli/lib/topic-closeout.mjs +0 -560
- package/cli/lib/topic-common.mjs +0 -404
- package/cli/lib/topic-decisions.mjs +0 -332
- package/cli/lib/topic-draft-packets.mjs +0 -167
- package/cli/lib/topic-execution.mjs +0 -515
- package/cli/lib/topic-goal.mjs +0 -440
- package/cli/lib/topic-ledger.mjs +0 -281
- package/cli/lib/topic-lifecycle-artifacts.mjs +0 -173
- package/cli/lib/topic-root-validation.mjs +0 -288
- package/cli/lib/topic-runner-commands.mjs +0 -174
- package/cli/lib/topic-runner-deferral.mjs +0 -532
- package/cli/lib/topic-runner-stale-gates.mjs +0 -114
- package/cli/lib/topic-runner-validation.mjs +0 -138
- package/cli/lib/topic-runner.mjs +0 -727
- package/cli/lib/topic-scaffold.mjs +0 -252
- package/cli/lib/topic-waves.mjs +0 -403
- package/cli/lib/topic.mjs +0 -81
- package/config/audit-execution-artifacts.yaml +0 -20
- package/config/external-execution-artifacts.yaml +0 -16
- package/config/host-adapter.yaml +0 -30
- package/config/host-profile.yaml +0 -29
- package/config/installer-evidence.yaml +0 -31
- package/config/skill-installer.yaml +0 -23
- package/config/skill-manifest.yaml +0 -48
- package/config/skills.yaml +0 -30
- package/contracts/acceptance.schema.yaml +0 -16
- package/contracts/admission-checklist.schema.yaml +0 -15
- package/contracts/audit-chunk.schema.yaml +0 -123
- package/contracts/audit-closeout.schema.yaml +0 -51
- package/contracts/audit-finding.schema.yaml +0 -61
- package/contracts/audit-ledger.schema.yaml +0 -138
- package/contracts/audit-plan.schema.yaml +0 -138
- package/contracts/audit-remediation-map.schema.yaml +0 -52
- package/contracts/audit-rerun.schema.yaml +0 -31
- package/contracts/audit-sweep-result.yaml +0 -53
- package/contracts/authority-convergence-audit.schema.yaml +0 -19
- package/contracts/closeout.schema.yaml +0 -25
- package/contracts/decision-review.schema.yaml +0 -16
- package/contracts/doc-spec-audit-result.yaml +0 -19
- package/contracts/execution-packet.schema.yaml +0 -49
- package/contracts/external-host-compatibility.yaml +0 -22
- package/contracts/forbidden-shortcuts.catalog.yaml +0 -23
- package/contracts/high-risk-admission.schema.yaml +0 -23
- package/contracts/high-risk-execution-result.yaml +0 -20
- package/contracts/orchestration-state.schema.yaml +0 -41
- package/contracts/overflow-continuation.schema.yaml +0 -12
- package/contracts/packet.schema.yaml +0 -30
- package/contracts/pending-note.schema.yaml +0 -17
- package/contracts/prompt.schema.yaml +0 -12
- package/contracts/remediation.schema.yaml +0 -16
- package/contracts/result.schema.yaml +0 -24
- package/contracts/spec-reconstruction-result.yaml +0 -41
- package/contracts/sweep-design-result.yaml +0 -349
- package/contracts/topic-goal.schema.yaml +0 -87
- package/contracts/topic-run-ledger.schema.yaml +0 -72
- package/contracts/topic-step-decision.schema.yaml +0 -45
- package/contracts/topic.schema.yaml +0 -65
- package/contracts/true-close.schema.yaml +0 -15
- package/contracts/wave.schema.yaml +0 -29
- package/contracts/worker-output.schema.yaml +0 -15
- package/contracts/workflow-consumer.schema.yaml +0 -110
- package/methodology/audit-sweep-p0p1-recall.yaml +0 -45
- package/methodology/authority-convergence-policy.yaml +0 -42
- package/methodology/overflow-continuation-policy.yaml +0 -14
- package/methodology/skill-exchange-projection.yaml +0 -114
- package/methodology/skill-handoff.yaml +0 -34
- package/methodology/skill-installer-result.yaml +0 -27
- package/methodology/skill-installer-summary-projection.yaml +0 -181
- package/methodology/skill-runtime.yaml +0 -23
- package/methodology/spec-target-truth-profile.yaml +0 -46
- package/methodology/topic-lifecycle-report.yaml +0 -144
- package/methodology/topic-lifecycle.yaml +0 -37
- package/methodology/topic-naming-ontology.yaml +0 -21
- package/methodology/topic-ontology.yaml +0 -38
- package/methodology/topic-validation-policy.yaml +0 -9
- package/methodology/wave-dag-policy.yaml +0 -14
- package/spec/_meta/command-gating-matrix.yaml +0 -143
- package/spec/_meta/generate-drift-migration-checklist.yaml +0 -137
- package/spec/_meta/governance-routing-cutover-checklist.yaml +0 -35
- package/spec/_meta/phase2-impacted-surface-matrix.yaml +0 -44
- package/spec/_meta/spec-authority-cutover-readiness.yaml +0 -102
- package/spec/bootstrap-state.yaml +0 -99
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# Claude Code Adapter
|
|
2
|
-
|
|
3
|
-
This adapter defines how to use `@nimiplatform/nimi-coding` with Claude Code
|
|
4
|
-
without turning Claude into the semantic owner.
|
|
5
|
-
|
|
6
|
-
## Intent
|
|
7
|
-
|
|
8
|
-
Use Claude Code for:
|
|
9
|
-
|
|
10
|
-
- inline coding with direct filesystem access
|
|
11
|
-
- exploration, planning, and execution in a single session
|
|
12
|
-
- review and decision projection (manager-ready, not manager-owned)
|
|
13
|
-
- AGENTS.md-governed module-scoped work via PreToolUse hooks
|
|
14
|
-
|
|
15
|
-
Keep `nimicoding` responsible for:
|
|
16
|
-
|
|
17
|
-
- project-local `.nimi/**` truth
|
|
18
|
-
- authority boundaries
|
|
19
|
-
- handoff constraints
|
|
20
|
-
- packet, prompt, worker-output, and acceptance schema ownership
|
|
21
|
-
- fail-closed validation
|
|
22
|
-
|
|
23
|
-
## Integration Mode
|
|
24
|
-
|
|
25
|
-
Claude Code integrates differently from oh-my-codex:
|
|
26
|
-
|
|
27
|
-
| Concern | oh-my-codex | Claude Code |
|
|
28
|
-
|---|---|---|
|
|
29
|
-
| Host class | external execution host | inline coding host |
|
|
30
|
-
| Instruction format | AGENTS.md (native) | CLAUDE.md (native) + AGENTS.md (hook-injected) |
|
|
31
|
-
| Module context | automatic on every interaction | PreToolUse hook on Read/Edit/Write |
|
|
32
|
-
| Operational state | `.omx/` | `.claude/` |
|
|
33
|
-
| Execution mode | external handoff via JSON | inline in-repo execution |
|
|
34
|
-
| Review capability | execution only | execution + inline review |
|
|
35
|
-
|
|
36
|
-
## Boundary
|
|
37
|
-
|
|
38
|
-
Treat the systems as layered rather than merged:
|
|
39
|
-
|
|
40
|
-
- `@nimiplatform/nimi-coding` is the semantic kernel.
|
|
41
|
-
- Claude Code is a constrained inline coding host.
|
|
42
|
-
- This adapter is only the bridge.
|
|
43
|
-
|
|
44
|
-
Claude Code may read `.nimi/**` and produce execution artifacts, but it must not:
|
|
45
|
-
|
|
46
|
-
- become the owner of `.nimi/spec/**`
|
|
47
|
-
- treat cutover readiness as an authority flip
|
|
48
|
-
- decide semantic acceptance or final disposition
|
|
49
|
-
- redefine methodology state from `.claude/**` operational state
|
|
50
|
-
- bypass `nimicoding doctor`, `handoff`, or validator gates
|
|
51
|
-
- use hooks as a replacement for AGENTS.md authority
|
|
52
|
-
|
|
53
|
-
## Context Channel
|
|
54
|
-
|
|
55
|
-
Claude Code receives module-level AGENTS.md content through a PreToolUse hook:
|
|
56
|
-
|
|
57
|
-
1. Hook fires on **Read**, **Edit**, and **Write** tool calls
|
|
58
|
-
2. Script walks up from the target file to find the nearest `AGENTS.md`
|
|
59
|
-
3. Content is injected as `additionalContext` before the tool executes
|
|
60
|
-
4. Root `AGENTS.md` is already synced into `CLAUDE.md` (not re-injected)
|
|
61
|
-
5. **Grep/Glob/Bash** do not trigger injection — manual AGENTS.md reads
|
|
62
|
-
are still needed for search-based exploration
|
|
63
|
-
|
|
64
|
-
The `CLAUDE.md` managed block (marker `nimicoding:managed:claude`) provides
|
|
65
|
-
the baseline methodology context. Module-level AGENTS.md provides scoped
|
|
66
|
-
constraints on top of that baseline.
|
|
67
|
-
|
|
68
|
-
## Coverage Gap
|
|
69
|
-
|
|
70
|
-
| Tool | Hook fires? | Module AGENTS.md visible? |
|
|
71
|
-
|---|---|---|
|
|
72
|
-
| Read | Yes | Automatic |
|
|
73
|
-
| Edit | Yes | Automatic |
|
|
74
|
-
| Write | Yes | Automatic |
|
|
75
|
-
| Grep | No | Manual read needed |
|
|
76
|
-
| Glob | No | Manual read needed |
|
|
77
|
-
| Bash | No | Manual read needed |
|
|
78
|
-
| Agent (subagent) | No | Manual read needed |
|
|
79
|
-
|
|
80
|
-
## Mapping
|
|
81
|
-
|
|
82
|
-
| Claude concern | Adapter rule | `nimicoding` owner |
|
|
83
|
-
|---|---|---|
|
|
84
|
-
| exploration/planning | hook-injected module context | `.nimi/methodology/skill-handoff.yaml` |
|
|
85
|
-
| prompt handoff | consume exported prompt/context | `.nimi/methodology/skill-handoff.yaml` |
|
|
86
|
-
| worker output | write candidate artifact only under declared local roots | `.nimi/contracts/worker-output.schema.yaml` |
|
|
87
|
-
| evidence | write candidate artifact only under declared local roots | packet/evidence contract family |
|
|
88
|
-
| inline review | project decision material, do not decide | manager-reviewed `nimicoding` semantics |
|
|
89
|
-
| final disposition | Claude must not decide | manager-reviewed `nimicoding` semantics |
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
version: 1
|
|
2
|
-
adapter_profile:
|
|
3
|
-
id: claude
|
|
4
|
-
host_class: inline_coding_host
|
|
5
|
-
upstream_seed_profile: external_ai_host
|
|
6
|
-
purpose: >
|
|
7
|
-
Constrain Claude Code to act as an inline coding host for nimicoding
|
|
8
|
-
methodology execution, with AGENTS.md authority injected via PreToolUse
|
|
9
|
-
hooks and CLAUDE.md as the native entrypoint, without promoting Claude
|
|
10
|
-
operational state into semantic truth.
|
|
11
|
-
semantic_owner:
|
|
12
|
-
- .nimi/methodology
|
|
13
|
-
- .nimi/spec
|
|
14
|
-
- .nimi/contracts
|
|
15
|
-
- .nimi/config
|
|
16
|
-
operational_owner:
|
|
17
|
-
- .claude
|
|
18
|
-
- .nimi/local
|
|
19
|
-
- .nimi/cache
|
|
20
|
-
admitted_skill_surfaces:
|
|
21
|
-
- spec_reconstruction
|
|
22
|
-
- doc_spec_audit
|
|
23
|
-
- audit_sweep
|
|
24
|
-
- high_risk_execution
|
|
25
|
-
- inline_review
|
|
26
|
-
- authority_convergence_audit
|
|
27
|
-
context_integration:
|
|
28
|
-
native_entrypoint: CLAUDE.md
|
|
29
|
-
module_context_channel: PreToolUse_hook_agents_md_injection
|
|
30
|
-
managed_block_marker: "nimicoding:managed:claude"
|
|
31
|
-
hook_matcher: Read|Edit|Write
|
|
32
|
-
hook_script: .claude/hooks/inject-agents-md.sh
|
|
33
|
-
agents_md_authority: >
|
|
34
|
-
AGENTS.md files remain the authoritative module-level rules.
|
|
35
|
-
CLAUDE.md defers to AGENTS.md on conflict. The hook injects the
|
|
36
|
-
nearest AGENTS.md as additionalContext on Read/Edit/Write tool
|
|
37
|
-
calls. Grep/Glob/Bash do not trigger injection.
|
|
38
|
-
prompt_handoff:
|
|
39
|
-
bootstrap_surface:
|
|
40
|
-
- nimicoding handoff --skill spec_reconstruction --prompt
|
|
41
|
-
- nimicoding handoff --skill doc_spec_audit --prompt
|
|
42
|
-
- nimicoding handoff --skill audit_sweep --prompt
|
|
43
|
-
- nimicoding handoff --skill high_risk_execution --prompt
|
|
44
|
-
future_surface:
|
|
45
|
-
status: active_via_hooks
|
|
46
|
-
commands: []
|
|
47
|
-
channel: CLAUDE.md managed block + PreToolUse AGENTS.md hooks
|
|
48
|
-
output_handoff:
|
|
49
|
-
worker_output_target: .nimi/local/outputs/** candidate artifact
|
|
50
|
-
evidence_target: .nimi/local/evidence/** candidate artifact
|
|
51
|
-
closeout_target: local-only closeout payload unless later admitted
|
|
52
|
-
authority_convergence_audit:
|
|
53
|
-
execution_projection: claude_task_subagent_auditor
|
|
54
|
-
dispatch_source: nimicoding topic audit dispatch
|
|
55
|
-
output_target: .nimi/local/outputs/** candidate audit evidence
|
|
56
|
-
semantic_effect: none_until_manager_records_topic_audit_result
|
|
57
|
-
required_prompt_posture:
|
|
58
|
-
- audit_only_no_code_or_spec_edits
|
|
59
|
-
- report_PASS_NEEDS_REVISION_or_FAIL
|
|
60
|
-
- list_blocking_findings_concerns_deferred_non_blockers_and_authority_refs
|
|
61
|
-
hard_constraints:
|
|
62
|
-
- claude_must_not_become_semantic_owner
|
|
63
|
-
- claude_must_not_write_canonical_.nimi/spec_truth_directly_without_validator_admission
|
|
64
|
-
- claude_must_not_define_acceptance_disposition_or_finding_judgment
|
|
65
|
-
- claude_operational_state_must_remain_operational_only
|
|
66
|
-
- claude_hooks_must_not_replace_agents_md_authority
|
|
67
|
-
- unresolved_authority_or_missing_context_must_fail_closed
|
|
68
|
-
- claude_subagent_authority_convergence_output_must_remain_candidate_evidence
|
|
69
|
-
current_gaps:
|
|
70
|
-
- automatic_semantic_admission_automation_not_packaged_in_standalone
|
package/adapters/codex/README.md
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# Codex Adapter Sketch
|
|
2
|
-
|
|
3
|
-
This adapter defines native Codex support for `@nimiplatform/nimi-coding`.
|
|
4
|
-
|
|
5
|
-
It is intentionally separate from `oh_my_codex`. `oh_my_codex` is an external
|
|
6
|
-
adapter boundary; `codex` is the native Codex SDK host boundary.
|
|
7
|
-
|
|
8
|
-
## Boundary
|
|
9
|
-
|
|
10
|
-
- Codex SDK owns operational thread execution.
|
|
11
|
-
- `.nimi/**` remains semantic truth.
|
|
12
|
-
- Topic decisions come from `nimicoding topic run-next-step`.
|
|
13
|
-
- Run continuity is recorded by `nimicoding topic run-ledger`.
|
|
14
|
-
- Codex thread IDs are operational state and must not become semantic truth.
|
|
15
|
-
|
|
16
|
-
## SDK Surface
|
|
17
|
-
|
|
18
|
-
The admitted native surface is the official TypeScript package:
|
|
19
|
-
|
|
20
|
-
- package: `@openai/codex-sdk`
|
|
21
|
-
- primary API: `new Codex().startThread().run(prompt)`
|
|
22
|
-
- resume API: `new Codex().resumeThread(threadId).run(prompt)`
|
|
23
|
-
|
|
24
|
-
The first packaged runner must call the SDK directly. It must not shell out to
|
|
25
|
-
the Codex CLI and must not route through `oh_my_codex`.
|
|
26
|
-
|
|
27
|
-
## Execution Rule
|
|
28
|
-
|
|
29
|
-
The runner may call Codex only after `run-next-step` returns:
|
|
30
|
-
|
|
31
|
-
- `stop_class: continue`
|
|
32
|
-
- a mechanical `recommended_action`
|
|
33
|
-
- a concrete `next_command_ref`
|
|
34
|
-
|
|
35
|
-
`continue` means the next package-owned command is placeholder-free and
|
|
36
|
-
mechanically determined. It may include lifecycle transitions such as admitting
|
|
37
|
-
the uniquely selected wave or freezing the uniquely matching draft packet; those
|
|
38
|
-
transitions do not by themselves create a human gate.
|
|
39
|
-
|
|
40
|
-
All other stop classes must be represented as run-ledger events and returned to
|
|
41
|
-
the manager/operator without hidden continuation.
|
|
42
|
-
|
|
43
|
-
## Native Review Boundary
|
|
44
|
-
|
|
45
|
-
Codex native review features are admitted only as lower-layer host capabilities:
|
|
46
|
-
|
|
47
|
-
- automatic approval review may evaluate permission prompts and risk posture
|
|
48
|
-
- GitHub automatic review may provide PR findings
|
|
49
|
-
- both outputs may be recorded as `.nimi/local/evidence/**` candidate evidence
|
|
50
|
-
|
|
51
|
-
They must not admit a wave, freeze a packet, record a result verdict, close a
|
|
52
|
-
wave, close a topic, or satisfy true-close. Those transitions remain
|
|
53
|
-
`nimicoding topic` command semantics with package-owned artifact lineage.
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
version: 1
|
|
2
|
-
adapter_profile:
|
|
3
|
-
id: codex
|
|
4
|
-
host_class: native_codex_sdk_host
|
|
5
|
-
upstream_seed_profile: external_ai_host
|
|
6
|
-
purpose: >
|
|
7
|
-
Constrain native Codex SDK execution to act as a direct Codex host for
|
|
8
|
-
nimicoding topic-loop dispatch, using @openai/codex-sdk thread runs without
|
|
9
|
-
promoting Codex thread state into semantic truth.
|
|
10
|
-
semantic_owner:
|
|
11
|
-
- .nimi/methodology
|
|
12
|
-
- .nimi/spec
|
|
13
|
-
- .nimi/contracts
|
|
14
|
-
- .nimi/config
|
|
15
|
-
operational_owner:
|
|
16
|
-
- .codex
|
|
17
|
-
- .nimi/local
|
|
18
|
-
- .nimi/cache
|
|
19
|
-
admitted_skill_surfaces:
|
|
20
|
-
- spec_reconstruction
|
|
21
|
-
- doc_spec_audit
|
|
22
|
-
- audit_sweep
|
|
23
|
-
- high_risk_execution
|
|
24
|
-
- topic_loop_execution
|
|
25
|
-
- authority_convergence_audit
|
|
26
|
-
prompt_handoff:
|
|
27
|
-
bootstrap_surface:
|
|
28
|
-
- nimicoding handoff --skill spec_reconstruction --prompt
|
|
29
|
-
- nimicoding handoff --skill doc_spec_audit --prompt
|
|
30
|
-
- nimicoding handoff --skill audit_sweep --prompt
|
|
31
|
-
- nimicoding handoff --skill high_risk_execution --prompt
|
|
32
|
-
future_surface:
|
|
33
|
-
status: active_via_codex_sdk
|
|
34
|
-
commands:
|
|
35
|
-
- Codex.startThread().run
|
|
36
|
-
- Codex.resumeThread().run
|
|
37
|
-
output_handoff:
|
|
38
|
-
worker_output_target: .nimi/local/outputs/** candidate artifact
|
|
39
|
-
evidence_target: .nimi/local/evidence/** candidate artifact
|
|
40
|
-
closeout_target: local-only closeout payload unless later admitted
|
|
41
|
-
authority_convergence_audit:
|
|
42
|
-
execution_projection: codex_subagent_auditor
|
|
43
|
-
dispatch_source: nimicoding topic audit dispatch
|
|
44
|
-
output_target: .nimi/local/outputs/** candidate audit evidence
|
|
45
|
-
semantic_effect: none_until_manager_records_topic_audit_result
|
|
46
|
-
required_prompt_posture:
|
|
47
|
-
- audit_only_no_code_or_spec_edits
|
|
48
|
-
- report_PASS_NEEDS_REVISION_or_FAIL
|
|
49
|
-
- list_blocking_findings_concerns_deferred_non_blockers_and_authority_refs
|
|
50
|
-
native_review_boundary:
|
|
51
|
-
approval_review:
|
|
52
|
-
scope: lower_layer_permission_review
|
|
53
|
-
semantic_effect: none
|
|
54
|
-
evidence_target: .nimi/local/evidence/** candidate artifact
|
|
55
|
-
github_auto_review:
|
|
56
|
-
scope: lower_layer_pr_review_findings
|
|
57
|
-
semantic_effect: evidence_only
|
|
58
|
-
evidence_target: .nimi/local/evidence/** candidate artifact
|
|
59
|
-
forbidden_semantic_substitutions:
|
|
60
|
-
- wave_admission
|
|
61
|
-
- packet_freeze
|
|
62
|
-
- result_verdict
|
|
63
|
-
- wave_closeout
|
|
64
|
-
- topic_closeout
|
|
65
|
-
- true_close
|
|
66
|
-
hard_constraints:
|
|
67
|
-
- codex_sdk_must_not_become_semantic_owner
|
|
68
|
-
- codex_sdk_must_not_write_canonical_.nimi/spec_truth_directly_without_validator_admission
|
|
69
|
-
- codex_sdk_must_not_define_acceptance_disposition_or_finding_judgment
|
|
70
|
-
- codex_thread_state_must_remain_operational_only
|
|
71
|
-
- codex_sdk_runs_must_be_recorded_in_topic_run_ledger
|
|
72
|
-
- codex_native_approval_review_must_remain_permission_review_only
|
|
73
|
-
- codex_github_auto_review_must_remain_evidence_only
|
|
74
|
-
- codex_review_must_not_substitute_nimicoding_semantic_commands
|
|
75
|
-
- unresolved_authority_or_missing_context_must_fail_closed
|
|
76
|
-
- codex_subagent_authority_convergence_output_must_remain_candidate_evidence
|
|
77
|
-
current_gaps:
|
|
78
|
-
- topic_semantic_orchestrator_command_surface_not_yet_packaged
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
# oh-my-codex Adapter Sketch
|
|
2
|
-
|
|
3
|
-
This adapter sketch defines how to use `@nimiplatform/nimi-coding` with
|
|
4
|
-
`oh-my-codex` (OMX) without turning OMX into the semantic owner.
|
|
5
|
-
|
|
6
|
-
## Intent
|
|
7
|
-
|
|
8
|
-
Use OMX for:
|
|
9
|
-
|
|
10
|
-
- multi-agent or role-based execution
|
|
11
|
-
- external host routing
|
|
12
|
-
- long-running or autonomy-first execution behavior
|
|
13
|
-
- operational observability
|
|
14
|
-
|
|
15
|
-
Keep `nimicoding` responsible for:
|
|
16
|
-
|
|
17
|
-
- project-local `.nimi/**` truth
|
|
18
|
-
- authority boundaries
|
|
19
|
-
- handoff constraints
|
|
20
|
-
- packet, prompt, worker-output, and acceptance schema ownership
|
|
21
|
-
- fail-closed validation
|
|
22
|
-
|
|
23
|
-
## Boundary
|
|
24
|
-
|
|
25
|
-
Treat the systems as layered rather than merged:
|
|
26
|
-
|
|
27
|
-
- `@nimiplatform/nimi-coding` is the semantic kernel.
|
|
28
|
-
- `oh-my-codex` is a constrained external execution host.
|
|
29
|
-
- This adapter is only the bridge.
|
|
30
|
-
|
|
31
|
-
OMX may read `.nimi/**` and produce execution artifacts, but it must not:
|
|
32
|
-
|
|
33
|
-
- become the owner of `.nimi/spec/**`
|
|
34
|
-
- treat cutover readiness as an authority flip
|
|
35
|
-
- decide semantic acceptance or final disposition
|
|
36
|
-
- redefine methodology state from `.omx/**` runtime state
|
|
37
|
-
- bypass `nimicoding doctor`, `handoff`, or validator gates
|
|
38
|
-
|
|
39
|
-
## Current Audit Summary
|
|
40
|
-
|
|
41
|
-
The current package is already boundary-complete for standalone adapter use:
|
|
42
|
-
|
|
43
|
-
- bootstrap seeding includes `skill-manifest`, `host-profile`, delegated
|
|
44
|
-
`skill-runtime`, and `skill-handoff`
|
|
45
|
-
- `doctor` fail-closes when delegated-runtime posture, host-adapter truth, or
|
|
46
|
-
the package-owned OMX adapter overlay drifts
|
|
47
|
-
- the generic external-host compatibility contract remains the baseline, and
|
|
48
|
-
OMX only adds an admitted overlay on top of it
|
|
49
|
-
- `nimicoding doctor` and `nimicoding handoff` now report the supported
|
|
50
|
-
host posture directly from that packaged compatibility contract, alongside
|
|
51
|
-
named overlay status and future-only host-specific surfaces
|
|
52
|
-
- `handoff --json` exports the authoritative machine contract, while
|
|
53
|
-
`handoff --prompt` remains a human-readable projection, and both include
|
|
54
|
-
selected OMX overlay metadata
|
|
55
|
-
- `closeout` safely projects external results into local-only artifacts
|
|
56
|
-
- execution artifact validators already exist for packet, orchestration-state,
|
|
57
|
-
prompt, worker-output, and acceptance
|
|
58
|
-
|
|
59
|
-
The main remaining gap is not boundary definition. It is automation:
|
|
60
|
-
|
|
61
|
-
- `high_risk_execution` now has a packaged local-only result contract
|
|
62
|
-
- this package intentionally does not ship a packet-bound run kernel,
|
|
63
|
-
provider execution, or automatic canonical semantic promotion loop
|
|
64
|
-
- the adapter profile marks `run-next-prompt` as a future-only, not-packaged
|
|
65
|
-
surface rather than an available standalone command
|
|
66
|
-
|
|
67
|
-
That means OMX interop is already viable for prompt/output/evidence handoff,
|
|
68
|
-
named host-profile recognition, and explicit manager-owned admission, but
|
|
69
|
-
final high-risk completion should still stay bounded by `nimicoding`
|
|
70
|
-
validators, explicit local closeout/decision/ingest/review surfaces, and
|
|
71
|
-
manual manager-side admission rather than automatic semantic promotion. The
|
|
72
|
-
local admission evidence target is now also shape-validated by a package-owned
|
|
73
|
-
admission schema contract before `nimicoding` accepts it as semantic truth.
|
|
74
|
-
|
|
75
|
-
## Recommended First-User Flow
|
|
76
|
-
|
|
77
|
-
### 1. Bootstrap project-local truth
|
|
78
|
-
|
|
79
|
-
Run inside the target project:
|
|
80
|
-
|
|
81
|
-
```sh
|
|
82
|
-
nimicoding start
|
|
83
|
-
nimicoding doctor
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
The result must keep delegated runtime ownership and non-self-hosted posture
|
|
87
|
-
clean before OMX is introduced.
|
|
88
|
-
|
|
89
|
-
### 2. Reconstruct `.nimi/spec/**` through explicit handoff
|
|
90
|
-
|
|
91
|
-
Export the authoritative bootstrap handoff contract:
|
|
92
|
-
|
|
93
|
-
```sh
|
|
94
|
-
nimicoding handoff --skill spec_reconstruction --json
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Use the JSON payload as OMX's machine contract. `--prompt` may still be used
|
|
98
|
-
as a host briefing, but it is not the authoritative surface. OMX should
|
|
99
|
-
return only the declared canonical tree outputs and must not invent new semantic
|
|
100
|
-
owners. In a host project, `.nimi/spec/**` is current authority only when the
|
|
101
|
-
host has admitted or reconstructed it; OMX still must not redefine that
|
|
102
|
-
authority or promote its own runtime state into semantic truth.
|
|
103
|
-
|
|
104
|
-
Then project the closeout locally:
|
|
105
|
-
|
|
106
|
-
```sh
|
|
107
|
-
nimicoding closeout \
|
|
108
|
-
--skill spec_reconstruction \
|
|
109
|
-
--outcome completed \
|
|
110
|
-
--verified-at 2026-04-11T00:00:00Z \
|
|
111
|
-
--from <result.json> \
|
|
112
|
-
--write-local
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### 3. Audit drift before execution
|
|
116
|
-
|
|
117
|
-
If needed:
|
|
118
|
-
|
|
119
|
-
```sh
|
|
120
|
-
nimicoding handoff --skill doc_spec_audit --prompt
|
|
121
|
-
nimicoding closeout --skill doc_spec_audit --outcome completed --verified-at <utc> --from <result.json> --write-local
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
This stays local-only and must not replace semantic truth.
|
|
125
|
-
|
|
126
|
-
### 4. Dispatch high-risk execution through OMX
|
|
127
|
-
|
|
128
|
-
Export the high-risk handoff contract:
|
|
129
|
-
|
|
130
|
-
```sh
|
|
131
|
-
nimicoding handoff --skill high_risk_execution --json
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
OMX should consume the declared `.nimi/**` context and produce:
|
|
135
|
-
|
|
136
|
-
- packet/orchestration/prompt/worker-output/evidence refs under the declared
|
|
137
|
-
local artifact roots in `.nimi/config/external-execution-artifacts.yaml`
|
|
138
|
-
- a local-only external execution summary that satisfies the packaged
|
|
139
|
-
`high_risk_execution` result contract
|
|
140
|
-
- no claim of semantic completion, acceptance, or disposition
|
|
141
|
-
|
|
142
|
-
The worker output must satisfy the seeded schema and include the strict
|
|
143
|
-
`Runner Signal` block shape expected by the promoted internal methodology.
|
|
144
|
-
|
|
145
|
-
### 5. Keep semantic review in `nimicoding`
|
|
146
|
-
|
|
147
|
-
For now, treat OMX output as execution candidate material:
|
|
148
|
-
|
|
149
|
-
- validate packet, prompt, worker-output, and acceptance mechanically
|
|
150
|
-
- keep final acceptance/disposition under manager-owned `nimicoding` review
|
|
151
|
-
- keep `.omx/**` state operational only
|
|
152
|
-
|
|
153
|
-
In practice, this means the first real user can use OMX as the execution host
|
|
154
|
-
today, while standalone `nimicoding` remains the host-agnostic semantic and
|
|
155
|
-
interop boundary package. The standalone package intentionally does not own
|
|
156
|
-
packet-bound runtime, provider-backed execution, scheduler, notification, or
|
|
157
|
-
automation surfaces yet, even though `nimicoding closeout` can import a
|
|
158
|
-
fail-closed local-only execution summary and
|
|
159
|
-
`nimicoding ingest-high-risk-execution` can mechanically validate the
|
|
160
|
-
referenced packet/prompt/output candidates while
|
|
161
|
-
`nimicoding review-high-risk-execution` can project a manager-ready local
|
|
162
|
-
attachment bundle, `nimicoding decide-high-risk-execution` can record a
|
|
163
|
-
manager-owned local disposition, and `nimicoding admit-high-risk-decision`
|
|
164
|
-
can explicitly write canonical summary admission into `.nimi/spec` without
|
|
165
|
-
promoting OMX runtime state.
|
|
166
|
-
|
|
167
|
-
## Mapping
|
|
168
|
-
|
|
169
|
-
| OMX concern | Adapter rule | `nimicoding` owner |
|
|
170
|
-
|---|---|---|
|
|
171
|
-
| planning/execution routing | operational only | none |
|
|
172
|
-
| prompt handoff | consume exported prompt/context | `.nimi/methodology/skill-handoff.yaml` |
|
|
173
|
-
| worker output | write candidate artifact only under declared local roots | `.nimi/contracts/worker-output.schema.yaml` |
|
|
174
|
-
| evidence | write candidate artifact only under declared local roots | packet/evidence contract family |
|
|
175
|
-
| final disposition | OMX must not decide | manager-reviewed `nimicoding` semantics |
|
|
176
|
-
|
|
177
|
-
## Next Product Steps
|
|
178
|
-
|
|
179
|
-
The minimum follow-up work from here is:
|
|
180
|
-
|
|
181
|
-
1. Add canonical semantic promotion automation around the explicit admission
|
|
182
|
-
surface so manager-owned decisions no longer require manual admission steps.
|
|
183
|
-
2. Keep host-specific runtime execution support out of standalone unless a
|
|
184
|
-
later admitted packet explicitly expands package ownership.
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
version: 1
|
|
2
|
-
adapter_profile:
|
|
3
|
-
id: oh_my_codex
|
|
4
|
-
host_class: external_execution_host
|
|
5
|
-
upstream_seed_profile: external_ai_host
|
|
6
|
-
purpose: >
|
|
7
|
-
Constrain oh-my-codex to act as an external execution host for
|
|
8
|
-
nimicoding handoff/prompt/output/evidence exchange without promoting OMX
|
|
9
|
-
runtime state into semantic truth.
|
|
10
|
-
semantic_owner:
|
|
11
|
-
- .nimi/methodology
|
|
12
|
-
- .nimi/spec
|
|
13
|
-
- .nimi/contracts
|
|
14
|
-
- .nimi/config
|
|
15
|
-
operational_owner:
|
|
16
|
-
- .omx
|
|
17
|
-
- .nimi/local
|
|
18
|
-
- .nimi/cache
|
|
19
|
-
admitted_skill_surfaces:
|
|
20
|
-
- spec_reconstruction
|
|
21
|
-
- doc_spec_audit
|
|
22
|
-
- audit_sweep
|
|
23
|
-
- high_risk_execution
|
|
24
|
-
prompt_handoff:
|
|
25
|
-
bootstrap_surface:
|
|
26
|
-
- nimicoding handoff --skill spec_reconstruction --prompt
|
|
27
|
-
- nimicoding handoff --skill doc_spec_audit --prompt
|
|
28
|
-
- nimicoding handoff --skill audit_sweep --prompt
|
|
29
|
-
- nimicoding handoff --skill high_risk_execution --prompt
|
|
30
|
-
future_surface:
|
|
31
|
-
status: future_only_not_packaged
|
|
32
|
-
commands:
|
|
33
|
-
- nimicoding run-next-prompt
|
|
34
|
-
output_handoff:
|
|
35
|
-
worker_output_target: .nimi/local/outputs/** candidate artifact
|
|
36
|
-
evidence_target: .nimi/local/evidence/** candidate artifact
|
|
37
|
-
closeout_target: local-only closeout payload unless later admitted
|
|
38
|
-
hard_constraints:
|
|
39
|
-
- omx_must_not_become_semantic_owner
|
|
40
|
-
- omx_must_not_write_canonical_.nimi/spec_truth_directly_without_validator_admission
|
|
41
|
-
- omx_must_not_define_acceptance_disposition_or_finding_judgment
|
|
42
|
-
- omx_runtime_state_must_remain_operational_only
|
|
43
|
-
- unresolved_authority_or_missing_context_must_fail_closed
|
|
44
|
-
current_gaps:
|
|
45
|
-
- automatic_semantic_admission_automation_not_packaged_in_standalone
|
|
46
|
-
- host_specific_runtime_execution_not_packaged_in_standalone
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
buildHighRiskAdmissionPayload,
|
|
3
|
-
formatHighRiskAdmissionPayload,
|
|
4
|
-
writeHighRiskAdmission,
|
|
5
|
-
} from "../lib/high-risk-admission.mjs";
|
|
6
|
-
import { localize } from "../lib/ui.mjs";
|
|
7
|
-
|
|
8
|
-
function parseAdmitHighRiskDecisionOptions(args) {
|
|
9
|
-
const options = {
|
|
10
|
-
fromPath: null,
|
|
11
|
-
admittedAt: null,
|
|
12
|
-
json: false,
|
|
13
|
-
writeLocal: false,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
for (let index = 0; index < args.length; index += 1) {
|
|
17
|
-
const arg = args[index];
|
|
18
|
-
|
|
19
|
-
if (arg === "--json") {
|
|
20
|
-
options.json = true;
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (arg === "--write-local") {
|
|
25
|
-
options.writeLocal = true;
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (arg === "--from" || arg === "--admitted-at") {
|
|
30
|
-
const next = args[index + 1];
|
|
31
|
-
if (!next || next.startsWith("--")) {
|
|
32
|
-
return {
|
|
33
|
-
ok: false,
|
|
34
|
-
error: `${localize(
|
|
35
|
-
`nimicoding admit-high-risk-decision refused: ${arg} requires a value.`,
|
|
36
|
-
`nimicoding admit-high-risk-decision 已拒绝:${arg} 需要一个值。`,
|
|
37
|
-
)}\n`,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (arg === "--from") {
|
|
42
|
-
options.fromPath = next;
|
|
43
|
-
} else {
|
|
44
|
-
options.admittedAt = next;
|
|
45
|
-
}
|
|
46
|
-
index += 1;
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return {
|
|
51
|
-
ok: false,
|
|
52
|
-
error: `${localize(
|
|
53
|
-
`nimicoding admit-high-risk-decision refused: unknown option ${arg}.`,
|
|
54
|
-
`nimicoding admit-high-risk-decision 已拒绝:未知选项 ${arg}。`,
|
|
55
|
-
)}\n`,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (!options.fromPath) {
|
|
60
|
-
return {
|
|
61
|
-
ok: false,
|
|
62
|
-
error: `${localize(
|
|
63
|
-
"nimicoding admit-high-risk-decision refused: explicit --from is required.",
|
|
64
|
-
"nimicoding admit-high-risk-decision 已拒绝:必须显式提供 `--from`。",
|
|
65
|
-
)}\n`,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if (!options.admittedAt) {
|
|
70
|
-
return {
|
|
71
|
-
ok: false,
|
|
72
|
-
error: `${localize(
|
|
73
|
-
"nimicoding admit-high-risk-decision refused: explicit --admitted-at is required.",
|
|
74
|
-
"nimicoding admit-high-risk-decision 已拒绝:必须显式提供 `--admitted-at`。",
|
|
75
|
-
)}\n`,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return { ok: true, options };
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export async function runAdmitHighRiskDecision(args) {
|
|
83
|
-
const parsed = parseAdmitHighRiskDecisionOptions(args);
|
|
84
|
-
if (!parsed.ok) {
|
|
85
|
-
process.stderr.write(parsed.error);
|
|
86
|
-
return 2;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const payload = await buildHighRiskAdmissionPayload(process.cwd(), parsed.options);
|
|
90
|
-
if (payload.inputError) {
|
|
91
|
-
process.stderr.write(payload.error);
|
|
92
|
-
return payload.exitCode;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (payload.ok && parsed.options.writeLocal) {
|
|
96
|
-
await writeHighRiskAdmission(process.cwd(), payload);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (parsed.options.json) {
|
|
100
|
-
process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
|
|
101
|
-
} else {
|
|
102
|
-
process.stdout.write(formatHighRiskAdmissionPayload(payload));
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return payload.exitCode;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export { parseAdmitHighRiskDecisionOptions };
|