greprag 5.65.1 → 5.65.3
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/codex-chip-hooks.js +2 -2
- package/dist/codex-chip-hooks.js.map +1 -1
- package/dist/commands/agent-doctrine-file.d.ts +27 -9
- package/dist/commands/agent-doctrine-file.js +74 -47
- package/dist/commands/agent-doctrine-file.js.map +1 -1
- package/dist/commands/agents.d.ts +2 -2
- package/dist/commands/agents.js +167 -48
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/codex-chip/command.js +4 -2
- package/dist/commands/codex-chip/command.js.map +1 -1
- package/dist/commands/codex-chip/goals.d.ts +3 -3
- package/dist/commands/codex-chip/goals.js +3 -3
- package/dist/commands/codex-chip/goals.js.map +1 -1
- package/dist/commands/codex-chip/help.d.ts +1 -1
- package/dist/commands/codex-chip/help.js +4 -3
- package/dist/commands/codex-chip/help.js.map +1 -1
- package/dist/commands/codex-chip/model.d.ts +6 -2
- package/dist/commands/codex-chip/model.js +12 -2
- package/dist/commands/codex-chip/model.js.map +1 -1
- package/dist/commands/codex-chip/native.js +2 -2
- package/dist/commands/codex-chip/native.js.map +1 -1
- package/dist/commands/codex-chip/prompt.js +8 -5
- package/dist/commands/codex-chip/prompt.js.map +1 -1
- package/dist/commands/codex-chip/selection.d.ts +5 -4
- package/dist/commands/codex-chip/selection.js +28 -9
- package/dist/commands/codex-chip/selection.js.map +1 -1
- package/dist/commands/codex-model-policy.d.ts +1 -1
- package/dist/commands/codex-model-policy.js +17 -6
- package/dist/commands/codex-model-policy.js.map +1 -1
- package/dist/commands/codex.js +1 -1
- package/dist/commands/init.js +19 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/load-primer-reminder.js +1 -1
- package/dist/commands/load-primer-reminder.js.map +1 -1
- package/dist/commands/mechanic-spawn.js +2 -3
- package/dist/commands/mechanic-spawn.js.map +1 -1
- package/dist/commands/opencode-chip-mission.d.ts +4 -4
- package/dist/commands/opencode-chip-mission.js.map +1 -1
- package/dist/commands/opencode-chip-store.d.ts +2 -2
- package/dist/commands/opencode-chip.js +3 -2
- package/dist/commands/opencode-chip.js.map +1 -1
- package/dist/commands/parity.js +1 -1
- package/dist/commands/skill-mirror-reminder.d.ts +3 -4
- package/dist/commands/skill-mirror-reminder.js +13 -8
- package/dist/commands/skill-mirror-reminder.js.map +1 -1
- package/dist/commands/skill.js +28 -0
- package/dist/commands/skill.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/native-skill-mirror.d.ts +30 -0
- package/dist/native-skill-mirror.js +230 -0
- package/dist/native-skill-mirror.js.map +1 -0
- package/dist/opencode-plugin.bundle.js +9 -4
- package/dist/skill-mirror-client.d.ts +2 -5
- package/dist/skill-mirror-client.js +18 -6
- package/dist/skill-mirror-client.js.map +1 -1
- package/dist/skill-mirror-files.d.ts +6 -0
- package/dist/skill-mirror-files.js +51 -0
- package/dist/skill-mirror-files.js.map +1 -0
- package/package.json +1 -1
- package/skill/greprag/docs/codex-chip.md +4 -6
- package/skill/templates/chip-leader.md +37 -15
- package/skill/templates/codex-chip-spawn.md +40 -28
|
@@ -7,9 +7,13 @@ function chipPrompt(manifest, _cliCommand = 'greprag') {
|
|
|
7
7
|
const executionPath = manifest.codex.runtime === 'native' && !manifest.codex.nativeCwd
|
|
8
8
|
? 'the Codex-provided isolated worktree for this task'
|
|
9
9
|
: (0, model_1.chipExecutionPath)(manifest);
|
|
10
|
-
const mechanicSetup = manifest
|
|
10
|
+
const mechanicSetup = (0, model_1.chipMissionKind)(manifest) === 'fix'
|
|
11
11
|
? '- Run `greprag load mechanic` before diagnosis or edits.\n'
|
|
12
12
|
: '';
|
|
13
|
+
// adr: adr/codex-lead-native-goal.md
|
|
14
|
+
const leaderSetup = manifest.codex.role === 'leader'
|
|
15
|
+
? '- Create a native top-level mission goal with `create_goal`, then run `get_goal` and verify the active goal names this mission before any child fanout.\n'
|
|
16
|
+
: '';
|
|
13
17
|
const native = manifest.codex.runtime === 'native';
|
|
14
18
|
const reportInstruction = native
|
|
15
19
|
? '- Commit the completed durable result, including report-only artifacts, then reply to the LEAD in the native Codex task thread with status, commit hash, checks, caveats, and archive clearance.'
|
|
@@ -17,9 +21,8 @@ function chipPrompt(manifest, _cliCommand = 'greprag') {
|
|
|
17
21
|
return `${(0, model_1.chipTitle)(manifest)}
|
|
18
22
|
|
|
19
23
|
Setup — do this FIRST:
|
|
20
|
-
${mechanicSetup}- Stay in ${executionPath}; read AGENTS instructions and the session-start recap, then inspect the current repository state.
|
|
21
|
-
-
|
|
22
|
-
- Do not create a second worktree. This isolated worktree is fully writable; there are no leases, read-only mode, or goal gates.
|
|
24
|
+
${mechanicSetup}${leaderSetup}- Stay in ${executionPath}; read AGENTS instructions and the session-start recap, then inspect the current repository state.
|
|
25
|
+
- Do not create a second worktree. This isolated worktree is fully writable; there are no leases, read-only mode, or GrepRAG goal gates.
|
|
23
26
|
- The durable manifest is ${manifest.id}; it is task bookkeeping, not a scope or permission gate.
|
|
24
27
|
|
|
25
28
|
Task:
|
|
@@ -30,6 +33,6 @@ ${reportInstruction}
|
|
|
30
33
|
Report when done:
|
|
31
34
|
- In your final response to the parent, include the commit hash, concise result, checks, and caveats.
|
|
32
35
|
- Include \`Clearance: safe to archive\` when no follow-up is needed, or \`Clearance: keep open because ...\` when the lead should not archive yet.
|
|
33
|
-
- Landing: do not merge, push, deploy, or delete the worktree — the parent reviews the result and cleans up the task. One exception (adr/codex-landing-doctrine.md): if
|
|
36
|
+
- Landing: do not merge, push, deploy, or delete the worktree — the parent reviews the result and cleans up the task. One exception (adr/codex-landing-doctrine.md): if this task begins \`FIX:\` (a fix-spawn mission), its Phase 3 landing contract governs — merge your branch to main yourself after peer conferral; cleanup stays native via archive clearance; push/release stays operator-gated.`;
|
|
34
37
|
}
|
|
35
38
|
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/prompt.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/prompt.ts"],"names":[],"mappings":";;AAGA,gCA+BC;AAlCD,mCAAsF;AAEtF,mEAAmE;AACnE,SAAgB,UAAU,CAAC,QAAsB,EAAE,WAAW,GAAG,SAAS;IACxE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS;QACpF,CAAC,CAAC,oDAAoD;QACtD,CAAC,CAAC,IAAA,yBAAiB,EAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,KAAK,KAAK;QACvD,CAAC,CAAC,4DAA4D;QAC9D,CAAC,CAAC,EAAE,CAAC;IACP,qCAAqC;IACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;QAClD,CAAC,CAAC,2JAA2J;QAC7J,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC;IACnD,MAAM,iBAAiB,GAAG,MAAM;QAC9B,CAAC,CAAC,kMAAkM;QACpM,CAAC,CAAC,yNAAyN,CAAC;IAC9N,OAAO,GAAG,IAAA,iBAAS,EAAC,QAAQ,CAAC;;;EAG7B,aAAa,GAAG,WAAW,aAAa,aAAa;;4BAE3B,QAAQ,CAAC,EAAE;;;EAGrC,QAAQ,CAAC,IAAI;;EAEb,iBAAiB;;;;;wYAKqX,CAAC;AACzY,CAAC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { ChipManifest, ChipRole } from './model';
|
|
1
|
+
import { ChipManifest, ChipRole, MissionKind } from './model';
|
|
2
2
|
import { CodexModelEffort } from '../codex-model-policy';
|
|
3
3
|
export declare const COMPLEXITY_SIGNALS: readonly ["orchestration", "multi-chip-integration", "architecture-api-schema", "cross-cutting-ownership", "ambiguous-synthesis", "high-risk-correctness", "novel-multi-hypothesis-diagnosis"];
|
|
4
|
-
export declare function resolveChipRole(args: string[]): ChipRole;
|
|
4
|
+
export declare function resolveChipRole(args: string[], task?: string): ChipRole;
|
|
5
|
+
export declare function resolveMissionKind(_args: string[], task?: string): MissionKind;
|
|
5
6
|
export declare function resolveNativeTimeout(args: string[], fallback?: number): number;
|
|
6
|
-
export declare function resolveChipModel(args: string[], role?: ChipRole): {
|
|
7
|
+
export declare function resolveChipModel(args: string[], role?: ChipRole | 'fix'): {
|
|
7
8
|
profile: 'standard' | 'complex' | 'custom';
|
|
8
9
|
model: string;
|
|
9
10
|
effort: CodexModelEffort;
|
|
10
11
|
};
|
|
11
|
-
export declare function resolveChipSelection(args: string[], selectedBy: string, role?: ChipRole): NonNullable<ChipManifest['codex']['selection']>;
|
|
12
|
+
export declare function resolveChipSelection(args: string[], selectedBy: string, role?: ChipRole, missionKind?: MissionKind): NonNullable<ChipManifest['codex']['selection']>;
|
|
12
13
|
export declare function resolveDesktopThinking(effort: string | undefined): CodexModelEffort;
|
|
13
14
|
export declare function assertNativeModelSelection(selection: NonNullable<ChipManifest['codex']['selection']>, verifiedOverride: boolean): void;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.COMPLEXITY_SIGNALS = void 0;
|
|
4
4
|
exports.resolveChipRole = resolveChipRole;
|
|
5
|
+
exports.resolveMissionKind = resolveMissionKind;
|
|
5
6
|
exports.resolveNativeTimeout = resolveNativeTimeout;
|
|
6
7
|
exports.resolveChipModel = resolveChipModel;
|
|
7
8
|
exports.resolveChipSelection = resolveChipSelection;
|
|
@@ -21,17 +22,34 @@ function flag(args, name) {
|
|
|
21
22
|
const index = args.indexOf(name);
|
|
22
23
|
return index >= 0 ? args[index + 1] : undefined;
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
+
function taskIsFixMission(task) {
|
|
26
|
+
return /^FIX:\s+/i.test((task || '').trimStart());
|
|
27
|
+
}
|
|
28
|
+
function resolveChipRole(args, task) {
|
|
25
29
|
const requested = flag(args, '--role');
|
|
26
30
|
const legacyLeader = args.includes('--leader');
|
|
27
|
-
if (requested
|
|
28
|
-
throw new Error('--role
|
|
31
|
+
if (requested === 'mechanic') {
|
|
32
|
+
throw new Error('--role mechanic is retired. Use a FIX mission from `greprag fix spawn`; it selects chip.fix and loads mechanic doctrine.');
|
|
33
|
+
}
|
|
34
|
+
if (requested === 'fix') {
|
|
35
|
+
throw new Error('FIX is a mission kind, not a role. Use a first-line `FIX: <one friction unit>` mission from `greprag fix spawn`.');
|
|
36
|
+
}
|
|
37
|
+
if (requested && !['planner', 'leader', 'worker', 'advisor'].includes(requested)) {
|
|
38
|
+
throw new Error('--role must be planner, leader, worker, or advisor.');
|
|
29
39
|
}
|
|
30
40
|
if (legacyLeader && requested && requested !== 'leader') {
|
|
31
41
|
throw new Error('--leader and --role must select the same role.');
|
|
32
42
|
}
|
|
43
|
+
if (taskIsFixMission(task)) {
|
|
44
|
+
if (requested)
|
|
45
|
+
throw new Error('A FIX mission must not set --role; mission kind selects chip.fix.');
|
|
46
|
+
return 'worker';
|
|
47
|
+
}
|
|
33
48
|
return requested || (legacyLeader ? 'leader' : 'worker');
|
|
34
49
|
}
|
|
50
|
+
function resolveMissionKind(_args, task) {
|
|
51
|
+
return taskIsFixMission(task) ? 'fix' : 'standard';
|
|
52
|
+
}
|
|
35
53
|
function resolveNativeTimeout(args, fallback = 180) {
|
|
36
54
|
const raw = flag(args, '--native-timeout-minutes');
|
|
37
55
|
if (!raw)
|
|
@@ -66,15 +84,16 @@ function resolveChipModel(args, role = resolveChipRole(args)) {
|
|
|
66
84
|
...selectionForRole(role, explicitModel, explicitEffort),
|
|
67
85
|
};
|
|
68
86
|
}
|
|
69
|
-
function resolveChipSelection(args, selectedBy, role = resolveChipRole(args)) {
|
|
70
|
-
const
|
|
87
|
+
function resolveChipSelection(args, selectedBy, role = resolveChipRole(args), missionKind = 'standard') {
|
|
88
|
+
const modelSlot = missionKind === 'fix' ? 'fix' : role;
|
|
89
|
+
const model = resolveChipModel(args, modelSlot);
|
|
71
90
|
const suppliedReason = flag(args, '--model-reason')?.trim();
|
|
72
91
|
if (suppliedReason && suppliedReason.length > 240)
|
|
73
92
|
throw new Error('--model-reason must be concise (240 characters or fewer).');
|
|
74
|
-
const defaultReason =
|
|
75
|
-
? '
|
|
76
|
-
: role === '
|
|
77
|
-
? '
|
|
93
|
+
const defaultReason = missionKind === 'fix'
|
|
94
|
+
? 'FIX mission for one friction unit; load mechanic doctrine before repair.'
|
|
95
|
+
: role === 'leader'
|
|
96
|
+
? 'LEAD orientation for multi-chip orchestration.'
|
|
78
97
|
: role === 'planner'
|
|
79
98
|
? 'PLANNER orientation for mission framing.'
|
|
80
99
|
: role === 'advisor'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/selection.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export type CodexModelSlot = {
|
|
|
4
4
|
model: string;
|
|
5
5
|
effort: CodexModelEffort;
|
|
6
6
|
};
|
|
7
|
-
export type ChipModelRole = 'worker' | 'leader' | 'planner' | 'advisor' | '
|
|
7
|
+
export type ChipModelRole = 'worker' | 'leader' | 'planner' | 'advisor' | 'fix';
|
|
8
8
|
export type SubagentModelRole = 'fast_scan' | 'routine_worker' | 'deep_worker';
|
|
9
9
|
export interface CodexModelPolicy {
|
|
10
10
|
version: 1;
|
|
@@ -47,9 +47,9 @@ exports.DEFAULT_CODEX_MODEL_POLICY = {
|
|
|
47
47
|
chip: {
|
|
48
48
|
worker: { model: 'gpt-5.5', effort: 'medium' },
|
|
49
49
|
leader: { model: 'gpt-5.5', effort: 'high' },
|
|
50
|
-
planner: { model: 'gpt-5.
|
|
50
|
+
planner: { model: 'gpt-5.6-sol', effort: 'xhigh' },
|
|
51
51
|
advisor: { model: 'gpt-5.6-sol', effort: 'high' },
|
|
52
|
-
|
|
52
|
+
fix: { model: 'gpt-5.5', effort: 'high' },
|
|
53
53
|
},
|
|
54
54
|
subagent: {
|
|
55
55
|
fast_scan: { model: 'gpt-5.5', effort: 'medium' },
|
|
@@ -84,10 +84,11 @@ function applySlot(target, patch, source) {
|
|
|
84
84
|
function applyPolicy(base, patch, source) {
|
|
85
85
|
if (patch.version !== undefined && patch.version !== 1)
|
|
86
86
|
throw new Error(`${source} uses unsupported codex model policy version ${patch.version}.`);
|
|
87
|
-
|
|
87
|
+
const chipPatch = patch.chip || {};
|
|
88
|
+
for (const key of Object.keys(chipPatch)) {
|
|
88
89
|
if (!(key in base.chip))
|
|
89
90
|
throw new Error(`${source} has unknown chip model slot ${key}.`);
|
|
90
|
-
base.chip[key] = applySlot(base.chip[key],
|
|
91
|
+
base.chip[key] = applySlot(base.chip[key], chipPatch[key] || {}, `${source} chip.${key}`);
|
|
91
92
|
}
|
|
92
93
|
for (const key of Object.keys(patch.subagent || {})) {
|
|
93
94
|
if (!(key in base.subagent))
|
|
@@ -109,12 +110,22 @@ function readPolicyFile(filePath) {
|
|
|
109
110
|
function userPolicyPath(homeDir) {
|
|
110
111
|
return path.join(homeDir, '.greprag', 'codex-models.json');
|
|
111
112
|
}
|
|
112
|
-
function
|
|
113
|
+
function samePath(left, right) {
|
|
114
|
+
if (!left || !right)
|
|
115
|
+
return false;
|
|
116
|
+
return path.resolve(left).toLowerCase() === path.resolve(right).toLowerCase();
|
|
117
|
+
}
|
|
118
|
+
function findProjectPolicyPath(cwd, homeDir) {
|
|
113
119
|
let current = path.resolve(cwd);
|
|
120
|
+
const boundaries = [homeDir, os.homedir(), process.env.HOME, process.env.USERPROFILE].filter(Boolean);
|
|
114
121
|
while (true) {
|
|
122
|
+
if (boundaries.some(boundary => samePath(current, boundary)))
|
|
123
|
+
return null;
|
|
115
124
|
const candidate = path.join(current, '.greprag', 'codex-models.json');
|
|
116
125
|
if (fs.existsSync(candidate))
|
|
117
126
|
return candidate;
|
|
127
|
+
if (fs.existsSync(path.join(current, '.git')))
|
|
128
|
+
return null;
|
|
118
129
|
const parent = path.dirname(current);
|
|
119
130
|
if (parent === current)
|
|
120
131
|
return null;
|
|
@@ -126,7 +137,7 @@ function loadCodexModelPolicy(cwd = process.cwd(), homeDir = process.env.HOME ||
|
|
|
126
137
|
const user = readPolicyFile(userPolicyPath(homeDir));
|
|
127
138
|
if (user)
|
|
128
139
|
policy = applyPolicy(policy, user, userPolicyPath(homeDir));
|
|
129
|
-
const projectPath = findProjectPolicyPath(cwd);
|
|
140
|
+
const projectPath = findProjectPolicyPath(cwd, homeDir);
|
|
130
141
|
if (projectPath) {
|
|
131
142
|
const project = readPolicyFile(projectPath);
|
|
132
143
|
if (project)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-model-policy.js","sourceRoot":"","sources":["../../src/commands/codex-model-policy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"codex-model-policy.js","sourceRoot":"","sources":["../../src/commands/codex-model-policy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkHA,oDAUC;AAED,oDAEC;AAED,4DAEC;AAED,sDAQC;AA9ID,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAEhB,QAAA,mBAAmB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAU,CAAC;AAoBrG,QAAA,0BAA0B,GAAqB;IAC1D,OAAO,EAAE,CAAC;IACV,IAAI,EAAE;QACJ,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9C,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;QAC5C,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE;QAClD,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE;QACjD,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;KAC1C;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;QACjD,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;QACpD,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE;KACxD;CACF,CAAC;AAEW,QAAA,yBAAyB,GAAsC;IAC1E,aAAa,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;IACjE,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;IACnE,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;IACzD,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IAC7C,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IAClD,qBAAqB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;CAC1D,CAAC;AAEF,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kCAA0B,CAAC,CAAqB,CAAC;AACpF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,2BAAmB,CAAC,QAAQ,CAAC,KAAyB,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,SAAS,CAAC,MAAsB,EAAE,KAAkB,EAAE,MAAc;IAC3E,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACxG,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IACnF,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,gCAAgC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,2BAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9H,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,IAAsB,EAAE,KAAoB,EAAE,MAAc;IAC/E,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,gDAAgD,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;IACnJ,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,EAAE,CAAC;QAC5D,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,gCAAgC,GAAG,GAAG,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAwB,EAAE,CAAC;QAC3E,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,oCAAoC,GAAG,GAAG,CAAC,CAAC;QAClG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,QAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,aAAa,GAAG,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAkB,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,QAAQ,CAAC,IAAwB,EAAE,KAAyB;IACnE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW,EAAE,OAAe;IACzD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAClH,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;QACtE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,EAAE;IAC7H,IAAI,MAAM,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,IAAI,IAAI;QAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,OAAO;YAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAmB,EAAE,MAAM,GAAG,oBAAoB,EAAE;IACvF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,wBAAwB,CAAC,IAAuB,EAAE,MAAM,GAAG,oBAAoB,EAAE;IAC/F,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAiB,EAAE;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,IAAI,IAAI;QAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtH,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,KAAK,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAChI,CAAC"}
|
package/dist/commands/codex.js
CHANGED
|
@@ -461,7 +461,7 @@ const HELP = `greprag codex — Codex-specific helpers.
|
|
|
461
461
|
greprag codex app-server probe [--thread <id>] [--limit <n>] [--transport stdio|proxy] [--json]
|
|
462
462
|
greprag codex wake-test [--session <id>] [--transport proxy|stdio] [--delivery auto|app-server|app-server-resume|exec] [--send] [--json]
|
|
463
463
|
greprag codex models show [--json]
|
|
464
|
-
greprag codex chip spawn "<task>" --name <name> [--role worker|leader|advisor
|
|
464
|
+
greprag codex chip spawn "<task>" --name <name> [--role worker|leader|planner|advisor] [--runtime cli]
|
|
465
465
|
greprag codex chip list|status|steer|stop|report|block|cleanup|reconcile
|
|
466
466
|
greprag codex doctor [--wake-test]
|
|
467
467
|
greprag codex startup install
|
package/dist/commands/init.js
CHANGED
|
@@ -52,7 +52,21 @@ const project_anchor_1 = require("../project-anchor");
|
|
|
52
52
|
const codex_1 = require("./codex");
|
|
53
53
|
const claude_md_patch_1 = require("./claude-md-patch");
|
|
54
54
|
const agents_1 = require("./agents");
|
|
55
|
+
const native_skill_mirror_1 = require("../native-skill-mirror");
|
|
55
56
|
const API_URL = 'https://api.greprag.com';
|
|
57
|
+
async function trySyncNativeSkillMirror(apiKey, platform) {
|
|
58
|
+
try {
|
|
59
|
+
return (0, native_skill_mirror_1.nativeSkillMirrorSummary)(await (0, native_skill_mirror_1.syncNativeSkillMirror)({
|
|
60
|
+
apiUrl: API_URL,
|
|
61
|
+
apiKey,
|
|
62
|
+
platform,
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
67
|
+
return `Native skill mirror unavailable; existing skills preserved (${message})`;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
56
70
|
async function tryBootstrapAgentDoctrine(apiKey, harness) {
|
|
57
71
|
try {
|
|
58
72
|
return await (0, agents_1.bootstrapAgentDoctrine)(apiKey, harness);
|
|
@@ -72,7 +86,7 @@ function doctrineBootstrapSummary(result) {
|
|
|
72
86
|
? `${result.changedFollowers} follower(s) materialized`
|
|
73
87
|
: `${result.currentFollowers} follower(s) already current`;
|
|
74
88
|
const blocked = result.blockedFollowers > 0
|
|
75
|
-
? `; ${result.blockedFollowers} existing follower(s) preserved (run greprag agents
|
|
89
|
+
? `; ${result.blockedFollowers} existing follower(s) preserved (run greprag agents push explicitly)`
|
|
76
90
|
: '';
|
|
77
91
|
return `Agent doctrine (${result.canonicalScopes.join(' + ')}): ${state}${blocked}`;
|
|
78
92
|
}
|
|
@@ -324,6 +338,7 @@ async function runInit(opts) {
|
|
|
324
338
|
optionalSkills.push(entry.name);
|
|
325
339
|
}
|
|
326
340
|
}
|
|
341
|
+
changes.push(await trySyncNativeSkillMirror(apiKey, 'claude-code'));
|
|
327
342
|
// Step 6b RETIRED 2026-06-22 (docs/load-system.md): the chip-spawn protocol is
|
|
328
343
|
// no longer copied to ~/.claude/docs/chip-spawn.md. greprag function never
|
|
329
344
|
// depends on a `.md` file on disk — the doctrine ships in the binary and is
|
|
@@ -333,7 +348,7 @@ async function runInit(opts) {
|
|
|
333
348
|
// file happened to be installed.
|
|
334
349
|
// Step 7: Materialize canonical doctrine for Claude. Once global canon
|
|
335
350
|
// exists, it owns ~/.claude/CLAUDE.md; running the legacy direct patch after
|
|
336
|
-
// sync would immediately diverge the
|
|
351
|
+
// sync would immediately diverge the materialized follower. Pre-adoption
|
|
337
352
|
// tenants retain the old patch path unchanged.
|
|
338
353
|
const doctrine = await tryBootstrapAgentDoctrine(apiKey, 'claude-code');
|
|
339
354
|
changes.push(doctrineBootstrapSummary(doctrine));
|
|
@@ -519,6 +534,7 @@ async function runOpenCodeInit(opts) {
|
|
|
519
534
|
else {
|
|
520
535
|
console.warn(' Plugin bundle not found (build issue) — run `npm run build` in packages/cli and retry');
|
|
521
536
|
}
|
|
537
|
+
envChanges.push(await trySyncNativeSkillMirror(apiKey, 'opencode'));
|
|
522
538
|
const doctrine = await tryBootstrapAgentDoctrine(apiKey, 'opencode');
|
|
523
539
|
// Summary
|
|
524
540
|
console.log('\n Setup complete!\n');
|
|
@@ -579,6 +595,7 @@ async function runCodexInit(opts) {
|
|
|
579
595
|
const codexSkill = installCoreSkill('codex');
|
|
580
596
|
if (codexSkill)
|
|
581
597
|
changes.push(`Skill: installed → ${codexSkill}`);
|
|
598
|
+
changes.push(await trySyncNativeSkillMirror(apiKey, 'codex'));
|
|
582
599
|
const doctrine = await tryBootstrapAgentDoctrine(apiKey, 'codex');
|
|
583
600
|
changes.push(doctrineBootstrapSummary(doctrine));
|
|
584
601
|
try {
|