@ornexus/neocortex 4.60.63 → 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 +5 -3
- package/packages/client/dist/cli.js +8 -3
- package/packages/client/dist/commands/activate.js +8 -8
- package/packages/client/dist/commands/architecture-memory-terminal.js +4 -2
- package/packages/client/dist/commands/architecture-non-ui-continuation.d.ts +3 -0
- package/packages/client/dist/commands/architecture-non-ui-continuation.js +1 -0
- package/packages/client/dist/commands/invoke.d.ts +19 -16
- package/packages/client/dist/commands/invoke.js +80 -75
- package/packages/client/dist/commands/mutation-qa-run.js +2 -2
- package/packages/client/dist/commands/planning-generation.js +1 -1
- package/packages/client/dist/commands/planning-memory.d.ts +1 -0
- package/packages/client/dist/commands/planning-memory.js +1 -0
- package/packages/client/dist/commands/private-session.d.ts +1 -0
- package/packages/client/dist/commands/private-session.js +1 -0
- package/packages/client/dist/commands/qa-control.d.ts +4 -0
- package/packages/client/dist/commands/qa-control.js +1 -0
- package/packages/client/dist/commands/qa-scan-browser-launch.d.ts +8 -0
- package/packages/client/dist/commands/qa-scan-browser-launch.js +1 -0
- package/packages/client/dist/commands/qa-scan-browser-route.d.ts +3 -0
- package/packages/client/dist/commands/qa-scan-browser-route.js +1 -0
- package/packages/client/dist/commands/qa-scan-capture.d.ts +43 -0
- package/packages/client/dist/commands/qa-scan-capture.js +5 -5
- package/packages/client/dist/commands/qa-scan-discovery.d.ts +7 -0
- package/packages/client/dist/commands/qa-scan-discovery.js +3 -3
- package/packages/client/dist/commands/qa-scan-review.d.ts +8 -1
- package/packages/client/dist/commands/qa-scan-review.js +5 -5
- package/packages/client/dist/commands/qa-synthetic-backend-capture.d.ts +62 -0
- package/packages/client/dist/commands/qa-synthetic-backend-capture.js +1 -0
- package/packages/client/dist/commands/qa-synthetic-backend-review.d.ts +104 -0
- package/packages/client/dist/commands/qa-synthetic-backend-review.js +1 -0
- package/packages/client/dist/commands/qa-synthetic-backend.d.ts +52 -0
- package/packages/client/dist/commands/qa-synthetic-backend.js +7 -0
- package/packages/client/dist/commands/qa-synthetic-broker-port.d.ts +30 -0
- package/packages/client/dist/commands/qa-synthetic-broker-port.js +1 -0
- package/packages/client/dist/commands/qa-synthetic-browser.d.ts +1 -0
- package/packages/client/dist/commands/qa-synthetic-browser.js +1 -0
- package/packages/client/dist/commands/refactor-characterization.d.ts +4 -2
- package/packages/client/dist/commands/refactor-characterization.js +21 -12
- package/packages/client/dist/commands/refactor-control.d.ts +9 -0
- package/packages/client/dist/commands/refactor-control.js +3 -0
- package/packages/client/dist/commands/refactor-cpp-assertions.d.ts +4 -0
- package/packages/client/dist/commands/refactor-cpp-assertions.js +3 -0
- package/packages/client/dist/commands/refactor-review.js +5 -5
- package/packages/client/dist/commands/refactor-root.d.ts +8 -1
- package/packages/client/dist/commands/refactor-root.js +7 -7
- package/packages/client/dist/commands/refresh-memory.d.ts +1 -0
- package/packages/client/dist/commands/refresh-memory.js +3 -3
- 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/errors/error-messages.js +1 -1
- 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/license/license-client.d.ts +3 -1
- package/packages/client/dist/license/license-client.js +1 -1
- package/packages/client/dist/memory/project-memory-path-scope.d.ts +4 -0
- package/packages/client/dist/memory/project-memory-path-scope.js +1 -0
- package/packages/client/dist/memory/project-memory-writer.d.ts +4 -1
- package/packages/client/dist/memory/project-memory-writer.js +16 -16
- package/packages/client/dist/private-execution/codex-executor.d.ts +24 -4
- package/packages/client/dist/private-execution/codex-executor.js +4 -2
- package/packages/client/dist/private-execution/codex-host-runtime.d.ts +10 -0
- package/packages/client/dist/private-execution/codex-host-runtime.js +1 -0
- package/packages/client/dist/private-execution/codex-lifecycle-guard.d.ts +4 -0
- package/packages/client/dist/private-execution/codex-lifecycle-guard.js +1 -0
- package/packages/client/dist/private-execution/codex-scoped-permissions.d.ts +8 -0
- package/packages/client/dist/private-execution/codex-scoped-permissions.js +1 -0
- package/packages/client/dist/private-execution/delivery.d.ts +17 -1
- package/packages/client/dist/private-execution/delivery.js +11 -3
- package/packages/client/dist/private-execution/diagnosis-root-review.d.ts +112 -0
- package/packages/client/dist/private-execution/diagnosis-root-review.js +2 -0
- package/packages/client/dist/private-execution/frozen-handoff.d.ts +2 -0
- package/packages/client/dist/private-execution/frozen-handoff.js +6 -0
- package/packages/client/dist/private-execution/implementation-validation.d.ts +15 -0
- package/packages/client/dist/private-execution/implementation-validation.js +2 -0
- package/packages/client/dist/private-execution/isolated-admission.d.ts +11 -7
- package/packages/client/dist/private-execution/isolated-admission.js +17 -10
- package/packages/client/dist/private-execution/isolated-session.d.ts +68 -0
- package/packages/client/dist/private-execution/isolated-session.js +5 -2
- package/packages/client/dist/private-execution/pact-test-source.d.ts +1 -1
- package/packages/client/dist/private-execution/pact-test-source.js +1 -1
- package/packages/client/dist/private-execution/planning-diagnosis-checkpoint.d.ts +2 -0
- package/packages/client/dist/private-execution/planning-diagnosis-checkpoint.js +5 -5
- package/packages/client/dist/private-execution/planning-generation-checkpoint.d.ts +13 -0
- package/packages/client/dist/private-execution/planning-generation-checkpoint.js +4 -3
- package/packages/client/dist/private-execution/planning-memory-checkpoint.d.ts +32 -0
- package/packages/client/dist/private-execution/planning-memory-checkpoint.js +3 -0
- package/packages/client/dist/private-execution/planning-research-checkpoint.js +4 -4
- package/packages/client/dist/private-execution/root-checkpoint.js +1 -1
- package/packages/client/dist/private-execution/root-memory-git-evidence.d.ts +30 -0
- package/packages/client/dist/private-execution/root-memory-git-evidence.js +3 -0
- package/packages/client/dist/private-execution/root-memory-recovery.d.ts +16 -0
- package/packages/client/dist/private-execution/root-memory-recovery.js +1 -0
- package/packages/client/dist/private-execution/root-memory-request.d.ts +28 -0
- package/packages/client/dist/private-execution/root-memory-request.js +1 -0
- package/packages/client/dist/private-execution/root-memory-scope.d.ts +28 -0
- package/packages/client/dist/private-execution/root-memory-scope.js +1 -0
- package/packages/client/dist/private-execution/root-memory-writer.d.ts +22 -0
- package/packages/client/dist/private-execution/root-memory-writer.js +1 -0
- package/packages/client/dist/private-execution/session-lease.d.ts +19 -0
- package/packages/client/dist/private-execution/session-lease.js +1 -0
- 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/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/yolo/change-evidence-collector.d.ts +2 -2
- package/packages/client/dist/yolo/change-evidence-collector.js +1 -1
- package/packages/client/dist/yolo/spec-envelope-collector.js +2 -2
- package/packages/shared/dist/planning/diagnosis-state.js +5 -2
- package/packages/shared/dist/project-memory-targets.js +243 -0
- package/packages/shared/dist/yolo/change-evidence.js +35 -0
- package/packages/shared/dist/yoloop/branch-unit.js +10 -1
- package/packages/shared/dist/yoloop/root-memory-effect.js +57 -0
- 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
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical project-memory targets for agent platforms.
|
|
3
|
+
*
|
|
4
|
+
* Always-loaded memory files should stay compact: universal laws, active context,
|
|
5
|
+
* and references to deeper docs. They must not become full architecture dumps.
|
|
6
|
+
*/
|
|
7
|
+
function projectFileRefs(...paths) {
|
|
8
|
+
return paths.map((path) => ({ scope: 'project', path }));
|
|
9
|
+
}
|
|
10
|
+
export const CANONICAL_PROJECT_MEMORY_SOURCE = 'NEOCORTEX.md';
|
|
11
|
+
const MANDATORY_SEMANTIC_SYMLINK = {
|
|
12
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
13
|
+
semanticFileRequired: true,
|
|
14
|
+
symlinkBacked: true,
|
|
15
|
+
wrapperAllowed: false,
|
|
16
|
+
includeFallbackAllowed: false,
|
|
17
|
+
requiresWrapperPreservation: false,
|
|
18
|
+
fallbackIsCompatibilityRemediation: true,
|
|
19
|
+
policy: 'mandatory-semantic-symlink',
|
|
20
|
+
notes: 'Semantic platform memory file must resolve to NEOCORTEX.md through a symlink; do not replace it with an unrelated wrapper or copied frontmatter.',
|
|
21
|
+
};
|
|
22
|
+
const SYMLINK_BACKED_WRAPPER = {
|
|
23
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
24
|
+
semanticFileRequired: true,
|
|
25
|
+
symlinkBacked: true,
|
|
26
|
+
wrapperAllowed: true,
|
|
27
|
+
includeFallbackAllowed: false,
|
|
28
|
+
requiresWrapperPreservation: true,
|
|
29
|
+
fallbackIsCompatibilityRemediation: true,
|
|
30
|
+
policy: 'symlink-backed-wrapper',
|
|
31
|
+
notes: 'Platform wrapper/frontmatter is allowed only when the semantic memory payload remains symlink-backed by NEOCORTEX.md.',
|
|
32
|
+
};
|
|
33
|
+
const SAFE_INCLUDE_FALLBACK = {
|
|
34
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
35
|
+
semanticFileRequired: true,
|
|
36
|
+
symlinkBacked: true,
|
|
37
|
+
wrapperAllowed: true,
|
|
38
|
+
includeFallbackAllowed: true,
|
|
39
|
+
requiresWrapperPreservation: true,
|
|
40
|
+
fallbackIsCompatibilityRemediation: true,
|
|
41
|
+
policy: 'safe-include-fallback',
|
|
42
|
+
notes: 'Use a safe include/import only for platforms that cannot consume symlinks directly; the include must resolve back to NEOCORTEX.md.',
|
|
43
|
+
};
|
|
44
|
+
function bidirectionalReference(requirement) {
|
|
45
|
+
return {
|
|
46
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
47
|
+
resolvesVia: requirement.policy,
|
|
48
|
+
feedbackTrigger: '*update-memory',
|
|
49
|
+
guidance: 'Treat NEOCORTEX.md as canonical project memory; consult it before platform-specific memory, and run *update-memory when durable project context changes should flow back to the canonical source.',
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export const PROJECT_MEMORY_TARGET_IDS = [
|
|
53
|
+
'claude-code',
|
|
54
|
+
'codex',
|
|
55
|
+
'grok',
|
|
56
|
+
'gemini-cli',
|
|
57
|
+
'antigravity',
|
|
58
|
+
'vscode',
|
|
59
|
+
'cursor',
|
|
60
|
+
'opencode',
|
|
61
|
+
'openclaw',
|
|
62
|
+
'kimi',
|
|
63
|
+
'github-copilot-cli',
|
|
64
|
+
];
|
|
65
|
+
export const PROJECT_MEMORY_TARGETS = {
|
|
66
|
+
canonical: {
|
|
67
|
+
targetId: 'canonical',
|
|
68
|
+
platformName: 'Neocortex Canonical Memory',
|
|
69
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
70
|
+
primaryFile: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
71
|
+
secondaryFiles: projectFileRefs('AGENTS.md', 'CLAUDE.md', 'GEMINI.md'),
|
|
72
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
73
|
+
templateKind: 'neocortex-md',
|
|
74
|
+
budget: { maxLines: 220, maxBytes: 18_000 },
|
|
75
|
+
linkRequirement: MANDATORY_SEMANTIC_SYMLINK,
|
|
76
|
+
bidirectionalReference: bidirectionalReference(MANDATORY_SEMANTIC_SYMLINK),
|
|
77
|
+
requiresWrapperPreservation: false,
|
|
78
|
+
notes: 'Canonical compact project memory source for platform symlinks and wrappers. Store only summaries, indexes, and links to architecture docs here.',
|
|
79
|
+
},
|
|
80
|
+
'claude-code': {
|
|
81
|
+
targetId: 'claude-code',
|
|
82
|
+
platformName: 'Claude Code',
|
|
83
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
84
|
+
primaryFile: 'CLAUDE.md',
|
|
85
|
+
secondaryFiles: projectFileRefs('.claude/agents/neocortex.md'),
|
|
86
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
87
|
+
templateKind: 'claude-md',
|
|
88
|
+
budget: { maxLines: 320, maxBytes: 28_000 },
|
|
89
|
+
linkRequirement: MANDATORY_SEMANTIC_SYMLINK,
|
|
90
|
+
bidirectionalReference: bidirectionalReference(MANDATORY_SEMANTIC_SYMLINK),
|
|
91
|
+
requiresWrapperPreservation: false,
|
|
92
|
+
notes: 'Claude Code project memory. Resolve to NEOCORTEX.md; keep root content concise and link deeper docs with @path references.',
|
|
93
|
+
},
|
|
94
|
+
codex: {
|
|
95
|
+
targetId: 'codex',
|
|
96
|
+
platformName: 'Codex CLI',
|
|
97
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
98
|
+
primaryFile: 'AGENTS.md',
|
|
99
|
+
secondaryFiles: projectFileRefs('.codex/agents/neocortex.toml'),
|
|
100
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
101
|
+
templateKind: 'agents-md',
|
|
102
|
+
budget: { maxLines: 220, maxBytes: 18_000 },
|
|
103
|
+
linkRequirement: MANDATORY_SEMANTIC_SYMLINK,
|
|
104
|
+
bidirectionalReference: bidirectionalReference(MANDATORY_SEMANTIC_SYMLINK),
|
|
105
|
+
requiresWrapperPreservation: true,
|
|
106
|
+
notes: 'Codex root instructions. Uppercase AGENTS.md is required on case-sensitive filesystems.',
|
|
107
|
+
},
|
|
108
|
+
grok: {
|
|
109
|
+
targetId: 'grok',
|
|
110
|
+
platformName: 'Grok Build',
|
|
111
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
112
|
+
primaryFile: 'AGENTS.md',
|
|
113
|
+
secondaryFiles: projectFileRefs('.grok/skills/neocortex/SKILL.md'),
|
|
114
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
115
|
+
templateKind: 'agents-md',
|
|
116
|
+
budget: { maxLines: 220, maxBytes: 18_000 },
|
|
117
|
+
linkRequirement: MANDATORY_SEMANTIC_SYMLINK,
|
|
118
|
+
bidirectionalReference: bidirectionalReference(MANDATORY_SEMANTIC_SYMLINK),
|
|
119
|
+
requiresWrapperPreservation: true,
|
|
120
|
+
notes: 'Grok Build reads AGENTS.md and the project-local Neocortex Skill; both resolve to canonical NEOCORTEX.md context.',
|
|
121
|
+
},
|
|
122
|
+
'gemini-cli': {
|
|
123
|
+
targetId: 'gemini-cli',
|
|
124
|
+
platformName: 'Gemini CLI',
|
|
125
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
126
|
+
primaryFile: 'GEMINI.md',
|
|
127
|
+
secondaryFiles: projectFileRefs('.gemini/agents/neocortex.md'),
|
|
128
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
129
|
+
templateKind: 'gemini-md',
|
|
130
|
+
budget: { maxLines: 260, maxBytes: 22_000 },
|
|
131
|
+
linkRequirement: MANDATORY_SEMANTIC_SYMLINK,
|
|
132
|
+
bidirectionalReference: bidirectionalReference(MANDATORY_SEMANTIC_SYMLINK),
|
|
133
|
+
requiresWrapperPreservation: false,
|
|
134
|
+
notes: 'Gemini CLI context file. Prefer shallow @file.md imports for detailed architecture docs.',
|
|
135
|
+
},
|
|
136
|
+
antigravity: {
|
|
137
|
+
targetId: 'antigravity',
|
|
138
|
+
platformName: 'Antigravity',
|
|
139
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
140
|
+
primaryFile: 'GEMINI.md',
|
|
141
|
+
secondaryFiles: projectFileRefs('.gemini/agents/neocortex.md'),
|
|
142
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
143
|
+
templateKind: 'gemini-md',
|
|
144
|
+
budget: { maxLines: 260, maxBytes: 22_000 },
|
|
145
|
+
linkRequirement: MANDATORY_SEMANTIC_SYMLINK,
|
|
146
|
+
bidirectionalReference: bidirectionalReference(MANDATORY_SEMANTIC_SYMLINK),
|
|
147
|
+
requiresWrapperPreservation: false,
|
|
148
|
+
notes: 'Antigravity currently shares GEMINI.md behavior with the Gemini target stubs.',
|
|
149
|
+
},
|
|
150
|
+
vscode: {
|
|
151
|
+
targetId: 'vscode',
|
|
152
|
+
platformName: 'VS Code / GitHub Copilot',
|
|
153
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
154
|
+
primaryFile: '.github/copilot-instructions.md',
|
|
155
|
+
secondaryFiles: projectFileRefs('.github/instructions/neocortex.instructions.md', '.github/agents/neocortex.agent.md'),
|
|
156
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
157
|
+
templateKind: 'copilot-instructions',
|
|
158
|
+
budget: { maxLines: 180, maxBytes: 14_000 },
|
|
159
|
+
linkRequirement: SYMLINK_BACKED_WRAPPER,
|
|
160
|
+
bidirectionalReference: bidirectionalReference(SYMLINK_BACKED_WRAPPER),
|
|
161
|
+
requiresWrapperPreservation: true,
|
|
162
|
+
notes: 'VS Code and GitHub Copilot always-on repository instructions.',
|
|
163
|
+
},
|
|
164
|
+
cursor: {
|
|
165
|
+
targetId: 'cursor',
|
|
166
|
+
platformName: 'Cursor',
|
|
167
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
168
|
+
primaryFile: '.cursor/rules/neocortex.mdc',
|
|
169
|
+
secondaryFiles: projectFileRefs('AGENTS.md'),
|
|
170
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
171
|
+
templateKind: 'cursor-rule',
|
|
172
|
+
budget: { maxLines: 180, maxBytes: 14_000 },
|
|
173
|
+
linkRequirement: SYMLINK_BACKED_WRAPPER,
|
|
174
|
+
bidirectionalReference: bidirectionalReference(SYMLINK_BACKED_WRAPPER),
|
|
175
|
+
requiresWrapperPreservation: true,
|
|
176
|
+
notes: 'Cursor rule memory. Use AGENTS.md as compatibility fallback when Cursor rules are absent.',
|
|
177
|
+
},
|
|
178
|
+
opencode: {
|
|
179
|
+
targetId: 'opencode',
|
|
180
|
+
platformName: 'OpenCode',
|
|
181
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
182
|
+
primaryFile: 'AGENTS.md',
|
|
183
|
+
secondaryFiles: projectFileRefs('.opencode/AGENTS.md', '.opencode/agents/neocortex-root.md', '.opencode/agents/neocortex.md', '.agent/skills/neocortex/SKILL.md'),
|
|
184
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
185
|
+
templateKind: 'agents-md',
|
|
186
|
+
budget: { maxLines: 220, maxBytes: 18_000 },
|
|
187
|
+
linkRequirement: MANDATORY_SEMANTIC_SYMLINK,
|
|
188
|
+
bidirectionalReference: bidirectionalReference(MANDATORY_SEMANTIC_SYMLINK),
|
|
189
|
+
requiresWrapperPreservation: true,
|
|
190
|
+
notes: 'OpenCode agent memory. It consumes AGENTS.md-compatible instructions and must resolve to canonical NEOCORTEX.md.',
|
|
191
|
+
},
|
|
192
|
+
openclaw: {
|
|
193
|
+
targetId: 'openclaw',
|
|
194
|
+
platformName: 'OpenClaw',
|
|
195
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
196
|
+
primaryFile: '.openclaw/skills/neocortex/SKILL.md',
|
|
197
|
+
secondaryFiles: [{ scope: 'user', path: '.openclaw/skills/neocortex/SKILL.md' }],
|
|
198
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
199
|
+
templateKind: 'agents-md',
|
|
200
|
+
budget: { maxLines: 220, maxBytes: 18_000 },
|
|
201
|
+
linkRequirement: SAFE_INCLUDE_FALLBACK,
|
|
202
|
+
bidirectionalReference: bidirectionalReference(SAFE_INCLUDE_FALLBACK),
|
|
203
|
+
requiresWrapperPreservation: true,
|
|
204
|
+
notes: 'OpenClaw Skill thin-client memory entrypoint. Use the project Skill path when --create-project is requested; do not mutate ~/.openclaw/openclaw.json, and keep memory content public-safe.',
|
|
205
|
+
},
|
|
206
|
+
kimi: {
|
|
207
|
+
targetId: 'kimi',
|
|
208
|
+
platformName: 'Kimi',
|
|
209
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
210
|
+
primaryFile: 'KIMI.md',
|
|
211
|
+
secondaryFiles: projectFileRefs('AGENTS.md', '.kimi/skills/neocortex/SKILL.md'),
|
|
212
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
213
|
+
templateKind: 'agents-md',
|
|
214
|
+
budget: { maxLines: 220, maxBytes: 18_000 },
|
|
215
|
+
linkRequirement: SAFE_INCLUDE_FALLBACK,
|
|
216
|
+
bidirectionalReference: bidirectionalReference(SAFE_INCLUDE_FALLBACK),
|
|
217
|
+
requiresWrapperPreservation: true,
|
|
218
|
+
notes: 'Kimi memory entrypoint. Prefer a symlink to NEOCORTEX.md; use a compact include only if the host cannot follow symlinks.',
|
|
219
|
+
},
|
|
220
|
+
'github-copilot-cli': {
|
|
221
|
+
targetId: 'github-copilot-cli',
|
|
222
|
+
platformName: 'GitHub Copilot CLI / gh alias',
|
|
223
|
+
canonicalSource: CANONICAL_PROJECT_MEMORY_SOURCE,
|
|
224
|
+
primaryFile: '.github/copilot-instructions.md',
|
|
225
|
+
secondaryFiles: projectFileRefs('AGENTS.md'),
|
|
226
|
+
ownedBlockName: 'NEOCORTEX-MEMORY',
|
|
227
|
+
templateKind: 'copilot-instructions',
|
|
228
|
+
budget: { maxLines: 180, maxBytes: 14_000 },
|
|
229
|
+
linkRequirement: SAFE_INCLUDE_FALLBACK,
|
|
230
|
+
bidirectionalReference: bidirectionalReference(SAFE_INCLUDE_FALLBACK),
|
|
231
|
+
requiresWrapperPreservation: true,
|
|
232
|
+
notes: 'GitHub Copilot CLI or gh alias instructions. Resolve compact memory back to NEOCORTEX.md without copying private prompt bodies.',
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
export function getProjectMemoryTarget(targetId) {
|
|
236
|
+
return PROJECT_MEMORY_TARGETS[targetId];
|
|
237
|
+
}
|
|
238
|
+
export function isProjectMemoryTargetId(value) {
|
|
239
|
+
return value === 'canonical' || PROJECT_MEMORY_TARGET_IDS.includes(value);
|
|
240
|
+
}
|
|
241
|
+
export function listProjectMemoryTargets() {
|
|
242
|
+
return PROJECT_MEMORY_TARGET_IDS.map((targetId) => PROJECT_MEMORY_TARGETS[targetId]);
|
|
243
|
+
}
|
|
@@ -42,3 +42,38 @@ export function assertYoloChangeEvidenceV1(value, expectedHeadSha) {
|
|
|
42
42
|
|| record.pathsSha256 !== digest(record.changedPaths))
|
|
43
43
|
fail();
|
|
44
44
|
}
|
|
45
|
+
/** Select a lossless transport; never truncate, filter or relabel v1 evidence. */
|
|
46
|
+
export function createYoloChangeEvidence(input) {
|
|
47
|
+
if (!Array.isArray(input.changedPaths))
|
|
48
|
+
fail();
|
|
49
|
+
const paths = [...new Set(input.changedPaths)].sort();
|
|
50
|
+
if (paths.length <= 256)
|
|
51
|
+
return createYoloChangeEvidenceV1(input);
|
|
52
|
+
const evidence = {
|
|
53
|
+
schemaVersion: 2, source: 'git-diff-base-and-worktree',
|
|
54
|
+
baseSha: input.baseSha, headSha: input.headSha, changedPaths: paths,
|
|
55
|
+
pathsSha256: digest(paths), encodedPathsBytes: Buffer.byteLength(JSON.stringify(paths), 'utf8'),
|
|
56
|
+
};
|
|
57
|
+
assertYoloChangeEvidence(evidence, input.headSha);
|
|
58
|
+
return evidence;
|
|
59
|
+
}
|
|
60
|
+
export function assertYoloChangeEvidence(value, expectedHeadSha) {
|
|
61
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
62
|
+
fail();
|
|
63
|
+
const record = value;
|
|
64
|
+
if (record.schemaVersion === 1)
|
|
65
|
+
return assertYoloChangeEvidenceV1(value, expectedHeadSha);
|
|
66
|
+
const expected = ['schemaVersion', 'source', 'baseSha', 'headSha', 'changedPaths', 'pathsSha256', 'encodedPathsBytes'].sort();
|
|
67
|
+
const keys = Object.keys(record).sort();
|
|
68
|
+
if (keys.length !== expected.length || keys.some((key, index) => key !== expected[index])
|
|
69
|
+
|| record.schemaVersion !== 2 || record.source !== 'git-diff-base-and-worktree'
|
|
70
|
+
|| typeof record.baseSha !== 'string' || !SHA.test(record.baseSha)
|
|
71
|
+
|| record.headSha !== expectedHeadSha || typeof record.headSha !== 'string' || !SHA.test(record.headSha)
|
|
72
|
+
|| !Array.isArray(record.changedPaths) || record.changedPaths.length <= 256 || record.changedPaths.length > 512
|
|
73
|
+
|| record.changedPaths.some(path => !validPath(path))
|
|
74
|
+
|| JSON.stringify([...new Set(record.changedPaths)].sort()) !== JSON.stringify(record.changedPaths)
|
|
75
|
+
|| record.pathsSha256 !== digest(record.changedPaths)
|
|
76
|
+
|| record.encodedPathsBytes !== Buffer.byteLength(JSON.stringify(record.changedPaths), 'utf8')
|
|
77
|
+
|| !Number.isSafeInteger(record.encodedPathsBytes) || Number(record.encodedPathsBytes) > 16_384)
|
|
78
|
+
fail();
|
|
79
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { canonicalRootMemoryEffectJson, isRootProjectMemoryEffect } from './root-memory-effect.js';
|
|
1
2
|
/**
|
|
2
3
|
* Public, deterministic branch-unit contract for epic-owned YOLO/YOLOOP runs.
|
|
3
4
|
* Pure data/functions only: callers own Git and filesystem effects.
|
|
@@ -72,7 +73,10 @@ export function reconcileStoryCheckpoint(current, requested) {
|
|
|
72
73
|
current.claimRevision === requested.claimRevision &&
|
|
73
74
|
sameEvidenceReceipt(current.qaReceipt, requested.qaReceipt) &&
|
|
74
75
|
sameEvidenceReceipt(current.reviewReceipt, requested.reviewReceipt) &&
|
|
75
|
-
JSON.stringify(current.reviewReconciliation ?? null) === JSON.stringify(requested.reviewReconciliation ?? null)
|
|
76
|
+
JSON.stringify(current.reviewReconciliation ?? null) === JSON.stringify(requested.reviewReconciliation ?? null) &&
|
|
77
|
+
(current.rootMemoryEffect === undefined && requested.rootMemoryEffect === undefined
|
|
78
|
+
|| current.rootMemoryEffect !== undefined && requested.rootMemoryEffect !== undefined
|
|
79
|
+
&& canonicalRootMemoryEffectJson(current.rootMemoryEffect) === canonicalRootMemoryEffectJson(requested.rootMemoryEffect)))
|
|
76
80
|
return { kind: 'reused', checkpoint: current };
|
|
77
81
|
return { kind: 'blocked', reasonCode: 'checkpoint-idempotency-conflict' };
|
|
78
82
|
}
|
|
@@ -147,6 +151,11 @@ export function validateStoryCheckpoint(checkpoint, resolution) {
|
|
|
147
151
|
errors.push('checkpoint-claim-revision-required');
|
|
148
152
|
else if (!isHash(checkpoint.claimRevision))
|
|
149
153
|
errors.push('checkpoint-claim-revision-invalid');
|
|
154
|
+
if (checkpoint.rootMemoryEffect !== undefined && (!isRootProjectMemoryEffect(checkpoint.rootMemoryEffect)
|
|
155
|
+
|| checkpoint.rootMemoryEffect.storyId !== checkpoint.storyId || checkpoint.rootMemoryEffect.executionBranch !== checkpoint.branch
|
|
156
|
+
|| checkpoint.rootMemoryEffect.sourceHeadSha !== checkpoint.baseSha || checkpoint.rootMemoryEffect.childClaimRevision !== checkpoint.claimRevision)) {
|
|
157
|
+
errors.push('checkpoint-root-memory-effect-invalid');
|
|
158
|
+
}
|
|
150
159
|
if (!Array.isArray(checkpoint.receiptRefs) || checkpoint.receiptRefs.length === 0 || checkpoint.receiptRefs.some((ref) => !nonEmpty(ref))) {
|
|
151
160
|
errors.push('checkpoint-receipts-missing');
|
|
152
161
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { listProjectMemoryTargets } from '../project-memory-targets.js';
|
|
2
|
+
/** Stable identity across schema-preserving JSON serializers. Array order stays explicit. */
|
|
3
|
+
export function canonicalRootMemoryEffectJson(effect) {
|
|
4
|
+
const ordered = (value) => Array.isArray(value) ? value.map(ordered)
|
|
5
|
+
: value !== null && typeof value === 'object'
|
|
6
|
+
? Object.fromEntries(Object.keys(value).sort().map(key => [key, ordered(value[key])]))
|
|
7
|
+
: value;
|
|
8
|
+
return JSON.stringify(ordered(effect));
|
|
9
|
+
}
|
|
10
|
+
export function rootProjectMemoryPaths() {
|
|
11
|
+
return [...new Set(['NEOCORTEX.md', ...listProjectMemoryTargets().flatMap(target => [target.primaryFile,
|
|
12
|
+
...target.secondaryFiles.filter(file => file.scope === 'project').map(file => file.path)])])].sort();
|
|
13
|
+
}
|
|
14
|
+
export function isRootProjectMemoryEffect(value) {
|
|
15
|
+
const record = (v) => v !== null && typeof v === 'object' && !Array.isArray(v) ? v : undefined;
|
|
16
|
+
const r = record(value);
|
|
17
|
+
const keys = ['schemaVersion', 'producer', 'storyId', 'epicId', 'executionBranch', 'sourceHeadSha',
|
|
18
|
+
'sourceSnapshotSha', 'memorySnapshotSha', 'graphRevision', 'childClaimRevision', 'setupSessionId',
|
|
19
|
+
'rootQaReceiptId', 'proposalSha256', 'canonicalSha256', 'projectionSha256', 'projectionFileCount', 'files', 'recordedAt', 'publicSafe'];
|
|
20
|
+
if (!r || Object.keys(r).sort().join('|') !== keys.sort().join('|')
|
|
21
|
+
|| r.schemaVersion !== 'RootProjectMemoryEffect/1' || r.producer !== 'root-project-memory' || r.publicSafe !== true
|
|
22
|
+
|| typeof r.storyId !== 'string' || !/^P[1-9][0-9]*\.[0-9]+$/.test(r.storyId) || r.epicId !== r.storyId.split('.')[0]
|
|
23
|
+
|| r.executionBranch !== `epic/${r.epicId}`
|
|
24
|
+
|| ['sourceHeadSha', 'sourceSnapshotSha', 'memorySnapshotSha'].some(key => typeof r[key] !== 'string' || !/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(r[key]))
|
|
25
|
+
|| ['graphRevision', 'childClaimRevision', 'rootQaReceiptId', 'proposalSha256', 'canonicalSha256', 'projectionSha256'].some(key => typeof r[key] !== 'string' || !/^[a-f0-9]{64}$/.test(r[key]))
|
|
26
|
+
|| typeof r.setupSessionId !== 'string' || !/^setup-[a-f0-9]{64}$/.test(r.setupSessionId)
|
|
27
|
+
|| typeof r.recordedAt !== 'string' || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(r.recordedAt)
|
|
28
|
+
|| !Number.isFinite(Date.parse(r.recordedAt)) || new Date(r.recordedAt).toISOString() !== r.recordedAt
|
|
29
|
+
|| !Number.isSafeInteger(r.projectionFileCount) || r.projectionFileCount < 1 || r.projectionFileCount > 128
|
|
30
|
+
|| !Array.isArray(r.files) || r.files.length > 128)
|
|
31
|
+
return false;
|
|
32
|
+
const allowed = new Set(rootProjectMemoryPaths()), seen = new Set();
|
|
33
|
+
const state = (v, path, after) => {
|
|
34
|
+
const s = record(v);
|
|
35
|
+
if (!s || !['absent', 'regular', 'symlink'].includes(String(s.kind))
|
|
36
|
+
|| Object.keys(s).sort().join('|') !== ['kind', 'sha256', ...(s.kind === 'symlink' ? ['linkTarget'] : [])].sort().join('|'))
|
|
37
|
+
return false;
|
|
38
|
+
if (s.kind === 'absent')
|
|
39
|
+
return !after && s.sha256 === null;
|
|
40
|
+
if (typeof s.sha256 !== 'string' || !/^[a-f0-9]{64}$/.test(s.sha256))
|
|
41
|
+
return false;
|
|
42
|
+
if (path === 'NEOCORTEX.md' && s.kind !== 'regular')
|
|
43
|
+
return false;
|
|
44
|
+
const canonicalTarget = '../'.repeat(path.split('/').length - 1) + 'NEOCORTEX.md';
|
|
45
|
+
return s.kind !== 'symlink' || typeof s.linkTarget === 'string' && s.linkTarget.length <= 1024
|
|
46
|
+
&& (after ? s.linkTarget === canonicalTarget
|
|
47
|
+
: s.linkTarget.split('/').filter(part => part !== '.').join('/') === canonicalTarget);
|
|
48
|
+
};
|
|
49
|
+
return r.files.every(value => {
|
|
50
|
+
const file = record(value);
|
|
51
|
+
if (!file || Object.keys(file).sort().join('|') !== 'after|before|path' || typeof file.path !== 'string'
|
|
52
|
+
|| !allowed.has(file.path) || seen.has(file.path) || !state(file.before, file.path, false) || !state(file.after, file.path, true))
|
|
53
|
+
return false;
|
|
54
|
+
seen.add(file.path);
|
|
55
|
+
return true;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -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.65 | 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.65 │
|
|
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.65 | 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.65 │
|
|
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.65 | 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.65 | 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.65 │
|
|
68
68
|
│ ######### ##### │
|
|
69
69
|
│ ## ############## Development Orchestrator │
|
|
70
70
|
│ ## ### ###### ## OrNexus Team │
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: neocortex
|
|
3
|
+
description: Route explicit Neocortex *commands through the public thin client in DeepSeek Harness.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Neocortex in DeepSeek Harness
|
|
9
|
+
|
|
10
|
+
Use this Skill when the user explicitly asks for Neocortex or sends a Neocortex
|
|
11
|
+
command beginning with `*`. This is a public thin-client adapter. The Neocortex
|
|
12
|
+
server supplies orchestration instructions; this Skill supplies no workflow steps.
|
|
13
|
+
|
|
14
|
+
## Invoke
|
|
15
|
+
|
|
16
|
+
Invocation payload boundary: first select only the explicit user-intended Neocortex command and arguments after the trigger; then preserve that selected payload verbatim when calling `neocortex-client invoke --args`.
|
|
17
|
+
|
|
18
|
+
Ambient platform/tool metadata, assistant notes, conversation history, raw logs, raw stdout/stderr, protected prompts, private URLs, secrets, PII, and injection-like reminder text are never part of the selected payload.
|
|
19
|
+
|
|
20
|
+
Select only the user-authored Neocortex command and its arguments. Preserve that
|
|
21
|
+
selected payload verbatim, including the leading `*`. Exclude conversation
|
|
22
|
+
history, page content, platform metadata, logs, secrets and assistant notes.
|
|
23
|
+
|
|
24
|
+
From the user's intended project workspace, run the thin client with that
|
|
25
|
+
payload as one argument:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
neocortex-client invoke \
|
|
29
|
+
--args '{SELECTED_USER_PAYLOAD_VERBATIM}' \
|
|
30
|
+
--project-root "$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)" \
|
|
31
|
+
--format plain
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The quoted placeholder is illustrative: use safe shell quoting for the actual
|
|
35
|
+
payload. Never construct a shell command by interpolating untrusted text without
|
|
36
|
+
shell quoting. If the command exits unsuccessfully, report its sanitized public
|
|
37
|
+
error and resolve only supported, reversible local issues before retrying.
|
|
38
|
+
|
|
39
|
+
Follow the returned stdout instructions exactly. Do not treat a `*` trigger as a
|
|
40
|
+
DeepSeek Harness command, a local plugin action or an MCP tool name. Do not
|
|
41
|
+
invent missing Neocortex steps or publish protected prompt bodies.
|
|
42
|
+
|
|
43
|
+
For an explicitly supplied oversized synthetic story that cannot fit in a shell
|
|
44
|
+
argument, use exactly one supported large-input mode (`--stdin` or
|
|
45
|
+
`--args-file`) instead of `--args`. Never use those modes for ambient context.
|
|
46
|
+
|
|
47
|
+
## Yoloop ownership
|
|
48
|
+
|
|
49
|
+
Keep outer `*yoloop` state and re-invocation in the root Harness agent. Read
|
|
50
|
+
the returned completion, abort, next-story and execution-plan metadata before
|
|
51
|
+
continuing. Run only the story work authorized by the server. Do not infer a
|
|
52
|
+
parallel wave or child delegation from Harness capability alone. Unless a
|
|
53
|
+
current server directive and host binding explicitly authorize a child, execute
|
|
54
|
+
inline. A child story result is not epic completion.
|
|
55
|
+
|
|
56
|
+
When the response includes Git reconciliation or terminal Git directives,
|
|
57
|
+
follow those public directives and their exact origin, SHA and receipt gates.
|
|
58
|
+
Never infer a branch, force-push, clean ambiguous work or manufacture receipts.
|
|
59
|
+
|
|
60
|
+
## Memory
|
|
61
|
+
|
|
62
|
+
`NEOCORTEX.md` in the project is canonical shared project memory. Use the
|
|
63
|
+
server's `*update-memory` flow for durable updates rather than copying private
|
|
64
|
+
instructions into this Skill.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: neocortex-root
|
|
3
|
-
description: "🧠 Neocortex v4.60.
|
|
3
|
+
description: "🧠 Neocortex v4.60.65 | 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.65 │
|
|
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.65 │
|
|
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.65 | 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.65 │
|
|
72
72
|
│ ######### ##### │
|
|
73
73
|
│ ## ############## Development Orchestrator │
|
|
74
74
|
│ ## ### ###### ## OrNexus Team │
|