@ornexus/neocortex 4.60.58 → 4.60.60
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 +241 -82
- package/install.ps1 +1 -1
- package/install.sh +1 -1
- package/package.json +6 -2
- package/packages/client/dist/cli.js +37 -4
- package/packages/client/dist/commands/architecture-answers.d.ts +26 -0
- package/packages/client/dist/commands/architecture-answers.js +7 -0
- package/packages/client/dist/commands/architecture-memory-terminal.d.ts +21 -0
- package/packages/client/dist/commands/architecture-memory-terminal.js +2 -0
- package/packages/client/dist/commands/architecture-root-binding.d.ts +2 -0
- package/packages/client/dist/commands/architecture-root-binding.js +1 -0
- package/packages/client/dist/commands/invoke.d.ts +43 -2
- package/packages/client/dist/commands/invoke.js +98 -70
- package/packages/client/dist/commands/legacy-story-branch.d.ts +10 -0
- package/packages/client/dist/commands/legacy-story-branch.js +1 -0
- package/packages/client/dist/commands/legacy-story-pr.d.ts +18 -0
- package/packages/client/dist/commands/legacy-story-pr.js +1 -0
- package/packages/client/dist/commands/planning-diagnosis.d.ts +4 -0
- package/packages/client/dist/commands/planning-diagnosis.js +1 -0
- package/packages/client/dist/commands/planning-generation.d.ts +2 -0
- package/packages/client/dist/commands/planning-generation.js +1 -0
- package/packages/client/dist/commands/planning-research.d.ts +3 -0
- package/packages/client/dist/commands/planning-research.js +1 -0
- package/packages/client/dist/commands/refresh-memory.d.ts +10 -0
- package/packages/client/dist/commands/refresh-memory.js +3 -1
- package/packages/client/dist/commands/story-checkpoint.d.ts +1 -1
- package/packages/client/dist/commands/story-checkpoint.js +1 -1
- package/packages/client/dist/config/profile-directory.d.ts +2 -0
- package/packages/client/dist/config/profile-directory.js +1 -0
- package/packages/client/dist/config/secure-config.js +5 -5
- package/packages/client/dist/continuity/runner-bootstrap-policy.d.ts +1 -1
- package/packages/client/dist/continuity/runner-bootstrap-policy.js +1 -1
- package/packages/client/dist/generated/command-registry.generated.d.ts +11 -11
- package/packages/client/dist/generated/command-registry.generated.js +1 -1
- package/packages/client/dist/generated/public-projections.generated.d.ts +20 -20
- package/packages/client/dist/generated/public-projections.generated.js +1 -1
- package/packages/client/dist/git/direct-yolo-checkpoint.d.ts +9 -0
- package/packages/client/dist/git/direct-yolo-checkpoint.js +4 -4
- package/packages/client/dist/git/git-lifecycle-step-ids.d.ts +5 -0
- package/packages/client/dist/git/git-lifecycle-step-ids.js +1 -1
- package/packages/client/dist/git/git-lifecycle-store.d.ts +16 -0
- package/packages/client/dist/git/git-lifecycle-store.js +9 -4
- package/packages/client/dist/git/legacy-story-branch-checkpoint.d.ts +38 -0
- package/packages/client/dist/git/legacy-story-branch-checkpoint.js +9 -0
- package/packages/client/dist/git/legacy-story-branch-setup.d.ts +56 -0
- package/packages/client/dist/git/legacy-story-branch-setup.js +4 -0
- package/packages/client/dist/git/legacy-story-pr.d.ts +514 -0
- package/packages/client/dist/git/legacy-story-pr.js +62 -0
- package/packages/client/dist/git/secure-filesystem-boundary.d.ts +2 -0
- package/packages/client/dist/git/secure-filesystem-boundary.js +34 -7
- package/packages/client/dist/machine/fingerprint.js +2 -2
- package/packages/client/dist/memory/project-memory-writer.js +17 -17
- package/packages/client/dist/memory/shared-project-memory-types.d.ts +23 -13
- package/packages/client/dist/memory/shared-project-memory-types.js +2 -2
- package/packages/client/dist/migrations/state-json.d.ts +23 -1
- package/packages/client/dist/migrations/state-json.js +4 -4
- package/packages/client/dist/private-execution/delivery.d.ts +131 -3
- package/packages/client/dist/private-execution/delivery.js +2 -2
- package/packages/client/dist/private-execution/isolated-admission.d.ts +28 -1
- package/packages/client/dist/private-execution/isolated-admission.js +11 -2
- package/packages/client/dist/private-execution/isolated-session.js +2 -2
- package/packages/client/dist/private-execution/isolated-workspace.d.ts +8 -0
- package/packages/client/dist/private-execution/isolated-workspace.js +1 -1
- package/packages/client/dist/private-execution/pact-consumer-runtime.d.ts +19 -0
- package/packages/client/dist/private-execution/pact-consumer-runtime.js +3 -0
- package/packages/client/dist/private-execution/pact-test-source.d.ts +9 -0
- package/packages/client/dist/private-execution/pact-test-source.js +1 -0
- package/packages/client/dist/private-execution/pact-toolchain.d.ts +37 -0
- package/packages/client/dist/private-execution/pact-toolchain.js +3 -0
- package/packages/client/dist/private-execution/pact-write-set.d.ts +24 -0
- package/packages/client/dist/private-execution/pact-write-set.js +1 -0
- package/packages/client/dist/private-execution/planning-diagnosis-checkpoint.d.ts +38 -0
- package/packages/client/dist/private-execution/planning-diagnosis-checkpoint.js +5 -0
- package/packages/client/dist/private-execution/planning-generation-checkpoint.d.ts +34 -0
- package/packages/client/dist/private-execution/planning-generation-checkpoint.js +4 -0
- package/packages/client/dist/private-execution/planning-research-checkpoint.d.ts +38 -0
- package/packages/client/dist/private-execution/planning-research-checkpoint.js +4 -0
- package/packages/client/dist/private-execution/ux-source-validation.d.ts +2 -0
- package/packages/client/dist/private-execution/ux-source-validation.js +1 -0
- package/packages/client/dist/private-execution/ux-write-set.d.ts +30 -0
- package/packages/client/dist/private-execution/ux-write-set.js +2 -0
- package/packages/client/dist/resolvers/remote-resolver.d.ts +5 -22
- package/packages/client/dist/resolvers/remote-resolver.js +1 -1
- package/packages/client/dist/runner/project-identity.js +1 -1
- package/packages/client/dist/runner/scheduler.d.ts +20 -0
- package/packages/client/dist/runner/scheduler.js +7 -7
- package/packages/client/dist/state/project-state-snapshot.js +1 -1
- package/packages/client/dist/yolo/change-evidence-collector.d.ts +8 -0
- package/packages/client/dist/yolo/change-evidence-collector.js +1 -1
- package/packages/client/dist/yolo/spec-envelope-collector.d.ts +2 -0
- package/packages/client/dist/yolo/spec-envelope-collector.js +3 -3
- package/packages/client/dist/yoloop/invoke-hooks.js +7 -7
- package/packages/client/dist/yoloop/shared-yoloop-types.d.ts +15 -1
- package/packages/client/dist/yoloop/yoloop-client-state-store.d.ts +5 -1
- package/packages/client/dist/yoloop/yoloop-client-state-store.js +1 -1
- package/packages/shared/dist/generated/command-registry.generated.js +12 -10
- package/packages/shared/dist/generated/invocation-schema.generated.js +14 -6
- package/packages/shared/dist/generated/public-projections.generated.js +18 -18
- package/packages/shared/dist/invocation/index.d.ts +1 -1
- package/packages/shared/dist/merge-readiness/c12-remote-observation.js +80 -0
- package/packages/shared/dist/planning/diagnosis-state.js +143 -0
- package/packages/shared/dist/yoloop/branch-unit.js +23 -1
- 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/gemini-cli/agent.md +2 -2
- package/targets-stubs/opencode/neocortex-root.md +1 -1
- package/targets-stubs/vscode/neocortex.agent.md +2 -2
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Physical P01 state projection shared by the server policy and the client CAS.
|
|
3
|
+
* This is deliberately not an acceptance decision: callers must establish the
|
|
4
|
+
* durable claim, independently accepted checkpoint and exact source revision.
|
|
5
|
+
*/
|
|
6
|
+
import { createHash } from 'node:crypto';
|
|
7
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
8
|
+
function record(value) {
|
|
9
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
10
|
+
}
|
|
11
|
+
const SCALARS = ['goal', 'problem', 'desiredOutcome', 'rawIntent'];
|
|
12
|
+
const LISTS = ['context', 'users', 'surfaces', 'constraints', 'assumptions', 'risks', 'nonGoals',
|
|
13
|
+
'validationExpectations', 'debtRefs', 'repositoryEvidencePaths', 'journeyIds', 'screenIds',
|
|
14
|
+
'storybookStoryIds', 'backendContractIds', 'featureBlockerIds', 'remediationRefs'];
|
|
15
|
+
const BOOLEANS = ['uiScope', 'remediationStory'];
|
|
16
|
+
const EXAMPLE_KEYS = ['id', 'title', 'actor', 'given', 'when', 'then', 'source',
|
|
17
|
+
'coveredRequirement', 'expectedValidation'];
|
|
18
|
+
const CONTRACT_KEYS = ['id', 'kind', 'description', 'path'];
|
|
19
|
+
const UNSAFE = /(?:[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}|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*|sk-[A-Za-z0-9_-]{12,})/i;
|
|
20
|
+
const INLINE_SECRET = /(?:token|api[_-]?key|secret|password|credential|license[_-]?key)\s*[:=]\s*\S+/i;
|
|
21
|
+
const PRIVATE_CONTENT = /(?:customer\s+pii|private\s+prompt|system\s+prompt|developer\s+prompt|raw\s+vendor\s+corpus|begin\s+raw\s+logs?)/i;
|
|
22
|
+
function safeText(value, max = 512) {
|
|
23
|
+
if (typeof value !== 'string' || value.length > max
|
|
24
|
+
|| /[\x00-\x08\x0b\x0c\x0e-\x1f]/.test(value)
|
|
25
|
+
|| UNSAFE.test(value) || INLINE_SECRET.test(value) || PRIVATE_CONTENT.test(value)) {
|
|
26
|
+
throw new Error('planning-unsafe-text');
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
function allowedKeys(value, allowed) {
|
|
31
|
+
if (Object.keys(value).some((key) => !allowed.includes(key)))
|
|
32
|
+
throw new Error('planning-unknown-field');
|
|
33
|
+
}
|
|
34
|
+
/** Stable revision input shared by the server and the physical root checkpoint. */
|
|
35
|
+
export function canonicalPlanningIntake(value) {
|
|
36
|
+
if (!record(value) || Buffer.byteLength(JSON.stringify(value)) > 16_384) {
|
|
37
|
+
throw new Error('planning-intake-shape');
|
|
38
|
+
}
|
|
39
|
+
allowedKeys(value, [...SCALARS, ...LISTS, ...BOOLEANS, 'examples', 'contracts']);
|
|
40
|
+
const result = {};
|
|
41
|
+
for (const key of SCALARS)
|
|
42
|
+
if (value[key] !== undefined)
|
|
43
|
+
result[key] = safeText(value[key]);
|
|
44
|
+
for (const key of LISTS)
|
|
45
|
+
if (value[key] !== undefined) {
|
|
46
|
+
const entries = value[key];
|
|
47
|
+
if (!Array.isArray(entries) || entries.length > 32)
|
|
48
|
+
throw new Error('planning-list-shape');
|
|
49
|
+
result[key] = entries.map((entry) => safeText(entry, 256));
|
|
50
|
+
}
|
|
51
|
+
for (const key of BOOLEANS)
|
|
52
|
+
if (value[key] !== undefined) {
|
|
53
|
+
if (typeof value[key] !== 'boolean')
|
|
54
|
+
throw new Error('planning-boolean-shape');
|
|
55
|
+
result[key] = value[key];
|
|
56
|
+
}
|
|
57
|
+
for (const [key, allowed] of [['examples', EXAMPLE_KEYS], ['contracts', CONTRACT_KEYS]]) {
|
|
58
|
+
if (value[key] === undefined)
|
|
59
|
+
continue;
|
|
60
|
+
const entries = value[key];
|
|
61
|
+
if (!Array.isArray(entries) || entries.length > 16)
|
|
62
|
+
throw new Error('planning-record-list-shape');
|
|
63
|
+
result[key] = entries.map((entry) => {
|
|
64
|
+
if (!record(entry))
|
|
65
|
+
throw new Error('planning-record-shape');
|
|
66
|
+
allowedKeys(entry, allowed);
|
|
67
|
+
const copy = {};
|
|
68
|
+
for (const field of allowed)
|
|
69
|
+
if (entry[field] !== undefined)
|
|
70
|
+
copy[field] = safeText(entry[field], 256);
|
|
71
|
+
return copy;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
export function planningIntakeRevision(value) {
|
|
77
|
+
return createHash('sha256').update(JSON.stringify(canonicalPlanningIntake(value))).digest('hex');
|
|
78
|
+
}
|
|
79
|
+
/** A consistency digest only. The caller must separately establish independent QA. */
|
|
80
|
+
export function createPlanningReceiptV1(input) {
|
|
81
|
+
const summary = input.artifactSummary;
|
|
82
|
+
if (!/^P[1-9][0-9]{0,11}$/.test(input.epicId)
|
|
83
|
+
|| !/^[a-f0-9]{64}$/.test(input.intakeRevision)
|
|
84
|
+
|| input.accepted !== true || !['diagnosis', 'research'].includes(input.kind)
|
|
85
|
+
|| typeof summary !== 'string' || !summary.trim() || summary.length > 1024
|
|
86
|
+
|| /[\x00-\x08\x0b\x0c\x0e-\x1f]/.test(summary)
|
|
87
|
+
|| /^\s*(?:docs\/|\.neocortex\/|https?:\/)/i.test(summary)
|
|
88
|
+
|| UNSAFE.test(summary) || INLINE_SECRET.test(summary) || PRIVATE_CONTENT.test(summary)
|
|
89
|
+
|| input.kind === 'diagnosis' && input.predecessorReceiptId !== undefined
|
|
90
|
+
|| input.kind === 'research' && !/^[a-f0-9]{64}$/.test(input.predecessorReceiptId ?? '')) {
|
|
91
|
+
throw new Error('planning-receipt-invalid');
|
|
92
|
+
}
|
|
93
|
+
const base = { schemaVersion: 1, kind: input.kind, epicId: input.epicId,
|
|
94
|
+
intakeRevision: input.intakeRevision, artifactSummary: summary,
|
|
95
|
+
artifactDigest: createHash('sha256').update(summary).digest('hex'),
|
|
96
|
+
...(input.predecessorReceiptId ? { predecessorReceiptId: input.predecessorReceiptId } : {}),
|
|
97
|
+
accepted: true };
|
|
98
|
+
return { ...base, receiptId: createHash('sha256').update(JSON.stringify(base)).digest('hex') };
|
|
99
|
+
}
|
|
100
|
+
export function projectDiagnosedEpicState(currentState, input) {
|
|
101
|
+
const checkpoint = input.checkpoint;
|
|
102
|
+
if (currentState.schema_version !== 1 || !record(currentState.epics) || !record(currentState.stories)
|
|
103
|
+
|| !/^P[1-9][0-9]{0,11}$/.test(input.epicId)
|
|
104
|
+
|| !/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/.test(input.claimId)
|
|
105
|
+
|| !record(checkpoint) || checkpoint.schemaVersion !== 1
|
|
106
|
+
|| checkpoint.epicId !== input.epicId || !record(checkpoint.intake)
|
|
107
|
+
|| typeof checkpoint.intake.goal !== 'string'
|
|
108
|
+
|| !checkpoint.intake.goal.trim() || checkpoint.intake.goal.length > 512
|
|
109
|
+
|| typeof checkpoint.intakeRevision !== 'string'
|
|
110
|
+
|| !/^[a-f0-9]{64}$/.test(checkpoint.intakeRevision)
|
|
111
|
+
|| !record(checkpoint.diagnosisReceipt)) {
|
|
112
|
+
throw new Error('planning-diagnosis-identity-invalid');
|
|
113
|
+
}
|
|
114
|
+
const ledger = currentState.epic_id_ledger === undefined
|
|
115
|
+
? { schema_version: 1, reserved_ids: [] }
|
|
116
|
+
: currentState.epic_id_ledger;
|
|
117
|
+
if (!record(ledger) || ledger.schema_version !== 1
|
|
118
|
+
|| !Array.isArray(ledger.reserved_ids) || ledger.reserved_ids.length > 4096
|
|
119
|
+
|| ledger.reserved_ids.some((id) => typeof id !== 'string' || !/^P[1-9][0-9]{0,11}$/.test(id))
|
|
120
|
+
|| new Set(ledger.reserved_ids).size !== ledger.reserved_ids.length) {
|
|
121
|
+
throw new Error('planning-diagnosis-ledger-invalid');
|
|
122
|
+
}
|
|
123
|
+
const epic = {
|
|
124
|
+
id: input.epicId, title: checkpoint.intake.goal, status: 'diagnosed',
|
|
125
|
+
source: 'create-epic', stories: [],
|
|
126
|
+
createEpicPlanningClaim: { schemaVersion: 1, claimId: input.claimId, epicId: input.epicId },
|
|
127
|
+
createEpicPlanning: checkpoint,
|
|
128
|
+
};
|
|
129
|
+
const epics = currentState.epics;
|
|
130
|
+
if (Object.hasOwn(epics, input.epicId)) {
|
|
131
|
+
if (isDeepStrictEqual(epics[input.epicId], epic) && ledger.reserved_ids.includes(input.epicId)) {
|
|
132
|
+
return currentState;
|
|
133
|
+
}
|
|
134
|
+
throw new Error('planning-diagnosis-epic-conflict');
|
|
135
|
+
}
|
|
136
|
+
if (ledger.reserved_ids.includes(input.epicId))
|
|
137
|
+
throw new Error('planning-diagnosis-ledger-conflict');
|
|
138
|
+
return {
|
|
139
|
+
...currentState,
|
|
140
|
+
epics: { ...epics, [input.epicId]: epic },
|
|
141
|
+
epic_id_ledger: { ...ledger, reserved_ids: [...ledger.reserved_ids, input.epicId] },
|
|
142
|
+
};
|
|
143
|
+
}
|
|
@@ -9,6 +9,13 @@ const LEGACY_INTEGRATION_STEPS = new Set([
|
|
|
9
9
|
'step-c-11-review-pr',
|
|
10
10
|
'step-c-12-merge-pr',
|
|
11
11
|
]);
|
|
12
|
+
/** Do not let a stale epic story list hide physical progress in the snapshot. */
|
|
13
|
+
export function resolveEpicStoryIds(epicId, listedStoryIds, snapshotStoryIds) {
|
|
14
|
+
return [...new Set([
|
|
15
|
+
...(listedStoryIds ?? []),
|
|
16
|
+
...snapshotStoryIds.filter((id) => id.startsWith(`${epicId}.`)),
|
|
17
|
+
])];
|
|
18
|
+
}
|
|
12
19
|
/** Resolve once from persisted state. Existing Git progress always wins. */
|
|
13
20
|
export function resolveBranchUnit(epic, stories) {
|
|
14
21
|
const legacyProgress = stories.some(hasLegacyStoryGitProgress);
|
|
@@ -64,7 +71,8 @@ export function reconcileStoryCheckpoint(current, requested) {
|
|
|
64
71
|
current.graphRevision === requested.graphRevision &&
|
|
65
72
|
current.claimRevision === requested.claimRevision &&
|
|
66
73
|
sameEvidenceReceipt(current.qaReceipt, requested.qaReceipt) &&
|
|
67
|
-
sameEvidenceReceipt(current.reviewReceipt, requested.reviewReceipt)
|
|
74
|
+
sameEvidenceReceipt(current.reviewReceipt, requested.reviewReceipt) &&
|
|
75
|
+
JSON.stringify(current.reviewReconciliation ?? null) === JSON.stringify(requested.reviewReconciliation ?? null))
|
|
68
76
|
return { kind: 'reused', checkpoint: current };
|
|
69
77
|
return { kind: 'blocked', reasonCode: 'checkpoint-idempotency-conflict' };
|
|
70
78
|
}
|
|
@@ -183,6 +191,7 @@ function validateCheckpointEvidence(checkpoint) {
|
|
|
183
191
|
else if (review.schemaVersion !== 1 || review.kind !== 'story_review_evidence'
|
|
184
192
|
|| review.producer !== 'root-commit-range-review' || review.verdict !== checkpoint.reviewVerdict
|
|
185
193
|
|| !evidenceBindingMatches(checkpoint, review) || !isHash(review.sourceEvidenceDigest)
|
|
194
|
+
|| (review.reviewArtifactDigest !== undefined && !isHash(review.reviewArtifactDigest))
|
|
186
195
|
|| !nonEmpty(review.receiptRef) || review.receiptRef !== `story-review:${review.sourceEvidenceDigest}`
|
|
187
196
|
|| !Number.isFinite(Date.parse(review.reviewedAt))) {
|
|
188
197
|
errors.push('checkpoint-review-evidence-invalid');
|
|
@@ -201,6 +210,19 @@ function validateCheckpointEvidence(checkpoint) {
|
|
|
201
210
|
if (Date.parse(review.reviewedAt) < Date.parse(qa.checkedAt))
|
|
202
211
|
errors.push('checkpoint-review-before-qa');
|
|
203
212
|
}
|
|
213
|
+
const reconciliation = checkpoint.reviewReconciliation;
|
|
214
|
+
if (reconciliation && (!qa || !review || reconciliation.schemaVersion !== 1
|
|
215
|
+
|| reconciliation.kind !== 'historical_review_reconciliation'
|
|
216
|
+
|| reconciliation.storyId !== checkpoint.storyId || reconciliation.epicId !== checkpoint.epicId
|
|
217
|
+
|| reconciliation.checkpointHeadSha !== checkpoint.headSha
|
|
218
|
+
|| !isSha(reconciliation.approvalCommitSha)
|
|
219
|
+
|| !isHash(reconciliation.approvalArtifactDigest) || !isHash(reconciliation.sourceEvidenceDigest)
|
|
220
|
+
|| reconciliation.qaReceiptRef !== qa.receiptRef || reconciliation.reviewReceiptRef !== review.receiptRef
|
|
221
|
+
|| reconciliation.receiptRef !== `story-review-reconciliation:${reconciliation.sourceEvidenceDigest}`
|
|
222
|
+
|| !checkpoint.receiptRefs.includes(reconciliation.receiptRef)
|
|
223
|
+
|| !Number.isFinite(Date.parse(reconciliation.reviewedAt)))) {
|
|
224
|
+
errors.push('checkpoint-review-reconciliation-invalid');
|
|
225
|
+
}
|
|
204
226
|
return errors;
|
|
205
227
|
}
|
|
206
228
|
function evidenceBindingMatches(checkpoint, evidence) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: neocortex-root
|
|
3
|
-
description: "🧠 Neocortex Root Agent v4.60.
|
|
3
|
+
description: "🧠 Neocortex Root Agent v4.60.60 | OrNexus Team"
|
|
4
4
|
model: opus
|
|
5
5
|
color: blue
|
|
6
6
|
tools:
|
|
@@ -108,7 +108,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
|
|
|
108
108
|
┌────────────────────────────────────────────────────────────┐
|
|
109
109
|
│ │
|
|
110
110
|
│ ####### N E O C O R T E X │
|
|
111
|
-
│ ### ######## v4.60.
|
|
111
|
+
│ ### ######## v4.60.60 │
|
|
112
112
|
│ ######### ##### │
|
|
113
113
|
│ ## ############## Development Orchestrator │
|
|
114
114
|
│ ## ### ###### ## OrNexus Team │
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: neocortex
|
|
3
|
-
description: "🧠 Neocortex v4.60.
|
|
3
|
+
description: "🧠 Neocortex v4.60.60 | OrNexus Team"
|
|
4
4
|
model: opus
|
|
5
5
|
color: blue
|
|
6
6
|
permissionMode: bypassPermissions
|
|
@@ -104,7 +104,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
|
|
|
104
104
|
┌────────────────────────────────────────────────────────────┐
|
|
105
105
|
│ │
|
|
106
106
|
│ ####### N E O C O R T E X │
|
|
107
|
-
│ ### ######## v4.60.
|
|
107
|
+
│ ### ######## v4.60.60 │
|
|
108
108
|
│ ######### ##### │
|
|
109
109
|
│ ## ############## Development Orchestrator │
|
|
110
110
|
│ ## ### ###### ## OrNexus Team │
|
|
@@ -28,7 +28,7 @@ Codex built-in commands or actions.
|
|
|
28
28
|
|
|
29
29
|
<!-- END: Plugin Conflict Prevention -->
|
|
30
30
|
|
|
31
|
-
# Neocortex v4.60.
|
|
31
|
+
# Neocortex v4.60.60 | OrNexus Team
|
|
32
32
|
|
|
33
33
|
You are a Development Orchestrator. All orchestration logic is delivered by the remote Neocortex server.
|
|
34
34
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: neocortex
|
|
3
|
-
description: "🧠 Neocortex v4.60.
|
|
3
|
+
description: "🧠 Neocortex v4.60.60 | OrNexus Team"
|
|
4
4
|
model: inherit
|
|
5
5
|
readonly: false
|
|
6
6
|
is_background: false
|
|
@@ -64,7 +64,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
|
|
|
64
64
|
┌────────────────────────────────────────────────────────────┐
|
|
65
65
|
│ │
|
|
66
66
|
│ ####### N E O C O R T E X │
|
|
67
|
-
│ ### ######## v4.60.
|
|
67
|
+
│ ### ######## v4.60.60 │
|
|
68
68
|
│ ######### ##### │
|
|
69
69
|
│ ## ############## Development Orchestrator │
|
|
70
70
|
│ ## ### ###### ## OrNexus Team │
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: neocortex-root
|
|
3
|
-
description: "🧠 Neocortex v4.60.
|
|
3
|
+
description: "🧠 Neocortex v4.60.60 | OrNexus Team"
|
|
4
4
|
kind: local
|
|
5
5
|
tools:
|
|
6
6
|
# File operations (Gemini CLI built-ins)
|
|
@@ -62,7 +62,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
|
|
|
62
62
|
┌────────────────────────────────────────────────────────────┐
|
|
63
63
|
│ │
|
|
64
64
|
│ ####### N E O C O R T E X │
|
|
65
|
-
│ ### ######## v4.60.
|
|
65
|
+
│ ### ######## v4.60.60 │
|
|
66
66
|
│ ######### ##### │
|
|
67
67
|
│ ## ############## Development Orchestrator │
|
|
68
68
|
│ ## ### ###### ## OrNexus Team │
|
|
@@ -58,7 +58,7 @@ explicit server opt-in rather than a local assumption.
|
|
|
58
58
|
┌────────────────────────────────────────────────────────────┐
|
|
59
59
|
│ │
|
|
60
60
|
│ ####### N E O C O R T E X │
|
|
61
|
-
│ ### ######## v4.60.
|
|
61
|
+
│ ### ######## v4.60.60 │
|
|
62
62
|
│ ######### ##### │
|
|
63
63
|
│ ## ############## Development Orchestrator │
|
|
64
64
|
│ ## ### ###### ## OrNexus Team │
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "neocortex"
|
|
3
|
-
description: "Neocortex v4.60.
|
|
3
|
+
description: "Neocortex v4.60.60 | OrNexus Team"
|
|
4
4
|
tools:
|
|
5
5
|
# Read / Edit (built-in tool sets)
|
|
6
6
|
- read
|
|
@@ -68,7 +68,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
|
|
|
68
68
|
┌────────────────────────────────────────────────────────────┐
|
|
69
69
|
│ │
|
|
70
70
|
│ ####### N E O C O R T E X │
|
|
71
|
-
│ ### ######## v4.60.
|
|
71
|
+
│ ### ######## v4.60.60 │
|
|
72
72
|
│ ######### ##### │
|
|
73
73
|
│ ## ############## Development Orchestrator │
|
|
74
74
|
│ ## ### ###### ## OrNexus Team │
|