@ornexus/neocortex 4.60.22 → 4.60.24
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/sbom.cdx.json +24 -24
- package/install.js +67 -10
- package/install.ps1 +39 -8
- package/install.sh +18 -6
- package/package.json +9 -3
- package/packages/client/dist/adapters/adapter-registry.d.ts +2 -2
- package/packages/client/dist/adapters/adapter-registry.js +1 -1
- package/packages/client/dist/adapters/grok-adapter.d.ts +11 -0
- package/packages/client/dist/adapters/grok-adapter.js +2 -0
- package/packages/client/dist/adapters/index.d.ts +1 -0
- package/packages/client/dist/adapters/index.js +1 -1
- package/packages/client/dist/adapters/platform-detector.d.ts +1 -1
- package/packages/client/dist/adapters/platform-detector.js +1 -1
- package/packages/client/dist/agent/refresh-stubs.js +2 -2
- package/packages/client/dist/cli.js +21 -2
- package/packages/client/dist/commands/invoke.d.ts +39 -26
- package/packages/client/dist/commands/invoke.js +56 -50
- package/packages/client/dist/commands/story-checkpoint.d.ts +15 -0
- package/packages/client/dist/commands/story-checkpoint.js +1 -0
- package/packages/client/dist/config.js +1 -1
- package/packages/client/dist/continuity/invoke-hooks.js +1 -1
- package/packages/client/dist/fs/atomic-state-replace.d.ts +16 -0
- package/packages/client/dist/fs/atomic-state-replace.js +1 -0
- package/packages/client/dist/generated/command-registry.generated.d.ts +51 -51
- package/packages/client/dist/generated/command-registry.generated.js +1 -1
- package/packages/client/dist/git/direct-yolo-checkpoint.d.ts +67 -0
- package/packages/client/dist/git/direct-yolo-checkpoint.js +3 -0
- package/packages/client/dist/git/git-lifecycle-store.d.ts +198 -0
- package/packages/client/dist/git/git-lifecycle-store.js +4 -0
- package/packages/client/dist/git/secure-filesystem-boundary.d.ts +26 -0
- package/packages/client/dist/git/secure-filesystem-boundary.js +123 -0
- package/packages/client/dist/graph-retrieval/pre-command-hook.d.ts +11 -0
- package/packages/client/dist/graph-retrieval/pre-command-hook.js +1 -1
- package/packages/client/dist/graph-retrieval/shared-graph-retrieval-contract.js +1 -1
- package/packages/client/dist/index.d.ts +2 -0
- package/packages/client/dist/index.js +1 -1
- package/packages/client/dist/invocation/invoke-input.d.ts +9 -0
- package/packages/client/dist/invocation/invoke-input.js +1 -0
- package/packages/client/dist/memory/shared-project-memory-types.d.ts +29 -2
- package/packages/client/dist/memory/shared-project-memory-types.js +2 -2
- package/packages/client/dist/migrations/project-identity-capability.d.ts +13 -0
- package/packages/client/dist/migrations/project-identity-capability.js +1 -0
- package/packages/client/dist/migrations/project-identity.d.ts +41 -0
- package/packages/client/dist/migrations/project-identity.js +7 -0
- package/packages/client/dist/policy/subagent-approval-policy.js +1 -1
- package/packages/client/dist/runner/headless/continuous-story-workspace.d.ts +131 -0
- package/packages/client/dist/runner/headless/continuous-story-workspace.js +58 -0
- package/packages/client/dist/runner/headless/epic-git-reconciliation-inventory.d.ts +23 -0
- package/packages/client/dist/runner/headless/epic-git-reconciliation-inventory.js +1 -0
- package/packages/client/dist/runner/headless/epic-merge-candidate-qa.d.ts +15 -0
- package/packages/client/dist/runner/headless/epic-merge-candidate-qa.js +28 -0
- package/packages/client/dist/runner/headless/epic-terminal-git-cli-adapter.d.ts +12 -0
- package/packages/client/dist/runner/headless/epic-terminal-git-cli-adapter.js +8 -0
- package/packages/client/dist/runner/headless/epic-terminal-git-runner.d.ts +134 -0
- package/packages/client/dist/runner/headless/epic-terminal-git-runner.js +2 -0
- package/packages/client/dist/runner/headless/prepared-story-bundle.js +1 -1
- package/packages/client/dist/runner/headless/run-yolo.js +1 -1
- package/packages/client/dist/runner/headless/run-yoloop.d.ts +7 -2
- package/packages/client/dist/runner/headless/run-yoloop.js +8 -1
- package/packages/client/dist/runner/headless/types.d.ts +1 -1
- package/packages/client/dist/runner/headless/types.js +2 -2
- package/packages/client/dist/state/invocation-shape.d.ts +9 -0
- package/packages/client/dist/state/invocation-shape.js +1 -0
- package/packages/client/dist/state/project-state-snapshot.d.ts +9 -3
- package/packages/client/dist/state/project-state-snapshot.js +1 -1
- package/packages/client/dist/state/state-json-repair.d.ts +9 -0
- package/packages/client/dist/state/state-json-repair.js +3 -3
- package/packages/client/dist/state/structural-dag-projection.d.ts +24 -0
- package/packages/client/dist/state/structural-dag-projection.js +1 -0
- package/packages/client/dist/tier/tier-aware-client.js +1 -1
- package/packages/client/dist/yoloop/invoke-hooks.d.ts +13 -10
- package/packages/client/dist/yoloop/invoke-hooks.js +8 -5
- package/packages/client/dist/yoloop/shared-discover-epics.js +1 -1
- package/packages/shared/dist/generated/command-registry.generated.js +64 -65
- package/packages/shared/dist/generated/invocation-schema.generated.js +16 -24
- package/packages/shared/dist/invocation/index.d.ts +6 -2
- package/packages/shared/dist/invocation/index.js +5 -0
- package/packages/shared/dist/invocation/input-envelope.d.ts +37 -0
- package/packages/shared/dist/invocation/input-envelope.js +98 -0
- package/packages/shared/dist/invocation/project-identity-migration.d.ts +28 -0
- package/packages/shared/dist/invocation/project-identity-migration.js +83 -0
- package/packages/shared/dist/invocation/public-diagnostics.d.ts +87 -0
- package/packages/shared/dist/invocation/public-diagnostics.js +181 -0
- package/packages/shared/dist/invocation/state-projection.d.ts +21 -0
- package/packages/shared/dist/invocation/state-projection.js +1 -0
- package/packages/shared/dist/invocation/strict-effect-receipt.d.ts +12 -0
- package/packages/shared/dist/invocation/strict-effect-receipt.js +43 -0
- package/packages/shared/dist/yoloop/epic-terminal-git.js +227 -0
- package/packages/shared/dist/yoloop/planning-graph.js +119 -0
- package/packages/shared/dist/yoloop/public-story-write-set.js +27 -0
- package/packages/shared/dist/yoloop/wave-decision-receipt.js +19 -0
- package/targets-stubs/antigravity/gemini.md +1 -1
- package/targets-stubs/antigravity/neocortex.md +18 -0
- 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 +21 -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 +20 -1
- package/targets-stubs/cursor/agent.md +20 -2
- package/targets-stubs/gemini-cli/agent.md +2 -2
- package/targets-stubs/gemini-cli/gemini.md +18 -0
- package/targets-stubs/grok/README.md +13 -0
- package/targets-stubs/grok/SKILL.md +50 -0
- package/targets-stubs/grok/config-mcp.toml +22 -0
- package/targets-stubs/grok/install-grok.sh +31 -0
- package/targets-stubs/kimi/neocortex.md +18 -0
- package/targets-stubs/openclaw/SKILL.md +18 -0
- package/targets-stubs/opencode/neocortex-root.md +20 -1
- package/targets-stubs/vscode/neocortex.agent.md +20 -2
|
@@ -9,6 +9,7 @@ Commands:
|
|
|
9
9
|
invoke Send orchestration request to server
|
|
10
10
|
activate Activate license key
|
|
11
11
|
refresh-memory Create/repair canonical NEOCORTEX.md links and wrappers
|
|
12
|
+
story-checkpoint Root-owned direct-*yolo commit/checkpoint boundary
|
|
12
13
|
config Inspect or change managed subagent approval mode
|
|
13
14
|
cache-status Show cache and circuit breaker status
|
|
14
15
|
update Update to latest version (use 'neocortex update' instead)
|
|
@@ -32,6 +33,21 @@ Refresh Memory Options:
|
|
|
32
33
|
--targets <csv> Target ids (default: all project-memory targets)
|
|
33
34
|
--dry-run, --preview Print files that would change without writing
|
|
34
35
|
|
|
36
|
+
Story Checkpoint Actions:
|
|
37
|
+
handoff Bind the live setup owner to staged content using a private one-time token
|
|
38
|
+
begin Validate staged story evidence, acquire the writer lease, emit trailers
|
|
39
|
+
finalize Validate HEAD and local gates, optionally push, persist the checkpoint
|
|
40
|
+
recover Migrate one published legacy direct-*yolo commit using immutable evidence
|
|
41
|
+
|
|
42
|
+
Story Checkpoint Options:
|
|
43
|
+
--story <id> Canonical story id (required)
|
|
44
|
+
--project-root <path> Project root directory (default: cwd)
|
|
45
|
+
--commit <sha> Legacy commit for recover
|
|
46
|
+
--push Non-force push during finalize
|
|
47
|
+
--require-remote Require published ancestry during recover
|
|
48
|
+
--remote <name> Git remote (default: origin)
|
|
49
|
+
--format json|plain Public result format (default: plain)
|
|
50
|
+
|
|
35
51
|
Config Actions:
|
|
36
52
|
status Show requested/effective/source/scope (default)
|
|
37
53
|
max Request managed maximum approvals
|
|
@@ -63,6 +79,9 @@ Examples:
|
|
|
63
79
|
neocortex-client cache-status
|
|
64
80
|
neocortex-client config status
|
|
65
81
|
neocortex-client config standard --platform-target claude-code
|
|
82
|
+
neocortex-client story-checkpoint handoff --story P174.03.913359 --format json
|
|
83
|
+
neocortex-client story-checkpoint begin --story P174.03.913359 --format json
|
|
84
|
+
neocortex-client story-checkpoint finalize --story P174.03.913359 --push --format json
|
|
66
85
|
|
|
67
86
|
Command-level watch inside --args:
|
|
68
87
|
Supported: exactly one final unquoted --watch for *goal create/start/resume
|
|
@@ -92,5 +111,5 @@ Invocation payload boundary:
|
|
|
92
111
|
|
|
93
112
|
License:
|
|
94
113
|
Licensed under BSL-1.1 (Business Source License 1.1)
|
|
95
|
-
`.trim(),p=new Set(["pm","install","postinstall","preinstall","prepublish","postpublish","preuninstall","postuninstall","preprepare","prepare","postprepare"]);async function u(){const a=process.argv.slice(2),
|
|
96
|
-
`),process.exit(0));const n=a.slice(1);switch(
|
|
114
|
+
`.trim(),p=new Set(["pm","install","postinstall","preinstall","prepublish","postpublish","preuninstall","postuninstall","preprepare","prepare","postprepare"]);async function u(){const a=process.argv.slice(2),o=a[0];o&&p.has(o.toLowerCase())&&process.exit(0),(!o||o==="--help"||o==="-h")&&(console.log(l),process.exit(0)),(o==="--version"||o==="-v")&&(console.log(d()),process.stderr.write(`Licensed under BSL-1.1 (Business Source License 1.1)
|
|
115
|
+
`),process.exit(0));const n=a.slice(1);switch(o){case"invoke":{const{invokeCliHandler:r}=await import("./commands/invoke.js"),t=await r(n);process.exit(t);break}case"activate":{const{activate:r}=await import("./commands/activate.js");let t,i,c=!1;for(let e=0;e<n.length;e++){const s=n[e];s==="--server-url"?i=n[++e]:s==="--non-interactive"?c=!0:s==="--help"||s==="-h"?(console.log(l),process.exit(0)):s.startsWith("-")||(t=s)}t||(console.error("Error: License key is required."),console.error("Usage: neocortex-client activate <license-key>"),console.error("Example: neocortex-client activate NX-PRO-ABC-123"),process.exit(1));try{const e=await r({licenseKey:t,serverUrl:i,nonInteractive:c});e.success?(console.log(e.message),process.exit(0)):(console.error(e.message),process.exit(1))}catch(e){const s=e instanceof Error?e.message:String(e);console.error(`Activation failed: ${s}`),process.exit(1)}break}case"cache-status":{console.log("Cache status requires an active client session."),console.log("Use this command within a running Neocortex client context."),process.exit(0);break}case"config":{const{configCliHandler:r}=await import("./commands/config.js"),t=await r(n);process.exit(t);break}case"refresh-memory":{const{refreshMemoryCliHandler:r}=await import("./commands/refresh-memory.js"),t=await r(n);process.exit(t);break}case"story-checkpoint":{const{storyCheckpointCliHandler:r}=await import("./commands/story-checkpoint.js"),t=await r(n);process.exit(t);break}case"update":{console.log("To update Neocortex, run:"),console.log(" neocortex update"),console.log(""),console.log("Or manually:"),console.log(" npm install -g @ornexus/neocortex@latest"),process.exit(0);break}default:console.error(`Unknown command: ${o}`),console.error('Run "neocortex-client --help" for usage information.'),process.exit(1)}}u().catch(a=>{console.error(`Fatal error: ${a instanceof Error?a.message:String(a)}`),process.exit(1)});
|
|
@@ -16,7 +16,8 @@ import { type RunnerSchedulerBootstrapOptions, type RunnerSchedulerBootstrapResu
|
|
|
16
16
|
import { type ContinuityProcessingSummaryCursorTarget } from '../continuity/continuity-client-state-store.js';
|
|
17
17
|
import type { ProjectEvidenceEnvelope } from '../evidence/types.js';
|
|
18
18
|
import { type InvokeEffectContext, type StrictReadOnlyInvokeEnvelope } from '../../../shared/dist/strict-readonly.js';
|
|
19
|
-
import { type InvocationAdmissionResultV1 } from '../../../shared/dist/invocation/index.js';
|
|
19
|
+
import { type InvokeInputEvidenceV1, type InvokeInputEnvelopeV2, type InvokeInputSourceV2, type InvocationMalformedInputReasonV1, type InvocationAdmissionResultV1, type ProjectIdentityMigrationRequestV1 } from '../../../shared/dist/invocation/index.js';
|
|
20
|
+
import { type P205TransientExecutionAuthority } from '../git/git-lifecycle-store.js';
|
|
20
21
|
export declare const INVOKE_PAYLOAD_LIMIT_BYTES: number;
|
|
21
22
|
export declare const INVOKE_PAYLOAD_WARNING_THRESHOLD_BYTES: number;
|
|
22
23
|
export declare function getOrCreatePendingEpicIdempotencyKey(projectRoot: string, args: string): {
|
|
@@ -25,26 +26,6 @@ export declare function getOrCreatePendingEpicIdempotencyKey(projectRoot: string
|
|
|
25
26
|
};
|
|
26
27
|
export declare function clearPendingEpicIdempotencyKey(projectRoot: string, fingerprint: string): void;
|
|
27
28
|
export declare function recordPendingEpicReservation(projectRoot: string, fingerprint: string, claimId: string, epicId: string): void;
|
|
28
|
-
interface InitProjectMemoryBootstrapSnapshot {
|
|
29
|
-
readonly canonical: {
|
|
30
|
-
readonly path: 'NEOCORTEX.md';
|
|
31
|
-
readonly exists: boolean;
|
|
32
|
-
readonly incompleteReasons: readonly string[];
|
|
33
|
-
readonly confidence: 'high' | 'medium' | 'low';
|
|
34
|
-
};
|
|
35
|
-
readonly permittedSources: {
|
|
36
|
-
readonly packageBuildFiles: number;
|
|
37
|
-
readonly architectureReadmeDocs: number;
|
|
38
|
-
readonly runtimeConfigTemplates: number;
|
|
39
|
-
readonly platformWrappers: number;
|
|
40
|
-
};
|
|
41
|
-
readonly wrapperFiles: readonly string[];
|
|
42
|
-
readonly recommendedPreviewCommand: string;
|
|
43
|
-
readonly recommendedRefreshCommand: string;
|
|
44
|
-
readonly guardrails: readonly string[];
|
|
45
|
-
}
|
|
46
|
-
export declare function isInitTrigger(args: string): boolean;
|
|
47
|
-
export declare function collectInitProjectMemoryBootstrapSnapshot(projectRoot: string): InitProjectMemoryBootstrapSnapshot;
|
|
48
29
|
export interface InvokeOptions {
|
|
49
30
|
/** Raw args from the user (e.g., "*yolo @docs/stories/1.1.story.md") */
|
|
50
31
|
readonly args: string;
|
|
@@ -58,6 +39,8 @@ export interface InvokeOptions {
|
|
|
58
39
|
readonly platformTarget?: string;
|
|
59
40
|
/** CLI input source, used to decide when stdin/args-file need chunk transport. */
|
|
60
41
|
readonly inputSource?: InvokeCliInputSource;
|
|
42
|
+
/** Exact, explicit input metadata captured before admission. */
|
|
43
|
+
readonly inputEnvelope?: InvokeInputEnvelopeV2;
|
|
61
44
|
/** Foreground local continuity watcher requested by CLI `--watch`. */
|
|
62
45
|
readonly watch?: boolean;
|
|
63
46
|
/** Test/integration seam for runner auto-bootstrap; CLI callers leave unset. */
|
|
@@ -235,10 +218,11 @@ export declare function sanitizeInvokeCliOutput(instructions: string | undefined
|
|
|
235
218
|
instructions: string;
|
|
236
219
|
metadata: Record<string, unknown> | undefined;
|
|
237
220
|
};
|
|
238
|
-
type InvokeCliInputSource =
|
|
221
|
+
type InvokeCliInputSource = InvokeInputSourceV2;
|
|
239
222
|
export interface InvokeCliParsedOptions {
|
|
240
223
|
readonly args: string;
|
|
241
224
|
readonly inputSource: InvokeCliInputSource;
|
|
225
|
+
readonly inputEnvelope: InvokeInputEnvelopeV2;
|
|
242
226
|
readonly projectRoot?: string;
|
|
243
227
|
readonly format: 'json' | 'plain';
|
|
244
228
|
readonly watch: boolean;
|
|
@@ -278,12 +262,15 @@ export interface InvokeCommandLevelWatchResolution {
|
|
|
278
262
|
readonly publicSafe: true;
|
|
279
263
|
}
|
|
280
264
|
export interface InvokeCliInputReaders {
|
|
281
|
-
readonly readStdin?: () => string;
|
|
282
|
-
readonly readArgsFile?: (filePath: string) => string;
|
|
265
|
+
readonly readStdin?: () => string | Uint8Array;
|
|
266
|
+
readonly readArgsFile?: (filePath: string) => string | Uint8Array;
|
|
283
267
|
}
|
|
284
268
|
export declare class InvokeCliInputError extends Error {
|
|
269
|
+
readonly reason?: InvocationMalformedInputReasonV1 | undefined;
|
|
270
|
+
readonly source?: InvokeCliInputSource | undefined;
|
|
271
|
+
readonly byteLength?: number | undefined;
|
|
285
272
|
readonly code: string;
|
|
286
|
-
constructor(code: string, message: string);
|
|
273
|
+
constructor(code: string, message: string, reason?: InvocationMalformedInputReasonV1 | undefined, source?: InvokeCliInputSource | undefined, byteLength?: number | undefined);
|
|
287
274
|
}
|
|
288
275
|
export type StateSnapshotScopeKind = 'full' | 'projected';
|
|
289
276
|
export type StateSnapshotCommandPolicy = 'full' | 'story-targeted' | 'epic-targeted' | 'yoloop-targeted' | 'epic-summary' | 'continuity-scoped' | 'adaptive-targeted' | (string & {});
|
|
@@ -466,6 +453,9 @@ interface InvokeRequestBodyBase {
|
|
|
466
453
|
readonly stateSnapshot: StateSnapshot;
|
|
467
454
|
readonly platformTarget?: string;
|
|
468
455
|
readonly projectId?: string;
|
|
456
|
+
readonly projectIdentityMigration?: ProjectIdentityMigrationRequestV1;
|
|
457
|
+
/** Public-safe proof that the transmitted/materialized args are byte-faithful. */
|
|
458
|
+
readonly inputEvidence: InvokeInputEvidenceV1;
|
|
469
459
|
readonly idempotencyKey?: string;
|
|
470
460
|
readonly registryVersion: string;
|
|
471
461
|
readonly registryChecksum: string;
|
|
@@ -510,6 +500,11 @@ export declare class InvokePayloadTooLargeError extends Error {
|
|
|
510
500
|
readonly telemetry: InvokePayloadTelemetry;
|
|
511
501
|
constructor(telemetry: InvokePayloadTelemetry);
|
|
512
502
|
}
|
|
503
|
+
export declare class InvokeStructuralContextTooLargeError extends Error {
|
|
504
|
+
readonly code = "STRUCTURAL_CONTEXT_TOO_LARGE";
|
|
505
|
+
readonly telemetry: InvokePayloadTelemetry;
|
|
506
|
+
constructor(telemetry: InvokePayloadTelemetry);
|
|
507
|
+
}
|
|
513
508
|
/**
|
|
514
509
|
* P103.02: Describe a schema-drift issue detected in a user's state.json.
|
|
515
510
|
* Codes map to concrete misalignments against the canonical v1 schema
|
|
@@ -535,7 +530,25 @@ export declare function __resetSchemaDriftWarnedForTests(): void;
|
|
|
535
530
|
* Read state.json and construct a sanitized snapshot for the server.
|
|
536
531
|
* Relative paths only - no absolute paths sent to server.
|
|
537
532
|
*/
|
|
538
|
-
export
|
|
533
|
+
export interface StateSnapshotCollectionOptions {
|
|
534
|
+
readonly epicAware?: boolean;
|
|
535
|
+
readonly projectless?: boolean;
|
|
536
|
+
/** Process-local proof keyed by story; never read from or written to JSON. */
|
|
537
|
+
readonly p205Authorities?: Readonly<Record<string, P205TransientExecutionAuthority>>;
|
|
538
|
+
}
|
|
539
|
+
export declare class StateSnapshotIntegrityError extends Error {
|
|
540
|
+
readonly reasonCode: string;
|
|
541
|
+
constructor(reasonCode: string);
|
|
542
|
+
}
|
|
543
|
+
export declare function isEpicAwareCommandId(commandId: string | null | undefined): boolean;
|
|
544
|
+
/**
|
|
545
|
+
* Epic-aware commands cannot let generic repair turn a missing/truncated state
|
|
546
|
+
* into authoritative empty collections. This read-only gate runs before repair;
|
|
547
|
+
* structurally valid legacy objects continue through the normal migration path.
|
|
548
|
+
*/
|
|
549
|
+
export declare function assertEpicAwareStateShapeBeforeRepair(projectRoot: string): void;
|
|
550
|
+
export declare function collectStateSnapshot(projectRoot: string, options?: StateSnapshotCollectionOptions): StateSnapshot;
|
|
551
|
+
export declare function collectInvokeP205Authorities(projectRoot: string, args: string, commandId: string | null | undefined): Promise<Readonly<Record<string, P205TransientExecutionAuthority>>>;
|
|
539
552
|
export declare function createFullStateSnapshotScope(trigger: string, snapshot: Pick<StateSnapshot, 'stories' | 'epics'>): FullStateSnapshotScope;
|
|
540
553
|
interface SendResult {
|
|
541
554
|
readonly ok: boolean;
|