@ornexus/neocortex 4.60.64 → 4.60.65
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/dist/release-source.json +1 -1
- package/dist/sbom.cdx.json +31 -38
- package/install.js +1 -0
- package/install.ps1 +34 -3
- package/install.sh +35 -3
- package/package.json +4 -7
- package/packages/client/dist/cli.js +1 -1
- package/packages/client/dist/commands/architecture-non-ui-continuation.js +1 -1
- package/packages/client/dist/commands/invoke.js +75 -75
- package/packages/client/dist/commands/mutation-qa-run.js +2 -2
- package/packages/client/dist/commands/qa-synthetic-backend-capture.js +1 -1
- package/packages/client/dist/commands/refactor-characterization.d.ts +3 -10
- package/packages/client/dist/commands/refactor-characterization.js +16 -16
- package/packages/client/dist/commands/refactor-control.d.ts +3 -11
- package/packages/client/dist/commands/refactor-control.js +3 -3
- package/packages/client/dist/commands/refactor-review.d.ts +0 -13
- package/packages/client/dist/commands/refactor-review.js +5 -6
- package/packages/client/dist/commands/refactor-root.d.ts +0 -157
- package/packages/client/dist/commands/refactor-root.js +7 -12
- package/packages/client/dist/commands/shared-architecture-non-ui.d.ts +18 -0
- package/packages/client/dist/commands/shared-architecture-non-ui.js +1 -0
- package/packages/client/dist/git/direct-yolo-checkpoint.d.ts +5 -1
- package/packages/client/dist/git/direct-yolo-checkpoint.js +4 -4
- package/packages/client/dist/git/git-lifecycle-store.d.ts +2 -0
- package/packages/client/dist/git/git-lifecycle-store.js +9 -8
- package/packages/client/dist/private-execution/clean-baseline.d.ts +0 -6
- package/packages/client/dist/private-execution/clean-baseline.js +2 -2
- package/packages/client/dist/private-execution/codex-executor.d.ts +1 -25
- package/packages/client/dist/private-execution/codex-executor.js +4 -9
- package/packages/client/dist/private-execution/delivery.d.ts +1 -2
- package/packages/client/dist/private-execution/delivery.js +3 -3
- package/packages/client/dist/private-execution/diagnosis-root-review.js +2 -2
- package/packages/client/dist/private-execution/frozen-handoff.js +4 -5
- package/packages/client/dist/private-execution/implementation-validation.d.ts +1 -10
- package/packages/client/dist/private-execution/implementation-validation.js +2 -2
- package/packages/client/dist/private-execution/isolated-session.d.ts +1 -1
- package/packages/client/dist/private-execution/isolated-session.js +5 -5
- package/packages/client/dist/private-execution/root-memory-git-evidence.d.ts +1 -1
- package/packages/client/dist/private-execution/root-memory-git-evidence.js +3 -3
- package/packages/client/dist/private-execution/root-memory-recovery.d.ts +1 -1
- package/packages/client/dist/private-execution/root-memory-recovery.js +1 -1
- package/packages/client/dist/private-execution/root-memory-scope.d.ts +1 -1
- package/packages/client/dist/private-execution/root-memory-scope.js +1 -1
- package/packages/client/dist/private-execution/root-memory-writer.d.ts +1 -1
- package/packages/client/dist/private-execution/root-memory-writer.js +1 -1
- package/packages/client/dist/private-execution/shared-private-admission-types.d.ts +34 -0
- package/packages/client/dist/private-execution/shared-private-admission-types.js +1 -0
- package/packages/client/dist/private-execution/shared-project-validation.d.ts +17 -0
- package/packages/client/dist/private-execution/shared-project-validation.js +1 -0
- package/packages/client/dist/private-execution/shared-root-memory-types.d.ts +37 -0
- package/packages/client/dist/private-execution/shared-root-memory-types.js +1 -0
- package/packages/client/dist/private-execution/ux-source-validation.js +1 -1
- package/packages/client/dist/runner/binary.d.ts +1 -1
- package/packages/client/dist/runner/binary.js +1 -1
- package/packages/client/dist/runner/headless/opencode-adapter.js +2 -2
- package/packages/client/dist/runner-cli.js +0 -0
- package/packages/shared/dist/invocation/index.js +2 -4
- package/targets-stubs/antigravity/gemini.md +1 -1
- package/targets-stubs/antigravity/skill/SKILL.md +1 -1
- package/targets-stubs/claude-code/neocortex-root.agent.yaml +1 -1
- package/targets-stubs/claude-code/neocortex-root.md +2 -2
- package/targets-stubs/claude-code/neocortex.agent.yaml +1 -1
- package/targets-stubs/claude-code/neocortex.md +2 -2
- package/targets-stubs/codex/AGENTS.md +1 -1
- package/targets-stubs/cursor/agent.md +2 -2
- package/targets-stubs/deepseek-harness/SKILL.md +64 -0
- package/targets-stubs/gemini-cli/agent.md +2 -2
- package/targets-stubs/opencode/neocortex-root.md +1 -1
- package/targets-stubs/vscode/neocortex.agent.md +2 -2
- package/packages/client/dist/commands/shared-architecture-non-ui-contract.d.ts +0 -19
- package/packages/client/dist/commands/shared-architecture-non-ui-contract.js +0 -1
- package/packages/shared/dist/invocation/packed-invoke.d.ts +0 -12
- package/packages/shared/dist/invocation/packed-invoke.js +0 -58
- package/packages/shared/dist/invocation/packed-invoke.test.d.ts +0 -1
- package/packages/shared/dist/invocation/packed-invoke.test.js +0 -21
- package/packages/shared/dist/private-qa-structural-admission.js +0 -14
- package/packages/shared/dist/private-yolo-predecessor-decision.js +0 -32
- package/packages/shared/dist/project-validation-commands.js +0 -96
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import{classifyNonUiArchitectureTransition as
|
|
2
|
-
`,{encoding:"utf8",mode:384,flag:"wx"}),
|
|
1
|
+
import{classifyNonUiArchitectureTransition as ya,architectureMemoryPredecessorCount as Xn}from"./architecture-non-ui-continuation.js";import{parseArchitectureNonUiScopeReceipt as Zn}from"./shared-architecture-non-ui.js";import{createHash as Ge,randomUUID as en}from"node:crypto";import{loadPactAnswerReceipt as er,loadPactPrivateAnswers as Ea}from"./architecture-answers.js";import{acceptedArchitectureTerminalMemoryReceipt as Bt,deriveArchitectureTerminalMemoryReceipt as _n}from"./architecture-memory-terminal.js";import{deriveCommittedArchitectureEpicGraphRevision as $t,explicitArchitectureEpicTarget as Ia}from"./architecture-root-binding.js";import{derivePactWriteSet as Sa}from"../private-execution/pact-write-set.js";import{execFileSync as je}from"node:child_process";import{existsSync as Ot,readFileSync as Ve,renameSync as tr,unlinkSync as Rn,writeFileSync as tn,mkdirSync as Wt,statSync as va,openSync as Gt,closeSync as Ht,fsyncSync as nn,realpathSync as Ca,lstatSync as Nt}from"node:fs";import{isDeepStrictEqual as E}from"node:util";import{join as X,isAbsolute as wa,resolve as nr}from"node:path";import{homedir as Ft}from"node:os";import{isPrivateExecutionPublicEnvelope as _a,isPrivatePlanningRootPublicEnvelope as Ra,PRIVATE_MUTATION_QA_GATE_STEP_TOKEN as Aa}from"../private-execution/delivery.js";import{acceptedPlanningDiagnosisPredecessor as rr}from"../private-execution/planning-diagnosis-checkpoint.js";import{acceptedPlanningResearchPredecessor as ar}from"../private-execution/planning-research-checkpoint.js";import{verifyCommittedPlanningMemory as ir}from"../private-execution/planning-memory-checkpoint.js";import{verifyCommittedPlanningGeneration as ba}from"../private-execution/planning-generation-checkpoint.js";import{PLANNING_RAW_INTENT_MAX_CHARS as xa}from"../../../shared/dist/planning/diagnosis-state.js";import{LicenseClient as Ta}from"../license/license-client.js";import{EncryptedCache as An}from"../cache/encrypted-cache.js";import{NoOpCache as or}from"../types/index.js";import{resolveClientPreFlightTrigger as bn,TierAwareClient as Pa}from"../tier/tier-aware-client.js";import{COMMAND_REGISTRY_CHECKSUM as Ct,COMMAND_REGISTRY_VERSION as wt,GENERATED_CLIENT_COMMANDS as ka}from"../generated/command-registry.generated.js";import{loadSecureConfig as cr}from"../config/secure-config.js";import{neocortexProfileDirectory as Oa}from"../config/profile-directory.js";import{DEFAULT_SERVER_URL as Na}from"../constants.js";import{detectFirstRunLocale as Da,renderFirstRunMessage as La}from"../i18n/first-run.js";import{humanizeError as sr,formatHumanizedError as dr,detectErrorLocale as pr}from"../errors/error-messages.js";import{degradeStateSnapshotForPayloadLimit as Ma,projectStateSnapshotForInvoke as ur,projectStateSnapshotResultV2ForInvoke as ja}from"../state/project-state-snapshot.js";import{isInlineYoloMaterialization as Va,maybeRepairStateJsonBeforeInvoke as Ua,StateRepairHardStopError as Ba}from"../state/state-json-repair.js";import{StructuralDagError as lr}from"../state/structural-dag-projection.js";import{collectStateMigrationAuthority as $a,StateMigrationApplyError as Wa}from"../migrations/state-json.js";import{RUNNER_BOOTSTRAP_POLICY_REASON_CODES as Ga,classifyRunnerBootstrapPolicyFromArgs as Ha}from"../continuity/runner-bootstrap-policy.js";import{RUNNER_SCHEDULER_BOOTSTRAP_REASON_CODES as Fa,ensureRunnerSchedulerBootstrap as qa,observeRunnerOperationalStatus as za}from"../runner/scheduler.js";import{CONTINUITY_INVOKE_WATCH_DEFAULT_LIMIT as hr,CONTINUITY_INVOKE_WATCH_DEFAULT_MAX_IDLE_POLLS as gr,CONTINUITY_INVOKE_WATCH_DEFAULT_MAX_POLLS as fr,CONTINUITY_INVOKE_WATCH_DEFAULT_POLL_INTERVAL_MS as mr,openContinuityClientStateStore as Ja}from"../continuity/continuity-client-state-store.js";import{isLocalJobsConsoleArgs as Ya,runLocalJobsConsoleCommand as Ka}from"../runner/local-console.js";import{detectNativeHostAttestation as Qa,detectPlatform as Xa}from"../adapters/platform-detector.js";import{signNxInvokeRequest as Za}from"../../../shared/dist/nx-invoke-signature.js";import{CLIENT_VERSION as Dt}from"../version.js";import{createCapabilityCache as yr,executeInvokeQueryTransport as Er,executeSecondaryNetworkMutation as ei}from"../effects/invoke-effect-gateways.js";import{STRICT_READ_ONLY_POLICY as ti,STRICT_READ_ONLY_CLIENT_PROJECTION as Ir,STRICT_READ_ONLY_SERVER_PROJECTION as ni,StrictReadOnlyError as Lt,canonicalizeInvokeEffects as ri,createInvokeEffectContext as ai,verifyStrictReadOnlyReceipt as ii}from"../../../shared/dist/strict-readonly.js";import{admitInvocation as oi,assertInvokeInputEnvelopeV2 as ci,assertProjectIdentityMigrationReceiptV1 as si,buildProjectIdentityPublicDiagnostic as Mt,createInvocationAdmissionReceipt as di,projectInvokeInputEvidenceV1 as Sr,verifyStrictDiagnoseReceiptV1 as pi}from"../../../shared/dist/invocation/index.js";import{buildInvokeInputEnvelope as rn,InvokeInputDecodeError as ui}from"../invocation/invoke-input.js";import{acknowledgeProjectIdentityMigration as li,finalizeProjectIdentityMigration as hi,prepareProjectIdentityMigration as gi,ProjectIdentityMigrationError as xn,readProjectIdentityMigrationPhase as fi}from"../migrations/project-identity.js";import{probeProjectIdentityMigrationCapability as mi}from"../migrations/project-identity-capability.js";import{normalizeYoloopStoryPlanningEvidence as yi}from"../../../shared/dist/yoloop/planning-graph.js";import{normalizeContinuousWriteRef as an}from"../../../shared/dist/yoloop/wave-decision-receipt.js";import{applyGitLifecycleRuntimeOverlay as vr,classifyGitLifecycleStoryCheckpointProjectionSync as Ei,ensureGitLifecycleRuntimeInitialized as Ii,executeP205TransientAuthorities as Si,persistGitLifecycleGraphAuthority as vi,P205_COMPLETE_COMMAND as Ci,gitLifecycleStoryWriteSet as Cr,readGitLifecycleRuntimeSync as on,verifyLegacyCheckpointMigrationCandidateSync as wi}from"../git/git-lifecycle-store.js";import{verifyRootMemoryPhysicalWriteSet as _i}from"../private-execution/root-memory-git-evidence.js";import{isRootProjectMemoryEffect as Ri}from"../private-execution/shared-root-memory-types.js";const cn=Oa(),Tn=X(cn,"cache"),wr=X(Tn,"menu-cache.json"),_r=1440*60*1e3,Rr=3e4,Ar=256*1024,br=Ar,xr=.8,ut="[REDACTED]",Ai=1e5,_t=2e3,bi=200,xi=200,Ti=12,Pi=/(?:promptBody|workflow|workflowGraph|stepBody|privateUrl|rawLog|secret|credential|licenseKey|apiKey|internalRouting|serverOnly|proprietary|protected)/i,ki=/(?:PRIVATE|PROTECTED|SERVER_ONLY)[-_\s]*(?:PROMPT|PROMPT_BODY|WORKFLOW|WORKFLOW_GRAPH|STEP_BODY|STEP|ROUTING)\s*[:=][^\n\r]*/gi,Oi=/(?:https?:\/\/(?:localhost|127\.0\.0\.1|0\.0\.0\.0|\[::1\]|private|internal)[^\s"'<>]*|raw[_-]?log|transcript|stack\s*trace|stderr:|stdout:|system prompt|prompt body|workflow body|step body|PROTECTED_|PRIVATE_INTERNALS|CUSTOMER_PII|VENDOR_CORPUS|P180[_-]?SYNTHETIC[_-]?CONTINUITY|P185[_-]?SYNTHETIC[_-]?CONTINUITY|P187[_-]?SYNTHETIC[_-]?(?:CONTINUITY|RUNNER|WATCH)|authorization\s*:|password\s*=|token\s*=|api[_-]?key\s*=|license[_-]?key\s*=)/gi,Pn=Math.floor(Ar*xr),Tr=X(cn,".first-run-shown"),Ni="pending-epic-claims.json",Pr=64;function kr(e){return X(e,".neocortex",Ni)}function jt(e){const t=kr(e);if(!Ot(t))return{schemaVersion:1,operations:{}};const a=JSON.parse(Ve(t,"utf8"));if(!a||typeof a!="object"||Array.isArray(a))throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");const r=a;if(r.schemaVersion!==1||!r.operations||typeof r.operations!="object"||Array.isArray(r.operations))throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");if(Object.keys(r.operations).length>Pr)throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");for(const[i,n]of Object.entries(r.operations)){if(!/^[a-f0-9]{64}$/.test(i)||!n||typeof n!="object"||Array.isArray(n))throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");const o=n;if(o.planningProtocol!==void 0&&o.planningProtocol!=="root-staged-v1")throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");if(typeof o.idempotencyKey!="string"||!/^[0-9a-f-]{36}$/.test(o.idempotencyKey)||typeof o.createdAt!="string")throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");if(o.claimId!==void 0&&(typeof o.claimId!="string"||!/^[0-9a-f-]{36}$/.test(o.claimId))||o.epicId!==void 0&&(typeof o.epicId!="string"||!/^P[1-9][0-9]*$/.test(o.epicId))||o.claimId===void 0!=(o.epicId===void 0))throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE")}return a}function kn(e,t){const a=kr(e);Wt(X(e,".neocortex"),{recursive:!0,mode:448});const r=`${a}.${process.pid}.${en()}.tmp`;tn(r,`${JSON.stringify(t)}
|
|
2
|
+
`,{encoding:"utf8",mode:384,flag:"wx"}),tr(r,a)}function Di(e,t){return Ge("sha256").update(`nx-epic-logical-operation-v1\0${JSON.stringify({command:t,args:e})}`,"utf8").digest("hex")}function Li(e,t,a="create-epic"){const r=Di(t,a),i=jt(e),n=i.operations[r];if(n)return{key:n.idempotencyKey,fingerprint:r};if(Object.keys(i.operations).length>=Pr)throw new Error("EPIC_CLAIM_CAPACITY_EXCEEDED");const o=en(),s={...i.operations,[r]:{idempotencyKey:o,createdAt:new Date().toISOString()}};return kn(e,{schemaVersion:1,operations:s}),{key:o,fingerprint:r}}function Mi(e,t){const a=jt(e);if(!a.operations[t])return;const r={...a.operations};delete r[t],kn(e,{schemaVersion:1,operations:r})}function Or(e,t,a,r,i){if(!/^[0-9a-f-]{36}$/.test(a)||!/^P[1-9][0-9]*$/.test(r)||i!==void 0&&i!=="root-staged-v1")throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");const n=jt(e),o=n.operations[t];if(!o)throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");if(o.claimId!==void 0&&(o.claimId!==a||o.epicId!==r))throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");kn(e,{schemaVersion:1,operations:{...n.operations,[t]:{...o,claimId:a,epicId:r,...i?{planningProtocol:i}:{}}}})}function ji(){try{if(Ot(Tr))return;const e=Da(),t=La(e);process.stderr.write(t);try{Wt(cn,{recursive:!0}),tn(Tr,new Date().toISOString(),"utf-8")}catch{}}catch{}}function On(e,t=process.cwd()){return e&&e.trim().length>0?e:t}function Vi(e){return oi(e,{registryVersion:wt,registryChecksum:Ct})}const Ui=new Set(["completed","aborted","cancelled"]),Bi=new Set(["watch-target-missing","watch-target-malformed","watch-target-ambiguous","watch-target-multiple"]),Ie=Object.freeze({COMPLETED:"invoke-watch-completed",CANCELLED:"invoke-watch-cancelled",IDLE_TIMEOUT:"invoke-watch-idle-timeout",MAX_POLLS:"invoke-watch-max-polls",STORE_UNAVAILABLE:"invoke-watch-store-unavailable",TARGET_UNRESOLVED:"invoke-watch-target-unresolved"}),Ae=Object.freeze({MISSING:"watch-target-missing",MALFORMED:"watch-target-malformed",AMBIGUOUS:"watch-target-ambiguous",CONFLICT:"watch-target-conflicting-evidence",SERVER_HELD_STREAM:"watch-target-server-held-stream-unsupported"}),F=Object.freeze({OK:"continuity-ok",WATCH_NO_SUMMARIES_YET:"watch-no-summaries-yet",WATCH_CURSOR_ADVANCED:"watch-cursor-advanced",WATCH_CURSOR_UNCHANGED:"watch-cursor-unchanged",WATCH_RENDER_PENDING:"watch-render-pending",WATCH_STOP_IDLE_LIMIT_REACHED:"watch-stop-idle-limit-reached",WATCH_STOP_MAX_POLLS_REACHED:"watch-stop-max-polls-reached",WATCH_TARGET_UNRESOLVED:"watch-target-unresolved",WATCH_SNAPSHOT_UNAVAILABLE:"watch-snapshot-unavailable",WATCH_EVIDENCE_UNAVAILABLE:"watch-evidence-unavailable"}),Nr=240,$i=/(https?:\/\/\S+|ghp_[A-Za-z0-9_]+|sk-[A-Za-z0-9_-]+|-----BEGIN [A-Z ]*PRIVATE KEY-----|authorization\s*:|password\s*=|token\s*=|api[_-]?key\s*=|license[_-]?key\s*=|raw[_-]?log|transcript|stack\s*trace|stderr:|stdout:|system prompt|prompt body|workflow body|step body|PROTECTED_|PRIVATE_INTERNALS|CUSTOMER_PII|VENDOR_CORPUS|P180[_-]?SYNTHETIC[_-]?CONTINUITY|P185[_-]?SYNTHETIC[_-]?CONTINUITY|P187[_-]?SYNTHETIC[_-]?(?:CONTINUITY|RUNNER|WATCH))/i;function Wi(e){return e.replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g,ut).replace(/(?:sk|pk|whsec|nxk)[-_](?:test|live|ant|proj|pro|free|enterprise)?[-_]?[A-Za-z0-9_-]{16,}/g,ut).replace(/NX-[FPE]-[a-f0-9]{24}-[a-f0-9]{4}/g,ut).replace(/eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,ut).replace(ki,ut).replace(Oi,ut)}function He(e,t){const a=Wi(e);return a.length<=t?a:`${a.slice(0,t)}\u2026[TRUNCATED:${a.length-t}]`}function Nn(e,t=0,a=new WeakSet){if(t>Ti)return"[MAX_DEPTH]";if(e==null)return e;if(typeof e=="string")return He(e,_t);if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="boolean")return e;if(typeof e=="bigint")return String(e);if(!(typeof e=="function"||typeof e=="symbol")&&typeof e=="object"){if(a.has(e))return"[CIRCULAR]";a.add(e);try{if(Array.isArray(e))return e.slice(0,bi).map(i=>Nn(i,t+1,a));const r={};for(const[i,n]of Object.entries(e).slice(0,xi)){if(Pi.test(i)){r[i]=ut;continue}const o=Nn(n,t+1,a);o!==void 0&&(r[i]=o)}return r}finally{a.delete(e)}}}function sn(e,t){return{instructions:He(e??"",Ai),metadata:t?Nn(t):void 0}}class dn extends Error{reason;source;byteLength;code;constructor(t,a,r,i,n){super(a),this.reason=r,this.source=i,this.byteLength=n,this.name="InvokeCliInputError",this.code=t}}function Gi(e){return/^\s*\*?(?:arch-plan|ui-ux-review)(?:\s|$)/i.test(e)&&Hi(e,"--project-evidence")}function Hi(e,t){let a=null,r=-1,i=!1,n=!1;for(let o=0;o<=e.length;o+=1){const s=e[o];if(o===e.length||!a&&/\s/.test(s??"")){if(r>=0&&!i&&e.slice(r,o)===t)return!0;r=-1,i=!1,n=!1;continue}if(r<0&&(r=o),n){n=!1;continue}if(s==="\\"){n=!0;continue}(s==='"'||s==="'")&&(i=!0,a=a===s?null:a??s)}return!1}const Fi=/(?:^|\s)codex(?:-cli)?\s+([A-Za-z0-9][A-Za-z0-9._+-]{0,63})(?:\s|$)/i;function qi(e,t){if(e.targetId!=="codex")return null;const a=t.CODEX_VERSION?.trim();if(a&&/^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/.test(a))return a;try{return je("codex",["--version"],{encoding:"utf8",timeout:2e3,stdio:["ignore","pipe","ignore"]}).trim().match(Fi)?.[1]??null}catch{return null}}class Dn extends Error{code="PAYLOAD_TOO_LARGE";telemetry;constructor(t){super(`PAYLOAD_TOO_LARGE: invoke request is ${t.payloadBytes} bytes after deterministic degradation; limit is ${t.limitBytes}. Reduce command input or local state context and retry.`),this.name="InvokePayloadTooLargeError",this.telemetry=t}}class Ln extends Error{code="STRUCTURAL_CONTEXT_TOO_LARGE";telemetry;constructor(t){super(`STRUCTURAL_CONTEXT_TOO_LARGE: the bounded structural projection is ${t.payloadBytes} bytes; the request limit is strictly below ${t.limitBytes}. Select an explicit epic/story target or split the dependency graph.`),this.name="InvokeStructuralContextTooLargeError",this.telemetry=t}}let Mn=!1;function zi(e){const t=[];if(!e||typeof e!="object")return t;const a=e,r=a.planning;if(r&&(r.current!==void 0||Array.isArray(r.history))&&t.push({code:"PLANNING_LEGACY",message:"legacy `planning.current`/`planning.history` detected (not read by v1 orchestrator)"}),Array.isArray(a.stories)&&t.push({code:"STORIES_AS_ARRAY",message:"`stories` is an Array (expected Object keyed by story ID)"}),a.epics&&typeof a.epics=="object"&&!Array.isArray(a.epics))for(const[n,o]of Object.entries(a.epics)){const s=o;if(s&&s.stories!==void 0&&!Array.isArray(s.stories)){t.push({code:"EPIC_STORIES_NOT_ARRAY",message:`epic "${n}" has non-array \`stories\` field (expected string[] of story IDs)`});break}}const i=a.epics&&typeof a.epics=="object"&&Object.keys(a.epics).length>0||a.stories&&typeof a.stories=="object"&&!Array.isArray(a.stories)&&Object.keys(a.stories).length>0||Array.isArray(a.stories)||r&&r.current!==void 0;return a.schema_version===void 0?i&&t.push({code:"SCHEMA_VERSION_MISSING",message:"`schema_version` field missing (expected: `schema_version: 1`)"}):a.schema_version!==1&&t.push({code:"SCHEMA_VERSION_OUTDATED",message:`schema_version=${String(a.schema_version)} (expected: 1)`}),t}function Ji(e){if(!(Mn||e.length===0)){Mn=!0;try{const t=e.map(a=>` - ${a.message}`).join(`
|
|
3
3
|
`);process.stderr.write(`[Neocortex] state.json schema drift detected:
|
|
4
4
|
${t}
|
|
5
5
|
Run \`neocortex *migrate-state --preview\` to inspect or \`neocortex *migrate-state --apply\` to migrate.
|
|
6
6
|
See docs/arquitetura-software/STATE-JSON-SCHEMA.md for the schema contract.
|
|
7
|
-
`)}catch{}}}function ws(){Vn=!1}function Dr(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Qi(e){return e==="active"||e==="archived"||e==="rolled-back"||e==="synthetic"||e==="orphan"?e:void 0}const Xi=new Set(["goal","problem","desiredOutcome","rawIntent","context","users","surfaces","constraints","assumptions","risks","nonGoals","validationExpectations","debtRefs","repositoryEvidencePaths","journeyIds","screenIds","storybookStoryIds","backendContractIds","featureBlockerIds","remediationRefs","uiScope","remediationStory","examples","contracts"]),Zi=/(?:[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}|(?:token|api[_-]?key|secret|password|credential|license[_-]?key)\s*[:=]\s*\S+|https?:\/\/(?:localhost|127\.0\.0\.1|10\.\d+\.\d+\.\d+|192\.168\.\d+\.\d+|172\.(?:1[6-9]|2\d|3[0-1])\.\d+\.\d+|[^\s/]*internal[^\s/]*)\S*|private\s+prompt|raw\s+vendor\s+corpus|sk-[A-Za-z0-9_-]{12,})/i;function eo(e,t){if(!(!u(e)||e.schemaVersion!==1||e.epicId!==t||!/^P\d+$/.test(t)))try{const r=JSON.stringify(e);if(Buffer.byteLength(r)>16384||Zi.test(r))return;const a=(n,o)=>{if(Object.keys(n).some(s=>!o.includes(s)))throw new Error("planning-unknown-field")};if(a(e,["schemaVersion","epicId","intake","intakeRevision","diagnosisReceipt","researchReceipt","degradeAuthorization"]),!u(e.intake)||Object.keys(e.intake).some(n=>!Xi.has(n)))return;for(const[n,o]of Object.entries(e.intake))if(["examples","contracts"].includes(n)){const s=n==="examples"?["id","title","actor","given","when","then","source","coveredRequirement","expectedValidation"]:["id","kind","description","path"];if(!Array.isArray(o)||o.length>16)return;for(const p of o)if(!u(p)||(a(p,s),Object.values(p).some(m=>typeof m!="string"||m.length>256)))return}else if(Array.isArray(o)){if(o.length>32||o.some(s=>typeof s!="string"||s.length>256))return}else if(typeof o=="string"){if(o.length>(n==="rawIntent"?Ta:512))return}else if(typeof o!="boolean"||!["uiScope","remediationStory"].includes(n))return;const i=["schemaVersion","kind","epicId","intakeRevision","artifactSummary","artifactDigest","predecessorReceiptId","accepted","receiptId"];for(const n of[e.diagnosisReceipt,e.researchReceipt])if(n!==void 0&&(!u(n)||(a(n,i),Object.values(n).some(o=>typeof o=="string"&&o.length>1024))))return;if(e.degradeAuthorization!==void 0){if(!u(e.degradeAuthorization))return;a(e.degradeAuthorization,["approved","intakeRevision","reasonCodes","assumptionCodes"]);for(const n of["reasonCodes","assumptionCodes"]){const o=e.degradeAuthorization[n];if(!Array.isArray(o)||o.length>32||o.some(s=>typeof s!="string"||s.length>128))return}}return JSON.parse(r)}catch{return}}function Lr(e){return e==="create-epic"||e==="discovered"?e:void 0}function Ue(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function to(e){const t={};let r=!1;for(const a of["contracts","contract_refs","shared_surfaces","adr_refs","nfr_refs","acceptance_depends_on"]){if(e[a]===void 0)continue;const i=e[a];if(!Array.isArray(i)||i.length>128||i.some(n=>an(n)===void 0)){r=!0;continue}t[a]=i.map(n=>an(n))}if(e.planning!==void 0)try{if(!u(e.planning))throw new Error("planning-shape");const a=e.planning;for(const o of["claims","semanticArtifacts"]){if(a[o]===void 0)continue;const s=a[o];if(!Array.isArray(s)||s.length>128||s.some(p=>!u(p)||an(p.ref)===void 0))throw new Error("planning-refs")}if(a.attempts!==void 0&&(!Array.isArray(a.attempts)||a.attempts.length>32))throw new Error("planning-attempts");for(const o of a.attempts??[]){if(!u(o)||!Array.isArray(o.reasonCodes)||o.reasonCodes.length>32||o.reasonCodes.some(s=>typeof s!="string"||!/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/.test(s)))throw new Error("planning-attempt-reasons");if(o.discoveredClaims!==void 0&&(!Array.isArray(o.discoveredClaims)||o.discoveredClaims.length>128||o.discoveredClaims.some(s=>!u(s)||an(s.ref)===void 0)))throw new Error("planning-attempt-claims")}const{graphRevision:i,...n}=Ii(a);t.planning=n}catch{r=!0}return r&&(t.planning={schemaVersion:1,dependencyBasis:"unknown",claims:[],semanticArtifacts:[]}),t}function u(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function lt(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:void 0}function oe(e){if(typeof e!="string")return;const t=e.trim();if(t)return t.replace(/[^a-z0-9_.:-]+/gi,"_").slice(0,120)}function Z(e){if(typeof e!="string")return;const t=e.trim(),r=oe(e);return r===t?r:void 0}function we(e){if(typeof e!="string")return;const t=e.trim();if(!(!t||t.length>240)&&/^[A-Za-z0-9][A-Za-z0-9._/-]*$/.test(t)&&!(t.includes("..")||t.includes("//")||t.includes("@{")||t.endsWith("/")||t.endsWith("."))&&!t.split("/").some(r=>!r||r.startsWith(".")||r.endsWith(".lock")))return t}function x(e){return typeof e=="string"&&/^[0-9a-f]{7,64}$/i.test(e)?e:void 0}function Be(e){if(!(typeof e!="string"||e.length>64)&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/.test(e))return Number.isFinite(Date.parse(e))?e:void 0}function ht(e){if(typeof e!="string")return;const t=e.trim();if(!(!t||t.length>240||t.includes("..")))return/^[A-Za-z0-9._:/#\-[\]]+$/.test(t)?t:void 0}function un(e){if(!u(e))return;const t=l=>typeof l=="string"&&/^[A-Za-z0-9][A-Za-z0-9._:-]{0,95}$/.test(l),r=l=>typeof l=="string"&&/^[a-f0-9]{64}$/.test(l),a=(l,S)=>Array.isArray(l)&&l.length<=S&&l.every(t)&&new Set(l).size===l.length?l:void 0,i=(l,S)=>{if(!(!u(l)||l.schemaVersion!==2||!t(l.requestId)||!t(l.stageCommand)||!r(l.requestHash)||!r(l.inputHash)||!r(l.stateHash)||!r(l.nonce)||!r(l.stageRevision)||!r(l.stageHash)||!r(l.catalogHash)||l.targetEpicId!==void 0&&!t(l.targetEpicId)||S&&(!r(l.outputHash)||!r(l.artifactHash))))return{schemaVersion:2,...l.targetEpicId?{targetEpicId:l.targetEpicId}:{},requestId:l.requestId,requestHash:l.requestHash,inputHash:l.inputHash,stateHash:l.stateHash,nonce:l.nonce,stageCommand:l.stageCommand,stageRevision:l.stageRevision,stageHash:l.stageHash,catalogHash:l.catalogHash,...S?{outputHash:l.outputHash,artifactHash:l.artifactHash}:{}}},n=(l,S)=>{if(!(!u(l)||l.schemaVersion!=="1.1"||l.kind!==S||!r(l.receiptId)||!r(l.graphHash)||!r(l.evidenceHash)||!t(l.elementId)||!t(l.caseId)||!t(l.category)))return{schemaVersion:"1.1",kind:S,receiptId:l.receiptId,graphHash:l.graphHash,elementId:l.elementId,caseId:l.caseId,category:l.category,evidenceHash:l.evidenceHash}},o=(l,S)=>{if(!u(l)||l.kind!==S||!r(l.receiptId)||!a(l.evidenceIds,24)||S==="architecture-stage-completion"&&!["succeeded","failed"].includes(String(l.status))||S==="architecture-stage-validation"&&!["passed","failed","pending"].includes(String(l.status)))return;const g=i(l,!0);if(!g)return;const h=S==="architecture-stage-validation"?n(l.isolated,"isolated"):void 0,C=S==="architecture-stage-validation"?n(l.regression,"regression"):void 0;if(!(S==="architecture-stage-validation"&&(!h||!C)))return{...g,kind:S,receiptId:l.receiptId,status:l.status,evidenceIds:l.evidenceIds,...h&&C?{isolated:h,regression:C}:{}}},s={};e.schemaVersion===1&&(s.schemaVersion=1),e.owner==="root"&&(s.owner="root"),t(e.currentStageCommand)&&(s.currentStageCommand=e.currentStageCommand),["ask-user","delegate","resume","advance","blocked","complete"].includes(String(e.continuationState))&&(s.continuationState=e.continuationState);const p=a(e.questionIds,16);if(p&&(s.questionIds=p),(e.childStatus==="succeeded"||e.childStatus==="failed")&&(s.childStatus=e.childStatus),(e.evidencePolicy==="legacy-compatible"||e.evidencePolicy==="v2-required")&&(s.evidencePolicy=e.evidencePolicy),t(e.targetEpicId)&&(s.targetEpicId=e.targetEpicId),r(e.graphRevision)&&(s.graphRevision=e.graphRevision),e.graphSource==="committed-epic-v1"&&(s.graphSource=e.graphSource),e.nonUiScopeReceipt!==void 0){const l=er(e.nonUiScopeReceipt);if(!l||l.targetEpicId!==e.targetEpicId||l.graphRevision!==e.graphRevision||!u(e.accounting)||l.accountingId!==e.accounting.accountingId||!u(e.evidenceExpectation)||l.rootInputSha256!==e.evidenceExpectation.inputHash)throw new Error("architecture-non-ui-scope-invalid");s.nonUiScopeReceipt=l}u(e.pactAnswerReceipt)&&Object.keys(e.pactAnswerReceipt).sort().join(",")===["schemaVersion","targetEpicId","graphRevision","stateSha256","answersSha256","questionIds","publicSafe"].sort().join(",")&&e.pactAnswerReceipt.schemaVersion==="PactAnswerReceipt/1"&&e.pactAnswerReceipt.targetEpicId===e.targetEpicId&&e.pactAnswerReceipt.graphRevision===e.graphRevision&&r(e.pactAnswerReceipt.stateSha256)&&r(e.pactAnswerReceipt.answersSha256)&&E(e.pactAnswerReceipt.questionIds,["PACT-Q1-CONSUMER","PACT-Q2-PROVIDER","PACT-Q3-BROKER","PACT-Q4-MATCHERS","PACT-Q5-VERIFY"])&&e.pactAnswerReceipt.publicSafe===!0&&(s.pactAnswerReceipt=e.pactAnswerReceipt);const m=i(e.evidenceExpectation,!1);m&&(s.evidenceExpectation=m);const I=o(e.completionEvidence,"architecture-stage-completion"),_=o(e.validationEvidence,"architecture-stage-validation");if(I&&(s.completionEvidence=I),_&&(s.validationEvidence=_),u(e.reviewDecision)&&Object.keys(e.reviewDecision).sort().join(",")===["schemaVersion","targetEpicId","graphRevision","artifactHash","completionReceiptId","validationReceiptId","decision","evidenceIds","publicSafe"].sort().join(",")&&e.reviewDecision.schemaVersion==="ArchitectureReviewDecision/1"&&e.reviewDecision.targetEpicId===e.targetEpicId&&e.reviewDecision.graphRevision===e.graphRevision&&r(e.reviewDecision.graphRevision)&&r(e.reviewDecision.artifactHash)&&r(e.reviewDecision.completionReceiptId)&&r(e.reviewDecision.validationReceiptId)&&["approved","changes-requested"].includes(String(e.reviewDecision.decision))&&e.reviewDecision.publicSafe===!0){const l=a(e.reviewDecision.evidenceIds,24);l&&l.length>0&&(s.reviewDecision={...e.reviewDecision,evidenceIds:l})}if(Bt(e.terminalMemoryCheckpoint,e))s.terminalMemoryCheckpoint=e.terminalMemoryCheckpoint;else if(u(e.terminalMemoryCheckpoint)&&e.terminalMemoryCheckpoint.schemaVersion===void 0&&["passed","failed","pending"].includes(String(e.terminalMemoryCheckpoint.status))){const l=a(e.terminalMemoryCheckpoint.evidenceIds,24);l&&(s.terminalMemoryCheckpoint={status:e.terminalMemoryCheckpoint.status,evidenceIds:l})}if(Array.isArray(e.acceptedStages)&&e.acceptedStages.length<=15){const l=e.acceptedStages.map(S=>{if(!u(S)||!t(S.targetEpicId)||!t(S.stageCommand))return;const g=o(S.completionEvidence,"architecture-stage-completion"),h=o(S.validationEvidence,"architecture-stage-validation");return g&&h?{targetEpicId:S.targetEpicId,stageCommand:S.stageCommand,completionEvidence:g,validationEvidence:h}:void 0});l.every(S=>S!==void 0)&&(s.acceptedStages=l)}if(u(e.accounting)&&e.accounting.schemaVersion===1&&t(e.accounting.contractVersion)&&t(e.accounting.accountingId)&&typeof e.accounting.charged=="boolean"&&Number.isInteger(e.accounting.chargedQuotaUnits)&&typeof e.accounting.chargedQuotaUnits=="number"&&e.accounting.chargedQuotaUnits>=0&&e.accounting.chargedQuotaUnits<=13){const l=a(e.accounting.receiptIds,32);l&&(s.accounting={schemaVersion:1,contractVersion:e.accounting.contractVersion,accountingId:e.accounting.accountingId,charged:e.accounting.charged,chargedQuotaUnits:e.accounting.chargedQuotaUnits,receiptIds:l,...["in-progress","aborted","timed-out","failed","complete"].includes(String(e.accounting.lastOutcome))?{lastOutcome:e.accounting.lastOutcome}:{}})}return JSON.stringify(s).length<=96e3?s:void 0}function no(e){const t=u(e.metadata.archPlan)?e.metadata.archPlan.execution:void 0,r=u(t)?t.checkpoint:void 0,a=u(t)?t:void 0,i=u(r)?r:void 0,n=e.requestExecution,o=Array.isArray(i?.acceptedStages)?i.acceptedStages:[],s=n.currentStageCommand==="arch-prd"&&n.continuationState==="delegate"&&n.completionEvidence===void 0&&n.validationEvidence===void 0&&i?.currentStageCommand==="arch-prd"&&i.continuationState==="delegate"&&o.length===0&&a?.nextAction==="delegate",p=n.currentStageCommand==="arch-prd"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-architecture"&&i.continuationState==="advance"&&o.length===1&&u(o[0])&&o[0].stageCommand==="arch-prd"&&E(o[0].completionEvidence,n.completionEvidence)&&E(o[0].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",m=n.currentStageCommand==="arch-architecture"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-architecture"&&i.continuationState==="delegate"&&o.length===1&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",I=n.currentStageCommand==="arch-architecture"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-fitness-functions"&&i.continuationState==="advance"&&o.length===2&&u(o[0])&&u(o[1])&&o[0].stageCommand==="arch-prd"&&o[1].stageCommand==="arch-architecture"&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===1&&E(o[0],n.acceptedStages[0])&&E(o[1].completionEvidence,n.completionEvidence)&&E(o[1].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",_=n.currentStageCommand==="arch-fitness-functions"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-fitness-functions"&&i.continuationState==="delegate"&&o.length===2&&u(o[0])&&u(o[1])&&o[0].stageCommand==="arch-prd"&&o[1].stageCommand==="arch-architecture"&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",l=n.currentStageCommand==="arch-fitness-functions"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-api-contracts"&&i.continuationState==="advance"&&o.length===3&&u(o[0])&&u(o[1])&&u(o[2])&&o[0].stageCommand==="arch-prd"&&o[1].stageCommand==="arch-architecture"&&o[2].stageCommand==="arch-fitness-functions"&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===2&&E(o.slice(0,2),n.acceptedStages)&&E(o[2].completionEvidence,n.completionEvidence)&&E(o[2].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",S=n.currentStageCommand==="arch-api-contracts"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-api-contracts"&&i.continuationState==="delegate"&&o.length===3&&u(o[0])&&u(o[1])&&u(o[2])&&o[0].stageCommand==="arch-prd"&&o[1].stageCommand==="arch-architecture"&&o[2].stageCommand==="arch-fitness-functions"&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",g=["PACT-Q1-CONSUMER","PACT-Q2-PROVIDER","PACT-Q3-BROKER","PACT-Q4-MATCHERS","PACT-Q5-VERIFY"],h=n.currentStageCommand==="arch-api-contracts"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="generate-pacts"&&i.continuationState==="ask-user"&&o.length===4&&u(o[3])&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===3&&E(o.slice(0,3),n.acceptedStages)&&o[3].stageCommand==="arch-api-contracts"&&E(o[3].completionEvidence,n.completionEvidence)&&E(o[3].validationEvidence,n.validationEvidence)&&E(i.questionIds,g)&&E(a?.questionIds,g)&&a?.nextAction==="ask-user",C=n.currentStageCommand==="generate-pacts"&&n.continuationState==="ask-user"&&i?.currentStageCommand==="generate-pacts"&&i.continuationState==="delegate"&&o.length===4&&E(o,n.acceptedStages)&&E(n.questionIds,g)&&E(i.questionIds,[])&&E(i.pactAnswerReceipt,e.answerReceipt)&&E(a?.pactAnswerReceipt,e.answerReceipt)&&e.answerReceipt?.stateSha256===e.sourceStateSha256&&a?.nextAction==="resume",D=n.currentStageCommand==="generate-pacts"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&E(n.pactAnswerReceipt,e.pactRecordedReceipt)&&i?.currentStageCommand==="arch-api-integrations"&&i.continuationState==="advance"&&o.length===5&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===4&&E(o.slice(0,4),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts"&&u(o[4])&&E(o[4].completionEvidence,n.completionEvidence)&&E(o[4].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",M=n.currentStageCommand==="arch-api-integrations"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-api-integrations"&&i.continuationState==="delegate"&&o.length===5&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",P=n.currentStageCommand==="arch-api-integrations"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-database"&&i.continuationState==="advance"&&o.length===6&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===5&&E(o.slice(0,5),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations"&&u(o[5])&&E(o[5].completionEvidence,n.completionEvidence)&&E(o[5].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",k=n.currentStageCommand==="arch-database"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-database"&&i.continuationState==="delegate"&&o.length===6&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",v=n.currentStageCommand==="arch-database"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-security"&&i.continuationState==="advance"&&o.length===7&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===6&&E(o.slice(0,6),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database"&&u(o[6])&&E(o[6].completionEvidence,n.completionEvidence)&&E(o[6].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",w=n.currentStageCommand==="arch-security"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-security"&&i.continuationState==="delegate"&&o.length===7&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",ee=n.currentStageCommand==="arch-security"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-design-system"&&i.continuationState==="advance"&&o.length===8&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===7&&E(o.slice(0,7),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security"&&u(o[7])&&E(o[7].completionEvidence,n.completionEvidence)&&E(o[7].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",R=n.currentStageCommand==="arch-design-system"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-design-system"&&i.continuationState==="delegate"&&o.length===8&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",J=n.currentStageCommand==="arch-design-system"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-ux-design"&&i.continuationState==="advance"&&o.length===9&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===8&&E(o.slice(0,8),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system"&&u(o[8])&&E(o[8].completionEvidence,n.completionEvidence)&&E(o[8].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",j=n.currentStageCommand==="arch-ux-design"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-ux-design"&&i.continuationState==="delegate"&&o.length===9&&E(o,n.acceptedStages)&&a?.nextAction==="blocked",V=n.currentStageCommand==="arch-ux-design"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-performance"&&i.continuationState==="advance"&&o.length===10&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===9&&E(o.slice(0,9),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system,arch-ux-design"&&u(o[9])&&E(o[9].completionEvidence,n.completionEvidence)&&E(o[9].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",z=n.currentStageCommand==="arch-performance"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-performance"&&i.continuationState==="delegate"&&o.length===10&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",re=n.currentStageCommand==="arch-performance"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-testing"&&i.continuationState==="advance"&&o.length===11&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===10&&E(o.slice(0,10),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system,arch-ux-design,arch-performance"&&u(o[10])&&E(o[10].completionEvidence,n.completionEvidence)&&E(o[10].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",F=n.currentStageCommand==="arch-testing"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-testing"&&i.continuationState==="delegate"&&o.length===11&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",N=n.currentStageCommand==="arch-testing"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-infrastructure"&&i.continuationState==="advance"&&o.length===12&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===11&&E(o.slice(0,11),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system,arch-ux-design,arch-performance,arch-testing"&&u(o[11])&&E(o[11].completionEvidence,n.completionEvidence)&&E(o[11].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",B=n.currentStageCommand==="arch-infrastructure"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-infrastructure"&&i.continuationState==="delegate"&&o.length===12&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",$e=n.currentStageCommand==="arch-infrastructure"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-review"&&i.continuationState==="advance"&&o.length===13&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===12&&E(o.slice(0,12),n.acceptedStages)&&o.map(O=>u(O)?O.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system,arch-ux-design,arch-performance,arch-testing,arch-infrastructure"&&u(o[12])&&E(o[12].completionEvidence,n.completionEvidence)&&E(o[12].validationEvidence,n.validationEvidence)&&a?.nextAction==="resume",Te=n.currentStageCommand==="arch-review"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-review"&&i.continuationState==="delegate"&&o.length===13&&E(o,n.acceptedStages)&&a?.nextAction==="delegate",ye=n.currentStageCommand==="arch-review"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&n.reviewDecision===void 0&&i?.currentStageCommand==="arch-review"&&i.continuationState==="ask-user"&&o.length===13&&E(o,n.acceptedStages)&&E(i.questionIds,["ARCH-REVIEW-A09-APPROVAL"])&&E(i.completionEvidence,n.completionEvidence)&&E(i.validationEvidence,n.validationEvidence)&&a?.nextAction==="ask-user",mt=n.currentStageCommand==="arch-review"&&n.continuationState==="ask-user"&&n.childStatus==="succeeded"&&u(n.reviewDecision)&&n.reviewDecision.decision==="approved"&&E(n.questionIds,["ARCH-REVIEW-A09-APPROVAL"])&&i?.currentStageCommand==="update-memory"&&i.continuationState==="advance"&&o.length===14&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===13&&E(o.slice(0,13),n.acceptedStages)&&u(o[13])&&o[13].stageCommand==="arch-review"&&E(o[13].completionEvidence,n.completionEvidence)&&E(o[13].validationEvidence,n.validationEvidence)&&E(i.reviewDecision,n.reviewDecision)&&a?.nextAction==="resume",it=n.currentStageCommand==="update-memory"&&n.continuationState==="advance"&&u(n.reviewDecision)&&n.reviewDecision.decision==="approved"&&i?.currentStageCommand==="update-memory"&&i.continuationState==="delegate"&&o.length===14&&E(o,n.acceptedStages)&&E(i.reviewDecision,n.reviewDecision)&&a?.nextAction==="delegate",te=n.currentStageCommand==="update-memory"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="update-memory"&&i.continuationState==="complete"&&o.length===15&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===14&&E(o.slice(0,14),n.acceptedStages)&&u(o[14])&&o[14].targetEpicId===n.targetEpicId&&o[14].stageCommand==="update-memory"&&E(o[14].completionEvidence,n.completionEvidence)&&E(o[14].validationEvidence,n.validationEvidence)&&E(i.reviewDecision,n.reviewDecision)&&E(i.completionEvidence,n.completionEvidence)&&E(i.validationEvidence,n.validationEvidence)&&Bt(i.terminalMemoryCheckpoint,n)!==null&&E(i.terminalMemoryCheckpoint,n.terminalMemoryCheckpoint)&&a?.nextAction==="complete",ae=n.currentStageCommand==="update-memory"&&n.continuationState==="complete"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="update-memory"&&i.continuationState==="complete"&&o.length===15&&E(o,n.acceptedStages)&&E(i.reviewDecision,n.reviewDecision)&&E(i.completionEvidence,n.completionEvidence)&&E(i.validationEvidence,n.validationEvidence)&&Bt(i.terminalMemoryCheckpoint,n)&&E(i.terminalMemoryCheckpoint,n.terminalMemoryCheckpoint)&&a?.nextAction==="complete",Y=a?Ea(n,a,Bt(n.terminalMemoryCheckpoint,n)&&E(i?.terminalMemoryCheckpoint,n.terminalMemoryCheckpoint)):void 0;if(e.metadata.mode!=="arch-plan"||e.metadata.resolvedTrigger!=="arch-plan"||!u(t)||!u(r)||t.owner!=="root"||t.currentStageCommand!==r.currentStageCommand||t.continuationState!==r.continuationState||r.owner!=="root"||r.evidencePolicy!=="v2-required"||r.targetEpicId!==n.targetEpicId||r.graphRevision!==n.graphRevision||r.graphSource!==n.graphSource||!/^P[1-9][0-9]{0,11}$/.test(String(r.targetEpicId))||!/^[a-f0-9]{64}$/.test(String(r.graphRevision))||!Array.isArray(r.acceptedStages)||!(Y||s||p||m||I||_||l||S||h||C||D||M||P||k||v||w||ee||R||J||j||V||z||re||F||N||B||$e||Te||ye||mt||it||te||ae)||!u(r.accounting)||r.accounting.charged!==!0||!E(un(r),r))throw new Error("architecture-root-checkpoint-invalid");const Xe=X(e.projectRoot,".neocortex"),Oe=X(Xe,"state.json"),yt=X(Xe,"state.json.architecture.lock"),Ge=Gt(yt,"wx",384);let ne;try{const O=Dt(Oe);if(!O.isFile()||O.isSymbolicLink())throw new Error("architecture-root-state-binding-invalid");const Pe=Ve(Oe,"utf8");if(He("sha256").update(Pe).digest("hex")!==e.sourceStateSha256)throw new Error("architecture-root-state-conflict");const q=JSON.parse(Pe),Et=u(q)&&u(q.archPlan)?q.archPlan:{};if(!u(q)||!u(q.epics)||!Object.hasOwn(q.epics,r.targetEpicId)||(e.initialBinding?Et.execution!==void 0||n.graphSource!=="committed-epic-v1":!E(un(Et.execution),n))||u(q.scope)&&q.scope.kind==="projected")throw new Error("architecture-root-state-binding-invalid");if(n.graphSource==="committed-epic-v1"&&n.graphRevision!==$t(e.projectRoot,String(n.targetEpicId)))throw new Error("architecture-root-epic-binding-invalid");if(ae||Y==="complete-replay"){const Yt={...n,continuationState:"delegate",acceptedStages:n.acceptedStages.slice(0,Zn(n))};if(!E(n.terminalMemoryCheckpoint,An(e.projectRoot,Yt)))throw new Error("architecture-root-state-conflict");return}const Ze=en(),Ee=je("git",["rev-parse","--git-common-dir"],{cwd:e.projectRoot,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim(),K=_a(Ee)?rr(Ee):rr(e.projectRoot,Ee);if(wa(K)!==K)throw new Error("architecture-root-backup-dir-invalid");const xt=X(K,"neocortex-architecture");Wt(xt,{recursive:!0,mode:448});const T=Dt(xt);if(!T.isDirectory()||T.isSymbolicLink()||T.uid!==process.getuid?.()||(T.mode&63)!==0)throw new Error("architecture-root-backup-dir-invalid");const Tt=X(xt,`state-backup-${Ze}.json`),f=Gt(Tt,"wx",384);try{tn(f,Pe),nn(f)}finally{Ht(f)}const Pt=Gt(xt,"r");try{nn(Pt)}finally{Ht(Pt)}const ge={...q,archPlan:{...Et,execution:r}};ne=X(Xe,`state.json.architecture-tmp-${Ze}`);const ot=Gt(ne,"wx",384);try{tn(ot,`${JSON.stringify(ge,null,2)}
|
|
8
|
-
`),nn(ot)}finally{Ht(ot)}if((te||Y==="complete")&&!E(n.terminalMemoryCheckpoint,An(e.projectRoot,n)))throw new Error("architecture-root-state-conflict");if(n.graphSource==="committed-epic-v1"&&n.graphRevision!==$t(e.projectRoot,String(n.targetEpicId)))throw new Error("architecture-root-epic-binding-invalid");nr(ne,Oe),ne=void 0;const Q=Gt(Xe,"r");try{nn(Q)}finally{Ht(Q)}}finally{if(ne)try{bn(ne)}catch{}Ht(Ge),bn(yt)}}function ln(e,t){if(!u(e))return;const r={};for(const a of t){const i=e[a];if(typeof i=="boolean")r[a]=i;else if(typeof i=="number"&&Number.isFinite(i))r[a]=i;else if(typeof i=="string"){const n=oe(i);n&&(r[a]=n)}}return Object.keys(r).length>0?r:void 0}function hn(e){return e==="epic"||e==="story"?e:void 0}function Mr(e){if(!u(e)||e.schemaVersion!==1)return;const t=Z(e.ownerStoryId),r=Z(e.sessionId),a=Z(e.idempotencyKey),i=Be(e.acquiredAt),n=Be(e.expiresAt);if(!(!t||!r||!a||!i||!n||Date.parse(n)<=Date.parse(i)))return{schemaVersion:1,ownerStoryId:t,sessionId:r,idempotencyKey:a,acquiredAt:i,expiresAt:n}}function jr(e){if(!u(e)||e.schemaVersion!==1)return;const t=Z(e.storyId),r=Z(e.epicId),a=we(e.branch),i=x(e.baseSha),n=x(e.headSha),o=Z(e.idempotencyKey),s=Be(e.recordedAt),p=Ue(e.commits).map(x).filter(M=>!!M).slice(0,256),m=Ue(e.receiptRefs).map(ht).filter(M=>!!M).slice(0,256),I=e.dispatchId===void 0?void 0:Z(e.dispatchId),_=e.bundleId===void 0?void 0:Z(e.bundleId),l=e.bundleDigest===void 0?void 0:x(e.bundleDigest),S=e.graphRevision===void 0?void 0:x(e.graphRevision),g=e.claimRevision===void 0?void 0:Z(e.claimRevision),h=ro(e.qaReceipt),C=ao(e.reviewReceipt),D=e.rootMemoryEffect===void 0?void 0:bi(e.rootMemoryEffect)?e.rootMemoryEffect:void 0;if(!(!t||!r||!t.startsWith(`${r}.`)||!a||!i||!n||i===n||!o||!s||p.length===0||m.length===0||!Array.isArray(e.commits)||p.length!==e.commits.length||e.commits.length>256||!Array.isArray(e.receiptRefs)||m.length!==e.receiptRefs.length||e.receiptRefs.length>256||e.dispatchId!==void 0&&!I||e.bundleId!==void 0&&!_||e.bundleDigest!==void 0&&(!l||l.length!==64)||e.graphRevision!==void 0&&(!S||S.length!==64)||e.claimRevision!==void 0&&!g||e.rootMemoryEffect!==void 0&&(!D||D.storyId!==t||D.epicId!==r||D.executionBranch!==a||D.sourceHeadSha!==i||D.childClaimRevision!==g)||e.qaVerdict!=="passed"&&e.qaVerdict!=="blocked"||!["approved","changes-requested","pending"].includes(String(e.reviewVerdict))||!h||e.reviewVerdict!=="pending"&&!C||e.reviewVerdict==="pending"&&C||h.verdict!==e.qaVerdict||C&&C.verdict!==e.reviewVerdict||!Br(h,{storyId:t,epicId:r,baseSha:i,headSha:n,bundleDigest:l,graphRevision:S})||C&&(!Br(C,{storyId:t,epicId:r,baseSha:i,headSha:n,bundleDigest:l,graphRevision:S})||C.qaReceiptRef!==h?.receiptRef||C.receiptRef===h?.receiptRef)||!m.includes(String(h.receiptRef))||C&&(!m.includes(String(C.receiptRef))||Date.parse(String(C.reviewedAt))<Date.parse(String(h.checkedAt)))))return{schemaVersion:1,storyId:t,epicId:r,branch:a,baseSha:i,headSha:n,idempotencyKey:o,...I?{dispatchId:I}:{},..._?{bundleId:_}:{},...l?{bundleDigest:l}:{},...S?{graphRevision:S}:{},...g?{claimRevision:g}:{},...D?{rootMemoryEffect:structuredClone(D)}:{},qaVerdict:e.qaVerdict,reviewVerdict:e.reviewVerdict,...h?{qaReceipt:h}:{},...C?{reviewReceipt:C}:{},recordedAt:s,commits:p,receiptRefs:m}}function ro(e){if(!u(e)||e.schemaVersion!==1||e.kind!=="story_qa_evidence"||e.producer!=="local-yolo-tdd"||e.evidenceVersion!==void 0&&e.evidenceVersion!=="git-immutable-v1"&&e.evidenceVersion!=="p205-execution-v2"||!["passed","blocked"].includes(String(e.verdict)))return;const t=Z(e.storyId),r=Z(e.epicId),a=x(e.baseSha),i=x(e.headSha),n=x(e.bundleDigest),o=x(e.graphRevision),s=x(e.sourceEvidenceDigest),p=Be(e.checkedAt),m=ht(e.receiptRef),I=e.evidenceVersion==="p205-execution-v2"&&e.contract==="P205-CI-02"?e.contract:void 0,_=e.evidenceVersion==="p205-execution-v2"&&e.command==="node scripts/test-root.mjs --gate complete"?e.command:void 0,l=e.evidenceVersion==="p205-execution-v2"?x(e.manifestDigest):void 0,S=e.evidenceVersion==="p205-execution-v2"?x(e.resultDigest):void 0,g=e.evidenceVersion==="p205-execution-v2"?Ue(e.gateIds).map(Z).filter(h=>!!h).slice(0,64):void 0;if(!(!t||!r||!a||!i||!n||n.length!==64||!o||o.length!==64||!s||s.length!==64||!p||!m||e.evidenceVersion==="p205-execution-v2"&&(!I||_!=="node scripts/test-root.mjs --gate complete"||!l||l.length!==64||!S||S.length!==64||!Array.isArray(e.gateIds)||!g||g.length===0||g.length!==e.gateIds.length)))return{schemaVersion:1,kind:"story_qa_evidence",producer:"local-yolo-tdd",...e.evidenceVersion?{evidenceVersion:e.evidenceVersion}:{},storyId:t,epicId:r,...e.evidenceVersion==="p205-execution-v2"?{contract:I,command:_,manifestDigest:l,gateIds:g,resultDigest:S}:{},baseSha:a,headSha:i,bundleDigest:n,graphRevision:o,sourceEvidenceDigest:s,verdict:e.verdict,checkedAt:p,receiptRef:m}}function Vr(e){if(!u(e)||e.schemaVersion!==1||e.kind!=="story_checkpoint_physical_verification"||e.producer!=="client-p205-transient-v1"||e.publicSafe!==!0||e.verdict!=="verified"&&e.verdict!=="rejected")return;const t=Z(e.storyId),r=Z(e.epicId),a=we(e.branch),i=x(e.baseSha),n=x(e.headSha),o=x(e.aggregateHeadSha),s=x(e.commitBodyDigest),p=x(e.changedPathsDigest),m=e.claimVerification==="canonical"||e.claimVerification==="legacy-migration"?e.claimVerification:void 0,I=x(e.effectiveClaimRevision),_=e.command==="node scripts/test-root.mjs --gate complete"?e.command:void 0,l=x(e.manifestDigest),S=Ue(e.gateIds).map(Z).filter(k=>!!k).slice(0,64),g=x(e.resultDigest),h=x(e.graphRevision),C=x(e.executionEvidenceDigest),D=x(e.sourceEvidenceDigest),M=Be(e.verifiedAt),P=Ue(e.reasonCodes).map(Z).filter(k=>!!k).slice(0,16);if(!(!t||!r||!a||!i||i.length<40||!n||n.length<40||!o||o.length<40||!s||s.length!==64||!p||p.length!==64||!m||!I||I.length!==64||!_||!l||l.length!==64||!Array.isArray(e.gateIds)||S.length!==e.gateIds.length||!g||g.length!==64||!h||h.length!==64||!C||C.length!==64||!D||D.length!==64||!M||P.length===0||e.verdict==="verified"&&(S.length===0||!P.includes("checkpoint-p205-transient-verified"))))return{schemaVersion:1,kind:"story_checkpoint_physical_verification",producer:"client-p205-transient-v1",storyId:t,epicId:r,branch:a,baseSha:i,headSha:n,aggregateHeadSha:o,commitBodyDigest:s,changedPathsDigest:p,claimVerification:m,effectiveClaimRevision:I,command:_,manifestDigest:l,gateIds:S,resultDigest:g,graphRevision:h,executionEvidenceDigest:C,sourceEvidenceDigest:D,verifiedAt:M,verdict:e.verdict,reasonCodes:P,publicSafe:!0}}function Ur(e){const t=["schemaVersion","kind","producer","storyId","epicId","branch","baseSha","headSha","graphRevision","effectiveClaimRevision","sourceEvidenceDigest","verifiedAt","reasonCodes","integrationAuthorized","publicSafe"];if(!u(e)||Object.keys(e).some(l=>!t.includes(l))||e.schemaVersion!==1||e.kind!=="story_scheduling_checkpoint_evidence"||e.producer!=="client-git-physical-v1"||e.integrationAuthorized!==!1||e.publicSafe!==!0)return;const r=Z(e.storyId),a=Z(e.epicId),i=we(e.branch),n=x(e.baseSha),o=x(e.headSha),s=x(e.graphRevision),p=x(e.effectiveClaimRevision),m=x(e.sourceEvidenceDigest),I=Be(e.verifiedAt),_=Ue(e.reasonCodes).map(Z).filter(l=>!!l);if(!(!r||!a||!i||!n||n.length<40||!o||o.length<40||!s||s.length!==64||!p||p.length!==64||!m||m.length!==64||!I||!Array.isArray(e.reasonCodes)||_.length!==1||_[0]!=="checkpoint-git-scheduling-verified"))return{schemaVersion:1,kind:"story_scheduling_checkpoint_evidence",producer:"client-git-physical-v1",storyId:r,epicId:a,branch:i,baseSha:n,headSha:o,graphRevision:s,effectiveClaimRevision:p,sourceEvidenceDigest:m,verifiedAt:I,reasonCodes:_,integrationAuthorized:!1,publicSafe:!0}}function ao(e){if(!u(e)||e.schemaVersion!==1||e.kind!=="story_review_evidence"||e.producer!=="root-commit-range-review"||!["approved","changes-requested"].includes(String(e.verdict)))return;const t=Z(e.storyId),r=Z(e.epicId),a=x(e.baseSha),i=x(e.headSha),n=x(e.bundleDigest),o=x(e.graphRevision),s=x(e.sourceEvidenceDigest),p=ht(e.qaReceiptRef),m=Be(e.reviewedAt),I=ht(e.receiptRef);if(!(!t||!r||!a||!i||!n||n.length!==64||!o||o.length!==64||!s||s.length!==64||!p||!m||!I))return{schemaVersion:1,kind:"story_review_evidence",producer:"root-commit-range-review",storyId:t,epicId:r,baseSha:a,headSha:i,bundleDigest:n,graphRevision:o,sourceEvidenceDigest:s,qaReceiptRef:p,verdict:e.verdict,reviewedAt:m,receiptRef:I}}function Br(e,t){return["storyId","epicId","baseSha","headSha","bundleDigest","graphRevision"].every(r=>e[r]===t[r])}function $r(e){if(!u(e)||e.schemaVersion!==1||e.capturedFromCurrentCheckout!==!0)return;const t=we(e.originBranch),r=x(e.originHeadSha),a=we(e.executionBranch),i=Be(e.capturedAt);if(!(!t||!r||r.length<40||!a||!i||t===a))return{schemaVersion:1,originBranch:t,originHeadSha:r,executionBranch:a,capturedFromCurrentCheckout:!0,capturedAt:i}}function Wr(e){if(!u(e)||e.schemaVersion!==1||e.verdict!=="passed")return;const t=x(e.executionHeadSha),r=x(e.graphRevision),a=Be(e.checkedAt),i=ht(e.receiptRef),n=Ue(e.gateIds).map(Z).filter(I=>!!I).slice(0,128),o=e.evidenceVersion==="p205-execution-v2"&&e.producer==="local-yolo-tdd"&&e.contract==="P205-CI-02"&&e.command==="node scripts/test-root.mjs --gate complete",s=e.evidenceVersion===void 0&&e.producer===void 0&&e.contract===void 0&&e.command===void 0&&e.manifestDigest===void 0&&e.resultDigest===void 0,p=o?x(e.manifestDigest):void 0,m=o?x(e.resultDigest):void 0;if(!(!t||t.length<40||!r||r.length!==64||!a||!i||n.length===0||!Array.isArray(e.gateIds)||n.length!==e.gateIds.length||e.gateIds.length>128||!s&&!o||o&&(!p||p.length!==64||!m||m.length!==64)))return{schemaVersion:1,...o?{evidenceVersion:"p205-execution-v2",producer:"local-yolo-tdd",contract:"P205-CI-02",command:"node scripts/test-root.mjs --gate complete",manifestDigest:p,resultDigest:m}:{},verdict:"passed",executionHeadSha:t,graphRevision:r,checkedAt:a,receiptRef:i,gateIds:n}}function Un(e){if(!u(e)||e.schemaVersion!==1)return;const t=ln(e,["schemaVersion","kind","storyId","epicId","baseSha","headSha","originalBaseSha","originalHeadSha","gitPullRequest","preservesLaterCommits","historyRewrite","recordedAt"])??{},r=Ue(e.receiptRefs).map(ht).filter(i=>!!i).slice(0,256),a=Ue(e.revertCommits).map(oe).filter(i=>!!i).slice(0,256);return{...t,...r.length?{receiptRefs:r}:{},...a.length?{revertCommits:a}:{}}}function io(e){if(!(!u(e)||Object.keys(e).sort().join(",")!=="gitPullRequest,headSha,kind,prNumber,reviewEvidenceDigest,schemaVersion"||e.schemaVersion!==1||e.kind!=="git-pull-request"||e.gitPullRequest!==!0||!Number.isSafeInteger(e.prNumber)||Number(e.prNumber)<=0||typeof e.headSha!="string"||!/^[a-f0-9]{40}$/.test(e.headSha)||typeof e.reviewEvidenceDigest!="string"||!/^[a-f0-9]{64}$/.test(e.reviewEvidenceDigest)))return{schemaVersion:1,kind:"git-pull-request",gitPullRequest:!0,prNumber:e.prNumber,headSha:e.headSha,reviewEvidenceDigest:e.reviewEvidenceDigest}}function Gr(e){if(!u(e)||e.schemaVersion!==1||e.publicSafe!==!0)return;const t=Z(e.epicId),r=we(e.executionBranch),a=we(e.originBranch),i=x(e.baseSha),n=x(e.executionHeadSha),o=e.mergeSha===void 0?void 0:x(e.mergeSha),s=e.pushedSha===void 0?void 0:x(e.pushedSha),p=Z(e.idempotencyKey),m=Be(e.attemptStartedAt),I=e.completedAt===void 0?void 0:Be(e.completedAt),_=Ue(e.localGateReceiptRefs).map(ht).filter(h=>!!h).slice(0,256),l=Ue(e.reasonCodes).map(Z).filter(h=>!!h).slice(0,64),S=co(e.candidateQa),g=oo(e.providerGuard);if(!(!t||!r||!a||!i||!n||!p||!m||_.length===0||l.length===0||!["direct","single_pr"].includes(String(e.strategy))||!["prepared","merged","pushed","denied_external_gate","blocked_local_or_repo"].includes(String(e.physicalStatus))||typeof e.retryEligible!="boolean"||e.providerGuard!==void 0&&!g||g&&(e.strategy!=="single_pr"||e.physicalStatus!=="pushed"||g.prHeadSha!==o||g.originHeadSha!==i)))return{schemaVersion:1,epicId:t,executionBranch:r,originBranch:a,baseSha:i,executionHeadSha:n,...o?{mergeSha:o}:{},...s?{pushedSha:s}:{},strategy:e.strategy,...lt(e.prNumber)?{prNumber:lt(e.prNumber)}:{},physicalStatus:e.physicalStatus,localGateReceiptRefs:_,idempotencyKey:p,attemptStartedAt:m,...S?{candidateQa:S}:{},...g?{providerGuard:g}:{},...I?{completedAt:I}:{},retryEligible:e.retryEligible,reasonCodes:l,publicSafe:!0}}function oo(e){if(!u(e)||e.schemaVersion!==1||e.provider!=="github"||e.publicSafe!==!0)return;const t=String(e.mode),r=String(e.source),a=t==="recovered_exact_tree"?r==="physical_recovery":t==="strict_up_to_date_expected_head"&&["branch_protection","ruleset","branch_protection_and_ruleset"].includes(r),i=x(e.prHeadSha),n=x(e.originHeadSha),o=Be(e.checkedAt);if(!(!a||!i||!n||!o))return{schemaVersion:1,provider:"github",mode:t,source:r,prHeadSha:i,originHeadSha:n,checkedAt:o,publicSafe:!0}}function co(e){if(!u(e)||e.schemaVersion!==1||e.kind!=="epic_merge_candidate_qa"||e.contract!=="P205-CI-02"||e.command!==_i)return;const r=Object.fromEntries(["originHeadSha","executionHeadSha","mergeSha","treeSha","graphRevision","manifestDigest","resultDigest"].map(o=>[o,x(e[o])])),a=Be(e.checkedAt),i=ht(e.receiptRef),n=Ue(e.gateIds).filter(o=>/^[a-z0-9-]+$/.test(o)).slice(0,128);if(!(Object.values(r).some(o=>!o)||!a||!i||n.length===0))return{schemaVersion:1,kind:e.kind,contract:e.contract,command:e.command,...r,checkedAt:a,receiptRef:i,gateIds:n}}function so(e){if(!u(e))return;const t={...oe(e.active_epic_id??e.activeEpicId)?{active_epic_id:oe(e.active_epic_id??e.activeEpicId)}:{},...oe(e.active_story_id??e.activeStoryId)?{active_story_id:oe(e.active_story_id??e.activeStoryId)}:{},...oe(e.active_step_id??e.activeStepId)?{active_step_id:oe(e.active_step_id??e.activeStepId)}:{},...oe(e.session_id??e.sessionId)?{session_id:oe(e.session_id??e.sessionId)}:{},...oe(e.started_at??e.startedAt)?{started_at:oe(e.started_at??e.startedAt)}:{}};return Object.keys(t).length>0?t:void 0}function po(e){const t=ln(e.completionEvidence??e.completion_evidence,["prNumber","pr_number","prState","pr_state","pullRequestState","merged","mergedAt","issueNumber","issue_number","issueState","issue_state","closedAt"]),r=ln(e.issueCloseAudit??e.issue_close_audit,["schema_version","event","storyId","epicId","issueNumber","closedAt","publicSafe","rawLogStorage"]),a=ln(e.scopedCiEvidence??e.scoped_ci_evidence,["schema_version","storyId","epicId","prNumber","finalState","publicSafe","rawLogStorage"]);return{...typeof e.merged=="boolean"?{merged:e.merged}:{},...typeof e.safeToContinueYoloop=="boolean"?{safeToContinueYoloop:e.safeToContinueYoloop}:{},...typeof e.mergeBlockedRemotely=="boolean"?{mergeBlockedRemotely:e.mergeBlockedRemotely}:{},...oe(e.physicalMergeStatus)?{physicalMergeStatus:oe(e.physicalMergeStatus)}:{},...oe(e.pr_state??e.prState??e.pull_request_state??e.pullRequestState)?{pr_state:oe(e.pr_state??e.prState??e.pull_request_state??e.pullRequestState)}:{},...oe(e.issue_state??e.issueState??e.workflow_issue_state)?{issue_state:oe(e.issue_state??e.issueState??e.workflow_issue_state)}:{},...lt(e.issue_number??e.issueNumber)?{issue_number:lt(e.issue_number??e.issueNumber)}:{},...t?{completionEvidence:t}:{},...r?{issueCloseAudit:r}:{},...a?{scopedCiEvidence:a}:{}}}class ft extends Error{reasonCode;constructor(t){super(t),this.name="StateSnapshotIntegrityError",this.reasonCode=t}}const uo=new Set(["yolo","yoloop","finalize-epic","audit"]);function Hr(e){return typeof e=="string"&&uo.has(e)}function Fr(e,t={}){const r=X(e,".neocortex","state.json");if(!Nt(r))throw new ft("git-lifecycle-state-missing");let a;try{a=JSON.parse(Ve(r,"utf8"))}catch{throw new ft("git-lifecycle-state-corrupt")}if(!u(a)||!u(a.epics)||!u(a.stories))throw new ft("git-lifecycle-state-shape-invalid");const i=Object.values(a.epics).some(n=>u(n)&&(n.branch_mode==="epic"||we(n.execution_branch)!==void 0));if(i)try{on(e,{required:!0})}catch(n){const o=n instanceof Error&&/^git-lifecycle-/.test(n.message)?n.message:"git-lifecycle-runtime-invalid";if(t.allowMissingRuntime&&o==="git-lifecycle-runtime-missing")return{lifecycleDeclared:!0,runtimeMissing:!0};throw new ft(o)}return{lifecycleDeclared:i,runtimeMissing:!1}}function fn(e,t={}){const r=X(e,".neocortex","state.json");if(!Nt(r)){if(t.epicAware&&!t.projectless)throw new ft("git-lifecycle-state-missing");return{config:{project_name:"unknown",default_branch:"main",language:"pt-BR"},stories:{},epics:{}}}let a,i;try{const g=Ve(r,"utf-8");i=He("sha256").update(g).digest("hex");const h=JSON.parse(g),C=u(h.epics)?h.epics:{},D=Object.values(C).some(w=>u(w)&&(w.branch_mode==="epic"||we(w.execution_branch)!==void 0)),M=on(e,{required:!!(t.epicAware&&D&&!t.projectless)});a=Cr(h,M);const P=u(a.stories)?a.stories:{},k=u(a.epics)?a.epics:{},v=u(h.stories)?h.stories:{};for(const[w,ee]of Object.entries(P)){const R=u(ee)?ee:void 0;if(!R?.checkpoint)continue;const J=typeof R.epic_id=="string"?R.epic_id:w.split(".")[0],j=u(k[J])?k[J]:void 0,V=we(j?.execution_branch);if(!V)continue;const z=Si(e,R.checkpoint,w,J,V,t.p205Authorities?.[w],wr(w,R,u(R.checkpoint)?R.checkpoint:void 0));if(z.kind==="integration-authorized")R.checkpoint_verification=z.verification,delete R.scheduling_checkpoint_evidence;else if(z.kind==="scheduling-only")R.scheduling_checkpoint_evidence=z.evidence,delete R.checkpoint,delete R.checkpoint_verification;else if(z.kind==="rejected"){R.checkpoint_verification=z.verification,delete R.scheduling_checkpoint_evidence;const re=u(v[w])?v[w]:void 0;if(delete R.checkpoint,M.stories[w]?.checkpoint!==void 0)for(const F of["status","last_step","steps_completed"])re&&Object.prototype.hasOwnProperty.call(re,F)?R[F]=structuredClone(re[F]):delete R[F];["done","completed","merged"].includes(String(R.status).toLowerCase())&&(R.status="blocked")}}}catch(g){if(t.epicAware&&!t.projectless){const h=g instanceof Error&&/^git-lifecycle-/.test(g.message)?g.message:"git-lifecycle-state-corrupt";throw new ft(h)}return{config:{project_name:"unknown",default_branch:"main",language:"pt-BR"},stories:{},epics:{}}}try{const g=Yi(a);g.length>0&&Ki(g)}catch{}const n=a.config??a.project??{},o=a.stories??{},s={};for(const[g,h]of Object.entries(o)){const C=u(h.review_request)&&h.review_request.kind==="git-pull-request"?io(h.review_request):Un(h.review_request);s[g]={id:h.id??g,title:h.title,epic_id:h.epic_id,status:h.status??"backlog",...Lr(h.source)?{source:Lr(h.source)}:{},steps_completed:h.steps_completed??[],last_step:h.last_step??null,branch_name:h.branch_name??null,pr_number:h.pr_number,...hn(h.branch_mode)?{branch_mode:hn(h.branch_mode)}:{},...jr(h.checkpoint)?{checkpoint:jr(h.checkpoint)}:{},...Vr(h.checkpoint_verification)?{checkpoint_verification:Vr(h.checkpoint_verification)}:{},...Ur(h.scheduling_checkpoint_evidence)?{scheduling_checkpoint_evidence:Ur(h.scheduling_checkpoint_evidence)}:{},...C?{review_request:C}:{},...Un(h.rollback_receipt)?{rollback_receipt:Un(h.rollback_receipt)}:{},...lt(h.workflow_issue)?{workflow_issue:lt(h.workflow_issue)}:{},...po(h),depends_on:Dr(h.depends_on),files_to_modify:Ue(h.files_to_modify),...to(h),risk:typeof h.risk=="string"?h.risk:void 0,blast_radius:typeof h.blast_radius=="number"?h.blast_radius:void 0}}const p=a.epics??{},m={};for(const[g,h]of Object.entries(p)){const C=Qi(h.lifecycle_classification),D=eo(h.createEpicPlanning,g);let M,P,k,v;if(D&&u(h.createEpicPlanningClaim)&&typeof h.createEpicPlanningClaim.claimId=="string"&&u(h.createEpicPlanningPhysical))try{ar(a,h.createEpicPlanningClaim.claimId,g,!0),M=JSON.parse(JSON.stringify(h.createEpicPlanningPhysical))}catch{}if(M&&u(h.createEpicPlanningClaim)&&typeof h.createEpicPlanningClaim.claimId=="string"&&u(h.createEpicPlanningResearchPhysical))try{ir(a,h.createEpicPlanningClaim.claimId,g),P=JSON.parse(JSON.stringify(h.createEpicPlanningResearchPhysical))}catch{}if(t.verifyPlanningGeneration&&D&&h.status==="generated"&&u(h.createEpicPlanningClaim)&&typeof h.createEpicPlanningClaim.claimId=="string"&&u(h.createEpicPlanningGenerationPhysical))try{if(xa(e,h.createEpicPlanningClaim.claimId,g).stateSha256!==i)throw new Error("planning-generation-snapshot-raced");k=JSON.parse(JSON.stringify(h.createEpicPlanningGenerationPhysical)),M=JSON.parse(JSON.stringify(h.createEpicPlanningPhysical)),P=JSON.parse(JSON.stringify(h.createEpicPlanningResearchPhysical))}catch{}if(k&&u(h.createEpicPlanningClaim)&&typeof h.createEpicPlanningClaim.claimId=="string")try{const w=or(e,h.createEpicPlanningClaim.claimId,g);if(w.stateSha256!==i)throw new Error("planning-memory-snapshot-raced");v=JSON.parse(JSON.stringify(w))}catch{}m[g]={id:h.id??g,title:h.title,...D?{createEpicPlanning:D}:{},...M?{createEpicPlanningPhysical:M}:{},...P?{createEpicPlanningResearchPhysical:P}:{},...k?{createEpicPlanningGenerationPhysical:k}:{},...v?{createEpicPlanningMemoryPhysical:v}:{},status:h.status,stories:h.stories,total_stories:h.total_stories,completed_stories:h.completed_stories,depends_on:Dr(h.depends_on),...hn(h.branch_mode)?{branch_mode:hn(h.branch_mode)}:{},...we(h.execution_branch)?{execution_branch:we(h.execution_branch)}:{},...we(h.origin_branch)?{origin_branch:we(h.origin_branch)}:{},...Mr(h.branch_lease)?{branch_lease:Mr(h.branch_lease)}:{},...$r(h.origin_binding)?{origin_binding:$r(h.origin_binding)}:{},...Wr(h.aggregate_qa_receipt)?{aggregate_qa_receipt:Wr(h.aggregate_qa_receipt)}:{},...lt(h.pr_number)?{pr_number:lt(h.pr_number)}:{},...oe(h.physicalMergeStatus)?{physicalMergeStatus:oe(h.physicalMergeStatus)}:{},...x(h.graph_revision)?{graph_revision:x(h.graph_revision)}:{},...Gr(h.terminal_git_receipt)?{terminal_git_receipt:Gr(h.terminal_git_receipt)}:{},...C?{lifecycle_classification:C}:{}}}const I=so(a.current_session??a.currentSession),_=u(a.archPlan)?un(a.archPlan.execution):void 0,l=a.epic_id_ledger,S=Array.isArray(l?.reserved_ids)?[...new Set(l.reserved_ids.filter(g=>typeof g=="string"&&/^P\d+$/.test(g)))].slice(0,2048):[];return{schema_version:typeof a.schema_version=="number"?a.schema_version:void 0,config:{project_name:n.project_name??n.name??"unknown",default_branch:n.default_branch??"main",language:n.language??"pt-BR",yolo_mode:n.yolo_mode,user_name:n.user_name,worktree_base:n.worktree_base,max_parallel_stories:n.max_parallel_stories,project_id:typeof n.project_id=="string"?n.project_id:void 0},stories:s,epics:m,...S.length>0?{epic_id_ledger:{schema_version:1,reserved_ids:S}}:{},...I?{current_session:I}:{},..._?{archPlan:{execution:_}}:{}}}const Bn=[["P222.01","fbc3176b33687b13a8fadf8c7ea7cc06b6b6c500"],["P222.02","c7d3feb9a168f9e15b35516a972c767f3aa357da"],["P222.03","4d9bd4f2a1a3a1dc6399c572eb84b8b74c017806"],["P222.04","66590ef2f706c9d036f42edf5e517b237724f74f"],["P222.05","3ee2662538311e9788796340ed11b65864a8d8d5"],["P222.06","8660d07e3f68503a9ceb24dc138d24f62ab6cb45"],["P222.07","d99c80feacee8ea4033aa3322990147fffa2df91"],["P222.08","1f9e37dc922d87908efefb9595db32d32db30b00"],["P222.09","5ae12e485900992658e346cf3e38568fda1c2eeb"],["P222.10","6c5b8dc4f03d629fea4b62a33f4794af8e27e4f0"],["P222.11","cfe90f2f955c0027c57e4c621141d17912db65cc"],["P222.12","65f253c5cb600a8ee1dd94a1efdfef2fa5cd1629"],["P222.13","1e78c75b393515803a55d1a9b63a7fec23f710c9"],["P222.14","3f3e0bfd247a8581170df2a23c89497b5ae3641e"],["P222.15","1fd6dd25fffa5714d4ffa8b4303735e417f93de6"]],$n="6a41a47ff2521f80c2296ed811b0f0b304c54750",Wn="dbc6d4670b2b7868a01973b1240e24589f1c5b7d",qr="30dccfff07f9c969be11ae1d28e62a09731a0768";function lo(e,t){try{const r=t.indexOf(qr);if(r<1||t[r-1]!==$n)return new Map;const a=je("git",["show","--no-patch","--format=%P",qr],{cwd:e,encoding:"utf8",maxBuffer:1024}).trim(),i=je("git",["show","--no-patch","--format=%P",Wn],{cwd:e,encoding:"utf8",maxBuffer:1024}).trim();if(a!==`${$n} ${Wn}`||i!==`${Bn.at(-1)[1]} ${$n}`)return new Map;const n=je("git",["rev-list","--first-parent","--reverse",Wn],{cwd:e,encoding:"utf8",maxBuffer:32*1024*1024}).trim().split(`
|
|
9
|
-
`),o=new Map;let s=-1;for(const[p,[m,
|
|
10
|
-
`).filter(Boolean),_=new Map(
|
|
11
|
-
`),{}}}function
|
|
12
|
-
`),i=new
|
|
13
|
-
`),t}function
|
|
14
|
-
`)}async function
|
|
7
|
+
`)}catch{}}}function Ss(){Mn=!1}function Dr(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Yi(e){return e==="active"||e==="archived"||e==="rolled-back"||e==="synthetic"||e==="orphan"?e:void 0}const Ki=new Set(["goal","problem","desiredOutcome","rawIntent","context","users","surfaces","constraints","assumptions","risks","nonGoals","validationExpectations","debtRefs","repositoryEvidencePaths","journeyIds","screenIds","storybookStoryIds","backendContractIds","featureBlockerIds","remediationRefs","uiScope","remediationStory","examples","contracts"]),Qi=/(?:[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}|(?:token|api[_-]?key|secret|password|credential|license[_-]?key)\s*[:=]\s*\S+|https?:\/\/(?:localhost|127\.0\.0\.1|10\.\d+\.\d+\.\d+|192\.168\.\d+\.\d+|172\.(?:1[6-9]|2\d|3[0-1])\.\d+\.\d+|[^\s/]*internal[^\s/]*)\S*|private\s+prompt|raw\s+vendor\s+corpus|sk-[A-Za-z0-9_-]{12,})/i;function Xi(e,t){if(!(!u(e)||e.schemaVersion!==1||e.epicId!==t||!/^P\d+$/.test(t)))try{const a=JSON.stringify(e);if(Buffer.byteLength(a)>16384||Qi.test(a))return;const r=(n,o)=>{if(Object.keys(n).some(s=>!o.includes(s)))throw new Error("planning-unknown-field")};if(r(e,["schemaVersion","epicId","intake","intakeRevision","diagnosisReceipt","researchReceipt","degradeAuthorization"]),!u(e.intake)||Object.keys(e.intake).some(n=>!Ki.has(n)))return;for(const[n,o]of Object.entries(e.intake))if(["examples","contracts"].includes(n)){const s=n==="examples"?["id","title","actor","given","when","then","source","coveredRequirement","expectedValidation"]:["id","kind","description","path"];if(!Array.isArray(o)||o.length>16)return;for(const p of o)if(!u(p)||(r(p,s),Object.values(p).some(m=>typeof m!="string"||m.length>256)))return}else if(Array.isArray(o)){if(o.length>32||o.some(s=>typeof s!="string"||s.length>256))return}else if(typeof o=="string"){if(o.length>(n==="rawIntent"?xa:512))return}else if(typeof o!="boolean"||!["uiScope","remediationStory"].includes(n))return;const i=["schemaVersion","kind","epicId","intakeRevision","artifactSummary","artifactDigest","predecessorReceiptId","accepted","receiptId"];for(const n of[e.diagnosisReceipt,e.researchReceipt])if(n!==void 0&&(!u(n)||(r(n,i),Object.values(n).some(o=>typeof o=="string"&&o.length>1024))))return;if(e.degradeAuthorization!==void 0){if(!u(e.degradeAuthorization))return;r(e.degradeAuthorization,["approved","intakeRevision","reasonCodes","assumptionCodes"]);for(const n of["reasonCodes","assumptionCodes"]){const o=e.degradeAuthorization[n];if(!Array.isArray(o)||o.length>32||o.some(s=>typeof s!="string"||s.length>128))return}}return JSON.parse(a)}catch{return}}function Lr(e){return e==="create-epic"||e==="discovered"?e:void 0}function Ue(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Zi(e){const t={};let a=!1;for(const r of["contracts","contract_refs","shared_surfaces","adr_refs","nfr_refs","acceptance_depends_on"]){if(e[r]===void 0)continue;const i=e[r];if(!Array.isArray(i)||i.length>128||i.some(n=>an(n)===void 0)){a=!0;continue}t[r]=i.map(n=>an(n))}if(e.planning!==void 0)try{if(!u(e.planning))throw new Error("planning-shape");const r=e.planning;for(const o of["claims","semanticArtifacts"]){if(r[o]===void 0)continue;const s=r[o];if(!Array.isArray(s)||s.length>128||s.some(p=>!u(p)||an(p.ref)===void 0))throw new Error("planning-refs")}if(r.attempts!==void 0&&(!Array.isArray(r.attempts)||r.attempts.length>32))throw new Error("planning-attempts");for(const o of r.attempts??[]){if(!u(o)||!Array.isArray(o.reasonCodes)||o.reasonCodes.length>32||o.reasonCodes.some(s=>typeof s!="string"||!/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/.test(s)))throw new Error("planning-attempt-reasons");if(o.discoveredClaims!==void 0&&(!Array.isArray(o.discoveredClaims)||o.discoveredClaims.length>128||o.discoveredClaims.some(s=>!u(s)||an(s.ref)===void 0)))throw new Error("planning-attempt-claims")}const{graphRevision:i,...n}=yi(r);t.planning=n}catch{a=!0}return a&&(t.planning={schemaVersion:1,dependencyBasis:"unknown",claims:[],semanticArtifacts:[]}),t}function u(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function lt(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:void 0}function ne(e){if(typeof e!="string")return;const t=e.trim();if(t)return t.replace(/[^a-z0-9_.:-]+/gi,"_").slice(0,120)}function Z(e){if(typeof e!="string")return;const t=e.trim(),a=ne(e);return a===t?a:void 0}function Ce(e){if(typeof e!="string")return;const t=e.trim();if(!(!t||t.length>240)&&/^[A-Za-z0-9][A-Za-z0-9._/-]*$/.test(t)&&!(t.includes("..")||t.includes("//")||t.includes("@{")||t.endsWith("/")||t.endsWith("."))&&!t.split("/").some(a=>!a||a.startsWith(".")||a.endsWith(".lock")))return t}function x(e){return typeof e=="string"&&/^[0-9a-f]{7,64}$/i.test(e)?e:void 0}function Be(e){if(!(typeof e!="string"||e.length>64)&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/.test(e))return Number.isFinite(Date.parse(e))?e:void 0}function ht(e){if(typeof e!="string")return;const t=e.trim();if(!(!t||t.length>240||t.includes("..")))return/^[A-Za-z0-9._:/#\-[\]]+$/.test(t)?t:void 0}function pn(e){if(!u(e))return;const t=l=>typeof l=="string"&&/^[A-Za-z0-9][A-Za-z0-9._:-]{0,95}$/.test(l),a=l=>typeof l=="string"&&/^[a-f0-9]{64}$/.test(l),r=(l,v)=>Array.isArray(l)&&l.length<=v&&l.every(t)&&new Set(l).size===l.length?l:void 0,i=(l,v)=>{if(!(!u(l)||l.schemaVersion!==2||!t(l.requestId)||!t(l.stageCommand)||!a(l.requestHash)||!a(l.inputHash)||!a(l.stateHash)||!a(l.nonce)||!a(l.stageRevision)||!a(l.stageHash)||!a(l.catalogHash)||l.targetEpicId!==void 0&&!t(l.targetEpicId)||v&&(!a(l.outputHash)||!a(l.artifactHash))))return{schemaVersion:2,...l.targetEpicId?{targetEpicId:l.targetEpicId}:{},requestId:l.requestId,requestHash:l.requestHash,inputHash:l.inputHash,stateHash:l.stateHash,nonce:l.nonce,stageCommand:l.stageCommand,stageRevision:l.stageRevision,stageHash:l.stageHash,catalogHash:l.catalogHash,...v?{outputHash:l.outputHash,artifactHash:l.artifactHash}:{}}},n=(l,v)=>{if(!(!u(l)||l.schemaVersion!=="1.1"||l.kind!==v||!a(l.receiptId)||!a(l.graphHash)||!a(l.evidenceHash)||!t(l.elementId)||!t(l.caseId)||!t(l.category)))return{schemaVersion:"1.1",kind:v,receiptId:l.receiptId,graphHash:l.graphHash,elementId:l.elementId,caseId:l.caseId,category:l.category,evidenceHash:l.evidenceHash}},o=(l,v)=>{if(!u(l)||l.kind!==v||!a(l.receiptId)||!r(l.evidenceIds,24)||v==="architecture-stage-completion"&&!["succeeded","failed"].includes(String(l.status))||v==="architecture-stage-validation"&&!["passed","failed","pending"].includes(String(l.status)))return;const f=i(l,!0);if(!f)return;const h=v==="architecture-stage-validation"?n(l.isolated,"isolated"):void 0,C=v==="architecture-stage-validation"?n(l.regression,"regression"):void 0;if(!(v==="architecture-stage-validation"&&(!h||!C)))return{...f,kind:v,receiptId:l.receiptId,status:l.status,evidenceIds:l.evidenceIds,...h&&C?{isolated:h,regression:C}:{}}},s={};e.schemaVersion===1&&(s.schemaVersion=1),e.owner==="root"&&(s.owner="root"),t(e.currentStageCommand)&&(s.currentStageCommand=e.currentStageCommand),["ask-user","delegate","resume","advance","blocked","complete"].includes(String(e.continuationState))&&(s.continuationState=e.continuationState);const p=r(e.questionIds,16);if(p&&(s.questionIds=p),(e.childStatus==="succeeded"||e.childStatus==="failed")&&(s.childStatus=e.childStatus),(e.evidencePolicy==="legacy-compatible"||e.evidencePolicy==="v2-required")&&(s.evidencePolicy=e.evidencePolicy),t(e.targetEpicId)&&(s.targetEpicId=e.targetEpicId),a(e.graphRevision)&&(s.graphRevision=e.graphRevision),e.graphSource==="committed-epic-v1"&&(s.graphSource=e.graphSource),e.nonUiScopeReceipt!==void 0){const l=Zn(e.nonUiScopeReceipt);if(!l||l.targetEpicId!==e.targetEpicId||l.graphRevision!==e.graphRevision||!u(e.accounting)||l.accountingId!==e.accounting.accountingId||!u(e.evidenceExpectation)||l.rootInputSha256!==e.evidenceExpectation.inputHash)throw new Error("architecture-non-ui-scope-invalid");s.nonUiScopeReceipt=l}u(e.pactAnswerReceipt)&&Object.keys(e.pactAnswerReceipt).sort().join(",")===["schemaVersion","targetEpicId","graphRevision","stateSha256","answersSha256","questionIds","publicSafe"].sort().join(",")&&e.pactAnswerReceipt.schemaVersion==="PactAnswerReceipt/1"&&e.pactAnswerReceipt.targetEpicId===e.targetEpicId&&e.pactAnswerReceipt.graphRevision===e.graphRevision&&a(e.pactAnswerReceipt.stateSha256)&&a(e.pactAnswerReceipt.answersSha256)&&E(e.pactAnswerReceipt.questionIds,["PACT-Q1-CONSUMER","PACT-Q2-PROVIDER","PACT-Q3-BROKER","PACT-Q4-MATCHERS","PACT-Q5-VERIFY"])&&e.pactAnswerReceipt.publicSafe===!0&&(s.pactAnswerReceipt=e.pactAnswerReceipt);const m=i(e.evidenceExpectation,!1);m&&(s.evidenceExpectation=m);const S=o(e.completionEvidence,"architecture-stage-completion"),_=o(e.validationEvidence,"architecture-stage-validation");if(S&&(s.completionEvidence=S),_&&(s.validationEvidence=_),u(e.reviewDecision)&&Object.keys(e.reviewDecision).sort().join(",")===["schemaVersion","targetEpicId","graphRevision","artifactHash","completionReceiptId","validationReceiptId","decision","evidenceIds","publicSafe"].sort().join(",")&&e.reviewDecision.schemaVersion==="ArchitectureReviewDecision/1"&&e.reviewDecision.targetEpicId===e.targetEpicId&&e.reviewDecision.graphRevision===e.graphRevision&&a(e.reviewDecision.graphRevision)&&a(e.reviewDecision.artifactHash)&&a(e.reviewDecision.completionReceiptId)&&a(e.reviewDecision.validationReceiptId)&&["approved","changes-requested"].includes(String(e.reviewDecision.decision))&&e.reviewDecision.publicSafe===!0){const l=r(e.reviewDecision.evidenceIds,24);l&&l.length>0&&(s.reviewDecision={...e.reviewDecision,evidenceIds:l})}if(Bt(e.terminalMemoryCheckpoint,e))s.terminalMemoryCheckpoint=e.terminalMemoryCheckpoint;else if(u(e.terminalMemoryCheckpoint)&&e.terminalMemoryCheckpoint.schemaVersion===void 0&&["passed","failed","pending"].includes(String(e.terminalMemoryCheckpoint.status))){const l=r(e.terminalMemoryCheckpoint.evidenceIds,24);l&&(s.terminalMemoryCheckpoint={status:e.terminalMemoryCheckpoint.status,evidenceIds:l})}if(Array.isArray(e.acceptedStages)&&e.acceptedStages.length<=15){const l=e.acceptedStages.map(v=>{if(!u(v)||!t(v.targetEpicId)||!t(v.stageCommand))return;const f=o(v.completionEvidence,"architecture-stage-completion"),h=o(v.validationEvidence,"architecture-stage-validation");return f&&h?{targetEpicId:v.targetEpicId,stageCommand:v.stageCommand,completionEvidence:f,validationEvidence:h}:void 0});l.every(v=>v!==void 0)&&(s.acceptedStages=l)}if(u(e.accounting)&&e.accounting.schemaVersion===1&&t(e.accounting.contractVersion)&&t(e.accounting.accountingId)&&typeof e.accounting.charged=="boolean"&&Number.isInteger(e.accounting.chargedQuotaUnits)&&typeof e.accounting.chargedQuotaUnits=="number"&&e.accounting.chargedQuotaUnits>=0&&e.accounting.chargedQuotaUnits<=13){const l=r(e.accounting.receiptIds,32);l&&(s.accounting={schemaVersion:1,contractVersion:e.accounting.contractVersion,accountingId:e.accounting.accountingId,charged:e.accounting.charged,chargedQuotaUnits:e.accounting.chargedQuotaUnits,receiptIds:l,...["in-progress","aborted","timed-out","failed","complete"].includes(String(e.accounting.lastOutcome))?{lastOutcome:e.accounting.lastOutcome}:{}})}return JSON.stringify(s).length<=96e3?s:void 0}function eo(e){const t=u(e.metadata.archPlan)?e.metadata.archPlan.execution:void 0,a=u(t)?t.checkpoint:void 0,r=u(t)?t:void 0,i=u(a)?a:void 0,n=e.requestExecution,o=Array.isArray(i?.acceptedStages)?i.acceptedStages:[],s=n.currentStageCommand==="arch-prd"&&n.continuationState==="delegate"&&n.completionEvidence===void 0&&n.validationEvidence===void 0&&i?.currentStageCommand==="arch-prd"&&i.continuationState==="delegate"&&o.length===0&&r?.nextAction==="delegate",p=n.currentStageCommand==="arch-prd"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-architecture"&&i.continuationState==="advance"&&o.length===1&&u(o[0])&&o[0].stageCommand==="arch-prd"&&E(o[0].completionEvidence,n.completionEvidence)&&E(o[0].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",m=n.currentStageCommand==="arch-architecture"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-architecture"&&i.continuationState==="delegate"&&o.length===1&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",S=n.currentStageCommand==="arch-architecture"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-fitness-functions"&&i.continuationState==="advance"&&o.length===2&&u(o[0])&&u(o[1])&&o[0].stageCommand==="arch-prd"&&o[1].stageCommand==="arch-architecture"&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===1&&E(o[0],n.acceptedStages[0])&&E(o[1].completionEvidence,n.completionEvidence)&&E(o[1].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",_=n.currentStageCommand==="arch-fitness-functions"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-fitness-functions"&&i.continuationState==="delegate"&&o.length===2&&u(o[0])&&u(o[1])&&o[0].stageCommand==="arch-prd"&&o[1].stageCommand==="arch-architecture"&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",l=n.currentStageCommand==="arch-fitness-functions"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-api-contracts"&&i.continuationState==="advance"&&o.length===3&&u(o[0])&&u(o[1])&&u(o[2])&&o[0].stageCommand==="arch-prd"&&o[1].stageCommand==="arch-architecture"&&o[2].stageCommand==="arch-fitness-functions"&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===2&&E(o.slice(0,2),n.acceptedStages)&&E(o[2].completionEvidence,n.completionEvidence)&&E(o[2].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",v=n.currentStageCommand==="arch-api-contracts"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-api-contracts"&&i.continuationState==="delegate"&&o.length===3&&u(o[0])&&u(o[1])&&u(o[2])&&o[0].stageCommand==="arch-prd"&&o[1].stageCommand==="arch-architecture"&&o[2].stageCommand==="arch-fitness-functions"&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",f=["PACT-Q1-CONSUMER","PACT-Q2-PROVIDER","PACT-Q3-BROKER","PACT-Q4-MATCHERS","PACT-Q5-VERIFY"],h=n.currentStageCommand==="arch-api-contracts"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="generate-pacts"&&i.continuationState==="ask-user"&&o.length===4&&u(o[3])&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===3&&E(o.slice(0,3),n.acceptedStages)&&o[3].stageCommand==="arch-api-contracts"&&E(o[3].completionEvidence,n.completionEvidence)&&E(o[3].validationEvidence,n.validationEvidence)&&E(i.questionIds,f)&&E(r?.questionIds,f)&&r?.nextAction==="ask-user",C=n.currentStageCommand==="generate-pacts"&&n.continuationState==="ask-user"&&i?.currentStageCommand==="generate-pacts"&&i.continuationState==="delegate"&&o.length===4&&E(o,n.acceptedStages)&&E(n.questionIds,f)&&E(i.questionIds,[])&&E(i.pactAnswerReceipt,e.answerReceipt)&&E(r?.pactAnswerReceipt,e.answerReceipt)&&e.answerReceipt?.stateSha256===e.sourceStateSha256&&r?.nextAction==="resume",N=n.currentStageCommand==="generate-pacts"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&E(n.pactAnswerReceipt,e.pactRecordedReceipt)&&i?.currentStageCommand==="arch-api-integrations"&&i.continuationState==="advance"&&o.length===5&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===4&&E(o.slice(0,4),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts"&&u(o[4])&&E(o[4].completionEvidence,n.completionEvidence)&&E(o[4].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",L=n.currentStageCommand==="arch-api-integrations"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-api-integrations"&&i.continuationState==="delegate"&&o.length===5&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",P=n.currentStageCommand==="arch-api-integrations"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-database"&&i.continuationState==="advance"&&o.length===6&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===5&&E(o.slice(0,5),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations"&&u(o[5])&&E(o[5].completionEvidence,n.completionEvidence)&&E(o[5].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",M=n.currentStageCommand==="arch-database"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-database"&&i.continuationState==="delegate"&&o.length===6&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",I=n.currentStageCommand==="arch-database"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-security"&&i.continuationState==="advance"&&o.length===7&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===6&&E(o.slice(0,6),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database"&&u(o[6])&&E(o[6].completionEvidence,n.completionEvidence)&&E(o[6].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",b=n.currentStageCommand==="arch-security"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-security"&&i.continuationState==="delegate"&&o.length===7&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",re=n.currentStageCommand==="arch-security"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-design-system"&&i.continuationState==="advance"&&o.length===8&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===7&&E(o.slice(0,7),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security"&&u(o[7])&&E(o[7].completionEvidence,n.completionEvidence)&&E(o[7].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",w=n.currentStageCommand==="arch-design-system"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-design-system"&&i.continuationState==="delegate"&&o.length===8&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",$=n.currentStageCommand==="arch-design-system"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-ux-design"&&i.continuationState==="advance"&&o.length===9&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===8&&E(o.slice(0,8),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system"&&u(o[8])&&E(o[8].completionEvidence,n.completionEvidence)&&E(o[8].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",W=n.currentStageCommand==="arch-ux-design"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-ux-design"&&i.continuationState==="delegate"&&o.length===9&&E(o,n.acceptedStages)&&r?.nextAction==="blocked",j=n.currentStageCommand==="arch-ux-design"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-performance"&&i.continuationState==="advance"&&o.length===10&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===9&&E(o.slice(0,9),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system,arch-ux-design"&&u(o[9])&&E(o[9].completionEvidence,n.completionEvidence)&&E(o[9].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",V=n.currentStageCommand==="arch-performance"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-performance"&&i.continuationState==="delegate"&&o.length===10&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",_e=n.currentStageCommand==="arch-performance"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-testing"&&i.continuationState==="advance"&&o.length===11&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===10&&E(o.slice(0,10),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system,arch-ux-design,arch-performance"&&u(o[10])&&E(o[10].completionEvidence,n.completionEvidence)&&E(o[10].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",Y=n.currentStageCommand==="arch-testing"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-testing"&&i.continuationState==="delegate"&&o.length===11&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",O=n.currentStageCommand==="arch-testing"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-infrastructure"&&i.continuationState==="advance"&&o.length===12&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===11&&E(o.slice(0,11),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system,arch-ux-design,arch-performance,arch-testing"&&u(o[11])&&E(o[11].completionEvidence,n.completionEvidence)&&E(o[11].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",U=n.currentStageCommand==="arch-infrastructure"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-infrastructure"&&i.continuationState==="delegate"&&o.length===12&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",at=n.currentStageCommand==="arch-infrastructure"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="arch-review"&&i.continuationState==="advance"&&o.length===13&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===12&&E(o.slice(0,12),n.acceptedStages)&&o.map(k=>u(k)?k.stageCommand:null).join(",")==="arch-prd,arch-architecture,arch-fitness-functions,arch-api-contracts,generate-pacts,arch-api-integrations,arch-database,arch-security,arch-design-system,arch-ux-design,arch-performance,arch-testing,arch-infrastructure"&&u(o[12])&&E(o[12].completionEvidence,n.completionEvidence)&&E(o[12].validationEvidence,n.validationEvidence)&&r?.nextAction==="resume",Te=n.currentStageCommand==="arch-review"&&n.continuationState==="advance"&&i?.currentStageCommand==="arch-review"&&i.continuationState==="delegate"&&o.length===13&&E(o,n.acceptedStages)&&r?.nextAction==="delegate",me=n.currentStageCommand==="arch-review"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&n.reviewDecision===void 0&&i?.currentStageCommand==="arch-review"&&i.continuationState==="ask-user"&&o.length===13&&E(o,n.acceptedStages)&&E(i.questionIds,["ARCH-REVIEW-A09-APPROVAL"])&&E(i.completionEvidence,n.completionEvidence)&&E(i.validationEvidence,n.validationEvidence)&&r?.nextAction==="ask-user",At=n.currentStageCommand==="arch-review"&&n.continuationState==="ask-user"&&n.childStatus==="succeeded"&&u(n.reviewDecision)&&n.reviewDecision.decision==="approved"&&E(n.questionIds,["ARCH-REVIEW-A09-APPROVAL"])&&i?.currentStageCommand==="update-memory"&&i.continuationState==="advance"&&o.length===14&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===13&&E(o.slice(0,13),n.acceptedStages)&&u(o[13])&&o[13].stageCommand==="arch-review"&&E(o[13].completionEvidence,n.completionEvidence)&&E(o[13].validationEvidence,n.validationEvidence)&&E(i.reviewDecision,n.reviewDecision)&&r?.nextAction==="resume",it=n.currentStageCommand==="update-memory"&&n.continuationState==="advance"&&u(n.reviewDecision)&&n.reviewDecision.decision==="approved"&&i?.currentStageCommand==="update-memory"&&i.continuationState==="delegate"&&o.length===14&&E(o,n.acceptedStages)&&E(i.reviewDecision,n.reviewDecision)&&r?.nextAction==="delegate",z=n.currentStageCommand==="update-memory"&&n.continuationState==="delegate"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="update-memory"&&i.continuationState==="complete"&&o.length===15&&Array.isArray(n.acceptedStages)&&n.acceptedStages.length===14&&E(o.slice(0,14),n.acceptedStages)&&u(o[14])&&o[14].targetEpicId===n.targetEpicId&&o[14].stageCommand==="update-memory"&&E(o[14].completionEvidence,n.completionEvidence)&&E(o[14].validationEvidence,n.validationEvidence)&&E(i.reviewDecision,n.reviewDecision)&&E(i.completionEvidence,n.completionEvidence)&&E(i.validationEvidence,n.validationEvidence)&&Bt(i.terminalMemoryCheckpoint,n)!==null&&E(i.terminalMemoryCheckpoint,n.terminalMemoryCheckpoint)&&r?.nextAction==="complete",oe=n.currentStageCommand==="update-memory"&&n.continuationState==="complete"&&n.childStatus==="succeeded"&&i?.currentStageCommand==="update-memory"&&i.continuationState==="complete"&&o.length===15&&E(o,n.acceptedStages)&&E(i.reviewDecision,n.reviewDecision)&&E(i.completionEvidence,n.completionEvidence)&&E(i.validationEvidence,n.validationEvidence)&&Bt(i.terminalMemoryCheckpoint,n)&&E(i.terminalMemoryCheckpoint,n.terminalMemoryCheckpoint)&&r?.nextAction==="complete",ce=r?ya(n,r,Bt(n.terminalMemoryCheckpoint,n)&&E(i?.terminalMemoryCheckpoint,n.terminalMemoryCheckpoint)):void 0;if(e.metadata.mode!=="arch-plan"||e.metadata.resolvedTrigger!=="arch-plan"||!u(t)||!u(a)||t.owner!=="root"||t.currentStageCommand!==a.currentStageCommand||t.continuationState!==a.continuationState||a.owner!=="root"||a.evidencePolicy!=="v2-required"||a.targetEpicId!==n.targetEpicId||a.graphRevision!==n.graphRevision||a.graphSource!==n.graphSource||!/^P[1-9][0-9]{0,11}$/.test(String(a.targetEpicId))||!/^[a-f0-9]{64}$/.test(String(a.graphRevision))||!Array.isArray(a.acceptedStages)||!(ce||s||p||m||S||_||l||v||h||C||N||L||P||M||I||b||re||w||$||W||j||V||_e||Y||O||U||at||Te||me||At||it||z||oe)||!u(a.accounting)||a.accounting.charged!==!0||!E(pn(a),a))throw new Error("architecture-root-checkpoint-invalid");const Qe=X(e.projectRoot,".neocortex"),Oe=X(Qe,"state.json"),mt=X(Qe,"state.json.architecture.lock"),We=Gt(mt,"wx",384);let ee;try{const k=Nt(Oe);if(!k.isFile()||k.isSymbolicLink())throw new Error("architecture-root-state-binding-invalid");const Pe=Ve(Oe,"utf8");if(Ge("sha256").update(Pe).digest("hex")!==e.sourceStateSha256)throw new Error("architecture-root-state-conflict");const J=JSON.parse(Pe),yt=u(J)&&u(J.archPlan)?J.archPlan:{};if(!u(J)||!u(J.epics)||!Object.hasOwn(J.epics,a.targetEpicId)||(e.initialBinding?yt.execution!==void 0||n.graphSource!=="committed-epic-v1":!E(pn(yt.execution),n))||u(J.scope)&&J.scope.kind==="projected")throw new Error("architecture-root-state-binding-invalid");if(n.graphSource==="committed-epic-v1"&&n.graphRevision!==$t(e.projectRoot,String(n.targetEpicId)))throw new Error("architecture-root-epic-binding-invalid");if(oe||ce==="complete-replay"){const Yt={...n,continuationState:"delegate",acceptedStages:n.acceptedStages.slice(0,Xn(n))};if(!E(n.terminalMemoryCheckpoint,_n(e.projectRoot,Yt)))throw new Error("architecture-root-state-conflict");return}const Xe=en(),ye=je("git",["rev-parse","--git-common-dir"],{cwd:e.projectRoot,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim(),K=wa(ye)?nr(ye):nr(e.projectRoot,ye);if(Ca(K)!==K)throw new Error("architecture-root-backup-dir-invalid");const bt=X(K,"neocortex-architecture");Wt(bt,{recursive:!0,mode:448});const T=Nt(bt);if(!T.isDirectory()||T.isSymbolicLink()||T.uid!==process.getuid?.()||(T.mode&63)!==0)throw new Error("architecture-root-backup-dir-invalid");const xt=X(bt,`state-backup-${Xe}.json`),g=Gt(xt,"wx",384);try{tn(g,Pe),nn(g)}finally{Ht(g)}const Tt=Gt(bt,"r");try{nn(Tt)}finally{Ht(Tt)}const ge={...J,archPlan:{...yt,execution:a}};ee=X(Qe,`state.json.architecture-tmp-${Xe}`);const ot=Gt(ee,"wx",384);try{tn(ot,`${JSON.stringify(ge,null,2)}
|
|
8
|
+
`),nn(ot)}finally{Ht(ot)}if((z||ce==="complete")&&!E(n.terminalMemoryCheckpoint,_n(e.projectRoot,n)))throw new Error("architecture-root-state-conflict");if(n.graphSource==="committed-epic-v1"&&n.graphRevision!==$t(e.projectRoot,String(n.targetEpicId)))throw new Error("architecture-root-epic-binding-invalid");tr(ee,Oe),ee=void 0;const Q=Gt(Qe,"r");try{nn(Q)}finally{Ht(Q)}}finally{if(ee)try{Rn(ee)}catch{}Ht(We),Rn(mt)}}function un(e,t){if(!u(e))return;const a={};for(const r of t){const i=e[r];if(typeof i=="boolean")a[r]=i;else if(typeof i=="number"&&Number.isFinite(i))a[r]=i;else if(typeof i=="string"){const n=ne(i);n&&(a[r]=n)}}return Object.keys(a).length>0?a:void 0}function ln(e){return e==="epic"||e==="story"?e:void 0}function Mr(e){if(!u(e)||e.schemaVersion!==1)return;const t=Z(e.ownerStoryId),a=Z(e.sessionId),r=Z(e.idempotencyKey),i=Be(e.acquiredAt),n=Be(e.expiresAt);if(!(!t||!a||!r||!i||!n||Date.parse(n)<=Date.parse(i)))return{schemaVersion:1,ownerStoryId:t,sessionId:a,idempotencyKey:r,acquiredAt:i,expiresAt:n}}function jr(e){if(!u(e)||e.schemaVersion!==1)return;const t=Z(e.storyId),a=Z(e.epicId),r=Ce(e.branch),i=x(e.baseSha),n=x(e.headSha),o=Z(e.idempotencyKey),s=Be(e.recordedAt),p=Ue(e.commits).map(x).filter(L=>!!L).slice(0,256),m=Ue(e.receiptRefs).map(ht).filter(L=>!!L).slice(0,256),S=e.dispatchId===void 0?void 0:Z(e.dispatchId),_=e.bundleId===void 0?void 0:Z(e.bundleId),l=e.bundleDigest===void 0?void 0:x(e.bundleDigest),v=e.graphRevision===void 0?void 0:x(e.graphRevision),f=e.claimRevision===void 0?void 0:Z(e.claimRevision),h=to(e.qaReceipt),C=no(e.reviewReceipt),N=e.rootMemoryEffect===void 0?void 0:Ri(e.rootMemoryEffect)?e.rootMemoryEffect:void 0;if(!(!t||!a||!t.startsWith(`${a}.`)||!r||!i||!n||i===n||!o||!s||p.length===0||m.length===0||!Array.isArray(e.commits)||p.length!==e.commits.length||e.commits.length>256||!Array.isArray(e.receiptRefs)||m.length!==e.receiptRefs.length||e.receiptRefs.length>256||e.dispatchId!==void 0&&!S||e.bundleId!==void 0&&!_||e.bundleDigest!==void 0&&(!l||l.length!==64)||e.graphRevision!==void 0&&(!v||v.length!==64)||e.claimRevision!==void 0&&!f||e.rootMemoryEffect!==void 0&&(!N||N.storyId!==t||N.epicId!==a||N.executionBranch!==r||N.sourceHeadSha!==i||N.childClaimRevision!==f)||e.qaVerdict!=="passed"&&e.qaVerdict!=="blocked"||!["approved","changes-requested","pending"].includes(String(e.reviewVerdict))||!h||e.reviewVerdict!=="pending"&&!C||e.reviewVerdict==="pending"&&C||h.verdict!==e.qaVerdict||C&&C.verdict!==e.reviewVerdict||!Br(h,{storyId:t,epicId:a,baseSha:i,headSha:n,bundleDigest:l,graphRevision:v})||C&&(!Br(C,{storyId:t,epicId:a,baseSha:i,headSha:n,bundleDigest:l,graphRevision:v})||C.qaReceiptRef!==h?.receiptRef||C.receiptRef===h?.receiptRef)||!m.includes(String(h.receiptRef))||C&&(!m.includes(String(C.receiptRef))||Date.parse(String(C.reviewedAt))<Date.parse(String(h.checkedAt)))))return{schemaVersion:1,storyId:t,epicId:a,branch:r,baseSha:i,headSha:n,idempotencyKey:o,...S?{dispatchId:S}:{},..._?{bundleId:_}:{},...l?{bundleDigest:l}:{},...v?{graphRevision:v}:{},...f?{claimRevision:f}:{},...N?{rootMemoryEffect:structuredClone(N)}:{},qaVerdict:e.qaVerdict,reviewVerdict:e.reviewVerdict,...h?{qaReceipt:h}:{},...C?{reviewReceipt:C}:{},recordedAt:s,commits:p,receiptRefs:m}}function to(e){if(!u(e)||e.schemaVersion!==1||e.kind!=="story_qa_evidence"||e.producer!=="local-yolo-tdd"||e.evidenceVersion!==void 0&&e.evidenceVersion!=="git-immutable-v1"&&e.evidenceVersion!=="p205-execution-v2"||!["passed","blocked"].includes(String(e.verdict)))return;const t=Z(e.storyId),a=Z(e.epicId),r=x(e.baseSha),i=x(e.headSha),n=x(e.bundleDigest),o=x(e.graphRevision),s=x(e.sourceEvidenceDigest),p=Be(e.checkedAt),m=ht(e.receiptRef),S=e.evidenceVersion==="p205-execution-v2"&&e.contract==="P205-CI-02"?e.contract:void 0,_=e.evidenceVersion==="p205-execution-v2"&&e.command==="node scripts/test-root.mjs --gate complete"?e.command:void 0,l=e.evidenceVersion==="p205-execution-v2"?x(e.manifestDigest):void 0,v=e.evidenceVersion==="p205-execution-v2"?x(e.resultDigest):void 0,f=e.evidenceVersion==="p205-execution-v2"?Ue(e.gateIds).map(Z).filter(h=>!!h).slice(0,64):void 0;if(!(!t||!a||!r||!i||!n||n.length!==64||!o||o.length!==64||!s||s.length!==64||!p||!m||e.evidenceVersion==="p205-execution-v2"&&(!S||_!=="node scripts/test-root.mjs --gate complete"||!l||l.length!==64||!v||v.length!==64||!Array.isArray(e.gateIds)||!f||f.length===0||f.length!==e.gateIds.length)))return{schemaVersion:1,kind:"story_qa_evidence",producer:"local-yolo-tdd",...e.evidenceVersion?{evidenceVersion:e.evidenceVersion}:{},storyId:t,epicId:a,...e.evidenceVersion==="p205-execution-v2"?{contract:S,command:_,manifestDigest:l,gateIds:f,resultDigest:v}:{},baseSha:r,headSha:i,bundleDigest:n,graphRevision:o,sourceEvidenceDigest:s,verdict:e.verdict,checkedAt:p,receiptRef:m}}function Vr(e){if(!u(e)||e.schemaVersion!==1||e.kind!=="story_checkpoint_physical_verification"||e.producer!=="client-p205-transient-v1"||e.publicSafe!==!0||e.verdict!=="verified"&&e.verdict!=="rejected")return;const t=Z(e.storyId),a=Z(e.epicId),r=Ce(e.branch),i=x(e.baseSha),n=x(e.headSha),o=x(e.aggregateHeadSha),s=x(e.commitBodyDigest),p=x(e.changedPathsDigest),m=e.claimVerification==="canonical"||e.claimVerification==="legacy-migration"?e.claimVerification:void 0,S=x(e.effectiveClaimRevision),_=e.command==="node scripts/test-root.mjs --gate complete"?e.command:void 0,l=x(e.manifestDigest),v=Ue(e.gateIds).map(Z).filter(M=>!!M).slice(0,64),f=x(e.resultDigest),h=x(e.graphRevision),C=x(e.executionEvidenceDigest),N=x(e.sourceEvidenceDigest),L=Be(e.verifiedAt),P=Ue(e.reasonCodes).map(Z).filter(M=>!!M).slice(0,16);if(!(!t||!a||!r||!i||i.length<40||!n||n.length<40||!o||o.length<40||!s||s.length!==64||!p||p.length!==64||!m||!S||S.length!==64||!_||!l||l.length!==64||!Array.isArray(e.gateIds)||v.length!==e.gateIds.length||!f||f.length!==64||!h||h.length!==64||!C||C.length!==64||!N||N.length!==64||!L||P.length===0||e.verdict==="verified"&&(v.length===0||!P.includes("checkpoint-p205-transient-verified"))))return{schemaVersion:1,kind:"story_checkpoint_physical_verification",producer:"client-p205-transient-v1",storyId:t,epicId:a,branch:r,baseSha:i,headSha:n,aggregateHeadSha:o,commitBodyDigest:s,changedPathsDigest:p,claimVerification:m,effectiveClaimRevision:S,command:_,manifestDigest:l,gateIds:v,resultDigest:f,graphRevision:h,executionEvidenceDigest:C,sourceEvidenceDigest:N,verifiedAt:L,verdict:e.verdict,reasonCodes:P,publicSafe:!0}}function Ur(e){const t=["schemaVersion","kind","producer","storyId","epicId","branch","baseSha","headSha","graphRevision","effectiveClaimRevision","sourceEvidenceDigest","verifiedAt","reasonCodes","integrationAuthorized","publicSafe"];if(!u(e)||Object.keys(e).some(l=>!t.includes(l))||e.schemaVersion!==1||e.kind!=="story_scheduling_checkpoint_evidence"||e.producer!=="client-git-physical-v1"||e.integrationAuthorized!==!1||e.publicSafe!==!0)return;const a=Z(e.storyId),r=Z(e.epicId),i=Ce(e.branch),n=x(e.baseSha),o=x(e.headSha),s=x(e.graphRevision),p=x(e.effectiveClaimRevision),m=x(e.sourceEvidenceDigest),S=Be(e.verifiedAt),_=Ue(e.reasonCodes).map(Z).filter(l=>!!l);if(!(!a||!r||!i||!n||n.length<40||!o||o.length<40||!s||s.length!==64||!p||p.length!==64||!m||m.length!==64||!S||!Array.isArray(e.reasonCodes)||_.length!==1||_[0]!=="checkpoint-git-scheduling-verified"))return{schemaVersion:1,kind:"story_scheduling_checkpoint_evidence",producer:"client-git-physical-v1",storyId:a,epicId:r,branch:i,baseSha:n,headSha:o,graphRevision:s,effectiveClaimRevision:p,sourceEvidenceDigest:m,verifiedAt:S,reasonCodes:_,integrationAuthorized:!1,publicSafe:!0}}function no(e){if(!u(e)||e.schemaVersion!==1||e.kind!=="story_review_evidence"||e.producer!=="root-commit-range-review"||!["approved","changes-requested"].includes(String(e.verdict)))return;const t=Z(e.storyId),a=Z(e.epicId),r=x(e.baseSha),i=x(e.headSha),n=x(e.bundleDigest),o=x(e.graphRevision),s=x(e.sourceEvidenceDigest),p=ht(e.qaReceiptRef),m=Be(e.reviewedAt),S=ht(e.receiptRef);if(!(!t||!a||!r||!i||!n||n.length!==64||!o||o.length!==64||!s||s.length!==64||!p||!m||!S))return{schemaVersion:1,kind:"story_review_evidence",producer:"root-commit-range-review",storyId:t,epicId:a,baseSha:r,headSha:i,bundleDigest:n,graphRevision:o,sourceEvidenceDigest:s,qaReceiptRef:p,verdict:e.verdict,reviewedAt:m,receiptRef:S}}function Br(e,t){return["storyId","epicId","baseSha","headSha","bundleDigest","graphRevision"].every(a=>e[a]===t[a])}function $r(e){if(!u(e)||e.schemaVersion!==1||e.capturedFromCurrentCheckout!==!0)return;const t=Ce(e.originBranch),a=x(e.originHeadSha),r=Ce(e.executionBranch),i=Be(e.capturedAt);if(!(!t||!a||a.length<40||!r||!i||t===r))return{schemaVersion:1,originBranch:t,originHeadSha:a,executionBranch:r,capturedFromCurrentCheckout:!0,capturedAt:i}}function Wr(e){if(!u(e)||e.schemaVersion!==1||e.verdict!=="passed")return;const t=x(e.executionHeadSha),a=x(e.graphRevision),r=Be(e.checkedAt),i=ht(e.receiptRef),n=Ue(e.gateIds).map(Z).filter(S=>!!S).slice(0,128),o=e.evidenceVersion==="p205-execution-v2"&&e.producer==="local-yolo-tdd"&&e.contract==="P205-CI-02"&&e.command==="node scripts/test-root.mjs --gate complete",s=e.evidenceVersion===void 0&&e.producer===void 0&&e.contract===void 0&&e.command===void 0&&e.manifestDigest===void 0&&e.resultDigest===void 0,p=o?x(e.manifestDigest):void 0,m=o?x(e.resultDigest):void 0;if(!(!t||t.length<40||!a||a.length!==64||!r||!i||n.length===0||!Array.isArray(e.gateIds)||n.length!==e.gateIds.length||e.gateIds.length>128||!s&&!o||o&&(!p||p.length!==64||!m||m.length!==64)))return{schemaVersion:1,...o?{evidenceVersion:"p205-execution-v2",producer:"local-yolo-tdd",contract:"P205-CI-02",command:"node scripts/test-root.mjs --gate complete",manifestDigest:p,resultDigest:m}:{},verdict:"passed",executionHeadSha:t,graphRevision:a,checkedAt:r,receiptRef:i,gateIds:n}}function jn(e){if(!u(e)||e.schemaVersion!==1)return;const t=un(e,["schemaVersion","kind","storyId","epicId","baseSha","headSha","originalBaseSha","originalHeadSha","gitPullRequest","preservesLaterCommits","historyRewrite","recordedAt"])??{},a=Ue(e.receiptRefs).map(ht).filter(i=>!!i).slice(0,256),r=Ue(e.revertCommits).map(ne).filter(i=>!!i).slice(0,256);return{...t,...a.length?{receiptRefs:a}:{},...r.length?{revertCommits:r}:{}}}function ro(e){if(!(!u(e)||Object.keys(e).sort().join(",")!=="gitPullRequest,headSha,kind,prNumber,reviewEvidenceDigest,schemaVersion"||e.schemaVersion!==1||e.kind!=="git-pull-request"||e.gitPullRequest!==!0||!Number.isSafeInteger(e.prNumber)||Number(e.prNumber)<=0||typeof e.headSha!="string"||!/^[a-f0-9]{40}$/.test(e.headSha)||typeof e.reviewEvidenceDigest!="string"||!/^[a-f0-9]{64}$/.test(e.reviewEvidenceDigest)))return{schemaVersion:1,kind:"git-pull-request",gitPullRequest:!0,prNumber:e.prNumber,headSha:e.headSha,reviewEvidenceDigest:e.reviewEvidenceDigest}}function Gr(e){if(!u(e)||e.schemaVersion!==1||e.publicSafe!==!0)return;const t=Z(e.epicId),a=Ce(e.executionBranch),r=Ce(e.originBranch),i=x(e.baseSha),n=x(e.executionHeadSha),o=e.mergeSha===void 0?void 0:x(e.mergeSha),s=e.pushedSha===void 0?void 0:x(e.pushedSha),p=Z(e.idempotencyKey),m=Be(e.attemptStartedAt),S=e.completedAt===void 0?void 0:Be(e.completedAt),_=Ue(e.localGateReceiptRefs).map(ht).filter(h=>!!h).slice(0,256),l=Ue(e.reasonCodes).map(Z).filter(h=>!!h).slice(0,64),v=io(e.candidateQa),f=ao(e.providerGuard);if(!(!t||!a||!r||!i||!n||!p||!m||_.length===0||l.length===0||!["direct","single_pr"].includes(String(e.strategy))||!["prepared","merged","pushed","denied_external_gate","blocked_local_or_repo"].includes(String(e.physicalStatus))||typeof e.retryEligible!="boolean"||e.providerGuard!==void 0&&!f||f&&(e.strategy!=="single_pr"||e.physicalStatus!=="pushed"||f.prHeadSha!==o||f.originHeadSha!==i)))return{schemaVersion:1,epicId:t,executionBranch:a,originBranch:r,baseSha:i,executionHeadSha:n,...o?{mergeSha:o}:{},...s?{pushedSha:s}:{},strategy:e.strategy,...lt(e.prNumber)?{prNumber:lt(e.prNumber)}:{},physicalStatus:e.physicalStatus,localGateReceiptRefs:_,idempotencyKey:p,attemptStartedAt:m,...v?{candidateQa:v}:{},...f?{providerGuard:f}:{},...S?{completedAt:S}:{},retryEligible:e.retryEligible,reasonCodes:l,publicSafe:!0}}function ao(e){if(!u(e)||e.schemaVersion!==1||e.provider!=="github"||e.publicSafe!==!0)return;const t=String(e.mode),a=String(e.source),r=t==="recovered_exact_tree"?a==="physical_recovery":t==="strict_up_to_date_expected_head"&&["branch_protection","ruleset","branch_protection_and_ruleset"].includes(a),i=x(e.prHeadSha),n=x(e.originHeadSha),o=Be(e.checkedAt);if(!(!r||!i||!n||!o))return{schemaVersion:1,provider:"github",mode:t,source:a,prHeadSha:i,originHeadSha:n,checkedAt:o,publicSafe:!0}}function io(e){if(!u(e)||e.schemaVersion!==1||e.kind!=="epic_merge_candidate_qa"||e.contract!=="P205-CI-02"||e.command!==Ci)return;const a=Object.fromEntries(["originHeadSha","executionHeadSha","mergeSha","treeSha","graphRevision","manifestDigest","resultDigest"].map(o=>[o,x(e[o])])),r=Be(e.checkedAt),i=ht(e.receiptRef),n=Ue(e.gateIds).filter(o=>/^[a-z0-9-]+$/.test(o)).slice(0,128);if(!(Object.values(a).some(o=>!o)||!r||!i||n.length===0))return{schemaVersion:1,kind:e.kind,contract:e.contract,command:e.command,...a,checkedAt:r,receiptRef:i,gateIds:n}}function oo(e){if(!u(e))return;const t={...ne(e.active_epic_id??e.activeEpicId)?{active_epic_id:ne(e.active_epic_id??e.activeEpicId)}:{},...ne(e.active_story_id??e.activeStoryId)?{active_story_id:ne(e.active_story_id??e.activeStoryId)}:{},...ne(e.active_step_id??e.activeStepId)?{active_step_id:ne(e.active_step_id??e.activeStepId)}:{},...ne(e.session_id??e.sessionId)?{session_id:ne(e.session_id??e.sessionId)}:{},...ne(e.started_at??e.startedAt)?{started_at:ne(e.started_at??e.startedAt)}:{}};return Object.keys(t).length>0?t:void 0}function co(e){const t=un(e.completionEvidence??e.completion_evidence,["prNumber","pr_number","prState","pr_state","pullRequestState","merged","mergedAt","issueNumber","issue_number","issueState","issue_state","closedAt"]),a=un(e.issueCloseAudit??e.issue_close_audit,["schema_version","event","storyId","epicId","issueNumber","closedAt","publicSafe","rawLogStorage"]),r=un(e.scopedCiEvidence??e.scoped_ci_evidence,["schema_version","storyId","epicId","prNumber","finalState","publicSafe","rawLogStorage"]);return{...typeof e.merged=="boolean"?{merged:e.merged}:{},...typeof e.safeToContinueYoloop=="boolean"?{safeToContinueYoloop:e.safeToContinueYoloop}:{},...typeof e.mergeBlockedRemotely=="boolean"?{mergeBlockedRemotely:e.mergeBlockedRemotely}:{},...ne(e.physicalMergeStatus)?{physicalMergeStatus:ne(e.physicalMergeStatus)}:{},...ne(e.pr_state??e.prState??e.pull_request_state??e.pullRequestState)?{pr_state:ne(e.pr_state??e.prState??e.pull_request_state??e.pullRequestState)}:{},...ne(e.issue_state??e.issueState??e.workflow_issue_state)?{issue_state:ne(e.issue_state??e.issueState??e.workflow_issue_state)}:{},...lt(e.issue_number??e.issueNumber)?{issue_number:lt(e.issue_number??e.issueNumber)}:{},...t?{completionEvidence:t}:{},...a?{issueCloseAudit:a}:{},...r?{scopedCiEvidence:r}:{}}}class gt extends Error{reasonCode;constructor(t){super(t),this.name="StateSnapshotIntegrityError",this.reasonCode=t}}const so=new Set(["yolo","yoloop","finalize-epic","audit"]);function Hr(e){return typeof e=="string"&&so.has(e)}function Fr(e,t={}){const a=X(e,".neocortex","state.json");if(!Ot(a))throw new gt("git-lifecycle-state-missing");let r;try{r=JSON.parse(Ve(a,"utf8"))}catch{throw new gt("git-lifecycle-state-corrupt")}if(!u(r)||!u(r.epics)||!u(r.stories))throw new gt("git-lifecycle-state-shape-invalid");const i=Object.values(r.epics).some(n=>u(n)&&(n.branch_mode==="epic"||Ce(n.execution_branch)!==void 0));if(i)try{on(e,{required:!0})}catch(n){const o=n instanceof Error&&/^git-lifecycle-/.test(n.message)?n.message:"git-lifecycle-runtime-invalid";if(t.allowMissingRuntime&&o==="git-lifecycle-runtime-missing")return{lifecycleDeclared:!0,runtimeMissing:!0};throw new gt(o)}return{lifecycleDeclared:i,runtimeMissing:!1}}function hn(e,t={}){const a=X(e,".neocortex","state.json");if(!Ot(a)){if(t.epicAware&&!t.projectless)throw new gt("git-lifecycle-state-missing");return{config:{project_name:"unknown",default_branch:"main",language:"pt-BR"},stories:{},epics:{}}}let r,i;try{const f=Ve(a,"utf-8");i=Ge("sha256").update(f).digest("hex");const h=JSON.parse(f),C=u(h.epics)?h.epics:{},N=Object.values(C).some(b=>u(b)&&(b.branch_mode==="epic"||Ce(b.execution_branch)!==void 0)),L=on(e,{required:!!(t.epicAware&&N&&!t.projectless)});r=vr(h,L);const P=u(r.stories)?r.stories:{},M=u(r.epics)?r.epics:{},I=u(h.stories)?h.stories:{};for(const[b,re]of Object.entries(P)){const w=u(re)?re:void 0;if(!w?.checkpoint)continue;const $=typeof w.epic_id=="string"?w.epic_id:b.split(".")[0],W=u(M[$])?M[$]:void 0,j=Ce(W?.execution_branch);if(!j)continue;const V=Ei(e,w.checkpoint,b,$,j,t.p205Authorities?.[b],Cr(b,w,u(w.checkpoint)?w.checkpoint:void 0));if(V.kind==="integration-authorized")w.checkpoint_verification=V.verification,delete w.scheduling_checkpoint_evidence;else if(V.kind==="scheduling-only")w.scheduling_checkpoint_evidence=V.evidence,delete w.checkpoint,delete w.checkpoint_verification;else if(V.kind==="rejected"){w.checkpoint_verification=V.verification,delete w.scheduling_checkpoint_evidence;const _e=u(I[b])?I[b]:void 0;if(delete w.checkpoint,L.stories[b]?.checkpoint!==void 0)for(const Y of["status","last_step","steps_completed"])_e&&Object.prototype.hasOwnProperty.call(_e,Y)?w[Y]=structuredClone(_e[Y]):delete w[Y];["done","completed","merged"].includes(String(w.status).toLowerCase())&&(w.status="blocked")}}}catch(f){if(t.epicAware&&!t.projectless){const h=f instanceof Error&&/^git-lifecycle-/.test(f.message)?f.message:"git-lifecycle-state-corrupt";throw new gt(h)}return{config:{project_name:"unknown",default_branch:"main",language:"pt-BR"},stories:{},epics:{}}}try{const f=zi(r);f.length>0&&Ji(f)}catch{}const n=r.config??r.project??{},o=r.stories??{},s={};for(const[f,h]of Object.entries(o)){const C=u(h.review_request)&&h.review_request.kind==="git-pull-request"?ro(h.review_request):jn(h.review_request);s[f]={id:h.id??f,title:h.title,epic_id:h.epic_id,status:h.status??"backlog",...Lr(h.source)?{source:Lr(h.source)}:{},steps_completed:h.steps_completed??[],last_step:h.last_step??null,branch_name:h.branch_name??null,pr_number:h.pr_number,...ln(h.branch_mode)?{branch_mode:ln(h.branch_mode)}:{},...jr(h.checkpoint)?{checkpoint:jr(h.checkpoint)}:{},...Vr(h.checkpoint_verification)?{checkpoint_verification:Vr(h.checkpoint_verification)}:{},...Ur(h.scheduling_checkpoint_evidence)?{scheduling_checkpoint_evidence:Ur(h.scheduling_checkpoint_evidence)}:{},...C?{review_request:C}:{},...jn(h.rollback_receipt)?{rollback_receipt:jn(h.rollback_receipt)}:{},...lt(h.workflow_issue)?{workflow_issue:lt(h.workflow_issue)}:{},...co(h),depends_on:Dr(h.depends_on),files_to_modify:Ue(h.files_to_modify),...Zi(h),risk:typeof h.risk=="string"?h.risk:void 0,blast_radius:typeof h.blast_radius=="number"?h.blast_radius:void 0}}const p=r.epics??{},m={};for(const[f,h]of Object.entries(p)){const C=Yi(h.lifecycle_classification),N=Xi(h.createEpicPlanning,f);let L,P,M,I;if(N&&u(h.createEpicPlanningClaim)&&typeof h.createEpicPlanningClaim.claimId=="string"&&u(h.createEpicPlanningPhysical))try{rr(r,h.createEpicPlanningClaim.claimId,f,!0),L=JSON.parse(JSON.stringify(h.createEpicPlanningPhysical))}catch{}if(L&&u(h.createEpicPlanningClaim)&&typeof h.createEpicPlanningClaim.claimId=="string"&&u(h.createEpicPlanningResearchPhysical))try{ar(r,h.createEpicPlanningClaim.claimId,f),P=JSON.parse(JSON.stringify(h.createEpicPlanningResearchPhysical))}catch{}if(t.verifyPlanningGeneration&&N&&h.status==="generated"&&u(h.createEpicPlanningClaim)&&typeof h.createEpicPlanningClaim.claimId=="string"&&u(h.createEpicPlanningGenerationPhysical))try{if(ba(e,h.createEpicPlanningClaim.claimId,f).stateSha256!==i)throw new Error("planning-generation-snapshot-raced");M=JSON.parse(JSON.stringify(h.createEpicPlanningGenerationPhysical)),L=JSON.parse(JSON.stringify(h.createEpicPlanningPhysical)),P=JSON.parse(JSON.stringify(h.createEpicPlanningResearchPhysical))}catch{}if(M&&u(h.createEpicPlanningClaim)&&typeof h.createEpicPlanningClaim.claimId=="string")try{const b=ir(e,h.createEpicPlanningClaim.claimId,f);if(b.stateSha256!==i)throw new Error("planning-memory-snapshot-raced");I=JSON.parse(JSON.stringify(b))}catch{}m[f]={id:h.id??f,title:h.title,...N?{createEpicPlanning:N}:{},...L?{createEpicPlanningPhysical:L}:{},...P?{createEpicPlanningResearchPhysical:P}:{},...M?{createEpicPlanningGenerationPhysical:M}:{},...I?{createEpicPlanningMemoryPhysical:I}:{},status:h.status,stories:h.stories,total_stories:h.total_stories,completed_stories:h.completed_stories,depends_on:Dr(h.depends_on),...ln(h.branch_mode)?{branch_mode:ln(h.branch_mode)}:{},...Ce(h.execution_branch)?{execution_branch:Ce(h.execution_branch)}:{},...Ce(h.origin_branch)?{origin_branch:Ce(h.origin_branch)}:{},...Mr(h.branch_lease)?{branch_lease:Mr(h.branch_lease)}:{},...$r(h.origin_binding)?{origin_binding:$r(h.origin_binding)}:{},...Wr(h.aggregate_qa_receipt)?{aggregate_qa_receipt:Wr(h.aggregate_qa_receipt)}:{},...lt(h.pr_number)?{pr_number:lt(h.pr_number)}:{},...ne(h.physicalMergeStatus)?{physicalMergeStatus:ne(h.physicalMergeStatus)}:{},...x(h.graph_revision)?{graph_revision:x(h.graph_revision)}:{},...Gr(h.terminal_git_receipt)?{terminal_git_receipt:Gr(h.terminal_git_receipt)}:{},...C?{lifecycle_classification:C}:{}}}const S=oo(r.current_session??r.currentSession),_=u(r.archPlan)?pn(r.archPlan.execution):void 0,l=r.epic_id_ledger,v=Array.isArray(l?.reserved_ids)?[...new Set(l.reserved_ids.filter(f=>typeof f=="string"&&/^P\d+$/.test(f)))].slice(0,2048):[];return{schema_version:typeof r.schema_version=="number"?r.schema_version:void 0,config:{project_name:n.project_name??n.name??"unknown",default_branch:n.default_branch??"main",language:n.language??"pt-BR",yolo_mode:n.yolo_mode,user_name:n.user_name,worktree_base:n.worktree_base,max_parallel_stories:n.max_parallel_stories,project_id:typeof n.project_id=="string"?n.project_id:void 0},stories:s,epics:m,...v.length>0?{epic_id_ledger:{schema_version:1,reserved_ids:v}}:{},...S?{current_session:S}:{},..._?{archPlan:{execution:_}}:{}}}const Vn=[["P222.01","fbc3176b33687b13a8fadf8c7ea7cc06b6b6c500"],["P222.02","c7d3feb9a168f9e15b35516a972c767f3aa357da"],["P222.03","4d9bd4f2a1a3a1dc6399c572eb84b8b74c017806"],["P222.04","66590ef2f706c9d036f42edf5e517b237724f74f"],["P222.05","3ee2662538311e9788796340ed11b65864a8d8d5"],["P222.06","8660d07e3f68503a9ceb24dc138d24f62ab6cb45"],["P222.07","d99c80feacee8ea4033aa3322990147fffa2df91"],["P222.08","1f9e37dc922d87908efefb9595db32d32db30b00"],["P222.09","5ae12e485900992658e346cf3e38568fda1c2eeb"],["P222.10","6c5b8dc4f03d629fea4b62a33f4794af8e27e4f0"],["P222.11","cfe90f2f955c0027c57e4c621141d17912db65cc"],["P222.12","65f253c5cb600a8ee1dd94a1efdfef2fa5cd1629"],["P222.13","1e78c75b393515803a55d1a9b63a7fec23f710c9"],["P222.14","3f3e0bfd247a8581170df2a23c89497b5ae3641e"],["P222.15","1fd6dd25fffa5714d4ffa8b4303735e417f93de6"]],Un="6a41a47ff2521f80c2296ed811b0f0b304c54750",Bn="dbc6d4670b2b7868a01973b1240e24589f1c5b7d",qr="30dccfff07f9c969be11ae1d28e62a09731a0768";function po(e,t){try{const a=t.indexOf(qr);if(a<1||t[a-1]!==Un)return new Map;const r=je("git",["show","--no-patch","--format=%P",qr],{cwd:e,encoding:"utf8",maxBuffer:1024}).trim(),i=je("git",["show","--no-patch","--format=%P",Bn],{cwd:e,encoding:"utf8",maxBuffer:1024}).trim();if(r!==`${Un} ${Bn}`||i!==`${Vn.at(-1)[1]} ${Un}`)return new Map;const n=je("git",["rev-list","--first-parent","--reverse",Bn],{cwd:e,encoding:"utf8",maxBuffer:32*1024*1024}).trim().split(`
|
|
9
|
+
`),o=new Map;let s=-1;for(const[p,[m,S]]of Vn.entries()){const _=n.indexOf(S);if(_<=s)return new Map;s=_,o.set(m,{headSha:S,position:p-Vn.length})}return o}catch{return new Map}}async function uo(e,t,a){if(!Hr(a))return{};if(Va(t,a))return{};try{const r=JSON.parse(Ve(X(e,".neocortex","state.json"),"utf8")),i=on(e,{required:!0}),n=vr(r,i),o=u(n.stories)?n.stories:{},s=u(n.epics)?n.epics:{},p=je("git",["rev-parse","HEAD"],{cwd:e,encoding:"utf8"}).trim(),m=je("git",["symbolic-ref","--quiet","--short","HEAD"],{cwd:e,encoding:"utf8"}).trim(),S=je("git",["rev-list","--first-parent","--reverse",p],{cwd:e,encoding:"utf8",maxBuffer:32*1024*1024}).trim().split(`
|
|
10
|
+
`).filter(Boolean),_=new Map(S.map((I,b)=>[I,b])),l=po(e,S),v=t.match(/(?:^|\s)@?docs\/stories\/([A-Za-z][A-Za-z0-9._-]*)\.story\.md(?:\s|$)/)?.[1],f=a==="yoloop"?t.match(/(?:^|[\s/@])epic-(P[1-9][0-9]*)\.md(?:\s|$)/i)?.[1]?.toUpperCase():void 0,h=new Set,C=Object.entries(o).flatMap(([I,b])=>{if(v&&I!==v)return[];const re=u(b)?b:void 0,w=u(re?.checkpoint)?re.checkpoint:void 0;if(!w)return[];const $=typeof re?.epic_id=="string"?re.epic_id:I.split(".")[0];if(f&&$!==f)return[];const W=x(w?.headSha),j=$==="P222"?l.get(I):void 0,V=_.get(W??"")??(j&&j.headSha===W?j.position:void 0);if(!W||W.length<40||V===void 0)return h.add($),[];const _e=u(s[$])?s[$]:void 0;if(_e?.branch_mode!=="epic"||Ce(_e.execution_branch)!==m||Ce(w.branch)!==m)return h.add($),[];const Y=x(w.graphRevision);if(!Y||Y.length!==64)return h.add($),[];const O=x(w.claimRevision),U=[...Cr(I,re,w)].sort(),at=wi(e,w,I,$,m,U);if(!at&&O){if(U.length===0)return h.add($),[];const Te=je("git",["diff-tree","--no-commit-id","--name-only","-r","-z",W],{cwd:e,encoding:"utf8"}).split("\0").filter(Boolean);let me=[];if(w.rootMemoryEffect!==void 0)try{me=_i(e,w.rootMemoryEffect,{storyId:I,executionBranch:m,baseSha:String(w.baseSha),headRef:W,childPaths:U}).files.map(z=>z.path)}catch{return h.add($),[]}if(Te.length===0||Te.some(z=>!U.some(oe=>oe===z||oe.endsWith("/")&&z.startsWith(oe))&&!me.includes(z)))return h.add($),[];const At=Ge("sha256").update(U.join("\0")).digest("hex"),it=Ge("sha256").update(JSON.stringify(U)).digest("hex");if(O!==At&&O!==it)return h.add($),[]}else if(!at)return h.add($),[];return Y?.length===64?[{storyId:I,epicId:$,graphRevision:Y,checkpointHead:W,position:V}]:[]}),N=new Set(h);for(const[I,b]of Object.entries(s)){const re=u(b)?b:void 0,w=Array.isArray(re?.stories)?re.stories.filter(V=>typeof V=="string"):Object.keys(o).filter(V=>V.startsWith(`${I}.`)),$=C.filter(V=>V.epicId===I),W=w.filter(V=>$.some(_e=>_e.storyId===V)),j=[...$].sort((V,_e)=>V.position-_e.position).map(V=>V.storyId);(JSON.stringify(W)!==JSON.stringify(j)||new Set(j).size!==j.length)&&N.add(I)}const L={},P=[...new Set(C.filter(I=>!N.has(I.epicId)).map(I=>I.graphRevision))],M=P.length>0?await Si(e,{headSha:p,graphRevisions:P}):new Map;for(const I of C){if(N.has(I.epicId))continue;const b=M.get(I.graphRevision);if(!b)throw new Error("p205-transient-authority-missing");L[I.storyId]=b}return L}catch(r){const i=r instanceof Error&&/^(?:p205|git-lifecycle)-[a-z0-9-]+$/.test(r.message)?r.message:"p205-transient-execution-failed";return process.stderr.write(`[Neocortex] ${i}. Checkpoint projection remains fail-closed.
|
|
11
|
+
`),{}}}function vs(e,t){return{kind:"full",trigger:e,targetEpicId:null,targetStoryId:null,includedStoryCount:Object.keys(t.stories).length,includedEpicCount:Object.keys(t.epics).length,omittedStoryCount:0,omittedEpicCount:0,reason:"full-state",projectionMode:"full-compatible"}}const zr="neocortex:menu:cache";async function lo(e){try{const t=await e.get(zr);if(!t)return null;const a=JSON.parse(t);return a.version!==Dt||Date.now()-a.cachedAt>_r?null:a}catch{return null}}async function ho(e,t,a){try{const r={instructions:t,metadata:a,cachedAt:Date.now(),version:Dt};await e.set(zr,JSON.stringify(r),_r),go()}catch{}}function go(){try{Ot(wr)&&Rn(wr)}catch{}}function fo(e){return e.execute({phase:"client-preflight",domain:"client-persistence",category:"state-repair",operation:"update"},()=>cr(),()=>cr({strictReadOnly:!0}))}async function Jr(e,t,a){const r=a.mode==="strict";try{let i;if(r&&t)i=new An({cacheDir:Tn,passphrase:t,strictReadOnly:!0});else if(r)i=new or;else if(t){const S=X(cn,"cache");i=new An({cacheDir:S,passphrase:t})}else process.stderr.write(`[neocortex] Warning: No license key in config. Run "neocortex activate" to re-authenticate.
|
|
12
|
+
`),i=new or;const n=yr(a,i,"auth-cache"),o=yr(a,i,"tier-cache"),s=new Ta({serverUrl:e,licenseKey:t??"",cacheProvider:n,strictReadOnly:r});let p;if(r){const S=await s.inspectToken();if(S.status!=="authenticated")return S;p=S.token}else p=await s.getToken();if(!p)return t?{status:"refresh-required",reason:"unavailable"}:{status:"not-configured"};const m=new Pa({cacheProvider:o,licenseClient:s});return{status:"authenticated",token:p,client:s,tierClient:m}}catch{return t?{status:"refresh-required",reason:"unavailable"}:{status:"not-configured"}}}let Yr=!1;function mo(e){const t=e.errorBody?.error_code;if(typeof t=="string"&&t.trim().length>0)return t;if(e.status===429)return"RATE_LIMITED";if(e.status>=500)return"SERVER_ERROR"}const Kr=3,gn=50;function yo(e){return new Promise(t=>setTimeout(t,e))}function Eo(e,t,a){return e.status>=500&&e.status<=599?!0:a&&e.status===409&&t.error_code==="SIGNATURE_REPLAYED"}async function qt(e,t,a,r,i={}){const n=Math.max(1,Math.min(i.maxAttempts??Kr,Kr)),o=i.sleep??yo;let s=r,p=!1,m=!1,S=0;for(let _=1;_<=n;_+=1){const l=Math.max(Math.floor(Date.now()/1e3),S+1);S=l;const v=Io(t,a,s,{nowSeconds:l}),f=new AbortController,h=setTimeout(()=>f.abort(),Rr);try{const C=await fetch(`${e}${t}`,{method:"POST",headers:v.headers,body:v.body,signal:f.signal}),N=await C.text().catch(()=>""),L=(()=>{try{return N?JSON.parse(N):{}}catch{return{}}})();if(C.status===401&&!p&&i.refreshToken&&(L.fallback_action==="refresh_token"||L.fallback_action==="re_authenticate")){p=!0;const P=await i.refreshToken();if(P&&_<n){s=P,i.onTokenChanged?.(P),await o(gn*_);continue}}if(C.status===401&&L.error_code==="SIGNATURE_EXPIRED"&&!m&&_<n){m=!0,await o(gn*_);continue}if(_<n&&Eo(C,L,i.allowReplayRetry===!0)){await o(gn*_);continue}return{response:C,text:N,parsed:L,networkFailure:!1}}catch{if(_<n){await o(gn*_);continue}return{text:"",parsed:{},networkFailure:!0}}finally{clearTimeout(h)}}return{text:"",parsed:{},networkFailure:!0}}function Io(e,t,a,r={}){const i=Buffer.from(JSON.stringify(t),"utf8"),n=Za({method:"POST",target:e,body:i,bearerToken:a,clientVersion:Dt,nowSeconds:r.nowSeconds,nonceBytes:r.nonceBytes});return{body:n.body,headers:{...n.headers,Authorization:`Bearer ${a}`}}}function Qr(e){return Ge("sha256").update(e).digest("hex")}function So(){const e=Number(process.env.NEOCORTEX_INVOKE_CHUNK_BYTES??"49152");return Number.isFinite(e)&&e>=1024&&e<=98304?Math.floor(e):49152}function vo(e,t,a){return`args-${Ge("sha256").update("invoke-materialization:v1").update(e).update(String(t)).update(JSON.stringify(a)).digest("hex")}`}async function Xr(e,t,a,r,i={}){const n=await qt(e,t,a,r,{...i,allowReplayRetry:!0});if(n.networkFailure||!n.response)throw new Error("NETWORK_ERROR: materialization request failed after bounded retries");const{response:o,parsed:s}=n;if(!o.ok){const p=typeof s.error_code=="string"?s.error_code:`HTTP_${o.status}`,m=typeof s.message=="string"?s.message:"materialization upload failed";throw new Error(`${p}: ${m}`)}return s}async function Co(e,t,a,r){const i=Buffer.from(t,"utf8"),n=So(),o=[];for(let f=0,h=0;f<i.byteLength;f+=n,h++){const C=i.subarray(f,Math.min(f+n,i.byteLength));o.push({index:h,sha256:Qr(C),byteLength:C.byteLength})}const s=Qr(i),p=vo(s,i.byteLength,o),m=Number(process.env.NEOCORTEX_INVOKE_CHUNK_TTL_SECONDS??"900");let S=a;const _={refreshToken:r,onTokenChanged(f){S=f}};for(const f of o){const h=f.index*n,C=i.subarray(h,h+f.byteLength);await Xr(e,"/api/v1/invoke/materialization/chunks",{manifestId:p,index:f.index,sha256:f.sha256,byteLength:f.byteLength,contentBase64:C.toString("base64"),ttlSeconds:m,idempotencyKey:`${p}:${f.index}:${f.sha256}`},S,_)}const v=(await Xr(e,"/api/v1/invoke/materialization/manifests",{manifestId:p,sha256:s,byteLength:i.byteLength,chunkCount:o.length,chunks:o,ttlSeconds:m,retry:{attempt:1,budget:3,idempotencyKey:p}},S,_)).argsRef;if(!v?.manifestId)throw new Error("MATERIALIZATION_RESPONSE_INVALID: missing argsRef");return{argsRef:v,chunks:o}}function Vt(e){return Buffer.byteLength(JSON.stringify(e),"utf8")}function wo(...e){const t=new Set,a=[];for(const r of e)for(const i of r??[]){const n=ne(i);if(!(!n||t.has(n))&&(t.add(n),a.push(n),a.length>=16))return a}return a}function _o(e){const t=e.graphRetrieval;if(!u(t))return{accepted:!1,itemCount:0};const a=Array.isArray(t.items)?t.items.length:0;return{accepted:a>0||typeof t.retrievalId=="string"||t.accepted===!0,itemCount:a}}function $n(e,t=Vt(e),a=[],r={}){const i=e.stateSnapshot.scope,n=Object.keys(e.stateSnapshot.stories).length,o=Object.keys(e.stateSnapshot.epics).length,s=i?.kind??"full";return{schemaVersion:1,payloadBytes:t,limitBytes:r.limitBytes??br,warningThresholdBytes:r.warningThresholdBytes??Pn,scope:{kind:s,...i?.projectionMode?{projectionMode:i.projectionMode}:{},commandId:i?.commandId??null,stateProjectionPolicy:i?.stateProjectionPolicy??null},includedStories:i?.includedStoryCount??n,omittedStories:i?.omittedStoryCount??0,includedEpics:i?.includedEpicCount??o,omittedEpics:i?.omittedEpicCount??0,graphRetrieval:_o(e.stateSnapshot),reasonCodes:wo(a,i?.reasonCodes),publicSafe:!0}}function Ro(e){const t=u(e.budget)?e.budget:void 0,a=typeof t?.maxPayloadBytes=="number"&&Number.isFinite(t.maxPayloadBytes)?t.maxPayloadBytes:12*1024;return Math.max(1024,Math.min(a,12*1024))}function Ao(e){return u(e)?{stableId:ne(e.stableId)??"unknown",...u(e.source)?{source:e.source}:{},reasonCode:"budget_exceeded"}:{stableId:"unknown",reasonCode:"budget_exceeded"}}function Zr(e){const t=Array.isArray(e)?e.filter(a=>typeof a=="string"):[];return t.includes("budget_exceeded")?t:[...t,"budget_exceeded"]}function bo(e){const t=e.graphRetrieval;if(!u(t)||!Array.isArray(t.items))return e;const a=Ro(t);let r=[...t.items],i=Array.isArray(t.skipped)?[...t.skipped]:[],n=t;for(;Buffer.byteLength(JSON.stringify(n),"utf8")>a&&r.length>0;){const o=r.pop();i=[...i,Ao(o)].slice(-32),n={...t,items:r,skipped:i,warnings:Zr(t.warnings)}}return Buffer.byteLength(JSON.stringify(n),"utf8")>a&&(n={...t,query:typeof t.query=="string"?t.query.slice(0,240):t.query,items:[],skipped:[],warnings:Zr(t.warnings)}),n===t?e:{...e,graphRetrieval:n}}function ea(e,t={}){const a=t.limitBytes??br,r=t.warningThresholdBytes??Math.floor(a*xr),i=Vt(e);if(i<a)return{body:e,degraded:!1,telemetry:$n(e,i,["payload-within-limit"],{limitBytes:a,warningThresholdBytes:r})};let n={...e,stateSnapshot:Ma(e.stateSnapshot)},o=["payload-size-guardrail","state-degraded"],s=Vt(n);s>=a&&(n={...n,stateSnapshot:bo(n.stateSnapshot)},o=[...o,"graph-retrieval-budget-enforced"],s=Vt(n));const p=$n(n,s,o,{limitBytes:a,warningThresholdBytes:r});if(s>=a){const m=n.stateSnapshot.scope?.projectionMode;throw m==="yolo-story"||m==="yoloop-target"||m==="yoloop-session"||m==="yoloop-discovery"||m==="structural-required"?new Ln(p):new Dn(p)}return{body:n,degraded:!0,telemetry:p}}function ta(e){const t=e.stateSnapshot.scope?.commandId??"resolved-command";return e.args!==void 0?t:`${t}:argsRef`}function xo(e){const t=Vt(e);if(t<Pn)return t;const a=$n(e,t,["payload-warning-threshold"]);return process.stderr.write(`[Neocortex] invoke payload near server limit: trigger=${ta(e)} scope=${a.scope.kind} mode=${a.scope.projectionMode??a.scope.kind} payloadBytes=${a.payloadBytes} limit=${a.limitBytes} includedStories=${a.includedStories} omittedStories=${a.omittedStories} includedEpics=${a.includedEpics} omittedEpics=${a.omittedEpics} graphRetrieval.accepted=${a.graphRetrieval.accepted} graphRetrieval.itemCount=${a.graphRetrieval.itemCount} reasonCodes=${a.reasonCodes.join(",")||"none"}
|
|
13
|
+
`),t}function na(e,t){process.stderr.write(`[Neocortex] invoke payload guardrail: trigger=${ta(e)} scope.kind=${t.scope.kind} payloadBytes=${t.payloadBytes} limit=${t.limitBytes} includedStories=${t.includedStories} omittedStories=${t.omittedStories} includedEpics=${t.includedEpics} omittedEpics=${t.omittedEpics} graphRetrieval.accepted=${t.graphRetrieval.accepted} graphRetrieval.itemCount=${t.graphRetrieval.itemCount} reasonCodes=${t.reasonCodes.join(",")||"none"}
|
|
14
|
+
`)}async function To(e){const t=Ha(e.args,{platformTarget:e.platformTarget,environment:e.environment??process.env});if(t.action==="skipped")return{shouldContinue:!0,attachToRequest:Po(t),metadata:ra(t)};const a=e.bootstrapper??qa;let r;try{r=await a({projectRoot:e.projectRoot,env:e.environment??process.env,effectAuthority:e.effectAuthority})}catch{r={ok:!1,attempted:!0,installed:!1,started:!1,cached:!1,projectKey:"unknown",reasonCodes:[Fa.UNEXPECTED_ERROR],publicSummary:"runner scheduler bootstrap stopped unexpectedly.",publicSafe:!0}}const i=ra(t,r);if(r.ok)return{shouldContinue:!0,attachToRequest:!0,metadata:i};const n=i.reasonCodes.slice(0,5).join(",");return t.failurePolicy==="fail-open"?{shouldContinue:!0,attachToRequest:!0,metadata:{...i,failOpenWarning:!0},warning:`Runner auto-bootstrap warning (${n}); continuing fail-open for operator command.`}:{shouldContinue:!1,attachToRequest:!1,metadata:i,errorCode:"RUNNER_BOOTSTRAP_REQUIRED_FAILED",error:`Runner auto-bootstrap required but failed (${n}). Run neocortex-runner doctor or retry after resolving scheduler setup.`,exitCode:1}}function Po(e){return!e.reasonCodes.includes(Ga.SKIPPED_NON_CONTINUITY_COMMAND)}function ra(e,t){return{schemaVersion:1,action:e.action,failurePolicy:e.failurePolicy,command:e.command,operation:e.operation,attempted:t?.attempted??!1,ok:t?.ok??!0,cached:t?.cached??!1,installed:t?.installed??!1,started:t?.started??!1,...t?.projectKey?{projectKey:t.projectKey}:{},reasonCodes:ke([...e.reasonCodes,...t?.reasonCodes??[]]),publicSummary:t?.publicSummary??e.publicSummary,publicSafe:!0}}function ke(e){return Array.from(new Set(e.map(t=>t.slice(0,120))))}function fn(e,t,a){const r=Math.floor(e??t);return Number.isFinite(r)?Math.max(1,Math.min(a,r)):t}function mn(e,t){const a=process.env[e];if(!a)return t;const r=Number(a);return Number.isFinite(r)?r:t}function q(e,t=Nr){const a=typeof e=="string"&&e.trim().length>0?e.trim():"unknown",r=He(a,t),i=$i.test(r)?ut:r;return i.length<=t?i:`${i.slice(0,t)}\u2026[TRUNCATED:${i.length-t}]`}function Wn(e,t=Nr){if(!(typeof e!="string"||e.trim().length===0))return q(e,t)}function Gn(e,t,a,r){const i=Wn(e?.targetId??t,120),n=e?.selectorKind??(i?Fn(i):void 0),o=(e?.relatedJobIds??[]).map(s=>Wn(s,120)).filter(s=>!!s);return{schemaVersion:1,contractVersion:"continuity-v1",targetResolutionState:a,...n?{targetKind:n}:{},...i?{targetId:i}:{},...t?{targetJobId:q(t,120)}:{},...e?.jobId?{jobId:q(e.jobId,120)}:{},...e?.goalId?{goalId:q(e.goalId,120)}:{},...e?.loopId?{loopId:q(e.loopId,120)}:{},...o.length>0?{relatedJobIds:o}:{},relatedJobCount:o.length,reasonCodes:ke(r.length>0?r:[F.OK]),publicSafe:!0}}function nt(e,t,a,r,i=[]){const n=(e?.redactions?.length??0)>0,o=e?n?"unsafe":a&&r===0?"empty":"available":"unavailable",s=Wn(t[t.length-1]?.eventId,120),p=i.length>0?i:o==="unavailable"?[F.WATCH_SNAPSHOT_UNAVAILABLE]:o==="empty"?[F.WATCH_NO_SUMMARIES_YET]:[F.OK];return{schemaVersion:1,contractVersion:"continuity-v1",snapshotStatus:o,...e?.generatedAt?{generatedAt:q(e.generatedAt,80)}:{},renderedSummaryCount:r,...s?{latestEventId:s}:{},reasonCodes:ke(p),publicSafe:!0}}function Je(e,t,a,r,i=[],n){const o=r[r.length-1],s=a??o?.cursor,p=!!(s&&s!==t&&r.length>0),m=n??(p?"advanced":t||s?"unchanged":"not_started"),S=i.length>0?i:m==="advanced"?[F.WATCH_CURSOR_ADVANCED]:m==="unavailable"?[F.WATCH_EVIDENCE_UNAVAILABLE]:[F.WATCH_CURSOR_UNCHANGED];return{schemaVersion:1,contractVersion:"continuity-v1",cursorState:m,...e?{initialCursor:q(e,200)}:{},...t?{currentCursor:q(t,200)}:{},...s?{nextCursor:q(s,200)}:{},cursorAdvanced:p,...o?.eventId?{eventId:q(o.eventId,120)}:{},reasonCodes:ke(S),publicSafe:!0}}function Ye(e){const t=e.targetEvidence;return{type:"watch_status",schemaVersion:1,contractVersion:"continuity-v1",recordType:"watch_status",command:"invoke",operation:"watch",watchStatus:e.watchStatus,active:e.active,...t?.targetResolutionState?{targetResolutionState:t.targetResolutionState}:{},...t?.targetKind?{targetKind:t.targetKind}:{},...t?.targetId?{targetId:t.targetId}:{},...t?{targetEvidence:t}:{},...e.snapshotEvidence?{snapshotEvidence:e.snapshotEvidence}:{},...e.cursorEvidence?{cursorEvidence:e.cursorEvidence}:{},...e.stopReason?{stopReason:e.stopReason}:{},reasonCodes:ke([...e.reasonCodes??[],...t?.reasonCodes??[],...e.snapshotEvidence?.reasonCodes??[],...e.cursorEvidence?.reasonCodes??[]]),generatedAt:q(e.generatedAt??new Date().toISOString(),80),publicSafe:!0}}function ko(e){const t=e.targetKind&&e.targetId?`${e.targetKind}/${e.targetId}`:e.targetId??"[unresolved]",a=e.snapshotEvidence?.renderedSummaryCount??0,r=e.targetEvidence?.relatedJobCount??0,i=e.cursorEvidence?.cursorState??"unavailable",n=e.cursorEvidence?.currentCursor??"[none]",o=e.cursorEvidence?.nextCursor??"[none]",s=e.snapshotEvidence?.snapshotStatus??"not_requested",p=e.snapshotEvidence?.generatedAt??e.generatedAt;return[`[watch-status] ${e.targetResolutionState==="unresolved"||e.stopReason==="target_unresolved"?"unresolved-target":a===0&&(e.watchStatus==="waiting"||e.watchStatus==="active")?"no-new-summary":e.watchStatus==="stopped"?"stopped":"lifecycle"}`,`status=${e.watchStatus}`,`active=${e.active}`,`target=${t}`,`resolution=${e.targetResolutionState??"unavailable"}`,`relatedJobs=${r}`,`summaries=${a}`,`snapshot=${s}`,`generatedAt=${p}`,`cursor=${i}`,`current=${q(n,200)}`,`next=${q(o,200)}`,`advanced=${e.cursorEvidence?.cursorAdvanced??!1}`,`stop=${e.stopReason??"not_stopped"}`,`reasons=${e.reasonCodes.join(",")}`].join(" ")}function Ke(e,t,a,r=!1){if(r){const i={type:"watch_status",watchStatus:e.watchStatus,active:e.active,renderedSummaryCount:e.snapshotEvidence?.renderedSummaryCount??0,stopReason:e.stopReason??"not_stopped",protectedProjection:!0,publicSafe:!0};a.write(t==="json"?`${JSON.stringify(i)}
|
|
15
15
|
`:`[watch-status] status=${i.watchStatus} active=${i.active} summaries=${i.renderedSummaryCount} stop=${i.stopReason}
|
|
16
|
-
`);return}if(t==="json"){
|
|
17
|
-
`);return}
|
|
18
|
-
`)}function
|
|
16
|
+
`);return}if(t==="json"){a.write(JSON.stringify(e)+`
|
|
17
|
+
`);return}a.write(ko(e)+`
|
|
18
|
+
`)}function Oo(e,t,a){return{continuityInvokeWatch:{schemaVersion:1,contractVersion:"continuity-v1",command:"invoke",operation:"watch",watchStatus:e.watchStatus,stopReason:e.stopReason??"not_stopped",targetResolutionState:e.targetResolutionState,targetKind:e.targetKind,targetId:e.targetId,snapshotStatus:e.snapshotEvidence?.snapshotStatus,snapshotGeneratedAt:e.snapshotEvidence?.generatedAt,renderedSummaryCount:e.snapshotEvidence?.renderedSummaryCount??t,cursorState:e.cursorEvidence?.cursorState,cursorAdvanced:e.cursorEvidence?.cursorAdvanced,summariesEmitted:t,polls:a,statusRecord:e,publicSafe:!0}}}function rt(e,t,a,r,i=!1){return i?{status:e,summariesEmitted:t,polls:a,reasonCodes:[],watchStatus:r.watchStatus,stopReason:r.stopReason,metadata:{continuityInvokeWatch:{schemaVersion:1,contractVersion:"continuity-v1",command:"invoke",operation:"watch",watchStatus:r.watchStatus,stopReason:r.stopReason??"not_stopped",summariesEmitted:t,polls:a,protectedProjection:!0,publicSafe:!0}},publicSafe:!0}:{status:e,summariesEmitted:t,polls:a,reasonCodes:r.reasonCodes,watchStatus:r.watchStatus,stopReason:r.stopReason,targetEvidence:r.targetEvidence,snapshotEvidence:r.snapshotEvidence,cursorEvidence:r.cursorEvidence,statusRecord:r,metadata:Oo(r,t,a),publicSafe:!0}}function No(e){const t=e.reasonCode?` reason=${q(e.reasonCode,80)}`:"",a=e.goalId?` goal=${q(e.goalId,100)}`:"",r=e.loopId?` loop=${q(e.loopId,100)}`:"";return`[watch] ${q(e.createdAt,80)} event=${q(e.eventId,120)} job=${q(e.jobId,100)}${a}${r} execution=${q(e.executionId,120)}${t} -- ${q(e.publicSummary)}`}function Do(e){return{type:"processing_summary",source:"local_continuity_sqlite",eventId:q(e.eventId,120),jobId:q(e.jobId,100),...e.goalId?{goalId:q(e.goalId,100)}:{},...e.loopId?{loopId:q(e.loopId,100)}:{},executionId:q(e.executionId,120),...e.reasonCode?{reasonCode:q(e.reasonCode,80)}:{},createdAt:q(e.createdAt,80),publicSummary:q(e.publicSummary),publicSafe:!0}}function Lo(e,t,a,r=!1){if(r){a.write(t==="json"?`${JSON.stringify({type:"processing_summary",source:"local_continuity_sqlite",publicSummary:"A local processing update is available.",protectedProjection:!0,publicSafe:!0})}
|
|
19
19
|
`:`[watch] A local processing update is available.
|
|
20
|
-
`);return}if(t==="json"){
|
|
21
|
-
`);return}
|
|
22
|
-
`)}function Fn(e){return $i.has(e.status)}function Vo(e,t,r){if(t){const i=e.find(n=>n.jobId===t);return!!(i&&Fn(i))}return r<=0?!1:e.filter(i=>!Fn(i)).length===0}function Uo(e,t,r,a){return r<a?!1:t?!e.some(i=>i.jobId===t&&!Fn(i)):e.length===0}function Bo(e,t){return t?.aborted?Promise.resolve():new Promise(r=>{const a=setTimeout(i,e);function i(){clearTimeout(a),t?.removeEventListener("abort",i),r()}t?.addEventListener("abort",i,{once:!0})})}function $o(e){return e.includes(Ae.MALFORMED)?"malformed":e.includes(Ae.AMBIGUOUS)?"ambiguous":e.includes("watch-target-multiple")?"multiple":e.includes("watch-evidence-unsafe")?"unsafe":e.includes(Ae.MISSING)||e.includes(Se.TARGET_UNRESOLVED)?"unresolved":"unavailable"}function ia(e,t){const r=t?Jt(t):void 0,a=ke([...e,Se.TARGET_UNRESOLVED,G.WATCH_TARGET_UNRESOLVED]),i=Hn(r,r?.targetId,$o(a),a),n=rt({generatedAt:new Date().toISOString()},[],!1,0,[G.WATCH_TARGET_UNRESOLVED]),o=Ye(void 0,void 0,void 0,[],[G.WATCH_TARGET_UNRESOLVED],"unavailable");return Ke({watchStatus:"blocked",active:!1,targetEvidence:i,snapshotEvidence:n,cursorEvidence:o,stopReason:"target_unresolved",reasonCodes:a,generatedAt:n.generatedAt})}function Wo(e,t,r,a,i=!1){const n=ia(e,ca(t));return Qe(n,r,a,i),at("target-unresolved",0,0,n,i)}async function Go(e){if(e.signal?.aborted){const k=Hn(e.target??Jt(e.targetJobId),e.targetJobId,e.target??e.targetJobId?"resolved":"unresolved",[Se.CANCELLED]),v=rt(void 0,[],!1,0),w=Ye(e.initialCursor,e.initialCursor,e.initialCursor,[],[Se.CANCELLED],"unavailable"),ee=Ke({watchStatus:"stopped",active:!1,targetEvidence:k,snapshotEvidence:v,cursorEvidence:w,stopReason:"cancelled",reasonCodes:[Se.CANCELLED]});return at("cancelled",0,0,ee,e.protectedOutput)}const t=e.target??Jt(e.targetJobId),r=e.targetJobId??t?.targetId,a=e.stdout??process.stdout;if(!t){const k=ia([Ae.MISSING,Se.TARGET_UNRESOLVED]);return Qe(k,e.format,a,e.protectedOutput),at("target-unresolved",0,0,k,e.protectedOutput)}const i=yn(e.limit??En("NEOCORTEX_INVOKE_WATCH_LIMIT",fr),fr,50),n=Math.max(50,yn(e.pollIntervalMs??En("NEOCORTEX_INVOKE_WATCH_POLL_INTERVAL_MS",yr),yr,6e4)),o=yn(e.maxIdlePolls??En("NEOCORTEX_INVOKE_WATCH_MAX_IDLE_POLLS",gr),gr,120),s=yn(e.maxPolls??En("NEOCORTEX_INVOKE_WATCH_MAX_POLLS",mr),mr,86400),p=e.sleep??Bo;let m=e.initialCursor,I=0,_=0,l=0;const S=Hn(t,r,"resolved",[G.OK]),g={schemaVersion:1,contractVersion:"continuity-v1",snapshotStatus:"pending",renderedSummaryCount:0,reasonCodes:[G.WATCH_RENDER_PENDING],publicSafe:!0},h=Ye(e.initialCursor,m,m,[],e.initialCursor?[G.WATCH_CURSOR_UNCHANGED]:[G.WATCH_NO_SUMMARIES_YET],e.initialCursor?"unchanged":"not_started");Qe(Ke({watchStatus:"active",active:!0,targetEvidence:S,snapshotEvidence:g,cursorEvidence:h,stopReason:"not_stopped",reasonCodes:[G.OK]}),e.format,a,e.protectedOutput);let C;try{C=await Ya({projectRoot:e.projectRoot,strictReadOnly:e.strictReadOnly})}catch{const k=rt(void 0,[],!1,I,[G.WATCH_SNAPSHOT_UNAVAILABLE]),v=Ye(e.initialCursor,m,m,[],[G.WATCH_EVIDENCE_UNAVAILABLE],"unavailable"),w=Ke({watchStatus:"blocked",active:!1,targetEvidence:S,snapshotEvidence:k,cursorEvidence:v,stopReason:"unavailable_evidence",reasonCodes:[Se.STORE_UNAVAILABLE]});return Qe(w,e.format,a,e.protectedOutput),at("store-unavailable",I,l,w,e.protectedOutput)}try{for(;!e.signal?.aborted&&l<s;){l+=1;const k=m,v=C.collectProcessingOutputSummaryCursor({...m?{cursor:m}:{},...t?{target:t}:{},...r?{jobId:r}:{},limit:i}),w=C.collectSnapshot({jobLimit:50,processingSummaryLimit:1}),ee=w.jobs;if(v.summaries.length>0){for(const j of v.summaries)jo(j,e.format,a,e.protectedOutput),I+=1;m=v.nextCursor??v.summaries[v.summaries.length-1]?.cursor??m,_=0}else m=v.nextCursor??m,_+=1;const R=rt(w,v.summaries,!0,v.summaries.length),J=Ye(e.initialCursor,k,m,v.summaries,v.summaries.length>0?[G.WATCH_CURSOR_ADVANCED]:[G.WATCH_NO_SUMMARIES_YET]);if(Qe(Ke({watchStatus:v.summaries.length>0?"polling":"waiting",active:!0,targetEvidence:S,snapshotEvidence:R,cursorEvidence:J,stopReason:"not_stopped",reasonCodes:v.summaries.length>0?[G.WATCH_CURSOR_ADVANCED]:[G.WATCH_NO_SUMMARIES_YET],generatedAt:w.generatedAt}),e.format,a,e.protectedOutput),!v.hasMore&&Vo(ee,r,I)){const j=rt(w,v.summaries,!1,I,[Se.COMPLETED]),V=Ye(e.initialCursor,k,m,v.summaries,[Se.COMPLETED],"exhausted"),z=Ke({watchStatus:"stopped",active:!1,targetEvidence:S,snapshotEvidence:j,cursorEvidence:V,stopReason:"not_stopped",reasonCodes:[Se.COMPLETED],generatedAt:w.generatedAt});return Qe(z,e.format,a,e.protectedOutput),at("completed",I,l,z,e.protectedOutput)}if(!v.hasMore&&Uo(ee,r,_,o)){const j=rt(w,v.summaries,!1,I,[G.WATCH_STOP_IDLE_LIMIT_REACHED]),V=Ye(e.initialCursor,k,m,v.summaries,[G.WATCH_STOP_IDLE_LIMIT_REACHED],"exhausted"),z=Ke({watchStatus:"stopped",active:!1,targetEvidence:S,snapshotEvidence:j,cursorEvidence:V,stopReason:"idle_limit_reached",reasonCodes:[Se.IDLE_TIMEOUT,G.WATCH_STOP_IDLE_LIMIT_REACHED],generatedAt:w.generatedAt});return Qe(z,e.format,a,e.protectedOutput),at("idle-timeout",I,l,z,e.protectedOutput)}v.hasMore||await p(n,e.signal)}}catch{const k=rt(void 0,[],!1,I,[G.WATCH_SNAPSHOT_UNAVAILABLE]),v=Ye(e.initialCursor,m,m,[],[G.WATCH_EVIDENCE_UNAVAILABLE],"unavailable"),w=Ke({watchStatus:"blocked",active:!1,targetEvidence:S,snapshotEvidence:k,cursorEvidence:v,stopReason:"unavailable_evidence",reasonCodes:[Se.STORE_UNAVAILABLE]});return Qe(w,e.format,a,e.protectedOutput),at("store-unavailable",I,l,w,e.protectedOutput)}finally{C.close()}if(e.signal?.aborted){const k=rt(void 0,[],!1,I,[Se.CANCELLED]),v=Ye(e.initialCursor,m,m,[],[Se.CANCELLED],"unavailable"),w=Ke({watchStatus:"stopped",active:!1,targetEvidence:S,snapshotEvidence:k,cursorEvidence:v,stopReason:"cancelled",reasonCodes:[Se.CANCELLED]});return Qe(w,e.format,a,e.protectedOutput),at("cancelled",I,l,w,e.protectedOutput)}const D=rt(void 0,[],!1,I,[G.WATCH_STOP_MAX_POLLS_REACHED]),M=Ye(e.initialCursor,m,m,[],[G.WATCH_STOP_MAX_POLLS_REACHED],"exhausted"),P=Ke({watchStatus:"stopped",active:!1,targetEvidence:S,snapshotEvidence:D,cursorEvidence:M,stopReason:"max_polls_reached",reasonCodes:[Se.MAX_POLLS,G.WATCH_STOP_MAX_POLLS_REACHED]});return Qe(P,e.format,a,e.protectedOutput),at("max-polls",I,l,P,e.protectedOutput)}function qe(e){const t=e.trim().replace(/^@/,"").match(/^(job|goal|loop)-([JGL])(\d{3,})$/i);if(!t)return;const r=t[1].toLowerCase(),a=t[2].toUpperCase();if(!(r==="job"&&a!=="J"||r==="goal"&&a!=="G"||r==="loop"&&a!=="L"))return`${r}-${a}${t[3]}`}function qn(e){if(e.startsWith("job-J"))return"job";if(e.startsWith("goal-G"))return"goal";if(e.startsWith("loop-L"))return"loop"}function oa(e){const t=[],r=/(?:^|[\s"'([,{])@?(job-[Jj]\d{3,}|goal-[Gg]\d{3,}|loop-[Ll]\d{3,})(?=$|[\s"')\]},.;:!?])/g;let a;for(;(a=r.exec(e))!==null;){const i=qe(a[1]);i&&t.push(i)}return ke(t)}function ca(e){return oa(e)[0]}function Jt(e){const t=e?qe(e):void 0;if(t){if(t.startsWith("job-J"))return{selectorKind:"job",targetId:t,jobId:t,publicSafe:!0};if(t.startsWith("goal-G"))return{selectorKind:"goal",targetId:t,goalId:t,publicSafe:!0};if(t.startsWith("loop-L"))return{selectorKind:"loop",targetId:t,loopId:t,publicSafe:!0}}}function Jn(e){return ke(e.filter(t=>typeof t=="string").map(t=>qe(t)).filter(t=>!!t?.startsWith("job-J")))}function Ho(e,t){const r=Jn(t).filter(a=>a!==e.targetId&&a!==e.jobId);return r.length>0?{...e,relatedJobIds:r}:e}function Fo(e){if(!e)return;const t=u(e.target)?e.target:void 0,r=typeof e.selectorKind=="string"?e.selectorKind:typeof t?.selectorKind=="string"?t.selectorKind:void 0,a=typeof e.targetId=="string"?qe(e.targetId):typeof t?.targetId=="string"?qe(t.targetId):typeof e.targetJobId=="string"?qe(e.targetJobId):void 0,i=Jt(a);if(!i||r&&r!==i.selectorKind)return;const n=Array.isArray(e.relatedJobIds)?e.relatedJobIds:Array.isArray(t?.relatedJobIds)?t.relatedJobIds:void 0,o=Jn([...n??[],e.jobId,t?.jobId,e.targetJobId,t?.targetJobId]).filter(s=>s!==i.targetId&&s!==i.jobId);return{...i,...typeof(e.jobId??t?.jobId)=="string"?{jobId:qe(e.jobId??t?.jobId)??i.jobId}:{},...typeof(e.goalId??t?.goalId)=="string"?{goalId:qe(e.goalId??t?.goalId)??i.goalId}:{},...typeof(e.loopId??t?.loopId)=="string"?{loopId:qe(e.loopId??t?.loopId)??i.loopId}:{},...o.length>0?{relatedJobIds:o}:{}}}function sa(e){const t=e.trim().split(/\s+/).filter(Boolean),r=t[0]?.replace(/^\*/,"").toLowerCase(),a=t[1]?.replace(/^--/,"").toLowerCase();return(r==="jobs"||r==="job"||r==="continuity-jobs"||r==="61")&&a==="watch"}const _e=Object.freeze({ACTIVE:"command-level-watch-active",INACTIVE:"command-level-watch-inactive",DUPLICATE:"command-level-watch-duplicate",AMBIGUOUS:"command-level-watch-ambiguous",QUOTED:"command-level-watch-quoted",MALFORMED:"command-level-watch-malformed",NON_FINAL:"command-level-watch-non-final",UNRESOLVED:"command-level-watch-unresolved",UNSUPPORTED:"command-level-watch-unsupported",TARGET_INVALID:"command-level-watch-target-invalid"}),qo=new Set(["create","start","resume"]),Jo=new Set(["create","resume","run-once"]);function zn(e,t,r,a,i){return{schemaVersion:1,contractVersion:"continuity-v1",...r?{command:r}:{},...a?{operation:a}:{},active:e,...i?{watchToken:i}:{},reasonCodes:ke(t),serverHeldStream:!1,allJobsPolling:!1,targetResolution:e?"required-after-dispatch":"inactive",publicSafe:!0}}function be(e,t=[],r,a){const i=t.length>0?t:[_e.INACTIVE];return{args:e,watch:!1,reasonCodes:i,metadata:zn(!1,i,r,a),publicSafe:!0}}function zo(e){const t=e.trim().split(/\s+/).filter(Boolean),r=t.slice(2).filter(n=>n==="--watch").length;if(r===0)return be(e,[],"jobs","watch");if(r!==1)return be(e,[_e.AMBIGUOUS],"jobs","watch");const a=t.filter((n,o)=>o<2||n!=="--watch").join(" ");return sa(a)?a.trim().split(/\s+/).filter(Boolean).slice(2).length!==1?be(e,[_e.AMBIGUOUS],"jobs","watch"):ca(a)?{args:a,watch:!0,reasonCodes:[_e.ACTIVE],metadata:zn(!0,[_e.ACTIVE],"jobs","watch"),publicSafe:!0}:be(e,[_e.TARGET_INVALID],"jobs","watch"):be(e,[_e.UNSUPPORTED],"jobs","watch")}function Yo(e){const t=[];let r=!1,a=0;for(;a<e.length;){for(;a<e.length&&/\s/.test(e[a]);)a+=1;if(a>=e.length)break;const i=a;let n="",o=!1,s=null;for(;a<e.length;){const p=e[a];if(s){if(p===s){o=!0,s=null,a+=1;continue}if(p==="\\"&&a+1<e.length){n+=e[a+1],a+=2;continue}n+=p,a+=1;continue}if(/\s/.test(p))break;if(p==='"'||p==="'"){o=!0,s=p,a+=1;continue}n+=p,a+=1}s&&(r=!0),t.push({value:n,start:i,end:a,quoted:o})}return{tokens:t,malformed:r}}function Ko(e){if(!e||e.quoted)return;const t=e.value.replace(/^\*/,"").toLowerCase();return t==="goal"||t==="loop"?t:void 0}function Qo(e,t){if(!e||e==="jobs"||!t||t.quoted)return;const r=t.value.toLowerCase();return(e==="goal"?qo:Jo).has(r)?r:void 0}function Xo(e){return!e.quoted&&e.value!=="--watch"&&e.value.toLowerCase().startsWith("--watch")}function Zo(e){const{tokens:t,malformed:r}=Yo(e),a=Ko(t[0]),i=Qo(a,t[1]);if(r)return be(e,[_e.MALFORMED],a,i);const n=t.filter(l=>l.value==="--watch"&&!l.quoted),o=t.filter(l=>l.value==="--watch"&&l.quoted),s=t.filter(Xo);if(!(n.length>0||o.length>0||s.length>0))return be(e,[],a,i);if(n.length>1)return be(e,[_e.DUPLICATE],a,i);if(n.length===1&&(o.length>0||s.length>0))return be(e,[_e.AMBIGUOUS],a,i);if(o.length>0)return be(e,[_e.QUOTED],a,i);if(s.length>0)return be(e,[_e.MALFORMED],a,i);const m=n[0];if(!m)return be(e,[],a,i);if(t[t.length-1]!==m)return be(e,[_e.NON_FINAL],a,i);if(!a||!i)return be(e,[_e.UNRESOLVED],a,i);const I=`${e.slice(0,m.start)}${e.slice(m.end)}`.trim(),_={literal:"--watch",position:"final",start:m.start,end:m.end,quoted:!1,publicSafe:!0};return{args:I,watch:!0,reasonCodes:[_e.ACTIVE],metadata:zn(!0,[_e.ACTIVE],a,i,_),publicSafe:!0}}function ec(e){return sa(e)?zo(e):Zo(e)}function tc(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&Wi.has(t)):[]}function Ut(e){return{disabled:!0,reasonCodes:ke(e.length>0?e:[Ae.MISSING])}}function Yn(e,t,r=[],a){const i=Jt(t);if(i)return{source:e,target:Ho(i,r),targetJobId:i.targetId,...a?{initialCursor:a}:{},serverHeldStream:!1}}function nc(e){const t=new Map;for(const r of e){const a=`${r.target.selectorKind}:${r.target.targetId}`,i=t.get(a);if(!i){t.set(a,r);continue}const n=ke([...i.target.relatedJobIds??[],...r.target.relatedJobIds??[]]);t.set(a,{...i,target:n.length>0?{...i.target,relatedJobIds:n}:i.target,initialCursor:i.initialCursor??r.initialCursor})}return Array.from(t.values())}function gt(e,t,r,a){return{source:e,hasEvidence:t,candidates:nc(r.filter(i=>!!i)),...a&&a.length>0?{disabledReasonCodes:ke(a)}:{}}}function rc(e,t){return e.target.selectorKind===t.target.selectorKind&&e.target.targetId===t.target.targetId}function zt(e,t){const r=ke(e.filter(a=>typeof a=="string").map(a=>qe(a)).filter(a=>!!a));if(t){const a=r.find(i=>qn(i)===t);if(a)return a}return r[0]}function In(e,t){return ke(e.filter(r=>typeof r=="string").map(r=>qe(r)).filter(r=>!!r)).find(r=>qn(r)===t)}function ac(e){const t=u(e?.continuity)?e.continuity:void 0,r=u(t?.jobs)?t.jobs:void 0,a=u(r?.watcher)?r.watcher:void 0,i=tc(a?.reasonCodes??r?.reasonCodes);if(!a)return gt("watcher-metadata",i.length>0,[],i);if(a.active===!1||i.length>0)return gt("watcher-metadata",!0,[],i.length>0?i:[Ae.MALFORMED]);if(a.serverHeldStream!==!1)return gt("watcher-metadata",!0,[],[Ae.SERVER_HELD_STREAM]);const n=Fo(a);if(!n)return gt("watcher-metadata",!0,[],[Ae.MISSING]);const o=typeof a.initialCursor=="string"?a.initialCursor:void 0;return gt("watcher-metadata",!0,[{source:"watcher-metadata",target:n,targetJobId:n.targetId,...o?{initialCursor:o}:{},serverHeldStream:!1}])}function da(e,t){const r=u(e.loopJobPlan)?e.loopJobPlan:void 0,a=u(r?.metadata)?r.metadata:void 0,i=u(e.metadata)?e.metadata:void 0,o=(t==="goal"?zt([e.goalId,e.targetGoalId,e.campaignId,e.jobId,e.targetJobId,i?.goalId,i?.campaignId,i?.jobId],"goal"):zt([e.loopId,e.targetLoopId,e.jobId,e.targetJobId,i?.loopId,i?.jobId,a?.loopId,a?.jobId],"loop"))??zt([e.jobId,e.targetJobId,i?.jobId,a?.jobId]);return Yn("goal-loop-continuity-metadata",o,[e.jobId,e.targetJobId,i?.jobId,a?.jobId])}function ic(e){const t=u(e?.continuity)?e.continuity:void 0,r=u(t?.goal)?t.goal:void 0,a=u(t?.loop)?t.loop:void 0,i=[r?da(r,"goal"):void 0,a?da(a,"loop"):void 0],n=!!(r||a);return gt("goal-loop-continuity-metadata",n,i,n&&i.every(o=>!o)?[Ae.MISSING]:void 0)}function oc(e){return Array.isArray(e)?e.filter(u):u(e)?Array.isArray(e.operationLogs)?e.operationLogs.filter(u):u(e.operationLog)?[e.operationLog]:Array.isArray(e.operations)?[e]:[]:[]}function pa(e,t){const r=u(t.metadata)?t.metadata:void 0,a=In([t.goalId,t.targetGoalId,t.campaignId,r?.goalId,r?.campaignId,t.jobId,r?.jobId],"goal"),i=In([t.loopId,t.targetLoopId,r?.loopId,t.jobId,r?.jobId],"loop"),n=zt([t.jobId,t.targetJobId,r?.jobId],"job"),o=a??i??n;if(!o)return;const s=e.get(o)??{targetId:o,relatedJobIds:[]};s.relatedJobIds.push(...Jn([n,t.jobId,t.targetJobId,r?.jobId])),e.set(o,s)}function cc(e){const t=u(e.metadata)?e.metadata:void 0;return!!(In([e.goalId,e.targetGoalId,e.campaignId,t?.goalId,t?.campaignId,e.jobId,t?.jobId],"goal")??In([e.loopId,e.targetLoopId,t?.loopId,e.jobId,t?.jobId],"loop"))}function sc(e){const t=u(e.metadata)?e.metadata:void 0;return!!zt([e.goalId,e.targetGoalId,e.campaignId,e.loopId,e.targetLoopId,e.jobId,e.targetJobId,t?.goalId,t?.campaignId,t?.loopId,t?.jobId])}function ua(e,t){const r=[];for(const o of["metadata","job","event","receipt","processingOutputSummary"]){const s=t[o];u(s)&&r.push(s)}const a=u(t.event)?t.event:void 0;u(a?.metadata)&&r.push(a.metadata),u(a?.processingOutputSummary)&&r.push(a.processingOutputSummary);const i=u(t.receipt)?t.receipt:void 0;u(i?.metadata)&&r.push(i.metadata);const n=r.some(sc);for(const o of r)pa(e,o);(!n||cc(t))&&pa(e,t)}function dc(e){const t=oc(e?.continuityStateUpdate),r=new Map;for(const i of t){ua(r,i);const n=Array.isArray(i.operations)?i.operations.filter(u):[];for(const o of n)ua(r,o)}const a=Array.from(r.values()).map(i=>Yn("continuity-state-update-operation-log",i.targetId,i.relatedJobIds));return gt("continuity-state-update-operation-log",t.length>0,a,t.length>0&&a.every(i=>!i)?[Ae.MISSING]:void 0)}function pc(e){const t=oa(e);return gt("explicit-args",t.length>0,t.map(r=>Yn("explicit-args",r)))}function uc(e,t){const r=[ac(e),ic(e),dc(e),pc(t)];for(let a=0;a<r.length;a+=1){const i=r[a];if(!i.hasEvidence)continue;if(i.disabledReasonCodes&&i.disabledReasonCodes.length>0)return Ut(i.disabledReasonCodes);if(i.candidates.length!==1)return Ut([i.candidates.length>1?Ae.AMBIGUOUS:Ae.MISSING]);const n=i.candidates[0];for(const o of r.slice(a+1)){if(!o.hasEvidence)continue;if(o.disabledReasonCodes&&o.disabledReasonCodes.length>0)return Ut(o.disabledReasonCodes);if(o.candidates.length>1)return Ut([Ae.AMBIGUOUS]);const s=o.candidates[0];if(s&&!rc(n,s))return Ut([Ae.CONFLICT])}return{target:n.target,targetJobId:n.targetJobId,...n.initialCursor?{initialCursor:n.initialCursor}:{},source:n.source,serverHeldStream:!1}}return Ut([Ae.MISSING])}async function la(e,t,r,a={}){const i="/api/v1/invoke",n=At(t)>=sn?Zr(t):void 0,o=await qt(e,i,n??t,r,t.privateExecution?{...a,maxAttempts:1,allowReplayRetry:!1}:a);if(o.networkFailure||!o.response)return{ok:!1,status:0,error:"Network error after bounded retries"};const{response:s,text:p,parsed:m}=o;try{if(!s.ok)return t.privateExecution?{ok:!1,status:s.status,error:"private-execution-invoke-unavailable"}:{ok:!1,status:s.status,error:Object.keys(m).length>0?`${m.error_code??"ERROR"}: ${m.message??p}`:`HTTP ${s.status}: ${p}`,errorBody:Object.keys(m).length>0?m:void 0};const I=m,_=s.headers.get("X-Client-Version-Warning");return _&&!Yr&&(Yr=!0,process.stderr.write(`
|
|
23
|
-
[Neocortex] ${
|
|
20
|
+
`);return}if(t==="json"){a.write(JSON.stringify(Do(e))+`
|
|
21
|
+
`);return}a.write(No(e)+`
|
|
22
|
+
`)}function Hn(e){return Ui.has(e.status)}function Mo(e,t,a){if(t){const i=e.find(n=>n.jobId===t);return!!(i&&Hn(i))}return a<=0?!1:e.filter(i=>!Hn(i)).length===0}function jo(e,t,a,r){return a<r?!1:t?!e.some(i=>i.jobId===t&&!Hn(i)):e.length===0}function Vo(e,t){return t?.aborted?Promise.resolve():new Promise(a=>{const r=setTimeout(i,e);function i(){clearTimeout(r),t?.removeEventListener("abort",i),a()}t?.addEventListener("abort",i,{once:!0})})}function Uo(e){return e.includes(Ae.MALFORMED)?"malformed":e.includes(Ae.AMBIGUOUS)?"ambiguous":e.includes("watch-target-multiple")?"multiple":e.includes("watch-evidence-unsafe")?"unsafe":e.includes(Ae.MISSING)||e.includes(Ie.TARGET_UNRESOLVED)?"unresolved":"unavailable"}function aa(e,t){const a=t?zt(t):void 0,r=ke([...e,Ie.TARGET_UNRESOLVED,F.WATCH_TARGET_UNRESOLVED]),i=Gn(a,a?.targetId,Uo(r),r),n=nt({generatedAt:new Date().toISOString()},[],!1,0,[F.WATCH_TARGET_UNRESOLVED]),o=Je(void 0,void 0,void 0,[],[F.WATCH_TARGET_UNRESOLVED],"unavailable");return Ye({watchStatus:"blocked",active:!1,targetEvidence:i,snapshotEvidence:n,cursorEvidence:o,stopReason:"target_unresolved",reasonCodes:r,generatedAt:n.generatedAt})}function Bo(e,t,a,r,i=!1){const n=aa(e,oa(t));return Ke(n,a,r,i),rt("target-unresolved",0,0,n,i)}async function $o(e){if(e.signal?.aborted){const M=Gn(e.target??zt(e.targetJobId),e.targetJobId,e.target??e.targetJobId?"resolved":"unresolved",[Ie.CANCELLED]),I=nt(void 0,[],!1,0),b=Je(e.initialCursor,e.initialCursor,e.initialCursor,[],[Ie.CANCELLED],"unavailable"),re=Ye({watchStatus:"stopped",active:!1,targetEvidence:M,snapshotEvidence:I,cursorEvidence:b,stopReason:"cancelled",reasonCodes:[Ie.CANCELLED]});return rt("cancelled",0,0,re,e.protectedOutput)}const t=e.target??zt(e.targetJobId),a=e.targetJobId??t?.targetId,r=e.stdout??process.stdout;if(!t){const M=aa([Ae.MISSING,Ie.TARGET_UNRESOLVED]);return Ke(M,e.format,r,e.protectedOutput),rt("target-unresolved",0,0,M,e.protectedOutput)}const i=fn(e.limit??mn("NEOCORTEX_INVOKE_WATCH_LIMIT",hr),hr,50),n=Math.max(50,fn(e.pollIntervalMs??mn("NEOCORTEX_INVOKE_WATCH_POLL_INTERVAL_MS",mr),mr,6e4)),o=fn(e.maxIdlePolls??mn("NEOCORTEX_INVOKE_WATCH_MAX_IDLE_POLLS",gr),gr,120),s=fn(e.maxPolls??mn("NEOCORTEX_INVOKE_WATCH_MAX_POLLS",fr),fr,86400),p=e.sleep??Vo;let m=e.initialCursor,S=0,_=0,l=0;const v=Gn(t,a,"resolved",[F.OK]),f={schemaVersion:1,contractVersion:"continuity-v1",snapshotStatus:"pending",renderedSummaryCount:0,reasonCodes:[F.WATCH_RENDER_PENDING],publicSafe:!0},h=Je(e.initialCursor,m,m,[],e.initialCursor?[F.WATCH_CURSOR_UNCHANGED]:[F.WATCH_NO_SUMMARIES_YET],e.initialCursor?"unchanged":"not_started");Ke(Ye({watchStatus:"active",active:!0,targetEvidence:v,snapshotEvidence:f,cursorEvidence:h,stopReason:"not_stopped",reasonCodes:[F.OK]}),e.format,r,e.protectedOutput);let C;try{C=await Ja({projectRoot:e.projectRoot,strictReadOnly:e.strictReadOnly})}catch{const M=nt(void 0,[],!1,S,[F.WATCH_SNAPSHOT_UNAVAILABLE]),I=Je(e.initialCursor,m,m,[],[F.WATCH_EVIDENCE_UNAVAILABLE],"unavailable"),b=Ye({watchStatus:"blocked",active:!1,targetEvidence:v,snapshotEvidence:M,cursorEvidence:I,stopReason:"unavailable_evidence",reasonCodes:[Ie.STORE_UNAVAILABLE]});return Ke(b,e.format,r,e.protectedOutput),rt("store-unavailable",S,l,b,e.protectedOutput)}try{for(;!e.signal?.aborted&&l<s;){l+=1;const M=m,I=C.collectProcessingOutputSummaryCursor({...m?{cursor:m}:{},...t?{target:t}:{},...a?{jobId:a}:{},limit:i}),b=C.collectSnapshot({jobLimit:50,processingSummaryLimit:1}),re=b.jobs;if(I.summaries.length>0){for(const W of I.summaries)Lo(W,e.format,r,e.protectedOutput),S+=1;m=I.nextCursor??I.summaries[I.summaries.length-1]?.cursor??m,_=0}else m=I.nextCursor??m,_+=1;const w=nt(b,I.summaries,!0,I.summaries.length),$=Je(e.initialCursor,M,m,I.summaries,I.summaries.length>0?[F.WATCH_CURSOR_ADVANCED]:[F.WATCH_NO_SUMMARIES_YET]);if(Ke(Ye({watchStatus:I.summaries.length>0?"polling":"waiting",active:!0,targetEvidence:v,snapshotEvidence:w,cursorEvidence:$,stopReason:"not_stopped",reasonCodes:I.summaries.length>0?[F.WATCH_CURSOR_ADVANCED]:[F.WATCH_NO_SUMMARIES_YET],generatedAt:b.generatedAt}),e.format,r,e.protectedOutput),!I.hasMore&&Mo(re,a,S)){const W=nt(b,I.summaries,!1,S,[Ie.COMPLETED]),j=Je(e.initialCursor,M,m,I.summaries,[Ie.COMPLETED],"exhausted"),V=Ye({watchStatus:"stopped",active:!1,targetEvidence:v,snapshotEvidence:W,cursorEvidence:j,stopReason:"not_stopped",reasonCodes:[Ie.COMPLETED],generatedAt:b.generatedAt});return Ke(V,e.format,r,e.protectedOutput),rt("completed",S,l,V,e.protectedOutput)}if(!I.hasMore&&jo(re,a,_,o)){const W=nt(b,I.summaries,!1,S,[F.WATCH_STOP_IDLE_LIMIT_REACHED]),j=Je(e.initialCursor,M,m,I.summaries,[F.WATCH_STOP_IDLE_LIMIT_REACHED],"exhausted"),V=Ye({watchStatus:"stopped",active:!1,targetEvidence:v,snapshotEvidence:W,cursorEvidence:j,stopReason:"idle_limit_reached",reasonCodes:[Ie.IDLE_TIMEOUT,F.WATCH_STOP_IDLE_LIMIT_REACHED],generatedAt:b.generatedAt});return Ke(V,e.format,r,e.protectedOutput),rt("idle-timeout",S,l,V,e.protectedOutput)}I.hasMore||await p(n,e.signal)}}catch{const M=nt(void 0,[],!1,S,[F.WATCH_SNAPSHOT_UNAVAILABLE]),I=Je(e.initialCursor,m,m,[],[F.WATCH_EVIDENCE_UNAVAILABLE],"unavailable"),b=Ye({watchStatus:"blocked",active:!1,targetEvidence:v,snapshotEvidence:M,cursorEvidence:I,stopReason:"unavailable_evidence",reasonCodes:[Ie.STORE_UNAVAILABLE]});return Ke(b,e.format,r,e.protectedOutput),rt("store-unavailable",S,l,b,e.protectedOutput)}finally{C.close()}if(e.signal?.aborted){const M=nt(void 0,[],!1,S,[Ie.CANCELLED]),I=Je(e.initialCursor,m,m,[],[Ie.CANCELLED],"unavailable"),b=Ye({watchStatus:"stopped",active:!1,targetEvidence:v,snapshotEvidence:M,cursorEvidence:I,stopReason:"cancelled",reasonCodes:[Ie.CANCELLED]});return Ke(b,e.format,r,e.protectedOutput),rt("cancelled",S,l,b,e.protectedOutput)}const N=nt(void 0,[],!1,S,[F.WATCH_STOP_MAX_POLLS_REACHED]),L=Je(e.initialCursor,m,m,[],[F.WATCH_STOP_MAX_POLLS_REACHED],"exhausted"),P=Ye({watchStatus:"stopped",active:!1,targetEvidence:v,snapshotEvidence:N,cursorEvidence:L,stopReason:"max_polls_reached",reasonCodes:[Ie.MAX_POLLS,F.WATCH_STOP_MAX_POLLS_REACHED]});return Ke(P,e.format,r,e.protectedOutput),rt("max-polls",S,l,P,e.protectedOutput)}function Fe(e){const t=e.trim().replace(/^@/,"").match(/^(job|goal|loop)-([JGL])(\d{3,})$/i);if(!t)return;const a=t[1].toLowerCase(),r=t[2].toUpperCase();if(!(a==="job"&&r!=="J"||a==="goal"&&r!=="G"||a==="loop"&&r!=="L"))return`${a}-${r}${t[3]}`}function Fn(e){if(e.startsWith("job-J"))return"job";if(e.startsWith("goal-G"))return"goal";if(e.startsWith("loop-L"))return"loop"}function ia(e){const t=[],a=/(?:^|[\s"'([,{])@?(job-[Jj]\d{3,}|goal-[Gg]\d{3,}|loop-[Ll]\d{3,})(?=$|[\s"')\]},.;:!?])/g;let r;for(;(r=a.exec(e))!==null;){const i=Fe(r[1]);i&&t.push(i)}return ke(t)}function oa(e){return ia(e)[0]}function zt(e){const t=e?Fe(e):void 0;if(t){if(t.startsWith("job-J"))return{selectorKind:"job",targetId:t,jobId:t,publicSafe:!0};if(t.startsWith("goal-G"))return{selectorKind:"goal",targetId:t,goalId:t,publicSafe:!0};if(t.startsWith("loop-L"))return{selectorKind:"loop",targetId:t,loopId:t,publicSafe:!0}}}function qn(e){return ke(e.filter(t=>typeof t=="string").map(t=>Fe(t)).filter(t=>!!t?.startsWith("job-J")))}function Wo(e,t){const a=qn(t).filter(r=>r!==e.targetId&&r!==e.jobId);return a.length>0?{...e,relatedJobIds:a}:e}function Go(e){if(!e)return;const t=u(e.target)?e.target:void 0,a=typeof e.selectorKind=="string"?e.selectorKind:typeof t?.selectorKind=="string"?t.selectorKind:void 0,r=typeof e.targetId=="string"?Fe(e.targetId):typeof t?.targetId=="string"?Fe(t.targetId):typeof e.targetJobId=="string"?Fe(e.targetJobId):void 0,i=zt(r);if(!i||a&&a!==i.selectorKind)return;const n=Array.isArray(e.relatedJobIds)?e.relatedJobIds:Array.isArray(t?.relatedJobIds)?t.relatedJobIds:void 0,o=qn([...n??[],e.jobId,t?.jobId,e.targetJobId,t?.targetJobId]).filter(s=>s!==i.targetId&&s!==i.jobId);return{...i,...typeof(e.jobId??t?.jobId)=="string"?{jobId:Fe(e.jobId??t?.jobId)??i.jobId}:{},...typeof(e.goalId??t?.goalId)=="string"?{goalId:Fe(e.goalId??t?.goalId)??i.goalId}:{},...typeof(e.loopId??t?.loopId)=="string"?{loopId:Fe(e.loopId??t?.loopId)??i.loopId}:{},...o.length>0?{relatedJobIds:o}:{}}}function ca(e){const t=e.trim().split(/\s+/).filter(Boolean),a=t[0]?.replace(/^\*/,"").toLowerCase(),r=t[1]?.replace(/^--/,"").toLowerCase();return(a==="jobs"||a==="job"||a==="continuity-jobs"||a==="61")&&r==="watch"}const we=Object.freeze({ACTIVE:"command-level-watch-active",INACTIVE:"command-level-watch-inactive",DUPLICATE:"command-level-watch-duplicate",AMBIGUOUS:"command-level-watch-ambiguous",QUOTED:"command-level-watch-quoted",MALFORMED:"command-level-watch-malformed",NON_FINAL:"command-level-watch-non-final",UNRESOLVED:"command-level-watch-unresolved",UNSUPPORTED:"command-level-watch-unsupported",TARGET_INVALID:"command-level-watch-target-invalid"}),Ho=new Set(["create","start","resume"]),Fo=new Set(["create","resume","run-once"]);function zn(e,t,a,r,i){return{schemaVersion:1,contractVersion:"continuity-v1",...a?{command:a}:{},...r?{operation:r}:{},active:e,...i?{watchToken:i}:{},reasonCodes:ke(t),serverHeldStream:!1,allJobsPolling:!1,targetResolution:e?"required-after-dispatch":"inactive",publicSafe:!0}}function be(e,t=[],a,r){const i=t.length>0?t:[we.INACTIVE];return{args:e,watch:!1,reasonCodes:i,metadata:zn(!1,i,a,r),publicSafe:!0}}function qo(e){const t=e.trim().split(/\s+/).filter(Boolean),a=t.slice(2).filter(n=>n==="--watch").length;if(a===0)return be(e,[],"jobs","watch");if(a!==1)return be(e,[we.AMBIGUOUS],"jobs","watch");const r=t.filter((n,o)=>o<2||n!=="--watch").join(" ");return ca(r)?r.trim().split(/\s+/).filter(Boolean).slice(2).length!==1?be(e,[we.AMBIGUOUS],"jobs","watch"):oa(r)?{args:r,watch:!0,reasonCodes:[we.ACTIVE],metadata:zn(!0,[we.ACTIVE],"jobs","watch"),publicSafe:!0}:be(e,[we.TARGET_INVALID],"jobs","watch"):be(e,[we.UNSUPPORTED],"jobs","watch")}function zo(e){const t=[];let a=!1,r=0;for(;r<e.length;){for(;r<e.length&&/\s/.test(e[r]);)r+=1;if(r>=e.length)break;const i=r;let n="",o=!1,s=null;for(;r<e.length;){const p=e[r];if(s){if(p===s){o=!0,s=null,r+=1;continue}if(p==="\\"&&r+1<e.length){n+=e[r+1],r+=2;continue}n+=p,r+=1;continue}if(/\s/.test(p))break;if(p==='"'||p==="'"){o=!0,s=p,r+=1;continue}n+=p,r+=1}s&&(a=!0),t.push({value:n,start:i,end:r,quoted:o})}return{tokens:t,malformed:a}}function Jo(e){if(!e||e.quoted)return;const t=e.value.replace(/^\*/,"").toLowerCase();return t==="goal"||t==="loop"?t:void 0}function Yo(e,t){if(!e||e==="jobs"||!t||t.quoted)return;const a=t.value.toLowerCase();return(e==="goal"?Ho:Fo).has(a)?a:void 0}function Ko(e){return!e.quoted&&e.value!=="--watch"&&e.value.toLowerCase().startsWith("--watch")}function Qo(e){const{tokens:t,malformed:a}=zo(e),r=Jo(t[0]),i=Yo(r,t[1]);if(a)return be(e,[we.MALFORMED],r,i);const n=t.filter(l=>l.value==="--watch"&&!l.quoted),o=t.filter(l=>l.value==="--watch"&&l.quoted),s=t.filter(Ko);if(!(n.length>0||o.length>0||s.length>0))return be(e,[],r,i);if(n.length>1)return be(e,[we.DUPLICATE],r,i);if(n.length===1&&(o.length>0||s.length>0))return be(e,[we.AMBIGUOUS],r,i);if(o.length>0)return be(e,[we.QUOTED],r,i);if(s.length>0)return be(e,[we.MALFORMED],r,i);const m=n[0];if(!m)return be(e,[],r,i);if(t[t.length-1]!==m)return be(e,[we.NON_FINAL],r,i);if(!r||!i)return be(e,[we.UNRESOLVED],r,i);const S=`${e.slice(0,m.start)}${e.slice(m.end)}`.trim(),_={literal:"--watch",position:"final",start:m.start,end:m.end,quoted:!1,publicSafe:!0};return{args:S,watch:!0,reasonCodes:[we.ACTIVE],metadata:zn(!0,[we.ACTIVE],r,i,_),publicSafe:!0}}function Xo(e){return ca(e)?qo(e):Qo(e)}function Zo(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&Bi.has(t)):[]}function Ut(e){return{disabled:!0,reasonCodes:ke(e.length>0?e:[Ae.MISSING])}}function Jn(e,t,a=[],r){const i=zt(t);if(i)return{source:e,target:Wo(i,a),targetJobId:i.targetId,...r?{initialCursor:r}:{},serverHeldStream:!1}}function ec(e){const t=new Map;for(const a of e){const r=`${a.target.selectorKind}:${a.target.targetId}`,i=t.get(r);if(!i){t.set(r,a);continue}const n=ke([...i.target.relatedJobIds??[],...a.target.relatedJobIds??[]]);t.set(r,{...i,target:n.length>0?{...i.target,relatedJobIds:n}:i.target,initialCursor:i.initialCursor??a.initialCursor})}return Array.from(t.values())}function ft(e,t,a,r){return{source:e,hasEvidence:t,candidates:ec(a.filter(i=>!!i)),...r&&r.length>0?{disabledReasonCodes:ke(r)}:{}}}function tc(e,t){return e.target.selectorKind===t.target.selectorKind&&e.target.targetId===t.target.targetId}function Jt(e,t){const a=ke(e.filter(r=>typeof r=="string").map(r=>Fe(r)).filter(r=>!!r));if(t){const r=a.find(i=>Fn(i)===t);if(r)return r}return a[0]}function yn(e,t){return ke(e.filter(a=>typeof a=="string").map(a=>Fe(a)).filter(a=>!!a)).find(a=>Fn(a)===t)}function nc(e){const t=u(e?.continuity)?e.continuity:void 0,a=u(t?.jobs)?t.jobs:void 0,r=u(a?.watcher)?a.watcher:void 0,i=Zo(r?.reasonCodes??a?.reasonCodes);if(!r)return ft("watcher-metadata",i.length>0,[],i);if(r.active===!1||i.length>0)return ft("watcher-metadata",!0,[],i.length>0?i:[Ae.MALFORMED]);if(r.serverHeldStream!==!1)return ft("watcher-metadata",!0,[],[Ae.SERVER_HELD_STREAM]);const n=Go(r);if(!n)return ft("watcher-metadata",!0,[],[Ae.MISSING]);const o=typeof r.initialCursor=="string"?r.initialCursor:void 0;return ft("watcher-metadata",!0,[{source:"watcher-metadata",target:n,targetJobId:n.targetId,...o?{initialCursor:o}:{},serverHeldStream:!1}])}function sa(e,t){const a=u(e.loopJobPlan)?e.loopJobPlan:void 0,r=u(a?.metadata)?a.metadata:void 0,i=u(e.metadata)?e.metadata:void 0,o=(t==="goal"?Jt([e.goalId,e.targetGoalId,e.campaignId,e.jobId,e.targetJobId,i?.goalId,i?.campaignId,i?.jobId],"goal"):Jt([e.loopId,e.targetLoopId,e.jobId,e.targetJobId,i?.loopId,i?.jobId,r?.loopId,r?.jobId],"loop"))??Jt([e.jobId,e.targetJobId,i?.jobId,r?.jobId]);return Jn("goal-loop-continuity-metadata",o,[e.jobId,e.targetJobId,i?.jobId,r?.jobId])}function rc(e){const t=u(e?.continuity)?e.continuity:void 0,a=u(t?.goal)?t.goal:void 0,r=u(t?.loop)?t.loop:void 0,i=[a?sa(a,"goal"):void 0,r?sa(r,"loop"):void 0],n=!!(a||r);return ft("goal-loop-continuity-metadata",n,i,n&&i.every(o=>!o)?[Ae.MISSING]:void 0)}function ac(e){return Array.isArray(e)?e.filter(u):u(e)?Array.isArray(e.operationLogs)?e.operationLogs.filter(u):u(e.operationLog)?[e.operationLog]:Array.isArray(e.operations)?[e]:[]:[]}function da(e,t){const a=u(t.metadata)?t.metadata:void 0,r=yn([t.goalId,t.targetGoalId,t.campaignId,a?.goalId,a?.campaignId,t.jobId,a?.jobId],"goal"),i=yn([t.loopId,t.targetLoopId,a?.loopId,t.jobId,a?.jobId],"loop"),n=Jt([t.jobId,t.targetJobId,a?.jobId],"job"),o=r??i??n;if(!o)return;const s=e.get(o)??{targetId:o,relatedJobIds:[]};s.relatedJobIds.push(...qn([n,t.jobId,t.targetJobId,a?.jobId])),e.set(o,s)}function ic(e){const t=u(e.metadata)?e.metadata:void 0;return!!(yn([e.goalId,e.targetGoalId,e.campaignId,t?.goalId,t?.campaignId,e.jobId,t?.jobId],"goal")??yn([e.loopId,e.targetLoopId,t?.loopId,e.jobId,t?.jobId],"loop"))}function oc(e){const t=u(e.metadata)?e.metadata:void 0;return!!Jt([e.goalId,e.targetGoalId,e.campaignId,e.loopId,e.targetLoopId,e.jobId,e.targetJobId,t?.goalId,t?.campaignId,t?.loopId,t?.jobId])}function pa(e,t){const a=[];for(const o of["metadata","job","event","receipt","processingOutputSummary"]){const s=t[o];u(s)&&a.push(s)}const r=u(t.event)?t.event:void 0;u(r?.metadata)&&a.push(r.metadata),u(r?.processingOutputSummary)&&a.push(r.processingOutputSummary);const i=u(t.receipt)?t.receipt:void 0;u(i?.metadata)&&a.push(i.metadata);const n=a.some(oc);for(const o of a)da(e,o);(!n||ic(t))&&da(e,t)}function cc(e){const t=ac(e?.continuityStateUpdate),a=new Map;for(const i of t){pa(a,i);const n=Array.isArray(i.operations)?i.operations.filter(u):[];for(const o of n)pa(a,o)}const r=Array.from(a.values()).map(i=>Jn("continuity-state-update-operation-log",i.targetId,i.relatedJobIds));return ft("continuity-state-update-operation-log",t.length>0,r,t.length>0&&r.every(i=>!i)?[Ae.MISSING]:void 0)}function sc(e){const t=ia(e);return ft("explicit-args",t.length>0,t.map(a=>Jn("explicit-args",a)))}function dc(e,t){const a=[nc(e),rc(e),cc(e),sc(t)];for(let r=0;r<a.length;r+=1){const i=a[r];if(!i.hasEvidence)continue;if(i.disabledReasonCodes&&i.disabledReasonCodes.length>0)return Ut(i.disabledReasonCodes);if(i.candidates.length!==1)return Ut([i.candidates.length>1?Ae.AMBIGUOUS:Ae.MISSING]);const n=i.candidates[0];for(const o of a.slice(r+1)){if(!o.hasEvidence)continue;if(o.disabledReasonCodes&&o.disabledReasonCodes.length>0)return Ut(o.disabledReasonCodes);if(o.candidates.length>1)return Ut([Ae.AMBIGUOUS]);const s=o.candidates[0];if(s&&!tc(n,s))return Ut([Ae.CONFLICT])}return{target:n.target,targetJobId:n.targetJobId,...n.initialCursor?{initialCursor:n.initialCursor}:{},source:n.source,serverHeldStream:!1}}return Ut([Ae.MISSING])}async function ua(e,t,a,r={}){const n=await qt(e,"/api/v1/invoke",t,a,t.privateExecution?{...r,maxAttempts:1,allowReplayRetry:!1}:r);if(n.networkFailure||!n.response)return{ok:!1,status:0,error:"Network error after bounded retries"};const{response:o,text:s,parsed:p}=n;try{if(!o.ok)return t.privateExecution?{ok:!1,status:o.status,error:"private-execution-invoke-unavailable"}:{ok:!1,status:o.status,error:Object.keys(p).length>0?`${p.error_code??"ERROR"}: ${p.message??s}`:`HTTP ${o.status}: ${s}`,errorBody:Object.keys(p).length>0?p:void 0};const m=p,S=o.headers.get("X-Client-Version-Warning");return S&&!Yr&&(Yr=!0,process.stderr.write(`
|
|
23
|
+
[Neocortex] ${S}
|
|
24
24
|
|
|
25
|
-
`)),{ok:!0,status:s.status,data:I}}catch(I){return{ok:!1,status:0,error:(I instanceof Error?I.message:String(I)).includes("abort")?`Request timeout after ${Ar/1e3}s`:"Network error: invalid response"}}}async function lc(e,t,r){const a=await qt(e,"/api/v1/invoke/private-execution/consume",t,r,{maxAttempts:1,allowReplayRetry:!1});if(a.networkFailure||!a.response||!a.response.ok)throw new Error("private-execution-delivery-unavailable");return a.parsed}async function hc(e,t,r){const a=await qt(e,"/api/v1/invoke/private-execution/cancel",t,r,{maxAttempts:1,allowReplayRetry:!1});return!!a.response?.ok&&a.parsed.status==="cancelled"}async function ha(e,t,r,a={}){const i=await qt(e,"/api/v1/invoke/epic-claims/acknowledge",{...r,registryVersion:_t,registryChecksum:wt},t,a);return!!i.response?.ok&&i.parsed.status==="ok"&&i.parsed.claimOutcome===r.status&&(!r.planningCheckpoint||i.parsed.memoryReceiptId===r.planningCheckpoint.memoryReceiptId)}async function fc(e,t,r,a,i,n={}){if(!i)return 0;const o=Vt(e);let s=0;for(const[p,m]of Object.entries(o.operations))m.planningProtocol==="root-staged-v1"||!m.claimId||!m.epicId||!t.epics?.[m.epicId]||!await ha(r,a,{claimId:m.claimId,projectId:i,epicId:m.epicId,status:"materialized"},n)||(Vi(e,p),s+=1);return s}function gc(e,t){const r=t.state.pendingContinuationAuthorities,a=t.state.continuationSession;if(t.state.continuationPolicy!=="p205-finite-resume-v2"||r?.length!==1||!a)return;const i=r[0],n=i.certificate,o=n?.expectedTransition;if(i.storyIds!=="[CIRCULAR]"||n?.rank!=="[CIRCULAR]"||o?.selectedStoryIds!=="[CIRCULAR]")return;const s=typeof a.epicId=="string"?a.epicId:"",p=e.epics[s],m=Array.isArray(o.storyLifecycle)?o.storyLifecycle:[],I=m.length===1&&typeof m[0]?.storyId=="string"?m[0].storyId:"",l=e.stories[I]?.checkpoint;if(!p||p.branch_mode!=="epic"||typeof p.execution_branch!="string"||typeof p.origin_branch!="string"||p.branch_lease!==void 0&&p.branch_lease!==null||!l||l.qaVerdict!=="passed"||l.reviewVerdict!=="approved"||!Array.isArray(l.receiptRefs))return;const g=(Array.isArray(p.stories)?p.stories.filter(h=>typeof h=="string"):[]).find(h=>{const C=e.stories[h];return!C||["done","completed","merged"].includes(String(C.status))?!1:(Array.isArray(C.depends_on)?C.depends_on.filter(M=>typeof M=="string"):[]).every(M=>["done","completed","merged"].includes(String(e.stories[M]?.status)))});if(g)return{epicId:s,expectedNextStoryId:g,branchMode:"epic",executionBranch:p.execution_branch,originBranch:p.origin_branch,branchLeaseReleased:!0,checkpoint:{schemaVersion:1,storyId:l.storyId,epicId:l.epicId,branch:l.branch,baseSha:l.baseSha,headSha:l.headSha,receiptRefs:[...l.receiptRefs],qaVerdict:"passed",reviewVerdict:"approved"}}}async function mc(e){let t;try{if(t=e.inputEnvelope??rn(e.inputSource??"args",e.args),di(t),t.rawArgs!==e.args)throw new Error("INVOKE_INPUT_ENVELOPE_ARGUMENT_CONFLICT")}catch{return{success:!1,error:"INVOCATION_MALFORMED_INPUT: explicit input integrity could not be verified.",errorCode:"INVOCATION_MALFORMED_INPUT",metadata:{invocationInput:{reason:"input-integrity-conflict",remediation:"Retry with exactly one of --args, --stdin or --args-file.",publicSafe:!0}},exitCode:1}}const r=t.rawArgs,a=vr(t);let i=r,n=a;const o=Bi(r);if(o.outcome!=="resolved"){const c=ui(o,"client"),d=o.outcome==="malformed_input"?o.reason==="input_limit"||o.reason==="token_limit"||o.reason==="token_size_limit"?"input-limit-exceeded":o.reason==="invalid_control"||o.reason==="invalid_surrogate"?"invalid-control-character":o.reason==="unterminated_quote"||o.reason==="trailing_escape"||o.reason==="unsupported_escape"?"unterminated-quote":void 0:void 0,y=d?{code:"INVOCATION_MALFORMED_INPUT",reason:d,source:t.source,byteLength:t.byteLength,remediation:d==="input-limit-exceeded"?"Reduce the explicit command input or split the requested work into bounded invocations.":d==="invalid-control-character"?"Remove invalid control characters and retry with valid UTF-8 text.":"Close quotes and escapes, or use --stdin/--args-file for multiline content."}:void 0;return{success:!1,error:`INVOCATION_${o.outcome.toUpperCase()}`,errorCode:`INVOCATION_${o.outcome.toUpperCase()}`,metadata:{invocationAdmission:c,...y?{invocationInput:y}:{}},exitCode:1}}if(e.privateExecutionModel!==void 0&&(!e.privateExecutionBeta||e.strictReadOnly||!/^gpt-[a-z0-9][a-z0-9.-]{0,63}$/.test(e.privateExecutionModel)))return{success:!1,error:"private-codex-model-invalid",errorCode:"private-codex-model-invalid",exitCode:1};const s=Dn(e.projectRoot),p=o.selection.commandId,m=p==="tech-debt"&&o.selection.positionals.length===0&&(o.selection.operationId==="scan"&&Object.keys(o.selection.options).length===0||o.selection.operationId===void 0&&o.selection.options.scan===!0&&Object.keys(o.selection.options).length===1),I=Oa.find(c=>c.id===p),_=I?.subcommands.find(c=>c.id===o.selection.operationId),l=_?_.policy.strictReadOnly==="allow":I?.policy.strictReadOnly==="allow",S=p==="diagnose";let g;try{g=oi({invocationId:en(),intent:e.strictReadOnly||S?{schemaVersion:1,policy:ri,registryVersion:_t,registryChecksum:wt}:void 0,registryVersion:_t,registryChecksum:wt,registryAllowsStrict:l,requestCanonicalBytes:JSON.stringify({command:p})})}catch(c){if(c instanceof Mt)return{success:!1,error:c.code,errorCode:c.code,exitCode:1};throw c}{g.beginProjection();for(const c of Sr)g.project(c);for(const c of ai)g.project(c);g.seal()}const h=g.mode==="strict";if(p==="create-epic"||p==="idea-diagnose")try{const c=yi(s);if(c&&c!=="finalized")return{success:!1,error:'PROJECT_IDENTITY_MIGRATION_INCOMPLETE: retry `neocortex-client invoke --args "*migrate-project-id"` before create-epic.',errorCode:"PROJECT_IDENTITY_MIGRATION_INCOMPLETE",metadata:{projectIdentityMigration:{phase:c,publicSafe:!0}},exitCode:1}}catch(c){const d=c instanceof Pn?c.code:"PROJECT_IDENTITY_MIGRATION_STATE_CORRUPT";return{success:!1,error:d,errorCode:d,exitCode:1}}const C=e.environment??process.env;if(e.privateExecutionBeta&&(p!=="yolo"&&p!=="research"&&p!=="write-spec"&&p!=="create-tasks"&&p!=="implement"&&p!=="exec"&&p!=="create-epic"&&p!=="idea-diagnose"&&p!=="idea-research"&&p!=="generate-epic"&&p!=="sync-openapi"&&p!=="chaos-plan"&&p!=="ui-ux-review"&&p!=="arch-prd"&&p!=="arch-architecture"&&p!=="arch-fitness-functions"&&p!=="arch-api-contracts"&&p!=="arch-api-integrations"&&p!=="arch-database"&&p!=="arch-security"&&p!=="arch-design-system"&&p!=="arch-performance"&&p!=="arch-testing"&&p!=="arch-infrastructure"&&p!=="arch-review"&&p!=="update-memory"&&p!=="arch-ux-design"&&p!=="generate-pacts"&&p!=="property-test"&&!m||h||e.platformTarget!==void 0&&e.platformTarget!=="codex"))return{success:!1,error:"PRIVATE_EXECUTION_BETA_UNSUPPORTED",errorCode:"PRIVATE_EXECUTION_BETA_UNSUPPORTED",exitCode:1};const D=Za({cwd:s,env:C,targetFlag:e.privateExecutionBeta?"codex":e.platformTarget}),M=D.targetId,P=e.privateExecutionBeta?void 0:Xa({cwd:s,env:C,targetFlag:e.platformTarget,nativeHostVersion:zi(D,C)},D);p!=="migrate-project-id"&&g.execute({phase:"client-preflight",domain:"client-persistence",category:"first-run-marker",operation:"create"},()=>Ui(),()=>{});const k=yo(g),v=(e.serverUrl??k?.serverUrl??Da).replace(/\/+$/,"");if(p==="migrate-project-id"){const c=await Ei(v);if(!c.supported)return{success:!1,error:"PROJECT_IDENTITY_MIGRATION_CAPABILITY_UNAVAILABLE: the server did not advertise the versioned migration capability; no local state was changed.",errorCode:"PROJECT_IDENTITY_MIGRATION_CAPABILITY_UNAVAILABLE",metadata:{projectIdentityMigrationCapability:c},exitCode:1};const d=[];let y;try{y=mi(s)}catch(U){const me=U instanceof Pn?U.code:"PROJECT_IDENTITY_MIGRATION_PREPARE_FAILED";return{success:!1,error:me,errorCode:me,exitCode:1}}d.push(jt({phase:"prepare",outcome:y.changed&&y.document.phase==="prepared"?"prepared":"retry",floor:y.document.legacyEpicFloor,licenseId:"local-client",projectId:y.document.projectId}));const A=fn(s);if(A.config.project_id!==y.document.projectId)return{success:!1,error:"PROJECT_IDENTITY_MIGRATION_STATE_DRIFT",errorCode:"PROJECT_IDENTITY_MIGRATION_STATE_DRIFT",metadata:{invocationDiagnostics:d},exitCode:1};const $=await zr(v,k?.licenseKey,g);if($.status!=="authenticated"){const U=$.status==="refresh-required";return{success:!1,error:U?"Authentication refresh required. Run: neocortex activate YOUR-LICENSE-KEY":"Not authenticated. Visit https://neocortex.sh/portal/login to get your license key, then run: neocortex activate YOUR-LICENSE-KEY",errorCode:U?"AUTH_REFRESH_REQUIRED":"NOT_CONFIGURED",metadata:{invocationDiagnostics:d},exitCode:U?1:2}}let le;try{le=lr(e.args.trim(),A)}catch(U){const me=U instanceof hr?U.code:"PROJECT_IDENTITY_MIGRATION_PROJECTION_FAILED";return{success:!1,error:me,errorCode:me,metadata:{invocationDiagnostics:d},exitCode:1}}let ie={args:r,projectRoot:s.replace(Ft(),"~"),stateSnapshot:le,platformTarget:M,...P?{nativeHostAttestation:P}:{},projectId:y.document.projectId,projectIdentityMigration:y.request,inputEvidence:a,idempotencyKey:y.document.operationId,registryVersion:_t,registryChecksum:wt};try{ie=ta(ie).body}catch(U){if(U instanceof Mn||U instanceof jn)return{success:!1,error:U.message,errorCode:U.code,metadata:{invokePayload:U.telemetry,invocationDiagnostics:d},exitCode:1};throw U}const pe=await Ir("invoke-query",()=>la(v,ie,$.token,{refreshToken:()=>$.client.forceRefresh()}));if(!pe.ok||!pe.data)return d.push(jt({phase:"seed",outcome:"rejected",floor:y.document.legacyEpicFloor,licenseId:"local-client",projectId:y.document.projectId})),{success:!1,error:Fe(pe.error??"PROJECT_IDENTITY_MIGRATION_REMOTE_FAILED",Rt),errorCode:typeof pe.errorBody?.error_code=="string"?pe.errorBody.error_code:"PROJECT_IDENTITY_MIGRATION_REMOTE_FAILED",metadata:{invocationDiagnostics:d},exitCode:pe.status===401?2:1};const he=pe.data.metadata?.projectIdentityMigration;try{pi(he),d.push(jt({phase:"seed",outcome:he.status,floor:he.acceptedLegacyFloor,licenseId:"local-client",projectId:he.projectId})),fi(s,he),d.push(jt({phase:"remote-acknowledged",outcome:he.status,floor:he.acceptedLegacyFloor,licenseId:"local-client",projectId:he.projectId})),gi(s,he),d.push(jt({phase:"finalize",outcome:"finalized",floor:he.acceptedLegacyFloor,licenseId:"local-client",projectId:he.projectId}))}catch(U){d.push(jt({phase:"reconcile",outcome:"rejected",floor:y.document.legacyEpicFloor,licenseId:"local-client",projectId:y.document.projectId}));const me=U instanceof Pn?U.code:U instanceof Error?U.message:"PROJECT_IDENTITY_MIGRATION_RECEIPT_INVALID";return{success:!1,error:me,errorCode:me,metadata:{invocationDiagnostics:d},exitCode:1}}return g.complete(),{success:!0,instructions:pe.data.instructions,metadata:{...pe.data.metadata,invocationDiagnostics:d},exitCode:0}}try{const{normalizeYoloopTargetArgs:c}=await import("../yoloop/target-normalization.js"),d=c(e.args,{projectRoot:s});if(!d.ok)return process.stderr.write(`${d.message} reason=${d.reasonCode}
|
|
25
|
+
`)),{ok:!0,status:o.status,data:m}}catch(m){return{ok:!1,status:0,error:(m instanceof Error?m.message:String(m)).includes("abort")?`Request timeout after ${Rr/1e3}s`:"Network error: invalid response"}}}async function pc(e,t,a){const r=await qt(e,"/api/v1/invoke/private-execution/consume",t,a,{maxAttempts:1,allowReplayRetry:!1});if(r.networkFailure||!r.response||!r.response.ok)throw new Error("private-execution-delivery-unavailable");return r.parsed}async function uc(e,t,a){const r=await qt(e,"/api/v1/invoke/private-execution/cancel",t,a,{maxAttempts:1,allowReplayRetry:!1});return!!r.response?.ok&&r.parsed.status==="cancelled"}async function la(e,t,a,r={}){const i=await qt(e,"/api/v1/invoke/epic-claims/acknowledge",{...a,registryVersion:wt,registryChecksum:Ct},t,r);return!!i.response?.ok&&i.parsed.status==="ok"&&i.parsed.claimOutcome===a.status&&(!a.planningCheckpoint||i.parsed.memoryReceiptId===a.planningCheckpoint.memoryReceiptId)}async function lc(e,t,a,r,i,n={}){if(!i)return 0;const o=jt(e);let s=0;for(const[p,m]of Object.entries(o.operations))m.planningProtocol==="root-staged-v1"||!m.claimId||!m.epicId||!t.epics?.[m.epicId]||!await la(a,r,{claimId:m.claimId,projectId:i,epicId:m.epicId,status:"materialized"},n)||(Mi(e,p),s+=1);return s}function hc(e,t){const a=t.state.pendingContinuationAuthorities,r=t.state.continuationSession;if(t.state.continuationPolicy!=="p205-finite-resume-v2"||a?.length!==1||!r)return;const i=a[0],n=i.certificate,o=n?.expectedTransition;if(i.storyIds!=="[CIRCULAR]"||n?.rank!=="[CIRCULAR]"||o?.selectedStoryIds!=="[CIRCULAR]")return;const s=typeof r.epicId=="string"?r.epicId:"",p=e.epics[s],m=Array.isArray(o.storyLifecycle)?o.storyLifecycle:[],S=m.length===1&&typeof m[0]?.storyId=="string"?m[0].storyId:"",l=e.stories[S]?.checkpoint;if(!p||p.branch_mode!=="epic"||typeof p.execution_branch!="string"||typeof p.origin_branch!="string"||p.branch_lease!==void 0&&p.branch_lease!==null||!l||l.qaVerdict!=="passed"||l.reviewVerdict!=="approved"||!Array.isArray(l.receiptRefs))return;const f=(Array.isArray(p.stories)?p.stories.filter(h=>typeof h=="string"):[]).find(h=>{const C=e.stories[h];return!C||["done","completed","merged"].includes(String(C.status))?!1:(Array.isArray(C.depends_on)?C.depends_on.filter(L=>typeof L=="string"):[]).every(L=>["done","completed","merged"].includes(String(e.stories[L]?.status)))});if(f)return{epicId:s,expectedNextStoryId:f,branchMode:"epic",executionBranch:p.execution_branch,originBranch:p.origin_branch,branchLeaseReleased:!0,checkpoint:{schemaVersion:1,storyId:l.storyId,epicId:l.epicId,branch:l.branch,baseSha:l.baseSha,headSha:l.headSha,receiptRefs:[...l.receiptRefs],qaVerdict:"passed",reviewVerdict:"approved"}}}async function gc(e){let t;try{if(t=e.inputEnvelope??rn(e.inputSource??"args",e.args),ci(t),t.rawArgs!==e.args)throw new Error("INVOKE_INPUT_ENVELOPE_ARGUMENT_CONFLICT")}catch{return{success:!1,error:"INVOCATION_MALFORMED_INPUT: explicit input integrity could not be verified.",errorCode:"INVOCATION_MALFORMED_INPUT",metadata:{invocationInput:{reason:"input-integrity-conflict",remediation:"Retry with exactly one of --args, --stdin or --args-file.",publicSafe:!0}},exitCode:1}}const a=t.rawArgs,r=Sr(t);let i=a,n=r;const o=Vi(a);if(o.outcome!=="resolved"){const c=di(o,"client"),d=o.outcome==="malformed_input"?o.reason==="input_limit"||o.reason==="token_limit"||o.reason==="token_size_limit"?"input-limit-exceeded":o.reason==="invalid_control"||o.reason==="invalid_surrogate"?"invalid-control-character":o.reason==="unterminated_quote"||o.reason==="trailing_escape"||o.reason==="unsupported_escape"?"unterminated-quote":void 0:void 0,y=d?{code:"INVOCATION_MALFORMED_INPUT",reason:d,source:t.source,byteLength:t.byteLength,remediation:d==="input-limit-exceeded"?"Reduce the explicit command input or split the requested work into bounded invocations.":d==="invalid-control-character"?"Remove invalid control characters and retry with valid UTF-8 text.":"Close quotes and escapes, or use --stdin/--args-file for multiline content."}:void 0;return{success:!1,error:`INVOCATION_${o.outcome.toUpperCase()}`,errorCode:`INVOCATION_${o.outcome.toUpperCase()}`,metadata:{invocationAdmission:c,...y?{invocationInput:y}:{}},exitCode:1}}if(e.privateExecutionModel!==void 0&&(!e.privateExecutionBeta||e.strictReadOnly||!/^gpt-[a-z0-9][a-z0-9.-]{0,63}$/.test(e.privateExecutionModel)))return{success:!1,error:"private-codex-model-invalid",errorCode:"private-codex-model-invalid",exitCode:1};const s=On(e.projectRoot),p=o.selection.commandId,m=p==="tech-debt"&&o.selection.positionals.length===0&&(o.selection.operationId==="scan"&&Object.keys(o.selection.options).length===0||o.selection.operationId===void 0&&o.selection.options.scan===!0&&Object.keys(o.selection.options).length===1),S=ka.find(c=>c.id===p),_=S?.subcommands.find(c=>c.id===o.selection.operationId),l=_?_.policy.strictReadOnly==="allow":S?.policy.strictReadOnly==="allow",v=p==="diagnose";let f;try{f=ai({invocationId:en(),intent:e.strictReadOnly||v?{schemaVersion:1,policy:ti,registryVersion:wt,registryChecksum:Ct}:void 0,registryVersion:wt,registryChecksum:Ct,registryAllowsStrict:l,requestCanonicalBytes:JSON.stringify({command:p})})}catch(c){if(c instanceof Lt)return{success:!1,error:c.code,errorCode:c.code,exitCode:1};throw c}{f.beginProjection();for(const c of Ir)f.project(c);for(const c of ni)f.project(c);f.seal()}const h=f.mode==="strict";if(p==="create-epic"||p==="idea-diagnose")try{const c=fi(s);if(c&&c!=="finalized")return{success:!1,error:'PROJECT_IDENTITY_MIGRATION_INCOMPLETE: retry `neocortex-client invoke --args "*migrate-project-id"` before create-epic.',errorCode:"PROJECT_IDENTITY_MIGRATION_INCOMPLETE",metadata:{projectIdentityMigration:{phase:c,publicSafe:!0}},exitCode:1}}catch(c){const d=c instanceof xn?c.code:"PROJECT_IDENTITY_MIGRATION_STATE_CORRUPT";return{success:!1,error:d,errorCode:d,exitCode:1}}const C=e.environment??process.env;if(e.privateExecutionBeta&&(p!=="yolo"&&p!=="research"&&p!=="write-spec"&&p!=="create-tasks"&&p!=="implement"&&p!=="exec"&&p!=="create-epic"&&p!=="idea-diagnose"&&p!=="idea-research"&&p!=="generate-epic"&&p!=="sync-openapi"&&p!=="chaos-plan"&&p!=="ui-ux-review"&&p!=="arch-prd"&&p!=="arch-architecture"&&p!=="arch-fitness-functions"&&p!=="arch-api-contracts"&&p!=="arch-api-integrations"&&p!=="arch-database"&&p!=="arch-security"&&p!=="arch-design-system"&&p!=="arch-performance"&&p!=="arch-testing"&&p!=="arch-infrastructure"&&p!=="arch-review"&&p!=="update-memory"&&p!=="arch-ux-design"&&p!=="generate-pacts"&&p!=="property-test"&&!m||h||e.platformTarget!==void 0&&e.platformTarget!=="codex"))return{success:!1,error:"PRIVATE_EXECUTION_BETA_UNSUPPORTED",errorCode:"PRIVATE_EXECUTION_BETA_UNSUPPORTED",exitCode:1};const N=Xa({cwd:s,env:C,targetFlag:e.privateExecutionBeta?"codex":e.platformTarget}),L=N.targetId,P=e.privateExecutionBeta?void 0:Qa({cwd:s,env:C,targetFlag:e.platformTarget,nativeHostVersion:qi(N,C)},N);p!=="migrate-project-id"&&f.execute({phase:"client-preflight",domain:"client-persistence",category:"first-run-marker",operation:"create"},()=>ji(),()=>{});const M=fo(f),I=(e.serverUrl??M?.serverUrl??Na).replace(/\/+$/,"");if(p==="migrate-project-id"){const c=await mi(I);if(!c.supported)return{success:!1,error:"PROJECT_IDENTITY_MIGRATION_CAPABILITY_UNAVAILABLE: the server did not advertise the versioned migration capability; no local state was changed.",errorCode:"PROJECT_IDENTITY_MIGRATION_CAPABILITY_UNAVAILABLE",metadata:{projectIdentityMigrationCapability:c},exitCode:1};const d=[];let y;try{y=gi(s)}catch(B){const fe=B instanceof xn?B.code:"PROJECT_IDENTITY_MIGRATION_PREPARE_FAILED";return{success:!1,error:fe,errorCode:fe,exitCode:1}}d.push(Mt({phase:"prepare",outcome:y.changed&&y.document.phase==="prepared"?"prepared":"retry",floor:y.document.legacyEpicFloor,licenseId:"local-client",projectId:y.document.projectId}));const R=hn(s);if(R.config.project_id!==y.document.projectId)return{success:!1,error:"PROJECT_IDENTITY_MIGRATION_STATE_DRIFT",errorCode:"PROJECT_IDENTITY_MIGRATION_STATE_DRIFT",metadata:{invocationDiagnostics:d},exitCode:1};const G=await Jr(I,M?.licenseKey,f);if(G.status!=="authenticated"){const B=G.status==="refresh-required";return{success:!1,error:B?"Authentication refresh required. Run: neocortex activate YOUR-LICENSE-KEY":"Not authenticated. Visit https://neocortex.sh/portal/login to get your license key, then run: neocortex activate YOUR-LICENSE-KEY",errorCode:B?"AUTH_REFRESH_REQUIRED":"NOT_CONFIGURED",metadata:{invocationDiagnostics:d},exitCode:B?1:2}}let ue;try{ue=ur(e.args.trim(),R)}catch(B){const fe=B instanceof lr?B.code:"PROJECT_IDENTITY_MIGRATION_PROJECTION_FAILED";return{success:!1,error:fe,errorCode:fe,metadata:{invocationDiagnostics:d},exitCode:1}}let te={args:a,projectRoot:s.replace(Ft(),"~"),stateSnapshot:ue,platformTarget:L,...P?{nativeHostAttestation:P}:{},projectId:y.document.projectId,projectIdentityMigration:y.request,inputEvidence:r,idempotencyKey:y.document.operationId,registryVersion:wt,registryChecksum:Ct};try{te=ea(te).body}catch(B){if(B instanceof Dn||B instanceof Ln)return{success:!1,error:B.message,errorCode:B.code,metadata:{invokePayload:B.telemetry,invocationDiagnostics:d},exitCode:1};throw B}const de=await Er("invoke-query",()=>ua(I,te,G.token,{refreshToken:()=>G.client.forceRefresh()}));if(!de.ok||!de.data)return d.push(Mt({phase:"seed",outcome:"rejected",floor:y.document.legacyEpicFloor,licenseId:"local-client",projectId:y.document.projectId})),{success:!1,error:He(de.error??"PROJECT_IDENTITY_MIGRATION_REMOTE_FAILED",_t),errorCode:typeof de.errorBody?.error_code=="string"?de.errorBody.error_code:"PROJECT_IDENTITY_MIGRATION_REMOTE_FAILED",metadata:{invocationDiagnostics:d},exitCode:de.status===401?2:1};const le=de.data.metadata?.projectIdentityMigration;try{si(le),d.push(Mt({phase:"seed",outcome:le.status,floor:le.acceptedLegacyFloor,licenseId:"local-client",projectId:le.projectId})),li(s,le),d.push(Mt({phase:"remote-acknowledged",outcome:le.status,floor:le.acceptedLegacyFloor,licenseId:"local-client",projectId:le.projectId})),hi(s,le),d.push(Mt({phase:"finalize",outcome:"finalized",floor:le.acceptedLegacyFloor,licenseId:"local-client",projectId:le.projectId}))}catch(B){d.push(Mt({phase:"reconcile",outcome:"rejected",floor:y.document.legacyEpicFloor,licenseId:"local-client",projectId:y.document.projectId}));const fe=B instanceof xn?B.code:B instanceof Error?B.message:"PROJECT_IDENTITY_MIGRATION_RECEIPT_INVALID";return{success:!1,error:fe,errorCode:fe,metadata:{invocationDiagnostics:d},exitCode:1}}return f.complete(),{success:!0,instructions:de.data.instructions,metadata:{...de.data.metadata,invocationDiagnostics:d},exitCode:0}}try{const{normalizeYoloopTargetArgs:c}=await import("../yoloop/target-normalization.js"),d=c(e.args,{projectRoot:s});if(!d.ok)return process.stderr.write(`${d.message} reason=${d.reasonCode}
|
|
26
26
|
`),{success:!1,error:d.message,exitCode:1};d.changed&&(e={...e,args:d.args},process.stderr.write(`[Neocortex] yoloop target normalized: ${d.reasonCodes.join(",")}
|
|
27
27
|
`))}catch{const c="INVALID_YOLOOP_TARGET: yoloop target normalization was unavailable; no request was sent.";return process.stderr.write(`${c}
|
|
28
|
-
`),{success:!1,error:c,exitCode:1}}const
|
|
29
|
-
`),{success:!1,error:d,errorCode:"GIT_LIFECYCLE_STATE_INVALID",exitCode:1}}if(p!=="migrate-state")try{
|
|
28
|
+
`),{success:!1,error:c,exitCode:1}}const b=Hr(p);if(b)try{Fr(s,{allowMissingRuntime:!0}).runtimeMissing&&(await f.executeAsync({phase:"client-preflight",domain:"client-persistence",category:"state-repair",operation:"update"},async()=>Ii(s),async()=>{}),Fr(s))}catch(c){const d=c instanceof gt?c.reasonCode:"git-lifecycle-state-corrupt";return process.stderr.write(`[Neocortex] ${d}. No request was sent; repair the canonical project state and retry.
|
|
29
|
+
`),{success:!1,error:d,errorCode:"GIT_LIFECYCLE_STATE_INVALID",exitCode:1}}if(p!=="migrate-state")try{f.execute({phase:"client-preflight",domain:"client-persistence",category:"state-repair",operation:"update"},()=>Ua(s,{args:e.args,canonicalCommandId:p}),()=>{})}catch(c){if(c instanceof Ba)return process.stderr.write(`${c.message}
|
|
30
30
|
`),{success:!1,error:c.message,exitCode:1};const d=c instanceof Error?c.message:String(c);return process.stderr.write(`[Neocortex] state.json repair stopped unexpectedly: ${d}. No request was sent; inspect .neocortex/state.json and rerun.
|
|
31
|
-
`),{success:!1,error:d,exitCode:1}}let
|
|
31
|
+
`),{success:!1,error:d,exitCode:1}}let re;if(e.privateExecutionBeta&&(p==="sync-openapi"||p==="chaos-plan"||p==="arch-prd"||p==="arch-architecture"||p==="arch-fitness-functions"||p==="arch-api-contracts"||p==="arch-api-integrations"||p==="arch-database"||p==="arch-security"||p==="arch-design-system"||p==="arch-performance"||p==="arch-testing"||p==="arch-infrastructure"||p==="arch-review"||p==="update-memory"||p==="arch-ux-design"||p==="generate-pacts"||p==="property-test"||m))try{const{capturePrivateProjectStepBaseline:c}=await import("../private-execution/isolated-workspace.js");re=c(s)}catch{const c="private-execution-project-snapshot-unverified";return{success:!1,error:c,errorCode:c,exitCode:1}}let w;try{const c=await uo(s,e.args,p);w=hn(s,{epicAware:b,p205Authorities:c,verifyPlanningGeneration:e.privateExecutionBeta&&p==="create-epic"})}catch(c){const d=c instanceof gt?c.reasonCode:"git-lifecycle-state-corrupt";return process.stderr.write(`[Neocortex] ${d}. No request was sent; repair the canonical project state/runtime sidecar and retry.
|
|
32
32
|
`),{success:!1,error:d,errorCode:"GIT_LIFECYCLE_STATE_INVALID",exitCode:1}}try{const{maybeAutoResolveYoloopArgs:c}=await import("../yoloop/invoke-hooks.js"),d={args:e.args,projectRoot:s,logger:{info:y=>process.stderr.write(`${y}
|
|
33
33
|
`),warn:y=>process.stderr.write(`${y}
|
|
34
|
-
`)}};c(d),d.args!==e.args&&(e={...e,args:d.args},i=d.args,n=
|
|
35
|
-
`)}try{const{readYoloopForRequest:c}=await import("../yoloop/invoke-hooks.js"),d=await c(e.args,s);if(d){const y=
|
|
36
|
-
`),{success:!1,error:y,errorCode:y,exitCode:1}}}try{const{readContinuityForRequest:c}=await import("../continuity/invoke-hooks.js"),d=await c(e.args,s,void 0,
|
|
37
|
-
`)}try{const{maybeRunDiscoveryHook:c}=await import("../yoloop/invoke-hooks.js");await c({args:e.args,projectRoot:s,stateSnapshot:
|
|
38
|
-
`)}try{const{readArchitecturePolicy:c}=await import("../policy/architecture-policy.js"),d=await c(s);d&&(
|
|
39
|
-
`)}});y.applied&&y.metadata&&(
|
|
40
|
-
`)}try{if(
|
|
41
|
-
`)}try{const c=await
|
|
42
|
-
`)}const
|
|
43
|
-
`),{success:!1,error:c.message??"Trigger not available on your plan",exitCode:1}}catch{}const
|
|
44
|
-
`),!
|
|
45
|
-
`),{success:!1,error:
|
|
46
|
-
`),{success:!1,error:d,errorCode:c.code,metadata:{stateProjection:c,publicSafe:!0},exitCode:1}}
|
|
47
|
-
`),{success:!1,error:d,errorCode:c.code,metadata:{structuralProjection:{...c.publicDetails,publicSafe:!0}},exitCode:1}}throw c}if(!h)try{const{openNativeAgentPrivateStore:c,resolveNativeAgentPrivateRuntimePaths:d}=await import("../continuity/native-agent-store.js"),y=d(s);if(
|
|
48
|
-
`),{success:!1,error:c,errorCode:"EPIC_PROJECT_ID_REQUIRED",exitCode:1}}let ye;try{ye=g.execute({phase:"client-preflight",domain:"client-persistence",category:"pending-claim",operation:"update"},()=>B==="create-epic"||B==="idea-diagnose"?ji(s,j,B):void 0,()=>{})}catch{return{success:!1,error:"EPIC_CLAIM_INTEGRITY_FAILURE",errorCode:"EPIC_CLAIM_INTEGRITY_FAILURE",exitCode:1}}const mt=ye?.key;if(e.privateExecutionBeta&&B==="create-epic"&&ye){const c=Vt(s).operations[ye.fingerprint],d=c?.epicId?R.epics[c.epicId]:void 0,y=u(d?.createEpicPlanningPhysical)?d.createEpicPlanningPhysical:void 0;c?.claimId&&c.epicId&&d&&y?.claimId===c.claimId&&(N={...N,epics:{...N.epics,[c.epicId]:d},stories:{...N.stories,...Object.fromEntries((Array.isArray(d.stories)?d.stories:[]).filter(A=>typeof A=="string"&&R.stories[A]?.epic_id===c.epicId).map(A=>[A,R.stories[A]]))}})}const it=h?{schemaVersion:1,invocationId:g.invocationId,intent:g.intent,clientProjection:ii(Sr.map(c=>({...c,count:1})))}:void 0;let te,ae,Y;if(e.privateExecutionBeta&&B==="idea-research")try{const c=N.scope?.targetEpicId,d=c?N.epics[c]:void 0,y=u(d?.createEpicPlanningPhysical)?d.createEpicPlanningPhysical:void 0;if(!c||!y||typeof y.claimId!="string"||typeof y.receiptId!="string")throw new Error("planning-research-predecessor-unavailable");const A=X(s,".neocortex/state.json"),$=Dt(A);if(!$.isFile()||$.isSymbolicLink()||$.size>8*1024*1024)throw new Error("planning-research-state-unavailable");const le=Ve(A),ie=JSON.parse(le.toString("utf8")),pe=ar(ie,y.claimId,c),he=u(ie)&&u(ie.epics)&&u(ie.epics[c])?ie.epics[c]:void 0,U=u(he?.createEpicPlanningPhysical)?he.createEpicPlanningPhysical:void 0;if(U?.receiptId!==y.receiptId||!E(U,y))throw new Error("planning-research-predecessor-drift");const me=[".neocortex/state.json",".neocortex/planning/planning.json",`.neocortex/planning/epic-${c}/idea.json`,`.neocortex/planning/epic-${c}/diagnosis.md`,`.neocortex/planning/epic-${c}/enriched-prompt.md`],Ne={...process.env};for(const fe of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete Ne[fe];for(const fe of me){const De=Dt(X(s,fe));if(!De.isFile()||De.isSymbolicLink()||De.size>8*1024*1024)throw new Error("planning-research-source-unavailable");const Je=je("git",["show",`HEAD:${fe}`],{cwd:s,env:Ne,stdio:["ignore","pipe","ignore"],timeout:3e4,maxBuffer:8*1024*1024});if(!Ve(X(s,fe)).equals(Je))throw new Error("planning-research-source-uncommitted")}ae={claimId:y.claimId,epicId:c,diagnosisReceiptId:pe.diagnosisReceiptId,intakeRevision:pe.intakeRevision,physicalAcceptanceReceiptId:y.receiptId,sourceStateSha256:He("sha256").update(le).digest("hex")}}catch{return{success:!1,error:"private-execution-planning-predecessor-unavailable",errorCode:"private-execution-planning-predecessor-unavailable",exitCode:1}}if(e.privateExecutionBeta&&B==="generate-epic")try{const c=N.scope?.targetEpicId,d=c?N.epics[c]:void 0,y=u(d?.createEpicPlanningResearchPhysical)?d.createEpicPlanningResearchPhysical:void 0;if(!c||!y||typeof y.claimId!="string"||typeof y.receiptId!="string")throw new Error("planning-generation-predecessor-unavailable");const A=X(s,".neocortex/state.json"),$=Dt(A);if(!$.isFile()||$.isSymbolicLink()||$.size>8*1024*1024)throw new Error("planning-generation-state-unavailable");const le=Ve(A),ie=JSON.parse(le.toString("utf8")),pe=ir(ie,y.claimId,c),he=u(ie)&&u(ie.epics)&&u(ie.epics[c])?ie.epics[c]:void 0,U=u(he?.createEpicPlanningResearchPhysical)?he.createEpicPlanningResearchPhysical:void 0;if(U?.receiptId!==y.receiptId||!E(U,y))throw new Error("planning-generation-predecessor-drift");const me=[".neocortex/state.json",".neocortex/planning/planning.json",`.neocortex/planning/epic-${c}/idea.json`,`.neocortex/planning/epic-${c}/diagnosis.md`,`.neocortex/planning/epic-${c}/enriched-prompt.md`,`.neocortex/planning/epic-${c}/research.md`],Ne={...process.env};for(const fe of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete Ne[fe];for(const fe of me){const De=Dt(X(s,fe));if(!De.isFile()||De.isSymbolicLink()||De.size>8*1024*1024)throw new Error("planning-generation-source-unavailable");const Je=je("git",["show",`HEAD:${fe}`],{cwd:s,env:Ne,stdio:["ignore","pipe","ignore"],timeout:3e4,maxBuffer:8*1024*1024});if(!Ve(X(s,fe)).equals(Je))throw new Error("planning-generation-source-uncommitted")}Y={claimId:y.claimId,epicId:c,diagnosisReceiptId:pe.diagnosisReceiptId,researchReceiptId:pe.researchReceiptId,intakeRevision:pe.intakeRevision,physicalAcceptanceReceiptId:pe.physicalAcceptanceReceiptId,sourceStateSha256:He("sha256").update(le).digest("hex")}}catch{return{success:!1,error:"private-execution-planning-predecessor-unavailable",errorCode:"private-execution-planning-predecessor-unavailable",exitCode:1}}if(e.privateExecutionBeta)try{const{preflightPrivateCodexExecutor:c}=await import("../private-execution/codex-executor.js");te=await c(s)}catch(c){const d=c instanceof Error&&/^private-codex-[a-z-]+$/.test(c.message)?c.message:"private-codex-preflight-unavailable";return{success:!1,error:d,errorCode:d,exitCode:1}}const Xe=te?{schemaVersion:1,hostKind:"codex-cli",hostVersion:te.hostVersion,sandboxProof:{schemaVersion:6,trust:"client-self-attested",credentialKind:"chatgpt-subscription",authIsolation:"passed",workspaceWrite:"passed",gitControlWriteDenied:"passed",gitLifecycleReadDenied:"passed",mcpIsolation:"passed",environmentIsolation:"passed",networkDenied:"passed",webSearchDisabled:"passed",observedAtMs:te.observedAtMs}}:void 0;let Oe;if(B==="arch-plan"&&N.archPlan?.execution?.currentStageCommand==="generate-pacts"&&N.archPlan.execution.continuationState==="ask-user")try{if(Oe=tr(s),!Oe)throw new Error("architecture-answers-required")}catch(c){const d=c instanceof Error&&/^architecture-answers-[a-z-]+$/.test(c.message)?c.message:"architecture-answers-failed";return{success:!1,error:d,errorCode:d,exitCode:1}}let yt;if(B==="arch-plan"&&N.archPlan?.execution?.currentStageCommand==="generate-pacts"&&N.archPlan.execution.continuationState==="delegate"&&N.archPlan.execution.childStatus==="succeeded")try{if(yt=tr(s),!yt||!E(N.archPlan.execution.pactAnswerReceipt,yt))throw new Error("architecture-answers-conflict")}catch{return{success:!1,error:"architecture-answers-conflict",errorCode:"architecture-answers-conflict",exitCode:1}}let Ge,ne,O;if(e.privateExecutionBeta&&B==="generate-pacts")try{const c=i.trim().match(/^\*?generate-pacts (P[1-9][0-9]{0,11})$/)?.[1],d=N.archPlan?.execution;if(ne=Ia(s),!c||!d||d.currentStageCommand!=="generate-pacts"||d.continuationState!=="delegate"||d.targetEpicId!==c||!ne||!E(d.pactAnswerReceipt,ne.receipt))throw new Error("private-execution-pact-admission-unverified");const y=va(s,ne.answers.generateProvider);if(y.outcome!=="ready")throw new Error("private-execution-pact-admission-unverified");Ge=y.writeSet,O={schemaVersion:1,targetEpicId:c,graphRevision:ne.receipt.graphRevision,answersSha256:ne.receipt.answersSha256,specSha256:Ge.specSha256,pathsSha256:Ge.pathsSha256,endpointCount:Ge.endpointCount,pathCount:Ge.paths.length,publicSafe:!0}}catch{const c="private-execution-pact-admission-unverified";return{success:!1,error:c,errorCode:c,exitCode:1}}let Pe,q;if(e.privateExecutionBeta&&B==="arch-ux-design")try{const c=i.trim().match(/^\*?arch-ux-design (P[1-9][0-9]{0,11})$/)?.[1],d=N.archPlan?.execution;if(!c||!d||d.currentStageCommand!=="arch-ux-design"||d.continuationState!=="delegate"||d.targetEpicId!==c||typeof d.graphRevision!="string"||!/^[a-f0-9]{64}$/.test(d.graphRevision))throw new Error("private-execution-ux-admission-unverified");const{deriveUxWriteSet:y}=await import("../private-execution/ux-write-set.js");Pe=y(s,c),q={schemaVersion:1,targetEpicId:c,graphRevision:d.graphRevision,adapterId:Pe.adapterId,authoritySha256:Pe.authoritySha256,pathsSha256:Pe.pathsSha256,screenCount:Pe.screenCount,pathCount:Pe.pathCount,publicSafe:!0}}catch{const c="private-execution-ux-admission-unverified";return{success:!1,error:c,errorCode:c,exitCode:1}}let Et,Ze,Ee;if(e.privateExecutionBeta&&B==="property-test")try{if(o.selection.positionals.length!==0||o.selection.operationId!==void 0||Object.keys(o.selection.options).length!==0)throw new Error("private-execution-property-admission-unverified");const{loadPropertyTestChoices:c}=await import("../private-execution/property-test-choices.js"),{propertyTestExecutionInput:d}=await import("../private-execution/property-test-plan.js"),y=c(s);if(!y)throw new Error("private-execution-property-admission-unverified");Et=y.choices,Ze=y.plan,Ee=d(y.plan)}catch{const c="private-execution-property-admission-unverified";return{success:!1,error:c,errorCode:c,exitCode:1}}let K={args:i,projectRoot:s.replace(Ft(),"~"),stateSnapshot:N,...Oe?{architectureAnswerReceipt:Oe}:{},...O?{pactExecutionInput:O}:{},...q?{uxExecutionInput:q}:{},...Ee?{propertyTestExecutionInput:Ee}:{},platformTarget:M,...P?{nativeHostAttestation:P}:{},...Xe?{privateExecution:Xe}:{},projectId:Te,inputEvidence:n,idempotencyKey:mt,registryVersion:_t,registryChecksum:wt,...it?{strictReadOnly:it}:{}};const xt=At(K);if(!h&&e.inputSource&&e.inputSource!=="args"&&xt>=On)try{K={argsRef:(await ni(g,"secondary-mutation",()=>_o(v,i,V.token,()=>V.client.forceRefresh()),async()=>{throw new Mt("readonly-physical-boundary-unsafe","boundary")})).argsRef,projectRoot:s.replace(Ft(),"~"),stateSnapshot:N,...Oe?{architectureAnswerReceipt:Oe}:{},platformTarget:M,...P?{nativeHostAttestation:P}:{},...Xe?{privateExecution:Xe}:{},projectId:Te,inputEvidence:n,idempotencyKey:mt,registryVersion:_t,registryChecksum:wt,...it?{strictReadOnly:it}:{}}}catch(c){return c instanceof Mt?{success:!1,error:c.code,errorCode:c.code,exitCode:1}:{success:!1,error:`INVOKE_MATERIALIZATION_FAILED: ${c instanceof Error?c.message:String(c)}`,errorCode:"INVOKE_MATERIALIZATION_FAILED",exitCode:1}}if(B==="yolo"&&N.scope?.projectionMode==="yolo-story"){const c=N.scope?.targetStoryId,d=N.scope?.targetEpicId;if(!c||!d)return{success:!1,error:"yolo-spec-envelope-target-mismatch",errorCode:"yolo-spec-envelope-target-mismatch",exitCode:1};try{const{collectYoloSpecEnvelope:y}=await import("../yolo/spec-envelope-collector.js"),A=y({projectRoot:s,storyId:c,epicId:d,inputSha256:n.sha256,onOmittedReferences:$=>process.stderr.write(`[Neocortex] yolo-spec-supporting-references-omitted count=${$}; core story artifacts preserved.
|
|
49
|
-
`)});if(/\sbranchless-preparation\s*$/.test(i))K={...K,yoloSpecEnvelope:
|
|
50
|
-
`),{success:!1,error:c.message,errorCode:c.code,metadata:{invokePayload:c.telemetry},exitCode:1};throw c}if(
|
|
34
|
+
`)}};c(d),d.args!==e.args&&(e={...e,args:d.args},i=d.args,n=Sr(rn(t.source,i)))}catch(c){const d=c instanceof Error?c.message:String(c);process.stderr.write(`[Neocortex] Auto-resolve hook (P121.05) failed: ${d}. Proceeding with raw args.
|
|
35
|
+
`)}try{const{readYoloopForRequest:c}=await import("../yoloop/invoke-hooks.js"),d=await c(e.args,s);if(d){const y=hc(w,d);w.yoloop=y?{...d,continuationRecoveryEvidence:y}:d}}catch(c){if(/^\s*\*?(?:yoloop|auto-yolo|epic-runner|story-runner|loop-yolo|auto-epic)\b/i.test(e.args)){const y=c instanceof Error?c.message.match(/\bYOLOOP_[A-Z0-9_]+\b/)?.[0]??"YOLOOP_STATE_READ_FAILED":"YOLOOP_STATE_READ_FAILED";return process.stderr.write(`[Neocortex] ${y}. No yoloop request was sent and no state was mutated.
|
|
36
|
+
`),{success:!1,error:y,errorCode:y,exitCode:1}}}try{const{readContinuityForRequest:c}=await import("../continuity/invoke-hooks.js"),d=await c(e.args,s,void 0,f,{includeExistingStore:!v});d&&(w.continuity=d)}catch(c){if(c instanceof Lt)return{success:!1,error:c.code,errorCode:c.code,exitCode:1};const d=c instanceof Error?c.message:String(c);process.stderr.write(`[Neocortex] continuity snapshot hook failed: ${d}. Proceeding without continuity state.
|
|
37
|
+
`)}try{const{maybeRunDiscoveryHook:c}=await import("../yoloop/invoke-hooks.js");await c({args:e.args,projectRoot:s,stateSnapshot:w,featureFlag:process.env.YOLOOP_AUTO_DISCOVERY!=="off",logger:{warn:d=>{console.warn(d)},info:d=>{console.error(d)}}})}catch(c){const d=c instanceof Error?c.message:String(c);process.stderr.write(`[Neocortex] discovery hook failed: ${d}. Proceeding without enrichment.
|
|
38
|
+
`)}try{const{readArchitecturePolicy:c}=await import("../policy/architecture-policy.js"),d=await c(s);d&&(w.architecture_policy=d)}catch(c){const d=c instanceof Error?c.message:String(c);console.warn(`[Neocortex] architecture-policy hook failed: ${d}. Proceeding without policy.`)}try{const c=/^(1|true|on|yes)$/i.test(process.env.NEOCORTEX_GRAPH_RETRIEVAL??""),{maybeRunGraphRetrievalHook:d}=await import("../yoloop/invoke-hooks.js"),y=await d({args:e.args,projectRoot:s,featureFlag:c,logger:{warn:R=>process.stderr.write(`${R}
|
|
39
|
+
`)}});y.applied&&y.metadata&&(w.graphRetrieval=y.metadata)}catch(c){const d=c instanceof Error?c.message:String(c);process.stderr.write(`[Neocortex] graph retrieval hook failed: ${d}. Proceeding without enrichment.
|
|
40
|
+
`)}try{if(Gi(e.args)){const{collectProjectEvidence:c}=await import("../evidence/collector.js"),d=o.selection.uiUxReview?.architectureDir,y=c({projectRoot:s,...d?{candidatePaths:[d],includeFallbackInventory:!0}:{}});(y.evidence.length>0||y.exclusions.length>0)&&(w.projectEvidence=y)}}catch(c){const d=c instanceof Error?c.message:String(c);process.stderr.write(`[Neocortex] project evidence collection failed: ${d}. Proceeding without local project evidence.
|
|
41
|
+
`)}try{const c=await f.executeAsync({phase:"client-preflight",domain:"client-persistence",category:"checkpoint-consume",operation:"consume"},async()=>{const{readAndConsumeCheckpoint:d}=await import("../checkpoint/index.js");return d(s)},async()=>{});c&&(w.implementCheckpoint=c)}catch(c){const d=c instanceof Error?c.message:String(c);process.stderr.write(`[Neocortex] checkpoint hook failed: ${d}. Proceeding without checkpoint.
|
|
42
|
+
`)}const $=M?.licenseKey?new An({cacheDir:Tn,passphrase:M.licenseKey,strictReadOnly:h}):null,W=i.trim();if(!W&&$){const c=await f.executeAsync({phase:"client-preflight",domain:"client-persistence",category:"auth-cache",operation:"update"},()=>lo($),async()=>null);if(c)return f.complete(),{success:!0,instructions:c.instructions,metadata:c.metadata,exitCode:0}}const j=await Jr(I,M?.licenseKey,f);if(j.status!=="authenticated"){const c=j.status==="refresh-required",d=!c&&M&&!M.licenseKey?" This may be caused by a machine fingerprint change (e.g., hardware or hostname change).":"";try{const y=pr(),R=sr(c?"AUTH_REFRESH_REQUIRED":"NOT_CONFIGURED",y);R&&process.stderr.write(dr(R,y))}catch{}return{success:!1,error:c?"Authentication refresh required. Run: neocortex activate YOUR-LICENSE-KEY":`Not authenticated.${d} Visit https://neocortex.sh/portal/login to get your license key, then run: neocortex activate YOUR-LICENSE-KEY`,errorCode:c?"AUTH_REFRESH_REQUIRED":"NOT_CONFIGURED",exitCode:c?1:2}}const V=w.config.project_id;try{await f.executeAsync({phase:"client-preflight",domain:"client-persistence",category:"pending-claim",operation:"update"},()=>lc(s,w,I,j.token,V,{refreshToken:()=>j.client.forceRefresh()}),async()=>0)}catch{}const _e=fc(W);if(_e&&!v)try{const c=await j.tierClient.preFlightCheck(_e);if(!c.allowed)return process.stderr.write(`[neocortex] ${c.message}
|
|
43
|
+
`),{success:!1,error:c.message??"Trigger not available on your plan",exitCode:1}}catch{}const Y=await To({args:W,projectRoot:s,platformTarget:L,environment:e.environment??process.env,bootstrapper:e.runnerBootstrapper,effectAuthority:f});if(Y.attachToRequest&&(w.runnerBootstrap=Y.metadata),Y.warning&&process.stderr.write(`[Neocortex] ${Y.warning}
|
|
44
|
+
`),!Y.shouldContinue)return Y.error&&process.stderr.write(`[Neocortex] ${Y.error}
|
|
45
|
+
`),{success:!1,error:Y.error??"Runner auto-bootstrap required but failed.",errorCode:Y.errorCode,exitCode:Y.exitCode??1};if(Y.metadata.command==="runner"&&(Y.metadata.operation==="status"||Y.metadata.operation==="doctor"))try{const c=e.runnerObserver??za;w.runnerOperationalStatus=await c(Y.metadata.operation,{projectRoot:s,env:e.environment??process.env,effectAuthority:f})}catch{}let O;try{const c=ja(W,w);if(c&&!c.ok){const d=`${c.code}: structural projection failed closed; select a valid target or repair the dependency DAG.`;return process.stderr.write(`${d}
|
|
46
|
+
`),{success:!1,error:d,errorCode:c.code,metadata:{stateProjection:c,publicSafe:!0},exitCode:1}}O=c?.snapshot??ur(W,w),bn(W)==="migrate-state"&&(O={...O,migrationAuthority:$a(s)})}catch(c){if(c instanceof Wa)return{success:!1,error:c.reasonCode,errorCode:c.reasonCode,exitCode:1};if(c instanceof lr){const d=`${c.code}: structural projection failed closed; select a valid target or repair the dependency DAG.`;return process.stderr.write(`${d}
|
|
47
|
+
`),{success:!1,error:d,errorCode:c.code,metadata:{structuralProjection:{...c.publicDetails,publicSafe:!0}},exitCode:1}}throw c}if(!h)try{const{openNativeAgentPrivateStore:c,resolveNativeAgentPrivateRuntimePaths:d}=await import("../continuity/native-agent-store.js"),y=d(s);if(Ot(y.databasePath)){const R=await c(s);try{const G=R.store.listRecentNativeAgentDispatches(20);G.length>0&&(O.nativeAgentDispatches=G)}finally{R.store.close()}}}catch{}const U=bn(W);let at=!1;if(U==="arch-plan"&&!h&&O.archPlan?.execution===void 0){const c=Ia(i);if(c)try{if(!Object.hasOwn(w.epics,c)||!Object.hasOwn(O.epics,c))throw new Error("architecture-root-epic-binding-invalid");const d=$t(s,c);O={...O,archPlan:{execution:{schemaVersion:1,owner:"root",currentStageCommand:"arch-prd",continuationState:"delegate",evidencePolicy:"v2-required",targetEpicId:c,graphRevision:d,graphSource:"committed-epic-v1",acceptedStages:[]}}},at=!0}catch{return{success:!1,error:"architecture-root-epic-binding-invalid",errorCode:"architecture-root-epic-binding-invalid",exitCode:1}}}if((U==="arch-plan"||U?.startsWith("arch-")||U==="generate-pacts"||U==="update-memory")&&O.archPlan?.execution?.graphSource==="committed-epic-v1")try{const c=O.archPlan.execution;if(typeof c.targetEpicId!="string"||typeof c.graphRevision!="string"||c.graphRevision!==$t(s,c.targetEpicId))throw new Error("architecture-root-epic-binding-invalid")}catch{return{success:!1,error:"architecture-root-epic-binding-invalid",errorCode:"architecture-root-epic-binding-invalid",exitCode:1}}const Te=V;if((U==="create-epic"||U==="idea-diagnose")&&!Te){const c='EPIC_PROJECT_ID_REQUIRED: run `neocortex-client invoke --args "*migrate-project-id"` and retry the planning command. No repository checkout or database credentials are required.';return process.stderr.write(`${c}
|
|
48
|
+
`),{success:!1,error:c,errorCode:"EPIC_PROJECT_ID_REQUIRED",exitCode:1}}let me;try{me=f.execute({phase:"client-preflight",domain:"client-persistence",category:"pending-claim",operation:"update"},()=>U==="create-epic"||U==="idea-diagnose"?Li(s,W,U):void 0,()=>{})}catch{return{success:!1,error:"EPIC_CLAIM_INTEGRITY_FAILURE",errorCode:"EPIC_CLAIM_INTEGRITY_FAILURE",exitCode:1}}const At=me?.key;if(e.privateExecutionBeta&&U==="create-epic"&&me){const c=jt(s).operations[me.fingerprint],d=c?.epicId?w.epics[c.epicId]:void 0,y=u(d?.createEpicPlanningPhysical)?d.createEpicPlanningPhysical:void 0;c?.claimId&&c.epicId&&d&&y?.claimId===c.claimId&&(O={...O,epics:{...O.epics,[c.epicId]:d},stories:{...O.stories,...Object.fromEntries((Array.isArray(d.stories)?d.stories:[]).filter(R=>typeof R=="string"&&w.stories[R]?.epic_id===c.epicId).map(R=>[R,w.stories[R]]))}})}const it=h?{schemaVersion:1,invocationId:f.invocationId,intent:f.intent,clientProjection:ri(Ir.map(c=>({...c,count:1})))}:void 0;let z,oe,ce;if(e.privateExecutionBeta&&U==="idea-research")try{const c=O.scope?.targetEpicId,d=c?O.epics[c]:void 0,y=u(d?.createEpicPlanningPhysical)?d.createEpicPlanningPhysical:void 0;if(!c||!y||typeof y.claimId!="string"||typeof y.receiptId!="string")throw new Error("planning-research-predecessor-unavailable");const R=X(s,".neocortex/state.json"),G=Nt(R);if(!G.isFile()||G.isSymbolicLink()||G.size>8*1024*1024)throw new Error("planning-research-state-unavailable");const ue=Ve(R),te=JSON.parse(ue.toString("utf8")),de=rr(te,y.claimId,c),le=u(te)&&u(te.epics)&&u(te.epics[c])?te.epics[c]:void 0,B=u(le?.createEpicPlanningPhysical)?le.createEpicPlanningPhysical:void 0;if(B?.receiptId!==y.receiptId||!E(B,y))throw new Error("planning-research-predecessor-drift");const fe=[".neocortex/state.json",".neocortex/planning/planning.json",`.neocortex/planning/epic-${c}/idea.json`,`.neocortex/planning/epic-${c}/diagnosis.md`,`.neocortex/planning/epic-${c}/enriched-prompt.md`],Ne={...process.env};for(const he of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete Ne[he];for(const he of fe){const De=Nt(X(s,he));if(!De.isFile()||De.isSymbolicLink()||De.size>8*1024*1024)throw new Error("planning-research-source-unavailable");const qe=je("git",["show",`HEAD:${he}`],{cwd:s,env:Ne,stdio:["ignore","pipe","ignore"],timeout:3e4,maxBuffer:8*1024*1024});if(!Ve(X(s,he)).equals(qe))throw new Error("planning-research-source-uncommitted")}oe={claimId:y.claimId,epicId:c,diagnosisReceiptId:de.diagnosisReceiptId,intakeRevision:de.intakeRevision,physicalAcceptanceReceiptId:y.receiptId,sourceStateSha256:Ge("sha256").update(ue).digest("hex")}}catch{return{success:!1,error:"private-execution-planning-predecessor-unavailable",errorCode:"private-execution-planning-predecessor-unavailable",exitCode:1}}if(e.privateExecutionBeta&&U==="generate-epic")try{const c=O.scope?.targetEpicId,d=c?O.epics[c]:void 0,y=u(d?.createEpicPlanningResearchPhysical)?d.createEpicPlanningResearchPhysical:void 0;if(!c||!y||typeof y.claimId!="string"||typeof y.receiptId!="string")throw new Error("planning-generation-predecessor-unavailable");const R=X(s,".neocortex/state.json"),G=Nt(R);if(!G.isFile()||G.isSymbolicLink()||G.size>8*1024*1024)throw new Error("planning-generation-state-unavailable");const ue=Ve(R),te=JSON.parse(ue.toString("utf8")),de=ar(te,y.claimId,c),le=u(te)&&u(te.epics)&&u(te.epics[c])?te.epics[c]:void 0,B=u(le?.createEpicPlanningResearchPhysical)?le.createEpicPlanningResearchPhysical:void 0;if(B?.receiptId!==y.receiptId||!E(B,y))throw new Error("planning-generation-predecessor-drift");const fe=[".neocortex/state.json",".neocortex/planning/planning.json",`.neocortex/planning/epic-${c}/idea.json`,`.neocortex/planning/epic-${c}/diagnosis.md`,`.neocortex/planning/epic-${c}/enriched-prompt.md`,`.neocortex/planning/epic-${c}/research.md`],Ne={...process.env};for(const he of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete Ne[he];for(const he of fe){const De=Nt(X(s,he));if(!De.isFile()||De.isSymbolicLink()||De.size>8*1024*1024)throw new Error("planning-generation-source-unavailable");const qe=je("git",["show",`HEAD:${he}`],{cwd:s,env:Ne,stdio:["ignore","pipe","ignore"],timeout:3e4,maxBuffer:8*1024*1024});if(!Ve(X(s,he)).equals(qe))throw new Error("planning-generation-source-uncommitted")}ce={claimId:y.claimId,epicId:c,diagnosisReceiptId:de.diagnosisReceiptId,researchReceiptId:de.researchReceiptId,intakeRevision:de.intakeRevision,physicalAcceptanceReceiptId:de.physicalAcceptanceReceiptId,sourceStateSha256:Ge("sha256").update(ue).digest("hex")}}catch{return{success:!1,error:"private-execution-planning-predecessor-unavailable",errorCode:"private-execution-planning-predecessor-unavailable",exitCode:1}}if(e.privateExecutionBeta)try{const{preflightPrivateCodexExecutor:c}=await import("../private-execution/codex-executor.js");z=await c(s)}catch(c){const d=c instanceof Error&&/^private-codex-[a-z-]+$/.test(c.message)?c.message:"private-codex-preflight-unavailable";return{success:!1,error:d,errorCode:d,exitCode:1}}const Qe=z?{schemaVersion:1,hostKind:"codex-cli",hostVersion:z.hostVersion,sandboxProof:{schemaVersion:6,trust:"client-self-attested",credentialKind:"chatgpt-subscription",authIsolation:"passed",workspaceWrite:"passed",gitControlWriteDenied:"passed",gitLifecycleReadDenied:"passed",mcpIsolation:"passed",environmentIsolation:"passed",networkDenied:"passed",webSearchDisabled:"passed",observedAtMs:z.observedAtMs}}:void 0;let Oe;if(U==="arch-plan"&&O.archPlan?.execution?.currentStageCommand==="generate-pacts"&&O.archPlan.execution.continuationState==="ask-user")try{if(Oe=er(s),!Oe)throw new Error("architecture-answers-required")}catch(c){const d=c instanceof Error&&/^architecture-answers-[a-z-]+$/.test(c.message)?c.message:"architecture-answers-failed";return{success:!1,error:d,errorCode:d,exitCode:1}}let mt;if(U==="arch-plan"&&O.archPlan?.execution?.currentStageCommand==="generate-pacts"&&O.archPlan.execution.continuationState==="delegate"&&O.archPlan.execution.childStatus==="succeeded")try{if(mt=er(s),!mt||!E(O.archPlan.execution.pactAnswerReceipt,mt))throw new Error("architecture-answers-conflict")}catch{return{success:!1,error:"architecture-answers-conflict",errorCode:"architecture-answers-conflict",exitCode:1}}let We,ee,k;if(e.privateExecutionBeta&&U==="generate-pacts")try{const c=i.trim().match(/^\*?generate-pacts (P[1-9][0-9]{0,11})$/)?.[1],d=O.archPlan?.execution;if(ee=Ea(s),!c||!d||d.currentStageCommand!=="generate-pacts"||d.continuationState!=="delegate"||d.targetEpicId!==c||!ee||!E(d.pactAnswerReceipt,ee.receipt))throw new Error("private-execution-pact-admission-unverified");const y=Sa(s,ee.answers.generateProvider);if(y.outcome!=="ready")throw new Error("private-execution-pact-admission-unverified");We=y.writeSet,k={schemaVersion:1,targetEpicId:c,graphRevision:ee.receipt.graphRevision,answersSha256:ee.receipt.answersSha256,specSha256:We.specSha256,pathsSha256:We.pathsSha256,endpointCount:We.endpointCount,pathCount:We.paths.length,publicSafe:!0}}catch{const c="private-execution-pact-admission-unverified";return{success:!1,error:c,errorCode:c,exitCode:1}}let Pe,J;if(e.privateExecutionBeta&&U==="arch-ux-design")try{const c=i.trim().match(/^\*?arch-ux-design (P[1-9][0-9]{0,11})$/)?.[1],d=O.archPlan?.execution;if(!c||!d||d.currentStageCommand!=="arch-ux-design"||d.continuationState!=="delegate"||d.targetEpicId!==c||typeof d.graphRevision!="string"||!/^[a-f0-9]{64}$/.test(d.graphRevision))throw new Error("private-execution-ux-admission-unverified");const{deriveUxWriteSet:y}=await import("../private-execution/ux-write-set.js");Pe=y(s,c),J={schemaVersion:1,targetEpicId:c,graphRevision:d.graphRevision,adapterId:Pe.adapterId,authoritySha256:Pe.authoritySha256,pathsSha256:Pe.pathsSha256,screenCount:Pe.screenCount,pathCount:Pe.pathCount,publicSafe:!0}}catch{const c="private-execution-ux-admission-unverified";return{success:!1,error:c,errorCode:c,exitCode:1}}let yt,Xe,ye;if(e.privateExecutionBeta&&U==="property-test")try{if(o.selection.positionals.length!==0||o.selection.operationId!==void 0||Object.keys(o.selection.options).length!==0)throw new Error("private-execution-property-admission-unverified");const{loadPropertyTestChoices:c}=await import("../private-execution/property-test-choices.js"),{propertyTestExecutionInput:d}=await import("../private-execution/property-test-plan.js"),y=c(s);if(!y)throw new Error("private-execution-property-admission-unverified");yt=y.choices,Xe=y.plan,ye=d(y.plan)}catch{const c="private-execution-property-admission-unverified";return{success:!1,error:c,errorCode:c,exitCode:1}}let K={args:i,projectRoot:s.replace(Ft(),"~"),stateSnapshot:O,...Oe?{architectureAnswerReceipt:Oe}:{},...k?{pactExecutionInput:k}:{},...J?{uxExecutionInput:J}:{},...ye?{propertyTestExecutionInput:ye}:{},platformTarget:L,...P?{nativeHostAttestation:P}:{},...Qe?{privateExecution:Qe}:{},projectId:Te,inputEvidence:n,idempotencyKey:At,registryVersion:wt,registryChecksum:Ct,...it?{strictReadOnly:it}:{}};const bt=Vt(K);if(!h&&e.inputSource&&e.inputSource!=="args"&&bt>=Pn)try{K={argsRef:(await ei(f,"secondary-mutation",()=>Co(I,i,j.token,()=>j.client.forceRefresh()),async()=>{throw new Lt("readonly-physical-boundary-unsafe","boundary")})).argsRef,projectRoot:s.replace(Ft(),"~"),stateSnapshot:O,...Oe?{architectureAnswerReceipt:Oe}:{},platformTarget:L,...P?{nativeHostAttestation:P}:{},...Qe?{privateExecution:Qe}:{},projectId:Te,inputEvidence:n,idempotencyKey:At,registryVersion:wt,registryChecksum:Ct,...it?{strictReadOnly:it}:{}}}catch(c){return c instanceof Lt?{success:!1,error:c.code,errorCode:c.code,exitCode:1}:{success:!1,error:`INVOKE_MATERIALIZATION_FAILED: ${c instanceof Error?c.message:String(c)}`,errorCode:"INVOKE_MATERIALIZATION_FAILED",exitCode:1}}if(U==="yolo"&&O.scope?.projectionMode==="yolo-story"){const c=O.scope?.targetStoryId,d=O.scope?.targetEpicId;if(!c||!d)return{success:!1,error:"yolo-spec-envelope-target-mismatch",errorCode:"yolo-spec-envelope-target-mismatch",exitCode:1};try{const{collectYoloSpecEnvelope:y}=await import("../yolo/spec-envelope-collector.js"),R=y({projectRoot:s,storyId:c,epicId:d,inputSha256:n.sha256,onOmittedReferences:G=>process.stderr.write(`[Neocortex] yolo-spec-supporting-references-omitted count=${G}; core story artifacts preserved.
|
|
49
|
+
`)});if(/\sbranchless-preparation\s*$/.test(i))K={...K,yoloSpecEnvelope:R};else{const{collectYoloChangeEvidence:G,reconcileYoloChangeEvidenceLease:ue}=await import("../yolo/change-evidence-collector.js");await ue({projectRoot:s,storyId:c,epicId:d});const te=G({projectRoot:s,defaultBranch:O.config.default_branch,expectedHeadSha:R.sourceRevision.headSha,storyId:c,epicId:d});K={...K,yoloSpecEnvelope:R,yoloChangeEvidence:te}}}catch(y){const R=y instanceof Error&&/^yolo-(?:spec-envelope|change-evidence)-[a-z-]+$/.test(y.message)?y.message:"yolo-spec-envelope-unsafe";return{success:!1,error:R,errorCode:R,exitCode:1}}}try{const c=ea(K);if(U==="migrate-state"&&c.degraded)return{success:!1,error:"state_migration_payload_degraded",errorCode:"state_migration_payload_degraded",exitCode:1};K=c.body,c.degraded?na(K,c.telemetry):xo(K)}catch(c){if(c instanceof Dn||c instanceof Ln)return na(K,c.telemetry),process.stderr.write(`[Neocortex] ${c.message}
|
|
50
|
+
`),{success:!1,error:c.message,errorCode:c.code,metadata:{invokePayload:c.telemetry},exitCode:1};throw c}if(U==="yolo"&&K.yoloSpecEnvelope)try{const{collectYoloSpecEnvelope:c}=await import("../yolo/spec-envelope-collector.js"),d=c({projectRoot:s,storyId:K.yoloSpecEnvelope.storyId,epicId:K.yoloSpecEnvelope.epicId,inputSha256:n.sha256,collectedAt:K.yoloSpecEnvelope.collectedAt});if(d.envelopeSha256!==K.yoloSpecEnvelope.envelopeSha256)throw new Error("yolo-spec-envelope-stale");if(K.yoloChangeEvidence){const{collectYoloChangeEvidence:y}=await import("../yolo/change-evidence-collector.js"),R=y({projectRoot:s,defaultBranch:O.config.default_branch,expectedHeadSha:d.sourceRevision.headSha,storyId:d.storyId,epicId:d.epicId});if(R.pathsSha256!==K.yoloChangeEvidence.pathsSha256||R.baseSha!==K.yoloChangeEvidence.baseSha)throw new Error("yolo-spec-envelope-stale")}}catch{return{success:!1,error:"yolo-spec-envelope-stale",errorCode:"yolo-spec-envelope-stale",exitCode:1}}const T=U==="arch-plan"?K.stateSnapshot.archPlan?.execution:void 0;let xt;if(T?.owner==="root"&&(T.currentStageCommand==="arch-prd"||T.currentStageCommand==="arch-architecture"||T.currentStageCommand==="arch-fitness-functions"||T.currentStageCommand==="arch-api-contracts"||T.currentStageCommand==="generate-pacts"||T.currentStageCommand==="arch-api-integrations"||T.currentStageCommand==="arch-database"||T.currentStageCommand==="arch-security"||T.currentStageCommand==="arch-design-system"||T.currentStageCommand==="arch-ux-design"||T.currentStageCommand==="arch-performance"||T.currentStageCommand==="arch-testing"||T.currentStageCommand==="arch-infrastructure"||T.currentStageCommand==="arch-review"||T.currentStageCommand==="update-memory")&&(T.continuationState==="delegate"||T.continuationState==="advance"||T.currentStageCommand==="update-memory"&&T.continuationState==="complete"||T.currentStageCommand==="arch-review"&&T.continuationState==="ask-user"||T.currentStageCommand==="generate-pacts"&&T.continuationState==="ask-user"))try{const c=Ve(X(s,".neocortex","state.json"),"utf8"),d=JSON.parse(c),y=u(d.archPlan)?d.archPlan.execution:void 0;if(at?y!==void 0||!u(d.epics)||!Object.hasOwn(d.epics,String(T.targetEpicId))||T.graphSource!=="committed-epic-v1"||T.graphRevision!==$t(s,String(T.targetEpicId)):!E(pn(y),T))throw new Error("architecture-root-state-binding-invalid");if(xt=Ge("sha256").update(c).digest("hex"),Oe&&Oe.stateSha256!==xt)throw new Error("architecture-root-state-binding-invalid");if(T.currentStageCommand==="update-memory"&&T.childStatus==="succeeded"){const R=T.continuationState==="complete"&&Array.isArray(T.acceptedStages)?{...T,continuationState:"delegate",acceptedStages:T.acceptedStages.slice(0,Xn(T))}:T;if(!Bt(T.terminalMemoryCheckpoint,T)||!E(T.terminalMemoryCheckpoint,_n(s,R)))throw new Error("architecture-terminal-memory-physical-invalid")}}catch{return{success:!1,error:"architecture-root-state-binding-invalid",errorCode:"architecture-root-state-binding-invalid",exitCode:1}}let g=await Er("invoke-query",()=>ua(I,K,j.token,{refreshToken:()=>j.client.forceRefresh()})),Tt;if(h&&g.ok)try{if(v){const d=g.data?.metadata;if(d&&["stateUpdate","stateMutated","yoloopStateUpdate","continuityStateUpdate","checkpoint","schedulerStateUpdate","quotaCacheUpdate","projectIdentityMigration","epicClaim","gitLifecycleGraphAuthority"].some(R=>d[R]!==void 0))throw new Lt("readonly-response-conflict")}const c=g.data?.metadata.strictReadOnly;ii(f,c),v&&pi(g.data?.metadata.strictDiagnose,a,g.data?.instructions??""),Tt=c.security}catch(c){const d=c instanceof Lt?c.code:"readonly-receipt-mismatch";return{success:!1,error:d,errorCode:d,exitCode:1}}if(!g.ok&&g.status===426){const c=g.errorBody,d=c?.upgrade_command??"npm install -g @ornexus/neocortex@latest",y=c?.min_version??"unknown";return process.stderr.write(`
|
|
51
51
|
`),process.stderr.write(`==================================================
|
|
52
52
|
`),process.stderr.write(` UPGRADE REQUIRED
|
|
53
53
|
`),process.stderr.write(`==================================================
|
|
54
54
|
`),process.stderr.write(`
|
|
55
|
-
Your Neocortex version (${
|
|
55
|
+
Your Neocortex version (${Dt}) is no longer supported.
|
|
56
56
|
`),process.stderr.write(` Minimum required: ${y}
|
|
57
57
|
|
|
58
58
|
`),process.stderr.write(` Run this command to update:
|
|
@@ -62,16 +62,16 @@ ${t}
|
|
|
62
62
|
`),process.stderr.write(` After updating, re-run your command.
|
|
63
63
|
`),process.stderr.write(`==================================================
|
|
64
64
|
|
|
65
|
-
`),{success:!1,error:`UPGRADE_REQUIRED: Client version ${
|
|
66
|
-
`),{success:!1,error:d,errorCode:d,exitCode:1}}if(!
|
|
67
|
-
`),{success:!1,error:d,errorCode:"STATE_WRITEBACK_BLOCKED",exitCode:1}}}catch(c){if(
|
|
68
|
-
`),{success:!1,error:y,errorCode:"STATE_WRITEBACK_BLOCKED",exitCode:1}}}if(
|
|
69
|
-
`),{success:!1,error:d,errorCode:"GIT_LIFECYCLE_GRAPH_AUTHORITY_INVALID",exitCode:1}}if(
|
|
65
|
+
`),{success:!1,error:`UPGRADE_REQUIRED: Client version ${Dt} is below minimum ${y}. Run: ${d}`,exitCode:3}}if(!g.ok||!g.data){const c=g.status===401?2:(g.status===429||g.status>=500,1),d=mo(g);try{if(d){const y=pr(),R=sr(d,y);R&&process.stderr.write(dr(R,y))}}catch{}return{success:!1,error:He(g.error??"Unknown error from server",_t),...d?{errorCode:d}:{},exitCode:c}}let ge;try{ge=e.privateExecutionBeta&&U==="create-epic"&&me?jt(s).operations[me.fingerprint]:void 0}catch{return{success:!1,error:"EPIC_CLAIM_INTEGRITY_FAILURE",errorCode:"EPIC_CLAIM_INTEGRITY_FAILURE",exitCode:1}}const ot=ge?.planningProtocol==="root-staged-v1"&&typeof ge.claimId=="string"&&typeof ge.epicId=="string"&&Ra(g.data,{claimId:ge.claimId,epicId:ge.epicId,...u(w.epics[ge.epicId]?.createEpicPlanningMemoryPhysical)?{memoryReceiptId:w.epics[ge.epicId].createEpicPlanningMemoryPhysical.receiptId}:{}});if(e.privateExecutionBeta&&!ot&&!_a(g.data))return{success:!1,error:"private-execution-public-envelope-invalid",errorCode:"private-execution-public-envelope-invalid",exitCode:1};if(xt&&T&&g.data.metadata?.mode==="arch-plan"&&u(g.data.metadata.archPlan)&&u(g.data.metadata.archPlan.execution)&&(g.data.metadata.archPlan.execution.nextAction==="delegate"||g.data.metadata.archPlan.execution.nextAction==="resume"||g.data.metadata.archPlan.execution.nextAction==="ask-user"||g.data.metadata.archPlan.execution.nextAction==="complete"&&g.data.metadata.archPlan.execution.currentStageCommand==="update-memory"||g.data.metadata.archPlan.execution.nextAction==="blocked"&&(g.data.metadata.archPlan.execution.currentStageCommand==="arch-ux-design"||g.data.metadata.archPlan.execution.currentStageCommand==="arch-performance"||g.data.metadata.archPlan.execution.currentStageCommand==="arch-testing"||g.data.metadata.archPlan.execution.currentStageCommand==="arch-infrastructure"||g.data.metadata.archPlan.execution.currentStageCommand==="arch-review")))try{await f.executeAsync({phase:"client-writeback",domain:"client-persistence",category:"state-writeback",operation:"update"},async()=>eo({projectRoot:s,sourceStateSha256:xt,requestExecution:T,initialBinding:at,answerReceipt:Oe,pactRecordedReceipt:mt,metadata:g.data.metadata}),async()=>{throw new Error("architecture-root-writeback-effect-skipped")})}catch(c){const d=c instanceof Error&&/^architecture-root-[a-z-]+$/.test(c.message)?c.message:"architecture-root-writeback-failed";return process.stderr.write(`[Neocortex] ${d}. Root stage instruction was not released.
|
|
66
|
+
`),{success:!1,error:d,errorCode:d,exitCode:1}}if(!W&&g.data.metadata?.mode==="menu"&&$&&await f.executeAsync({phase:"client-writeback",domain:"client-persistence",category:"auth-cache",operation:"update"},()=>ho($,g.data.instructions,g.data.metadata),async()=>{}).catch(()=>{}),g.data.metadata&&await f.executeAsync({phase:"client-writeback",domain:"client-persistence",category:"tier-cache",operation:"update"},()=>j.tierClient.updateQuotaFromResponse(g.data.metadata),async()=>{}).catch(()=>{}),g.data.metadata?.stateMutated===!0)try{const c=await f.executeAsync({phase:"client-writeback",domain:"client-persistence",category:"state-writeback",operation:"update"},async()=>{const{persistMigratedStateFromResponse:d}=await import("../yoloop/invoke-hooks.js");return d(g.data.metadata,s)},async()=>({applied:!1,blocking:!1,reasonCode:"state-writeback-effect-skipped"}));if(c.blocking){const d=`STATE_WRITEBACK_BLOCKED: ${c.reasonCode}. Canonical state was not replaced.`;return process.stderr.write(`${d}
|
|
67
|
+
`),{success:!1,error:d,errorCode:"STATE_WRITEBACK_BLOCKED",exitCode:1}}}catch(c){if(g.data.metadata?.stateMutationReason==="inline-yolo-materialized-synthetic-story"){const d=c instanceof Error?c.message:String(c),y=`STATE_WRITEBACK_BLOCKED: inline-yolo persistence failed (${He(d,_t)}).`;return process.stderr.write(`${y}
|
|
68
|
+
`),{success:!1,error:y,errorCode:"STATE_WRITEBACK_BLOCKED",exitCode:1}}}if(g.data.metadata?.gitLifecycleGraphAuthority)try{await f.executeAsync({phase:"client-writeback",domain:"client-persistence",category:"state-writeback",operation:"update"},()=>vi(s,g.data.metadata.gitLifecycleGraphAuthority),async()=>{throw new Error("git-lifecycle-graph-authority-effect-skipped")})}catch(c){const d=c instanceof Error&&/^git-lifecycle-/.test(c.message)?c.message:"git-lifecycle-graph-authority-persist-failed";return process.stderr.write(`[Neocortex] ${d}. Graph authority was not persisted; no YOLO checkpoint instruction was released.
|
|
69
|
+
`),{success:!1,error:d,errorCode:"GIT_LIFECYCLE_GRAPH_AUTHORITY_INVALID",exitCode:1}}if(g.data.metadata?.mode==="error"&&g.data.metadata?.errorCode==="CLIENT_UPGRADE_REQUIRED")return process.stderr.write(`
|
|
70
70
|
`),process.stderr.write(`==================================================
|
|
71
71
|
`),process.stderr.write(` YOLOOP CLIENT UPGRADE REQUIRED
|
|
72
72
|
`),process.stderr.write(`==================================================
|
|
73
73
|
`),process.stderr.write(`
|
|
74
|
-
Your Neocortex client version (${
|
|
74
|
+
Your Neocortex client version (${Dt}) does not
|
|
75
75
|
`),process.stderr.write(` support client-side yoloop state persistence.
|
|
76
76
|
|
|
77
77
|
`),process.stderr.write(` Run this command to upgrade:
|
|
@@ -81,55 +81,55 @@ ${t}
|
|
|
81
81
|
`),process.stderr.write(` After upgrading, re-run your yoloop command.
|
|
82
82
|
`),process.stderr.write(`==================================================
|
|
83
83
|
|
|
84
|
-
`),{success:!1,error:"CLIENT_UPGRADE_REQUIRED: This client does not support yoloop client-side persistence. Run: npm install -g @ornexus/neocortex@latest",exitCode:3};if(
|
|
85
|
-
`),{success:!1,error:
|
|
86
|
-
`),{success:!1,error:
|
|
84
|
+
`),{success:!1,error:"CLIENT_UPGRADE_REQUIRED: This client does not support yoloop client-side persistence. Run: npm install -g @ornexus/neocortex@latest",exitCode:3};if(g.data.metadata?.yoloopStateUpdate){const d=(g.data.metadata.yoloopStateUpdate.operations??[]).some(y=>y.type==="rollover_session");try{const y=await f.executeAsync({phase:"client-writeback",domain:"client-persistence",category:"state-writeback",operation:"update"},async()=>{const{persistYoloopFromResponse:R}=await import("../yoloop/invoke-hooks.js");return R(g.data.metadata,s)},async()=>({ok:!0,authoritative:!1,reasonCodes:[]}));if(y&&y.ok===!1){const R=y.reasonCodes[0]??"YOLOOP_AUTHORITATIVE_WRITEBACK_FAILED";return process.stderr.write(`[Neocortex] ${R}. No yoloop continuation instructions were released.
|
|
85
|
+
`),{success:!1,error:R,errorCode:R,exitCode:1}}}catch(y){if(d){const R=y instanceof Error?y.message.match(/\bYOLOOP_[A-Z0-9_]+\b/)?.[0]??"YOLOOP_AUTHORITATIVE_WRITEBACK_FAILED":"YOLOOP_AUTHORITATIVE_WRITEBACK_FAILED";return process.stderr.write(`[Neocortex] ${R}. No yoloop continuation instructions were released.
|
|
86
|
+
`),{success:!1,error:R,errorCode:R,exitCode:1}}}}if(g.data.metadata?.continuityStateUpdate)try{const c=await f.executeAsync({phase:"client-writeback",domain:"client-persistence",category:"continuity-store",operation:"update"},async()=>{const{persistContinuityFromResponse:d}=await import("../continuity/invoke-hooks.js");return d(g.data.metadata,s)},async()=>({ok:!0,reasonCodes:[]}));if(!c.ok){const d=c.reasonCodes.join(",");return process.stderr.write(`[Neocortex] continuity persistence failed: ${d}. No continuity mutation was committed.
|
|
87
87
|
`),{success:!1,error:`CONTINUITY_PERSISTENCE_FAILED: ${d}`,errorCode:"CONTINUITY_PERSISTENCE_FAILED",exitCode:1}}}catch(c){const d=c instanceof Error?c.message:String(c);return process.stderr.write(`[Neocortex] continuity persistence hook failed: ${d}. No continuity mutation was committed.
|
|
88
|
-
`),{success:!1,error:`CONTINUITY_PERSISTENCE_FAILED: ${
|
|
88
|
+
`),{success:!1,error:`CONTINUITY_PERSISTENCE_FAILED: ${He(d,_t)}`,errorCode:"CONTINUITY_PERSISTENCE_FAILED",exitCode:1}}if(g.data.metadata?.tier_changed){const c=g.data.metadata.current_tier;try{await j.client.forceRefresh()?(await j.tierClient.invalidateTierCache(),process.stderr.write(`[Neocortex] Token atualizado automaticamente para tier ${c}
|
|
89
89
|
`)):process.stderr.write(`[Neocortex] Seu tier foi atualizado para ${c}! Execute "neocortex activate" para obter um token atualizado.
|
|
90
90
|
`)}catch{process.stderr.write(`[Neocortex] Seu tier foi atualizado para ${c}! Execute "neocortex activate" para obter um token atualizado.
|
|
91
|
-
`)}}let Q,Yt=!1;if(e.privateExecutionBeta&&!ot)try{if(!
|
|
91
|
+
`)}}let Q,Yt=!1;if(e.privateExecutionBeta&&!ot)try{if(!z||!g.data.metadata?.privateExecution||!Te||g.data.metadata?.mode!=="yolo"&&g.data.metadata?.mode!=="step"&&g.data.metadata?.mode!=="pipeline"&&g.data.metadata?.mode!=="create-epic"&&g.data.metadata?.mode!=="utility"&&g.data.metadata?.mode!=="tech-debt"&&g.data.metadata?.mode!=="ui-ux-review"||typeof g.data.metadata.stepId!="string")throw new Error("private-execution-descriptor-unavailable");const{consumePrivateExecutionDelivery:c,privateExecutionStateSnapshotSha256:d}=await import("../private-execution/delivery.js"),{preflightPrivateCodexExecutor:y,runPrivateCodexStep:R}=await import("../private-execution/codex-executor.js"),G=g.data.metadata.mode==="yolo",ue=g.data.metadata.mode==="ui-ux-review"&&g.data.metadata.resolvedTrigger==="ui-ux-review",te=g.data.metadata.mode==="create-epic",de=u(g.data.metadata.privateExecution)?g.data.metadata.privateExecution:void 0,le=u(de?.binding)?de.binding:void 0,B=te&&g.data.metadata.resolvedTrigger==="create-epic"&&le?.writeSetId==="idea-diagnosis-v1"&&g.data.metadata.stepId==="step-acd455ed";if(te&&!B)throw new Error("private-execution-planning-root-protocol-required");const fe=g.data.metadata.mode==="step"&&g.data.metadata.resolvedTrigger==="idea-diagnose"||B,Ne=g.data.metadata.mode==="step"&&g.data.metadata.resolvedTrigger==="idea-research",he=g.data.metadata.mode==="step"&&g.data.metadata.resolvedTrigger==="generate-epic",De=te||fe;if(Ne&&!oe||he&&!ce)throw new Error("private-execution-planning-predecessor-unavailable");const qe=g.data.metadata.mode==="utility"&&g.data.metadata.resolvedTrigger==="sync-openapi"||g.data.metadata.mode==="utility"&&g.data.metadata.resolvedTrigger==="chaos-plan"||m&&g.data.metadata.mode==="tech-debt"&&g.data.metadata.resolvedTrigger==="tech-debt",Ee=g.data.metadata.mode==="step"&&(g.data.metadata.resolvedTrigger==="arch-prd"||g.data.metadata.resolvedTrigger==="arch-architecture"||g.data.metadata.resolvedTrigger==="arch-fitness-functions"||g.data.metadata.resolvedTrigger==="arch-api-contracts"||g.data.metadata.resolvedTrigger==="arch-api-integrations"||g.data.metadata.resolvedTrigger==="arch-database"||g.data.metadata.resolvedTrigger==="arch-security"||g.data.metadata.resolvedTrigger==="arch-design-system"||g.data.metadata.resolvedTrigger==="arch-performance"||g.data.metadata.resolvedTrigger==="arch-testing"||g.data.metadata.resolvedTrigger==="arch-infrastructure"||g.data.metadata.resolvedTrigger==="arch-review"||g.data.metadata.resolvedTrigger==="update-memory")?g.data.metadata.resolvedTrigger:void 0,ct=Ee!==void 0,In=Ee==="arch-prd"?"arch-prd-docs-v1":Ee==="update-memory"?"arch-memory-canonical-v1":Ee==="arch-review"?"arch-review-doc-v1":Ee==="arch-infrastructure"?"arch-infrastructure-doc-v1":Ee==="arch-testing"?"arch-testing-doc-v1":Ee==="arch-performance"?"arch-performance-doc-v1":Ee==="arch-design-system"?"arch-design-system-doc-v1":Ee==="arch-security"?"arch-security-doc-v1":Ee==="arch-database"?"arch-database-doc-v1":Ee==="arch-api-integrations"?"arch-api-integrations-doc-v1":Ee==="arch-api-contracts"?"arch-api-contracts-docs-v1":Ee==="arch-fitness-functions"?"arch-fitness-tools-v1":"arch-architecture-doc-v1",Ze=g.data.metadata.mode==="step"&&g.data.metadata.resolvedTrigger==="generate-pacts",st=g.data.metadata.mode==="step"&&g.data.metadata.resolvedTrigger==="arch-ux-design",dt=g.data.metadata.mode==="utility"&&g.data.metadata.resolvedTrigger==="property-test",Sn=m?"tech-debt":g.data.metadata.resolvedTrigger==="chaos-plan"?"chaos-plan":"sync-openapi",Yn=m?"tech-debt-registry-v1":Sn==="chaos-plan"?"chaos-quarterly-v1":"sync-openapi-contract-v1",$e=O.archPlan?.execution,Qt=$e?.targetEpicId,Xt=$e?.graphRevision;if(ct&&($e?.currentStageCommand!==Ee||typeof Qt!="string"||!/^P[1-9][0-9]{0,11}$/.test(Qt)||typeof Xt!="string"||!/^[a-f0-9]{64}$/.test(Xt)))throw new Error("private-execution-architecture-admission-unverified");if(Ze&&(!k||!We||!ee||$e?.currentStageCommand!=="generate-pacts"||$e.continuationState!=="delegate"||$e.targetEpicId!==k.targetEpicId||$e.graphRevision!==k.graphRevision||!E($e.pactAnswerReceipt,ee.receipt)))throw new Error("private-execution-pact-admission-unverified");if(st&&(!J||!Pe||$e?.currentStageCommand!=="arch-ux-design"||$e.continuationState!=="delegate"||$e.targetEpicId!==J.targetEpicId||$e.graphRevision!==J.graphRevision))throw new Error("private-execution-ux-admission-unverified");if(dt&&(!ye||!yt||!Xe||g.data.metadata.stepId!=="step-a8ce5c64"))throw new Error("private-execution-property-admission-unverified");let Kn;if(Ze){const{planPactToolchainManifest:ie,preparePactToolchainCandidate:pe}=await import("../private-execution/pact-toolchain.js");try{ie(s,ee.answers.generateProvider),Kn=pe(s,ee.answers.generateProvider)}catch(H){if(H.message!=="pact-toolchain-manifest-unsupported")throw H}}let Et,se,vn;const ae=g.data.metadata.gitLifecycleGraphAuthority,It=g.data.metadata.privateExecutionRootAction;let ze;if(G){if(!ae||typeof ae.storyId!="string"||typeof ae.graphRevision!="string"||typeof ae.executionBranch!="string")throw new Error("private-execution-graph-unavailable");if(ze=ae.storyId,It?.action==="prepare-epic-checkout"){const{parsePrivateExecutionDescriptor:A}=await import("../private-execution/delivery.js"),{prepareDirectYoloSetup:Re}=await import("../git/direct-yolo-checkpoint.js"),{acceptDirectYoloSetupCheckpoint:pt}=await import("../git/direct-yolo-checkpoint.js"),{capturePrivateYoloCleanHead:Me,recordPrivateYoloCleanBaseline:Se}=await import("../private-execution/clean-baseline.js"),ve=A(g.data.metadata.privateExecution,{projectId:Te,commandId:"yolo",stepId:g.data.metadata.stepId,graphRevision:ae.graphRevision,inputSha256:n.sha256,hostKind:"codex-cli",hostVersion:z.hostVersion}),tt=await j.client.getToken();if(!tt)throw new Error("private-execution-auth-unavailable");if(!await uc(I,{leaseId:ve.leaseId,...ve.binding},tt))throw new Error("private-execution-setup-lease-cancel-unverified");const kt=Me(s),Zt=await Re({projectRoot:s,storyId:It.storyId});if(!Zt.ok)throw new Error("private-execution-root-setup-denied");await Se(s,Zt.value,kt);const{ensurePrivateYoloIsolatedSession:St}=await import("../private-execution/isolated-session.js");await St(s,It.storyId,ae.graphRevision,e.privateExecutionWorkspaceParent);const vt=await pt({projectRoot:s,storyId:It.storyId});if(!vt.ok)throw new Error(`private-execution-root-setup-checkpoint-denied:${vt.reasonCode}`);Q={schemaVersion:1,outcome:"setup-accepted",executorOutcome:"not-run-root-only",setup:vt.value,publicSafe:!0};const Cn=sn(g.data.instructions,g.data.metadata);return f.complete(Tt),{success:!0,instructions:`# Setup do branch validado
|
|
92
92
|
|
|
93
|
-
O root confirmou o checkpoint C01 no branch do \xE9pico. Reexecute o mesmo YOLO para avan\xE7ar \xE0 pr\xF3xima etapa.`,metadata:{...
|
|
93
|
+
O root confirmou o checkpoint C01 no branch do \xE9pico. Reexecute o mesmo YOLO para avan\xE7ar \xE0 pr\xF3xima etapa.`,metadata:{...Cn.metadata,privateExecutionReceipt:Q},exitCode:0}}let ie;try{ie=je("git",["symbolic-ref","--quiet","--short","HEAD"],{cwd:s,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{throw new Error("private-execution-execution-branch-mismatch")}if(ie!==ae.executionBranch)throw new Error("private-execution-execution-branch-mismatch");const pe=on(s,{required:!0}),H=typeof ae.epicId=="string"?pe.epics[ae.epicId]:void 0,D=u(H?.branch_lease)?H.branch_lease:void 0;if(!H||H.graph_revision!==ae.graphRevision||!D||D.ownerStoryId!==ae.storyId||typeof D.expiresAt!="string"||!Number.isFinite(Date.parse(D.expiresAt))||Date.parse(D.expiresAt)<=Date.now())throw new Error("private-execution-writer-lease-unavailable")}else if(g.data.metadata.mode==="step"&&(g.data.metadata.resolvedTrigger==="research"||g.data.metadata.resolvedTrigger==="write-spec"||g.data.metadata.resolvedTrigger==="create-tasks"||g.data.metadata.resolvedTrigger==="implement")||g.data.metadata.mode==="pipeline"&&g.data.metadata.resolvedTrigger==="exec"||te&&g.data.metadata.resolvedTrigger==="create-epic"||ue||fe||Ne||he||qe||ct||Ze||st||dt){if(!De&&!Ne&&!he&&!qe&&!ue&&!ct&&!Ze&&!st&&!dt&&typeof g.data.metadata.storyId!="string")throw new Error("private-execution-descriptor-unavailable")}else throw new Error("private-execution-descriptor-unavailable");if(G){const{ensurePrivateYoloIsolatedSession:ie,reconcilePrivateYoloIsolatedSession:pe}=await import("../private-execution/isolated-session.js");if(It?.action==="checkpoint-epic-story")await pe(s,ze,ae.graphRevision);else{const H=await ie(s,ze,ae.graphRevision,e.privateExecutionWorkspaceParent),D=await y(H.workspace.workspacePath);if(D.hostVersion!==z.hostVersion)throw new Error("private-codex-version-drift");z=D}}if(Date.now()-z.observedAtMs>2e4){const ie=await y(z.projectRoot);if(ie.hostVersion!==z.hostVersion)throw new Error("private-codex-version-drift");z=ie}const Qn=await j.client.getToken();if(!Qn)throw new Error("private-execution-auth-unavailable");const Le=De?g.data.metadata.epicClaim:void 0;if(De&&(!Le||typeof Le.claimId!="string"||typeof Le.epicId!="string"))throw new Error("private-execution-descriptor-unavailable");if(De){if(!me)throw new Error("private-execution-epic-claim-admission-unverified");f.execute({phase:"client-writeback",domain:"client-persistence",category:"pending-claim",operation:"update"},()=>Or(s,me.fingerprint,Le.claimId,Le.epicId,B?"root-staged-v1":void 0),()=>{}),Yt=!0;const{preparePrivateYoloIsolatedWorkspace:ie,PRIVATE_EPIC_PENDING_SIDECAR:pe}=await import("../private-execution/isolated-workspace.js"),H=e.privateExecutionWorkspaceParent??X(Ft(),".local","share","neocortex","private-epic-workspaces");e.privateExecutionWorkspaceParent||Wt(H,{recursive:!0,mode:448}),Et=ie(s,H,!0),vn=Ge("sha256").update(Ve(X(s,pe))).digest("hex");const D=await y(Et.workspacePath);if(D.hostVersion!==z.hostVersion)throw new Error("private-codex-version-drift");z=D}else if(!G&&!ue){const{preparePrivateYoloIsolatedWorkspace:ie}=await import("../private-execution/isolated-workspace.js"),pe=e.privateExecutionWorkspaceParent??X(Ft(),".local","share","neocortex","private-step-workspaces");if(e.privateExecutionWorkspaceParent||Wt(pe,{recursive:!0,mode:448}),se=ie(s,pe,Ne||he),qe||ct||Ze||st||dt){if(!re)throw new Error("private-execution-project-snapshot-unverified");const{assertPrivateProjectStepBaseline:D}=await import("../private-execution/isolated-workspace.js");D(se,re)}const H=await y(se.workspacePath);if(H.hostVersion!==z.hostVersion)throw new Error("private-codex-version-drift");z=H}const et=await c(g.data.metadata.privateExecution,{projectId:Te,commandId:G?"yolo":te?"create-epic":ct?Ee:Ze?"generate-pacts":st?"arch-ux-design":dt?"property-test":qe?Sn:g.data.metadata.mode==="pipeline"?"exec":g.data.metadata.resolvedTrigger,stepId:g.data.metadata.stepId,...G?{graphRevision:ae.graphRevision}:{...De?{claimId:Le.claimId,epicId:Le.epicId,...fe?{writeSetId:"idea-diagnosis-v1"}:{}}:Ne?{claimId:oe.claimId,epicId:oe.epicId,diagnosisReceiptId:oe.diagnosisReceiptId,intakeRevision:oe.intakeRevision,physicalAcceptanceReceiptId:oe.physicalAcceptanceReceiptId,writeSetId:"idea-research-v1"}:he?{claimId:ce.claimId,epicId:ce.epicId,diagnosisReceiptId:ce.diagnosisReceiptId,researchReceiptId:ce.researchReceiptId,intakeRevision:ce.intakeRevision,physicalAcceptanceReceiptId:ce.physicalAcceptanceReceiptId,writeSetId:"generate-epic-v1"}:qe?{writeSetId:Yn}:ue?{format:o.selection.uiUxReview?.json===!0?"json":"markdown"}:ct?{targetEpicId:Qt,graphRevision:Xt,writeSetId:In}:Ze?{targetEpicId:k.targetEpicId,graphRevision:k.graphRevision,answersSha256:k.answersSha256,specSha256:k.specSha256,pathsSha256:k.pathsSha256,endpointCount:k.endpointCount,pathCount:k.pathCount}:st?{targetEpicId:J.targetEpicId,graphRevision:J.graphRevision,adapterId:J.adapterId,authoritySha256:J.authoritySha256,pathsSha256:J.pathsSha256,screenCount:J.screenCount,pathCount:J.pathCount}:dt?{prdPath:ye.prdPath,prdSha256:ye.prdSha256,planSha256:ye.planSha256,pathsSha256:ye.pathsSha256,aggregateCount:ye.aggregateCount,invariantCount:ye.invariantCount,pathCount:ye.pathCount,language:ye.language,numRuns:ye.numRuns}:{storyId:g.data.metadata.storyId},stateSnapshotSha256:d(O)},inputSha256:n.sha256,hostKind:"codex-cli",hostVersion:z.hostVersion},ie=>pc(I,{...ie},Qn));if(ue){const{parsePrivateExecutionDescriptor:ie}=await import("../private-execution/delivery.js"),pe=ie(g.data.metadata.privateExecution);if(pe.schemaVersion!==11||pe.binding.commandId!=="ui-ux-review"||pe.binding.format!==(o.selection.uiUxReview?.json===!0?"json":"markdown"))throw new Error("private-execution-report-binding-unverified");const{storePrivateUiUxReviewReport:H}=await import("../private-execution/private-report-store.js");Q={schemaVersion:1,outcome:"report-stored",report:await H({projectRoot:s,material:et,format:pe.binding.format,sha256:pe.materialSha256}),publicSafe:!0}}else if(It?.action==="checkpoint-epic-story"){const{runPrivateYoloRootCheckpoint:ie}=await import("../private-execution/root-checkpoint.js");Q={...await ie(s,It)}}else{const ie=fe?`${et}
|
|
94
94
|
|
|
95
95
|
Private P01 handoff (local only):
|
|
96
96
|
The durable reserved epic ID is ${Le.epicId}. Complete only the diagnosis for this exact ID. Write exactly .neocortex/planning/epic-${Le.epicId}/idea.json, diagnosis.md, enriched-prompt.md and the matching entry in .neocortex/planning/planning.json. Do not write state.json, Git controls, another epic, or P02/P03 artifacts; do not auto-continue to the next step. The root will independently review and persist the accepted planning checkpoint.
|
|
97
|
-
`:Ne?`${
|
|
97
|
+
`:Ne?`${et}
|
|
98
98
|
|
|
99
99
|
Private P02 handoff (local only):
|
|
100
|
-
The admitted epic is ${
|
|
101
|
-
`:
|
|
100
|
+
The admitted epic is ${oe.epicId}. Research only this exact diagnosed epic. Write exactly .neocortex/planning/epic-${oe.epicId}/research.md and its transition in .neocortex/planning/planning.json. Do not write state.json, Git controls, another epic, or P03 artifacts; do not auto-continue. The root will independently review and seal the research candidate.
|
|
101
|
+
`:he?`${et}
|
|
102
102
|
|
|
103
103
|
Private P03 handoff (local only):
|
|
104
|
-
The admitted epic is ${
|
|
105
|
-
`:ct?(await import("../private-execution/isolated-admission.js")).appendPrivateArchitectureHandoff(
|
|
104
|
+
The admitted epic is ${ce.epicId}. Generate exactly docs/epics/epic-${ce.epicId}.md, 1 to 24 contiguous docs/stories/${ce.epicId}.NN.story.md files (01 through 24), and the matching transition in .neocortex/planning/planning.json. The 1 to 24 range is a safety maximum, not a required count. Derive the implementation story count from the accepted research scope; keep later epic lifecycle gates out of implementation stories. Epic frontmatter must contain its exact id and stories_count matching the files, and the document must contain the exact section heading ## Stories. Story frontmatter must use exactly one canonical epic_id field for this epic, with status backlog; do not emit the legacy epic alias. Each story needs the exact heading ## Acceptance Criteria and Given/When/Then criteria. In planning.json preserve all other entries and fields; for this epic set status generated, append only the current generation step after the two accepted predecessors, set completed_at to a non-null ISO timestamp, and add output_files.epic plus the ordered output_files.stories list. Keep a valid ISO last_scan. This is completion of the candidate index only, not root QA, memory or epic completion. Do not write state.json, Git controls, another epic, or subsequent-stage artifacts; do not auto-continue. The root will independently review and seal the generated candidate.
|
|
105
|
+
`:ct?(await import("../private-execution/isolated-admission.js")).appendPrivateArchitectureHandoff(et,Ee,In,Zn(O.archPlan?.execution?.nonUiScopeReceipt)?"non-ui":"all"):Ze?`${et}
|
|
106
106
|
|
|
107
107
|
Private A03.5 handoff (local only):
|
|
108
|
-
${JSON.stringify({consumer:
|
|
108
|
+
${JSON.stringify({consumer:ee.answers.consumer,provider:ee.answers.provider,matchersAggressive:ee.answers.matchersAggressive,generateProvider:ee.answers.generateProvider,brokerConfigured:ee.answers.brokerUrl!==null,allowedPaths:We.paths})}
|
|
109
109
|
Read docs/api/openapi.yaml. Write only the listed new test files. Do not write package files, CI, Git, graph, or tracked configuration. Use describe and it from vitest for every consumer and provider test, plus expect for consumers. Consumer Pact imports are PactV3 and, only when matchersAggressive is true, MatchersV3. When false, use exact literal values and no matcher helpers or matchingRules. Provider imports Verifier. Do not import Node builtins, filesystem/path helpers or other packages; consumer application imports are allowed only for an existing tracked local client. Each consumer must use a literal HTTP method and concrete path in withRequest, willRespondWith and executeTest with actual response assertions. If no application client exists, label the direct fetch test a mock-only scaffold without claiming compatibility. If specifying a Pact output directory, use the literal pacts or pact-files without subdirectories. Never embed a broker URL. When brokerConfigured is false, verify only local pact files through literal pactUrls and never add broker configuration or token fields. When true, read PACT_BROKER_URL at runtime. Provider base URL may use PACT_PROVIDER_BASE_URL; missing runtime inputs must fail rather than skip. No network, install, provider startup, Git or QA authority is granted to the model.
|
|
110
|
-
`:st?`${
|
|
110
|
+
`:st?`${et}
|
|
111
111
|
|
|
112
112
|
Private A08 handoff (local only):
|
|
113
|
-
${JSON.stringify({targetEpicId:
|
|
113
|
+
${JSON.stringify({targetEpicId:J.targetEpicId,graphRevision:J.graphRevision,adapterId:J.adapterId,approvedScreens:Pe.screens,allowedPaths:Pe.paths})}
|
|
114
114
|
Write only the approved paths. Keep synthetic fixtures and the canonical approved-story manifest. No Git, graph, QA or configuration effects.
|
|
115
|
-
`:dt?`${
|
|
115
|
+
`:dt?`${et}
|
|
116
116
|
|
|
117
117
|
Private property-test handoff (local only):
|
|
118
|
-
${JSON.stringify({language:
|
|
118
|
+
${JSON.stringify({language:Xe.language,numRuns:Xe.numRuns,aggregates:Xe.aggregates.map(D=>({name:D.name,implementationFile:D.implementationFile,testFile:D.testFile,invariantCount:D.invariantCount}))})}
|
|
119
119
|
Read the PRD and implementation files inside this isolated clone. Write exactly the listed test files. Do not edit the PRD, state, Git, QA records or any other path. Scaffolds with unfinished assertions must fail explicitly; do not use skipped or todo tests. The root will write the confirmed PRD configuration and independently assess QA.
|
|
120
|
-
`:
|
|
120
|
+
`:et;let pe=ie;if(G){const{readPrivateYoloFrozenWriteSet:D}=await import("../private-execution/clean-baseline.js"),{appendPrivateYoloFrozenHandoff:A}=await import("../private-execution/frozen-handoff.js"),Re=await D(s,ze,ae.executionBranch,ae.graphRevision);pe=A(ie,Re);const{resumePrivateYoloIsolatedSession:pt}=await import("../private-execution/isolated-session.js"),Me=await pt(s,ze,ae.graphRevision),Se=hn(s,{epicAware:!0}).stories[ze],ve=O.stories[ze];if(!Se||!ve||Se.status!==ve.status||JSON.stringify(Se.steps_completed)!==JSON.stringify(ve.steps_completed))throw new Error("private-execution-phase-snapshot-drift");const tt=je("git",["rev-parse","HEAD"],{cwd:s,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();pe+=`
|
|
121
121
|
Root physical dispatch observations (data, not phase completion):
|
|
122
|
-
`+JSON.stringify({storyId:ze,graphRevision:
|
|
122
|
+
`+JSON.stringify({storyId:ze,graphRevision:ae.graphRevision,sourceHeadSha:tt,privateSnapshotSha:Me.snapshotSha,effectiveStatus:Se.status,hostKind:"codex-cli",hostVersion:z.hostVersion})+`
|
|
123
123
|
Use these observed revisions and runtime facts; do not infer Git metadata or substitute an invented revision.
|
|
124
|
-
`}const
|
|
124
|
+
`}const H=await R(pe,z,{requireWorkspaceEffect:!0,...e.onPrivateExecutionWorkspaceFailure===void 0?{}:{onWorkspaceEffectFailure:e.onPrivateExecutionWorkspaceFailure},...e.privateExecutionModel===void 0?{}:{model:e.privateExecutionModel},...G?{expectedExecutionBranch:ae.executionBranch}:Et?{expectedExecutionBranch:Et.executionBranch}:se?{expectedExecutionBranch:se.executionBranch}:{}});if(G){const{admitPrivateYoloIsolatedSessionStep:D}=await import("../private-execution/isolated-session.js"),A=await D(s,ze,ae.graphRevision);let Re;if(g.data.metadata.stepId===Aa){const Me=g.data.metadata.mutationQaFeature;if(!Me)throw new Error("private-execution-mutation-qa-authority-unavailable");if(!Me.enabled)Re={schemaVersion:1,status:"skipped-server-authority",publicSafe:!0};else{let Se,ve;try{const tt=A.session.workspace.workspacePath,kt=`sha:${A.session.workspace.baseSha}`,{planMutationQa:Zt}=await import("./mutation-qa.js"),St=Zt(tt,kt);if(St.headSha!==A.session.snapshotSha)throw new Error("private-execution-mutation-qa-snapshot-drift");let vt="not-run";if(St.outcome==="ready"){const{runAndRecordMutationQa:wn}=await import("./mutation-qa-checkpoint.js");if(vt=wn(tt,kt,St.planSha256).result.outcome,vt==="skipped-host-isolation-unavailable")throw new Error("private-execution-mutation-qa-host-isolation-unavailable")}const{classifyMutationQaGate:Cn}=await import("./mutation-qa-gate.js");if(Se=Cn(tt,kt,St.planSha256),Se.followUpDebtRequired){const{recordMutationQaFollowUpDebt:wn}=await import("./mutation-qa-checkpoint.js");ve=wn(tt,kt,St.planSha256,Se.status,vt,s)}const{resumePrivateYoloIsolatedSession:ma}=await import("../private-execution/isolated-session.js");if((await ma(s,ze,ae.graphRevision)).snapshotSha!==A.session.snapshotSha)throw new Error("private-execution-mutation-qa-snapshot-drift")}catch{throw new Error("private-execution-mutation-qa-unverified")}if(Se.blocksLocalQa||!Se.safeToContinueLocalQa&&!ve)throw new Error(`private-execution-mutation-qa-${Se.status}`);Re={...Se,...ve?{followUpDebt:{status:"recorded",owner:ve.owner,severity:ve.severity,reasonCode:ve.reasonCode,planSha256:ve.planSha256,publicSafe:!0}}:{}}}}const pt={schemaVersion:1,outcome:A.admission.outcome,sequence:A.session.sequence,snapshotSha:A.session.snapshotSha,patchSha256:A.admission.patchSha256,changedPathCount:A.admission.changedPaths.length};Q={...H,isolation:pt,...Re?{mutationQa:Re}:{}}}else if(Et){const{admitPrivateEpicClaimWorkspace:D,admitPrivateIdeaDiagnosisWorkspace:A}=await import("../private-execution/isolated-admission.js"),Re=fe?A(Et,Le.claimId,Le.epicId,me.fingerprint,vn,o.selection.positionals.join(" ").replace(/^[-:–—]\s+/,"")):D(Et,Le.claimId,Le.epicId,me.fingerprint,vn);Q={...H,isolation:{schemaVersion:1,outcome:Re.outcome,baseSha:Re.baseSha,patchSha256:Re.patchSha256,changedPathCount:Re.changedPaths.length}}}else if(se&&Ne){const{admitPrivateIdeaResearchWorkspace:D}=await import("../private-execution/isolated-admission.js"),A=D(se,oe.claimId,oe.epicId,oe.diagnosisReceiptId,oe.intakeRevision,oe.sourceStateSha256);Q={...H,isolation:{schemaVersion:1,outcome:A.outcome,baseSha:A.baseSha,patchSha256:A.patchSha256,changedPathCount:A.changedPaths.length}}}else if(se&&he){const{admitPrivateGenerateEpicWorkspace:D}=await import("../private-execution/isolated-admission.js"),A=D(se,ce.claimId,ce.epicId,ce.diagnosisReceiptId,ce.researchReceiptId,ce.intakeRevision,ce.sourceStateSha256);Q={...H,isolation:{schemaVersion:1,outcome:A.outcome,baseSha:A.baseSha,patchSha256:A.patchSha256,changedPathCount:A.changedPaths.length}}}else if(se&&Ze){const{admitPrivatePactWorkspace:D}=await import("../private-execution/isolated-admission.js"),{inspectPactToolchain:A}=await import("../private-execution/pact-toolchain.js"),{verifyPactConsumerRuntime:Re}=await import("../private-execution/pact-consumer-runtime.js"),pt=ee.answers.generateProvider,Me=D(se,k.targetEpicId,k.graphRevision,ee.receipt,We,Kn),Se=A(s,pt),ve=Re(s,We,pt);Q={...H,isolation:{schemaVersion:1,outcome:Me.outcome,baseSha:Me.baseSha,patchSha256:Me.patchSha256,changedPathCount:Me.changedPaths.length,consumerBindingCandidateCount:Me.consumerBindingCandidateCount,consumerScaffoldCount:Me.consumerScaffoldCount,toolchain:Se,consumerRuntime:ve}}}else if(se&&st){const{admitPrivateUxWorkspace:D}=await import("../private-execution/isolated-admission.js"),A=D(se,J.targetEpicId,J.graphRevision,Pe);Q={...H,isolation:{schemaVersion:1,outcome:A.outcome,baseSha:A.baseSha,patchSha256:A.patchSha256,changedPathCount:A.changedPaths.length}}}else if(se&&dt){const{admitPrivatePropertyTestWorkspace:D}=await import("../private-execution/isolated-admission.js"),A=D(se,yt,Xe);Q={...H,isolation:{schemaVersion:1,outcome:A.outcome,baseSha:A.baseSha,patchSha256:A.patchSha256,changedPathCount:A.changedPaths.length,checkpointAccepted:!1,qaAccepted:!1,rootNextAction:"property-semantic-review-required"}}}else if(se&&ct){const{admitPrivateArchitectureStageWorkspace:D}=await import("../private-execution/isolated-admission.js"),A=D(se,Ee,In,Qt,Xt);Q={...H,isolation:{schemaVersion:1,outcome:A.outcome,baseSha:A.baseSha,patchSha256:A.patchSha256,changedPathCount:A.changedPaths.length}}}else if(se&&qe){const{admitPrivateProjectStepWorkspace:D}=await import("../private-execution/isolated-admission.js"),A=D(se,Sn,Yn);Q={...H,isolation:{schemaVersion:1,outcome:A.outcome,baseSha:A.baseSha,patchSha256:A.patchSha256,changedPathCount:A.changedPaths.length}}}else if(se){const{admitPrivateStateBoundStepWorkspace:D}=await import("../private-execution/isolated-admission.js"),A=D(se,g.data.metadata.storyId);Q={...H,isolation:{schemaVersion:1,outcome:A.outcome,baseSha:A.baseSha,patchSha256:A.patchSha256,changedPathCount:A.changedPaths.length}}}else Q={...H}}}catch(c){const d=c instanceof Error&&/^(private-execution|private-codex)-[a-z-]+$/.test(c.message)?c.message:"private-execution-unverified";return{success:!1,error:d,errorCode:d,exitCode:1}}let En;if(ot&&u(g.data.metadata.planningRootContinuation)&&g.data.metadata.planningRootContinuation.planningComplete===!0)try{if(!ge?.claimId||!ge.epicId||!Te)throw new Error("missing-reservation");const c=ir(s,ge.claimId,ge.epicId);if(g.data.metadata.planningRootContinuation.memoryReceiptId!==c.receiptId)throw new Error("memory-receipt-conflict");const d=hn(s,{verifyPlanningGeneration:!0}),y=d.epics[ge.epicId];if(!u(y?.createEpicPlanningMemoryPhysical)||y.createEpicPlanningMemoryPhysical.receiptId!==c.receiptId)throw new Error("memory-recheck-failed");const R={config:{project_id:Te},epics:{[ge.epicId]:y},stories:Object.fromEntries((Array.isArray(y.stories)?y.stories:[]).map(ue=>[ue,d.stories[ue]])),epic_id_ledger:d.epic_id_ledger};if(!await f.executeAsync({phase:"client-writeback",domain:"client-persistence",category:"pending-claim",operation:"update"},()=>la(I,j.token,{claimId:ge.claimId,projectId:Te,epicId:ge.epicId,status:"materialized",planningCheckpoint:{memoryReceiptId:c.receiptId,snapshot:R}},{refreshToken:()=>j.client.forceRefresh()}),async()=>!1))throw new Error("acknowledgement-unavailable");En={schemaVersion:1,acknowledged:!0,claimId:c.claimId,epicId:c.epicId,memoryReceiptId:c.receiptId,publicSafe:!0}}catch{return{success:!1,error:"planning-root-materialization-unavailable",errorCode:"planning-root-materialization-unavailable",exitCode:1}}const Kt=sn(g.data.instructions,g.data.metadata),Pt=Q?.isolation,fa=Kt.metadata?.resolvedTrigger==="property-test"&&Pt!==null&&typeof Pt=="object"&&!Array.isArray(Pt)&&Pt.outcome==="admitted-unverified"&&Pt.checkpointAccepted===!1&&Pt.rootNextAction==="property-semantic-review-required";if(me&&!Yt&&!ot&&g.data.metadata?.mode!=="error")try{const c=g.data.metadata?.epicClaim;if(!c||typeof c!="object"||Array.isArray(c))throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");const d=c;if(d.outcome!=="reserved"||typeof d.claimId!="string"||typeof d.epicId!="string")throw new Error("EPIC_CLAIM_INTEGRITY_FAILURE");f.execute({phase:"client-writeback",domain:"client-persistence",category:"pending-claim",operation:"update"},()=>Or(s,me.fingerprint,d.claimId,d.epicId),()=>{})}catch{}return f.complete(Tt),{success:!0,instructions:Q?Q.outcome==="checkpoint-validated"?`# Checkpoint da story validado
|
|
125
125
|
|
|
126
126
|
O root registrou o commit e a valida\xE7\xE3o f\xEDsica no branch do epic.`:Q.outcome==="setup-accepted"?`# Setup do branch validado
|
|
127
127
|
|
|
128
128
|
O root confirmou o checkpoint C01 no branch do \xE9pico. Reexecute o mesmo YOLO para avan\xE7ar \xE0 pr\xF3xima etapa.`:Q.outcome==="report-stored"?`# Relat\xF3rio privado salvo
|
|
129
129
|
|
|
130
|
-
Consulte o caminho local em metadata.privateExecutionReceipt.report.path. Nenhum agente foi executado ou projeto alterado.`:
|
|
130
|
+
Consulte o caminho local em metadata.privateExecutionReceipt.report.path. Nenhum agente foi executado ou projeto alterado.`:fa?"# Property-test: candidato admitido, QA pendente\n\nO root deve inspecionar os arquivos locais, executar `neocortex-client property-qa review-plan --project-root . --format json` e comparar cada invariante do PRD com a implementa\xE7\xE3o e sua asser\xE7\xE3o. Somente uma revis\xE3o root independente, registrada fora do projeto e enviada por stdin a `property-qa review-accept --authorize-review`, pode autorizar o aceite; esse comando repete a execu\xE7\xE3o positiva e a falha causal no sandbox. Consulte `property-qa review-status` para revalidar o recibo. Se o toolchain ou a evid\xEAncia n\xE3o forem suportados, pare sem declarar QA aprovado. O agente privado n\xE3o recebe autoridade de revis\xE3o, Git ou checkpoint.":`# Execu\xE7\xE3o privada conclu\xEDda; valida\xE7\xE3o f\xEDsica pendente
|
|
131
131
|
|
|
132
|
-
O executor Codex retornou sem erro. Nenhum checkpoint ou aprova\xE7\xE3o da story foi emitido.`:Kt.instructions,metadata:Q?{...Kt.metadata,privateExecutionReceipt:Q}:{...Kt.metadata,...
|
|
132
|
+
O executor Codex retornou sem erro. Nenhum checkpoint ou aprova\xE7\xE3o da story foi emitido.`:Kt.instructions,metadata:Q?{...Kt.metadata,privateExecutionReceipt:Q}:{...Kt.metadata,...En?{planningMaterialization:En}:{}},exitCode:0}}function fc(e){const[t]=e.trim().split(/\s+/,1);return t?/^@?epic-[a-z0-9][a-z0-9._-]*$/i.test(t)?"epic":bn(t):null}const ha="Provide exactly one invoke input source: --args <string>, --stdin, or --args-file <path>.",mc=`
|
|
133
133
|
neocortex-client invoke - Send orchestration request to server
|
|
134
134
|
|
|
135
135
|
Usage:
|
|
@@ -200,12 +200,12 @@ Safety:
|
|
|
200
200
|
Jobs console is Plane B/local-only: no hosted server call for raw output, no server-held stream, no raw persistence, and stdin requires explicit local confirmation.
|
|
201
201
|
Jobs, goal and loop watch use serverHeldStream=false and foreground local SQLite polling of public processing summaries only.
|
|
202
202
|
Unresolved targets disable polling with public reason codes; there is no all-jobs fallback.
|
|
203
|
-
`.trim();function
|
|
204
|
-
`);return}
|
|
205
|
-
`);return}const i=
|
|
206
|
-
`),n&&
|
|
207
|
-
`)}async function
|
|
208
|
-
`),0;let t;try{t=
|
|
209
|
-
`),1;throw
|
|
210
|
-
`),1):(await
|
|
211
|
-
`),a.exitCode}if(
|
|
203
|
+
`.trim();function yc(e){return e.includes("--help")||e.includes("-h")||e.includes("help")}function xe(e,t,a,r){return new dn("INVOCATION_MALFORMED_INPUT",t,e,a,r)}function Rt(e){return xe("missing-input-value",`${e} requires a value. ${ha}`)}function Ec(e){try{if(!va(e).isFile())throw xe("missing-input-value","--args-file must point to a readable UTF-8 text file.","args-file");return Ve(e)}catch(t){throw t instanceof dn?t:xe("missing-input-value","--args-file could not be read as UTF-8 text. Check the path and permissions.","args-file")}}function Ic(){try{if(process.stdin.isTTY)throw xe("missing-input-value","--stdin requires piped UTF-8 text, for example: neocortex-client invoke --stdin < synthetic.story.md","stdin");return Ve(0)}catch(e){throw e instanceof dn?e:xe("missing-input-value","--stdin could not be read as UTF-8 text. Pipe command text into stdin and retry.","stdin")}}function Sc(e,t={}){let a,r=!1,i,n,o="plain",s=!1,p,m,S=!1,_=!1,l;for(let P=0;P<e.length;P++)switch(e[P]){case"--args":{const I=e[++P];if(I===void 0)throw Rt("--args");if(a!==void 0)throw xe("multiple-input-sources","Provide --args only once. Use one explicit invoke input source.","args");a=I;break}case"--stdin":if(r)throw xe("multiple-input-sources","Provide --stdin only once. Use one explicit invoke input source.","stdin");r=!0;break;case"--args-file":{const I=e[++P];if(I===void 0)throw Rt("--args-file");if(i!==void 0)throw xe("multiple-input-sources","Provide --args-file only once. Use one explicit invoke input source.","args-file");i=I;break}case"--project-root":{const I=e[++P];if(I===void 0)throw Rt("--project-root");n=I;break}case"--format":{const I=e[++P];if(I===void 0)throw Rt("--format");if(I!=="json"&&I!=="plain")throw xe("unexpected-cli-token","--format accepts only json or plain.");o=I;break}case"--watch":s=!0;break;case"--server-url":{const I=e[++P];if(I===void 0)throw Rt("--server-url");p=I;break}case"--platform-target":{const I=e[++P];if(I===void 0)throw Rt("--platform-target");m=I;break}case"--strict-read-only":S=!0;break;case"--private-execution-beta":_=!0;break;case"--private-execution-model":{const I=e[++P];if(I===void 0)throw Rt("--private-execution-model");if(l!==void 0||!/^gpt-[a-z0-9][a-z0-9.-]{0,63}$/.test(I))throw xe("unexpected-cli-token","Invalid or duplicate private execution model.");l=I;break}default:throw xe("unexpected-cli-token","Unexpected top-level CLI token. Quote the complete --args payload or use --stdin/--args-file for multiline content.")}if(l!==void 0&&(!_||S))throw xe("unexpected-cli-token","A private execution model requires private beta without strict read-only.");const v=[a!==void 0?"args":void 0,r?"stdin":void 0,i!==void 0?"args-file":void 0].filter(P=>P!==void 0);if(v.length===0)throw xe("missing-input-value",ha);if(v.length>1)throw xe("multiple-input-sources",`Choose only one invoke input source; received ${v.join(", ")}.`);const f=v[0],h=f==="args"?a:f==="stdin"?(t.readStdin??Ic)():(t.readArgsFile??Ec)(i);let C;try{C=rn(f,h)}catch(P){throw P instanceof ui?xe("invalid-utf8",P.message,f):P}const N=f==="args"?Xo(C.rawArgs):be(C.rawArgs),L=N.args===C.rawArgs?C:rn(f,N.args);return{args:N.args,inputSource:f,inputEnvelope:L,projectRoot:n,format:o,watch:s||N.watch,commandLevelWatch:N.metadata,serverUrl:p,platformTarget:m,strictReadOnly:S,privateExecutionBeta:_,...l===void 0?{}:{privateExecutionModel:l}}}function ga(e,t){return t?.active?{...e??{},commandLevelWatch:t,serverHeldStream:!1}:e}function vc(e,t,a=process.stdout,r=process.stderr){if(t.format==="json"){const o=sn(e.instructions,e.metadata),s=ga(o.metadata,t.commandLevelWatch);if(t.watch){a.write(JSON.stringify({type:"invoke_result",instructions:o.instructions,metadata:s,publicSafe:!0})+`
|
|
204
|
+
`);return}a.write(JSON.stringify({instructions:o.instructions,metadata:s})+`
|
|
205
|
+
`);return}const i=sn(e.instructions,e.metadata),n=ga(i.metadata,t.commandLevelWatch);a.write(i.instructions+`
|
|
206
|
+
`),n&&r.write(JSON.stringify(n)+`
|
|
207
|
+
`)}async function Cs(e=process.stdout,t=process.stderr){const a=i=>new Promise(n=>{let o=!1;const s=S=>{o||(o=!0,clearTimeout(m),setImmediate(()=>i.removeListener("error",p)),n(S))},p=()=>s(!1),m=setTimeout(()=>s(!1),1e4);i.once("error",p);try{i.write("",S=>s(!S))}catch{s(!1)}});return(await Promise.all([a(e),a(t)])).every(Boolean)}function Cc(e){const t=()=>e.abort();return process.once("SIGINT",t),process.once("SIGTERM",t),()=>{process.removeListener("SIGINT",t),process.removeListener("SIGTERM",t)}}async function ws(e){if(yc(e))return process.stdout.write(`${mc}
|
|
208
|
+
`),0;let t;try{t=Sc(e)}catch(r){if(r instanceof dn)return process.stderr.write(JSON.stringify({error_code:r.code,reason:r.reason,source:r.source,byte_length:r.byteLength,message:r.message,remediation:r.message})+`
|
|
209
|
+
`),1;throw r}if(Ya(t.args))return t.strictReadOnly?(process.stderr.write(JSON.stringify({error_code:"readonly-registry-denied",message:"Strict read-only policy is not eligible for the local jobs console."})+`
|
|
210
|
+
`),1):(await Ka({args:t.args,projectRoot:On(t.projectRoot),format:t.format,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})).exitCode;const a=await gc({args:t.args,inputSource:t.inputSource,inputEnvelope:t.inputEnvelope,watch:t.watch,projectRoot:t.projectRoot,format:t.format,serverUrl:t.serverUrl,platformTarget:t.platformTarget,strictReadOnly:t.strictReadOnly,privateExecutionBeta:t.privateExecutionBeta,...t.privateExecutionModel===void 0?{}:{privateExecutionModel:t.privateExecutionModel}});if(!a.success){const r=a.metadata?.invocationInput,i=r&&typeof r=="object"&&!Array.isArray(r)?r:void 0;return process.stderr.write(JSON.stringify({error_code:a.errorCode??(a.exitCode===2?"NOT_CONFIGURED":"INVOKE_ERROR"),message:He(a.error??"",_t),...typeof i?.reason=="string"?{reason:He(i.reason,80)}:{},...typeof i?.source=="string"?{source:He(i.source,20)}:{},...Number.isSafeInteger(i?.byteLength)?{byte_length:i.byteLength}:{},...typeof i?.remediation=="string"?{remediation:He(i.remediation,_t)}:{}})+`
|
|
211
|
+
`),a.exitCode}if(vc(a,t),t.watch){const r=new AbortController,i=Cc(r);try{const n=dc(a.metadata,t.args);n.disabled?Bo(n.reasonCodes??[Ie.TARGET_UNRESOLVED],t.args,t.format,process.stdout,t.privateExecutionBeta):await $o({projectRoot:On(t.projectRoot),format:t.format,strictReadOnly:t.strictReadOnly,protectedOutput:t.privateExecutionBeta,...n,signal:r.signal})}finally{i()}}return 0}export{mc as INVOKE_HELP_TEXT,br as INVOKE_PAYLOAD_LIMIT_BYTES,Pn as INVOKE_PAYLOAD_WARNING_THRESHOLD_BYTES,dn as InvokeCliInputError,Dn as InvokePayloadTooLargeError,Ln as InvokeStructuralContextTooLargeError,gt as StateSnapshotIntegrityError,Ss as __resetSchemaDriftWarnedForTests,lc as acknowledgeMaterializedPendingEpicClaims,Vi as admitClientInvocation,Fr as assertEpicAwareStateShapeBeforeRepair,po as boundedP222PremergeCheckpointPositions,Io as buildSignedInvokeAttempt,Mi as clearPendingEpicIdempotencyKey,uo as collectInvokeP205Authorities,hn as collectStateSnapshot,Vt as computeInvokeRequestBodySizeBytes,vs as createFullStateSnapshotScope,$n as createInvokePayloadTelemetry,zi as detectStateSchemaDrift,fc as extractPreFlightTrigger,Cs as flushInvokeCliOutput,Li as getOrCreatePendingEpicIdempotencyKey,ea as guardInvokeRequestBodySize,gc as invoke,ws as invokeCliHandler,Hr as isEpicAwareCommandId,xo as maybeEmitInvokePayloadSizeWarning,To as maybeRunInvokeRunnerAutoBootstrap,Sc as parseInvokeCliOptions,Xr as postMaterializationJson,Or as recordPendingEpicReservation,Xo as resolveInvokeCommandLevelWatch,On as resolveInvokeProjectRoot,mo as resolveInvokeTransportErrorCode,dc as resolveInvokeWatchTarget,sn as sanitizeInvokeCliOutput,la as sendEpicClaimAcknowledgement,ua as sendInvokeRequest,uc as sendPrivateExecutionCancelRequest,pc as sendPrivateExecutionConsumeRequest,Gi as shouldCollectProjectEvidenceForInvoke,$o as watchContinuityProcessingSummaries,vc as writeInvokeCliSuccessOutput};
|