oh-my-codex 0.10.2 → 0.10.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/README.de.md +4 -4
- package/README.es.md +4 -4
- package/README.fr.md +4 -4
- package/README.it.md +4 -4
- package/README.ja.md +4 -4
- package/README.ko.md +4 -4
- package/README.md +13 -7
- package/README.pt.md +4 -4
- package/README.ru.md +4 -4
- package/README.tr.md +4 -4
- package/README.vi.md +4 -4
- package/README.zh-TW.md +4 -4
- package/README.zh.md +4 -4
- package/dist/agents/__tests__/native-config.test.js +37 -33
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/__tests__/skill-bridge.test.d.ts +2 -0
- package/dist/agents/__tests__/skill-bridge.test.d.ts.map +1 -0
- package/dist/agents/__tests__/skill-bridge.test.js +71 -0
- package/dist/agents/__tests__/skill-bridge.test.js.map +1 -0
- package/dist/agents/native-config.d.ts +18 -6
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +109 -92
- package/dist/agents/native-config.js.map +1 -1
- package/dist/agents/skill-bridge.d.ts +20 -0
- package/dist/agents/skill-bridge.d.ts.map +1 -0
- package/dist/agents/skill-bridge.js +150 -0
- package/dist/agents/skill-bridge.js.map +1 -0
- package/dist/autoresearch/__tests__/contracts.test.js +37 -1
- package/dist/autoresearch/__tests__/contracts.test.js.map +1 -1
- package/dist/autoresearch/__tests__/runtime-parity-extra.test.js +10 -10
- package/dist/autoresearch/__tests__/runtime-parity-extra.test.js.map +1 -1
- package/dist/autoresearch/__tests__/runtime.test.js +2 -2
- package/dist/autoresearch/__tests__/runtime.test.js.map +1 -1
- package/dist/autoresearch/contracts.d.ts.map +1 -1
- package/dist/autoresearch/contracts.js +17 -10
- package/dist/autoresearch/contracts.js.map +1 -1
- package/dist/autoresearch/runtime.d.ts.map +1 -1
- package/dist/autoresearch/runtime.js +71 -96
- package/dist/autoresearch/runtime.js.map +1 -1
- package/dist/cli/__tests__/agents-init.test.js +2 -0
- package/dist/cli/__tests__/agents-init.test.js.map +1 -1
- package/dist/cli/__tests__/agents.test.d.ts +2 -0
- package/dist/cli/__tests__/agents.test.d.ts.map +1 -0
- package/dist/cli/__tests__/agents.test.js +114 -0
- package/dist/cli/__tests__/agents.test.js.map +1 -0
- package/dist/cli/__tests__/autoresearch-guided.test.js +156 -1
- package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -1
- package/dist/cli/__tests__/autoresearch.test.js +195 -24
- package/dist/cli/__tests__/autoresearch.test.js.map +1 -1
- package/dist/cli/__tests__/cleanup.test.d.ts +2 -0
- package/dist/cli/__tests__/cleanup.test.d.ts.map +1 -0
- package/dist/cli/__tests__/cleanup.test.js +213 -0
- package/dist/cli/__tests__/cleanup.test.js.map +1 -0
- package/dist/cli/__tests__/error-handling-warnings.test.js +1 -1
- package/dist/cli/__tests__/error-handling-warnings.test.js.map +1 -1
- package/dist/cli/__tests__/explore.test.js +3 -3
- package/dist/cli/__tests__/explore.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +521 -401
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/native-assets.test.js +72 -9
- package/dist/cli/__tests__/native-assets.test.js.map +1 -1
- package/dist/cli/__tests__/ralphthon.test.d.ts +2 -0
- package/dist/cli/__tests__/ralphthon.test.d.ts.map +1 -0
- package/dist/cli/__tests__/ralphthon.test.js +28 -0
- package/dist/cli/__tests__/ralphthon.test.js.map +1 -0
- package/dist/cli/__tests__/setup-agents-overwrite.test.js +36 -1
- package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-prompts-overwrite.test.js +35 -5
- package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/setup-refresh.test.js +2 -2
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
- package/dist/cli/__tests__/setup-scope.test.js +131 -161
- package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
- package/dist/cli/__tests__/setup-skills-overwrite.test.js +10 -10
- package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
- package/dist/cli/__tests__/sparkshell-cli.test.js +28 -2
- package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +1 -112
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/uninstall.test.js +7 -20
- package/dist/cli/__tests__/uninstall.test.js.map +1 -1
- package/dist/cli/agents-init.d.ts.map +1 -1
- package/dist/cli/agents-init.js +99 -95
- package/dist/cli/agents-init.js.map +1 -1
- package/dist/cli/agents.d.ts +14 -0
- package/dist/cli/agents.d.ts.map +1 -0
- package/dist/cli/agents.js +261 -0
- package/dist/cli/agents.js.map +1 -0
- package/dist/cli/autoresearch-guided.d.ts +8 -0
- package/dist/cli/autoresearch-guided.d.ts.map +1 -1
- package/dist/cli/autoresearch-guided.js +104 -37
- package/dist/cli/autoresearch-guided.js.map +1 -1
- package/dist/cli/autoresearch-intake.d.ts +60 -0
- package/dist/cli/autoresearch-intake.d.ts.map +1 -0
- package/dist/cli/autoresearch-intake.js +318 -0
- package/dist/cli/autoresearch-intake.js.map +1 -0
- package/dist/cli/autoresearch.d.ts +3 -1
- package/dist/cli/autoresearch.d.ts.map +1 -1
- package/dist/cli/autoresearch.js +64 -10
- package/dist/cli/autoresearch.js.map +1 -1
- package/dist/cli/cleanup.d.ts +52 -0
- package/dist/cli/cleanup.d.ts.map +1 -0
- package/dist/cli/cleanup.js +302 -0
- package/dist/cli/cleanup.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +9 -37
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/explore.d.ts.map +1 -1
- package/dist/cli/explore.js +5 -4
- package/dist/cli/explore.js.map +1 -1
- package/dist/cli/index.d.ts +5 -7
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +610 -427
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/native-assets.d.ts +15 -1
- package/dist/cli/native-assets.d.ts.map +1 -1
- package/dist/cli/native-assets.js +134 -32
- package/dist/cli/native-assets.js.map +1 -1
- package/dist/cli/ralph.d.ts.map +1 -1
- package/dist/cli/ralph.js +38 -1
- package/dist/cli/ralph.js.map +1 -1
- package/dist/cli/ralphthon.d.ts +14 -0
- package/dist/cli/ralphthon.d.ts.map +1 -0
- package/dist/cli/ralphthon.js +234 -0
- package/dist/cli/ralphthon.js.map +1 -0
- package/dist/cli/setup.d.ts +1 -4
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +111 -76
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/sparkshell.d.ts +3 -1
- package/dist/cli/sparkshell.d.ts.map +1 -1
- package/dist/cli/sparkshell.js +35 -16
- package/dist/cli/sparkshell.js.map +1 -1
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +1 -0
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/uninstall.d.ts +1 -1
- package/dist/cli/uninstall.d.ts.map +1 -1
- package/dist/cli/uninstall.js +82 -64
- package/dist/cli/uninstall.js.map +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js +10 -10
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/__tests__/generator-notify.test.js +15 -0
- package/dist/config/__tests__/generator-notify.test.js.map +1 -1
- package/dist/config/generator.d.ts +0 -1
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +53 -42
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +295 -230
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js +49 -24
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.d.ts +2 -0
- package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.js +193 -0
- package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.js.map +1 -0
- package/dist/hooks/agents-overlay.d.ts +1 -1
- package/dist/hooks/agents-overlay.d.ts.map +1 -1
- package/dist/hooks/agents-overlay.js +109 -106
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/modes/base.d.ts +1 -1
- package/dist/modes/base.d.ts.map +1 -1
- package/dist/modes/base.js +1 -1
- package/dist/modes/base.js.map +1 -1
- package/dist/ralphthon/__tests__/bootstrap.test.d.ts +2 -0
- package/dist/ralphthon/__tests__/bootstrap.test.d.ts.map +1 -0
- package/dist/ralphthon/__tests__/bootstrap.test.js +23 -0
- package/dist/ralphthon/__tests__/bootstrap.test.js.map +1 -0
- package/dist/ralphthon/__tests__/orchestrator.test.d.ts +2 -0
- package/dist/ralphthon/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/ralphthon/__tests__/orchestrator.test.js +309 -0
- package/dist/ralphthon/__tests__/orchestrator.test.js.map +1 -0
- package/dist/ralphthon/__tests__/prd.test.d.ts +2 -0
- package/dist/ralphthon/__tests__/prd.test.d.ts.map +1 -0
- package/dist/ralphthon/__tests__/prd.test.js +133 -0
- package/dist/ralphthon/__tests__/prd.test.js.map +1 -0
- package/dist/ralphthon/bootstrap.d.ts +3 -0
- package/dist/ralphthon/bootstrap.d.ts.map +1 -0
- package/dist/ralphthon/bootstrap.js +84 -0
- package/dist/ralphthon/bootstrap.js.map +1 -0
- package/dist/ralphthon/orchestrator.d.ts +50 -0
- package/dist/ralphthon/orchestrator.d.ts.map +1 -0
- package/dist/ralphthon/orchestrator.js +362 -0
- package/dist/ralphthon/orchestrator.js.map +1 -0
- package/dist/ralphthon/prd.d.ts +191 -0
- package/dist/ralphthon/prd.d.ts.map +1 -0
- package/dist/ralphthon/prd.js +355 -0
- package/dist/ralphthon/prd.js.map +1 -0
- package/dist/ralphthon/runtime.d.ts +31 -0
- package/dist/ralphthon/runtime.d.ts.map +1 -0
- package/dist/ralphthon/runtime.js +104 -0
- package/dist/ralphthon/runtime.js.map +1 -0
- package/dist/ralphthon/tmux.d.ts +3 -0
- package/dist/ralphthon/tmux.d.ts.map +1 -0
- package/dist/ralphthon/tmux.js +39 -0
- package/dist/ralphthon/tmux.js.map +1 -0
- package/dist/subagents/__tests__/tracker.test.d.ts +2 -0
- package/dist/subagents/__tests__/tracker.test.d.ts.map +1 -0
- package/dist/subagents/__tests__/tracker.test.js +47 -0
- package/dist/subagents/__tests__/tracker.test.js.map +1 -0
- package/dist/subagents/tracker.d.ts +52 -0
- package/dist/subagents/tracker.d.ts.map +1 -0
- package/dist/subagents/tracker.js +175 -0
- package/dist/subagents/tracker.js.map +1 -0
- package/dist/team/__tests__/worker-bootstrap.test.js +189 -163
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/__tests__/worktree.test.js +1 -1
- package/dist/team/__tests__/worktree.test.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts +1 -1
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +58 -63
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/team/worktree.js +1 -1
- package/dist/team/worktree.js.map +1 -1
- package/dist/utils/__tests__/agents-md.test.d.ts +2 -0
- package/dist/utils/__tests__/agents-md.test.d.ts.map +1 -0
- package/dist/utils/__tests__/agents-md.test.js +32 -0
- package/dist/utils/__tests__/agents-md.test.js.map +1 -0
- package/dist/utils/__tests__/agents-model-table.test.d.ts +2 -0
- package/dist/utils/__tests__/agents-model-table.test.d.ts.map +1 -0
- package/dist/utils/__tests__/agents-model-table.test.js +84 -0
- package/dist/utils/__tests__/agents-model-table.test.js.map +1 -0
- package/dist/utils/__tests__/paths.test.js +78 -83
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/agents-md.d.ts.map +1 -1
- package/dist/utils/agents-md.js +10 -0
- package/dist/utils/agents-md.js.map +1 -1
- package/dist/utils/agents-model-table.d.ts +16 -0
- package/dist/utils/agents-model-table.d.ts.map +1 -0
- package/dist/utils/agents-model-table.js +83 -0
- package/dist/utils/agents-model-table.js.map +1 -0
- package/dist/utils/paths.d.ts +6 -6
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +31 -31
- package/dist/utils/paths.js.map +1 -1
- package/dist/verification/__tests__/explore-harness-release-workflow.test.js +21 -3
- package/dist/verification/__tests__/explore-harness-release-workflow.test.js.map +1 -1
- package/dist/verification/__tests__/native-release-manifest.test.d.ts +2 -0
- package/dist/verification/__tests__/native-release-manifest.test.d.ts.map +1 -0
- package/dist/verification/__tests__/native-release-manifest.test.js +80 -0
- package/dist/verification/__tests__/native-release-manifest.test.js.map +1 -0
- package/package.json +1 -1
- package/prompts/executor.md +15 -0
- package/scripts/__tests__/smoke-packed-install.test.mjs +137 -8
- package/scripts/eval-adaptive-sort-optimization.py +24 -0
- package/scripts/eval-in-action-cat-shellout-demo.js +31 -0
- package/scripts/eval-ml-kaggle-model-optimization.py +29 -0
- package/scripts/eval-noisy-bayesopt-highdim.py +44 -0
- package/scripts/eval-noisy-latent-subspace-discovery.py +44 -0
- package/scripts/generate-native-release-manifest.mjs +14 -3
- package/scripts/notify-fallback-watcher.js +308 -6
- package/scripts/notify-hook.js +20 -0
- package/scripts/run-autoresearch-showcase.sh +75 -0
- package/scripts/smoke-packed-install.mjs +142 -10
- package/skills/deep-interview/SKILL.md +30 -1
- package/skills/omx-setup/SKILL.md +2 -2
- package/skills/skill/SKILL.md +32 -32
- package/skills/team/SKILL.md +6 -0
- package/skills/worker/SKILL.md +2 -2
- package/templates/AGENTS.md +97 -16
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { AGENT_DEFINITIONS } from '../agents/definitions.js';
|
|
2
|
+
import { getRootModelName } from '../config/generator.js';
|
|
3
|
+
import { DEFAULT_FRONTIER_MODEL, DEFAULT_SPARK_MODEL, getEnvConfiguredSparkDefaultModel, getEnvConfiguredMainDefaultModel, getSparkDefaultModel, } from '../config/models.js';
|
|
4
|
+
export const OMX_MODELS_START_MARKER = '<!-- OMX:MODELS:START -->';
|
|
5
|
+
export const OMX_MODELS_END_MARKER = '<!-- OMX:MODELS:END -->';
|
|
6
|
+
const TEAM_MODEL_RESOLUTION_END = '</team_model_resolution>';
|
|
7
|
+
function escapeTableCell(value) {
|
|
8
|
+
return value.replace(/\|/g, '\\|').replace(/\r?\n/g, ' ');
|
|
9
|
+
}
|
|
10
|
+
function formatRoleLabel(role) {
|
|
11
|
+
return role.includes('(') ? role : `\`${role}\``;
|
|
12
|
+
}
|
|
13
|
+
function getAgentRecommendedModel(agent, context) {
|
|
14
|
+
switch (agent.modelClass) {
|
|
15
|
+
case 'fast':
|
|
16
|
+
return context.sparkModel;
|
|
17
|
+
case 'frontier':
|
|
18
|
+
return context.frontierModel;
|
|
19
|
+
case 'standard':
|
|
20
|
+
default:
|
|
21
|
+
return context.subagentDefaultModel;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function getAgentUseCase(agent) {
|
|
25
|
+
return `${agent.description} (${agent.posture}, ${agent.modelClass})`;
|
|
26
|
+
}
|
|
27
|
+
function buildTableRow(role, model, reasoningEffort, useCase) {
|
|
28
|
+
return `| ${escapeTableCell(formatRoleLabel(role))} | ${escapeTableCell(`\`${model}\``)} | ${escapeTableCell(reasoningEffort)} | ${escapeTableCell(useCase)} |`;
|
|
29
|
+
}
|
|
30
|
+
export function resolveAgentsModelTableContext(configTomlContent, options = {}) {
|
|
31
|
+
const { codexHomeOverride, env = process.env } = options;
|
|
32
|
+
const frontierModel = getRootModelName(configTomlContent) ??
|
|
33
|
+
getEnvConfiguredMainDefaultModel(env, codexHomeOverride) ??
|
|
34
|
+
DEFAULT_FRONTIER_MODEL;
|
|
35
|
+
const sparkModel = getEnvConfiguredSparkDefaultModel(env, codexHomeOverride) ??
|
|
36
|
+
getSparkDefaultModel(codexHomeOverride) ??
|
|
37
|
+
DEFAULT_SPARK_MODEL;
|
|
38
|
+
return {
|
|
39
|
+
frontierModel,
|
|
40
|
+
sparkModel,
|
|
41
|
+
subagentDefaultModel: frontierModel,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function buildAgentsModelTable(context, definitions = AGENT_DEFINITIONS) {
|
|
45
|
+
const rows = [
|
|
46
|
+
buildTableRow('Frontier (leader)', context.frontierModel, 'high', 'Primary leader/orchestrator for planning, coordination, and frontier-class reasoning.'),
|
|
47
|
+
buildTableRow('Spark (explorer/fast)', context.sparkModel, 'low', 'Fast triage, explore, lightweight synthesis, and low-latency routing.'),
|
|
48
|
+
buildTableRow('Subagent default', context.subagentDefaultModel, 'medium', 'Balanced default for standard-capability executors and specialists unless a role is explicitly frontier or fast-lane.'),
|
|
49
|
+
...Object.values(definitions).map((agent) => buildTableRow(agent.name, getAgentRecommendedModel(agent, context), agent.reasoningEffort, getAgentUseCase(agent))),
|
|
50
|
+
];
|
|
51
|
+
return [
|
|
52
|
+
'## Model Capability Table',
|
|
53
|
+
'',
|
|
54
|
+
'Auto-generated by `omx setup` from the current `config.toml` plus OMX model overrides.',
|
|
55
|
+
'',
|
|
56
|
+
'| Role | Model | Reasoning Effort | Use Case |',
|
|
57
|
+
'| --- | --- | --- | --- |',
|
|
58
|
+
...rows,
|
|
59
|
+
].join('\n');
|
|
60
|
+
}
|
|
61
|
+
export function renderAgentsModelTableBlock(context, definitions = AGENT_DEFINITIONS) {
|
|
62
|
+
return [
|
|
63
|
+
OMX_MODELS_START_MARKER,
|
|
64
|
+
buildAgentsModelTable(context, definitions),
|
|
65
|
+
OMX_MODELS_END_MARKER,
|
|
66
|
+
].join('\n');
|
|
67
|
+
}
|
|
68
|
+
export function upsertAgentsModelTable(content, context, definitions = AGENT_DEFINITIONS) {
|
|
69
|
+
const block = renderAgentsModelTableBlock(context, definitions);
|
|
70
|
+
const startIndex = content.indexOf(OMX_MODELS_START_MARKER);
|
|
71
|
+
const endIndex = content.indexOf(OMX_MODELS_END_MARKER);
|
|
72
|
+
if (startIndex >= 0 && endIndex > startIndex) {
|
|
73
|
+
const replaceEnd = endIndex + OMX_MODELS_END_MARKER.length;
|
|
74
|
+
return `${content.slice(0, startIndex)}${block}${content.slice(replaceEnd)}`;
|
|
75
|
+
}
|
|
76
|
+
const insertionAnchor = `${TEAM_MODEL_RESOLUTION_END}\n\n---`;
|
|
77
|
+
if (content.includes(insertionAnchor)) {
|
|
78
|
+
return content.replace(insertionAnchor, `${TEAM_MODEL_RESOLUTION_END}\n\n${block}\n\n---`);
|
|
79
|
+
}
|
|
80
|
+
const trailingNewline = content.endsWith('\n') ? '' : '\n';
|
|
81
|
+
return `${content}${trailingNewline}\n${block}\n`;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=agents-model-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-model-table.js","sourceRoot":"","sources":["../../src/utils/agents-model-table.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/paths.d.ts
CHANGED
|
@@ -8,13 +8,15 @@ export declare function codexHome(): string;
|
|
|
8
8
|
export declare function codexConfigPath(): string;
|
|
9
9
|
/** Codex prompts directory (~/.codex/prompts/) */
|
|
10
10
|
export declare function codexPromptsDir(): string;
|
|
11
|
+
/** Codex native agents directory (~/.codex/agents/) */
|
|
12
|
+
export declare function codexAgentsDir(codexHomeDir?: string): string;
|
|
13
|
+
/** Project-level Codex native agents directory (.codex/agents/) */
|
|
14
|
+
export declare function projectCodexAgentsDir(projectRoot?: string): string;
|
|
11
15
|
/** User-level skills directory ($CODEX_HOME/skills, defaults to ~/.codex/skills/) */
|
|
12
16
|
export declare function userSkillsDir(): string;
|
|
13
|
-
/**
|
|
14
|
-
export declare function legacyUserSkillsDir(): string;
|
|
15
|
-
/** Project-level skills directory (.agents/skills/) */
|
|
17
|
+
/** Project-level skills directory (.codex/skills/) */
|
|
16
18
|
export declare function projectSkillsDir(projectRoot?: string): string;
|
|
17
|
-
export type InstalledSkillScope =
|
|
19
|
+
export type InstalledSkillScope = "project" | "user";
|
|
18
20
|
export interface InstalledSkillDirectory {
|
|
19
21
|
name: string;
|
|
20
22
|
path: string;
|
|
@@ -35,8 +37,6 @@ export declare function omxNotepadPath(projectRoot?: string): string;
|
|
|
35
37
|
export declare function omxPlansDir(projectRoot?: string): string;
|
|
36
38
|
/** oh-my-codex logs directory (.omx/logs/) */
|
|
37
39
|
export declare function omxLogsDir(projectRoot?: string): string;
|
|
38
|
-
/** oh-my-codex native agent config directory (~/.omx/agents/) */
|
|
39
|
-
export declare function omxAgentsConfigDir(): string;
|
|
40
40
|
/** Get the package root directory (where agents/, skills/, prompts/ live) */
|
|
41
41
|
export declare function packageRoot(): string;
|
|
42
42
|
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,2CAA2C;AAC3C,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,oDAAoD;AACpD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,kDAAkD;AAClD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,2CAA2C;AAC3C,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,oDAAoD;AACpD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,kDAAkD;AAClD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,qFAAqF;AACrF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAoBD;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,IAAI,MAAM,CAgBpC"}
|
package/dist/utils/paths.js
CHANGED
|
@@ -2,34 +2,38 @@
|
|
|
2
2
|
* Path utilities for oh-my-codex
|
|
3
3
|
* Resolves Codex CLI config, skills, prompts, and state directories
|
|
4
4
|
*/
|
|
5
|
-
import { dirname, join } from
|
|
6
|
-
import { homedir } from
|
|
7
|
-
import { fileURLToPath } from
|
|
8
|
-
import { existsSync } from
|
|
9
|
-
import { readdir } from
|
|
5
|
+
import { dirname, join } from "path";
|
|
6
|
+
import { homedir } from "os";
|
|
7
|
+
import { fileURLToPath } from "url";
|
|
8
|
+
import { existsSync } from "fs";
|
|
9
|
+
import { readdir } from "fs/promises";
|
|
10
10
|
/** Codex CLI home directory (~/.codex/) */
|
|
11
11
|
export function codexHome() {
|
|
12
|
-
return process.env.CODEX_HOME || join(homedir(),
|
|
12
|
+
return process.env.CODEX_HOME || join(homedir(), ".codex");
|
|
13
13
|
}
|
|
14
14
|
/** Codex config file path (~/.codex/config.toml) */
|
|
15
15
|
export function codexConfigPath() {
|
|
16
|
-
return join(codexHome(),
|
|
16
|
+
return join(codexHome(), "config.toml");
|
|
17
17
|
}
|
|
18
18
|
/** Codex prompts directory (~/.codex/prompts/) */
|
|
19
19
|
export function codexPromptsDir() {
|
|
20
|
-
return join(codexHome(),
|
|
20
|
+
return join(codexHome(), "prompts");
|
|
21
|
+
}
|
|
22
|
+
/** Codex native agents directory (~/.codex/agents/) */
|
|
23
|
+
export function codexAgentsDir(codexHomeDir) {
|
|
24
|
+
return join(codexHomeDir || codexHome(), "agents");
|
|
25
|
+
}
|
|
26
|
+
/** Project-level Codex native agents directory (.codex/agents/) */
|
|
27
|
+
export function projectCodexAgentsDir(projectRoot) {
|
|
28
|
+
return join(projectRoot || process.cwd(), ".codex", "agents");
|
|
21
29
|
}
|
|
22
30
|
/** User-level skills directory ($CODEX_HOME/skills, defaults to ~/.codex/skills/) */
|
|
23
31
|
export function userSkillsDir() {
|
|
24
|
-
return join(codexHome(),
|
|
32
|
+
return join(codexHome(), "skills");
|
|
25
33
|
}
|
|
26
|
-
/**
|
|
27
|
-
export function legacyUserSkillsDir() {
|
|
28
|
-
return join(homedir(), '.agents', 'skills');
|
|
29
|
-
}
|
|
30
|
-
/** Project-level skills directory (.agents/skills/) */
|
|
34
|
+
/** Project-level skills directory (.codex/skills/) */
|
|
31
35
|
export function projectSkillsDir(projectRoot) {
|
|
32
|
-
return join(projectRoot || process.cwd(),
|
|
36
|
+
return join(projectRoot || process.cwd(), ".codex", "skills");
|
|
33
37
|
}
|
|
34
38
|
async function readInstalledSkillsFromDir(dir, scope) {
|
|
35
39
|
if (!existsSync(dir))
|
|
@@ -42,7 +46,7 @@ async function readInstalledSkillsFromDir(dir, scope) {
|
|
|
42
46
|
path: join(dir, entry.name),
|
|
43
47
|
scope,
|
|
44
48
|
}))
|
|
45
|
-
.filter((entry) => existsSync(join(entry.path,
|
|
49
|
+
.filter((entry) => existsSync(join(entry.path, "SKILL.md")))
|
|
46
50
|
.sort((a, b) => a.name.localeCompare(b.name));
|
|
47
51
|
}
|
|
48
52
|
/**
|
|
@@ -51,8 +55,8 @@ async function readInstalledSkillsFromDir(dir, scope) {
|
|
|
51
55
|
*/
|
|
52
56
|
export async function listInstalledSkillDirectories(projectRoot) {
|
|
53
57
|
const orderedDirs = [
|
|
54
|
-
{ dir: projectSkillsDir(projectRoot), scope:
|
|
55
|
-
{ dir: userSkillsDir(), scope:
|
|
58
|
+
{ dir: projectSkillsDir(projectRoot), scope: "project" },
|
|
59
|
+
{ dir: userSkillsDir(), scope: "user" },
|
|
56
60
|
];
|
|
57
61
|
const deduped = [];
|
|
58
62
|
const seenNames = new Set();
|
|
@@ -69,39 +73,35 @@ export async function listInstalledSkillDirectories(projectRoot) {
|
|
|
69
73
|
}
|
|
70
74
|
/** oh-my-codex state directory (.omx/state/) */
|
|
71
75
|
export function omxStateDir(projectRoot) {
|
|
72
|
-
return join(projectRoot || process.cwd(),
|
|
76
|
+
return join(projectRoot || process.cwd(), ".omx", "state");
|
|
73
77
|
}
|
|
74
78
|
/** oh-my-codex project memory file (.omx/project-memory.json) */
|
|
75
79
|
export function omxProjectMemoryPath(projectRoot) {
|
|
76
|
-
return join(projectRoot || process.cwd(),
|
|
80
|
+
return join(projectRoot || process.cwd(), ".omx", "project-memory.json");
|
|
77
81
|
}
|
|
78
82
|
/** oh-my-codex notepad file (.omx/notepad.md) */
|
|
79
83
|
export function omxNotepadPath(projectRoot) {
|
|
80
|
-
return join(projectRoot || process.cwd(),
|
|
84
|
+
return join(projectRoot || process.cwd(), ".omx", "notepad.md");
|
|
81
85
|
}
|
|
82
86
|
/** oh-my-codex plans directory (.omx/plans/) */
|
|
83
87
|
export function omxPlansDir(projectRoot) {
|
|
84
|
-
return join(projectRoot || process.cwd(),
|
|
88
|
+
return join(projectRoot || process.cwd(), ".omx", "plans");
|
|
85
89
|
}
|
|
86
90
|
/** oh-my-codex logs directory (.omx/logs/) */
|
|
87
91
|
export function omxLogsDir(projectRoot) {
|
|
88
|
-
return join(projectRoot || process.cwd(),
|
|
89
|
-
}
|
|
90
|
-
/** oh-my-codex native agent config directory (~/.omx/agents/) */
|
|
91
|
-
export function omxAgentsConfigDir() {
|
|
92
|
-
return join(homedir(), '.omx', 'agents');
|
|
92
|
+
return join(projectRoot || process.cwd(), ".omx", "logs");
|
|
93
93
|
}
|
|
94
94
|
/** Get the package root directory (where agents/, skills/, prompts/ live) */
|
|
95
95
|
export function packageRoot() {
|
|
96
96
|
try {
|
|
97
97
|
const __filename = fileURLToPath(import.meta.url);
|
|
98
98
|
const __dirname = dirname(__filename);
|
|
99
|
-
const candidate = join(__dirname,
|
|
100
|
-
if (existsSync(join(candidate,
|
|
99
|
+
const candidate = join(__dirname, "..", "..");
|
|
100
|
+
if (existsSync(join(candidate, "package.json"))) {
|
|
101
101
|
return candidate;
|
|
102
102
|
}
|
|
103
|
-
const candidate2 = join(__dirname,
|
|
104
|
-
if (existsSync(join(candidate2,
|
|
103
|
+
const candidate2 = join(__dirname, "..");
|
|
104
|
+
if (existsSync(join(candidate2, "package.json"))) {
|
|
105
105
|
return candidate2;
|
|
106
106
|
}
|
|
107
107
|
}
|
package/dist/utils/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,2CAA2C;AAC3C,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,28 +13,46 @@ describe('native release workflow', () => {
|
|
|
13
13
|
assert.match(workflow, /id-token:\s*write/);
|
|
14
14
|
assert.match(workflow, /ubuntu-24\.04/);
|
|
15
15
|
assert.match(workflow, /ubuntu-24\.04-arm/);
|
|
16
|
+
assert.match(workflow, /x86_64-unknown-linux-gnu/);
|
|
17
|
+
assert.match(workflow, /x86_64-unknown-linux-musl/);
|
|
18
|
+
assert.match(workflow, /aarch64-unknown-linux-gnu/);
|
|
19
|
+
assert.match(workflow, /aarch64-unknown-linux-musl/);
|
|
16
20
|
assert.match(workflow, /macos-15-intel/);
|
|
17
21
|
assert.match(workflow, /macos-14/);
|
|
18
22
|
assert.match(workflow, /windows-latest/);
|
|
23
|
+
assert.match(workflow, /musl-tools/);
|
|
24
|
+
assert.match(workflow, /CC_x86_64_unknown_linux_musl=musl-gcc/);
|
|
25
|
+
assert.match(workflow, /CC_aarch64_unknown_linux_musl=musl-gcc/);
|
|
19
26
|
assert.match(workflow, /cargo install cargo-dist/);
|
|
20
27
|
assert.match(workflow, /dist build -a local/);
|
|
21
28
|
assert.match(workflow, /dist plan --output-format=json/);
|
|
22
29
|
assert.match(workflow, /actions\/upload-artifact@v4/);
|
|
23
30
|
assert.match(workflow, /actions\/download-artifact@v4/);
|
|
24
31
|
assert.match(workflow, /softprops\/action-gh-release@v2/);
|
|
25
|
-
assert.match(workflow, /body_path:\s*RELEASE_BODY\.md/);
|
|
26
|
-
assert.match(workflow, /name:\s*\$\{\{ github\.ref_name \}\}/);
|
|
27
32
|
assert.match(workflow, /omx-explore-harness/);
|
|
28
33
|
assert.match(workflow, /omx-sparkshell/);
|
|
29
34
|
assert.match(workflow, /native-release-manifest\.json/);
|
|
30
35
|
assert.match(workflow, /Publish Native Assets/);
|
|
31
36
|
assert.match(workflow, /Smoke Verify Native Assets/);
|
|
32
37
|
assert.match(workflow, /Smoke Test Packed Global Install/);
|
|
38
|
+
assert.match(workflow, /Older Linux Runtime Proof/);
|
|
39
|
+
assert.match(workflow, /node:20-bullseye/);
|
|
40
|
+
assert.match(workflow, /docker run --rm/);
|
|
41
|
+
assert.match(workflow, /smoke-packed-install\.mjs --release-assets-dir \.\/release-assets --require-no-fallback/);
|
|
33
42
|
assert.match(workflow, /Publish npm Package/);
|
|
34
|
-
assert.match(workflow, /needs:\s*\[
|
|
43
|
+
assert.match(workflow, /needs:\s*\[older-linux-runtime-proof\]/);
|
|
35
44
|
assert.match(workflow, /smoke-packed-install\.mjs --release-assets-dir release-assets/);
|
|
36
45
|
assert.match(workflow, /npm publish --access public --provenance/);
|
|
37
46
|
});
|
|
47
|
+
it('keeps cargo-dist Linux targets aligned with musl-first plus glibc fallback assets', () => {
|
|
48
|
+
const distWorkspacePath = join(process.cwd(), 'dist-workspace.toml');
|
|
49
|
+
assert.equal(existsSync(distWorkspacePath), true, `missing cargo-dist config: ${distWorkspacePath}`);
|
|
50
|
+
const config = readFileSync(distWorkspacePath, 'utf-8');
|
|
51
|
+
assert.match(config, /aarch64-unknown-linux-gnu/);
|
|
52
|
+
assert.match(config, /aarch64-unknown-linux-musl/);
|
|
53
|
+
assert.match(config, /x86_64-unknown-linux-gnu/);
|
|
54
|
+
assert.match(config, /x86_64-unknown-linux-musl/);
|
|
55
|
+
});
|
|
38
56
|
it('retires the old explore-only release workflow', () => {
|
|
39
57
|
const legacyWorkflowPath = join(process.cwd(), '.github', 'workflows', 'explore-harness-artifacts.yml');
|
|
40
58
|
assert.equal(existsSync(legacyWorkflowPath), false, `legacy workflow should be removed: ${legacyWorkflowPath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explore-harness-release-workflow.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/explore-harness-release-workflow.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAChF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,qBAAqB,YAAY,EAAE,CAAC,CAAC;QAElF,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"explore-harness-release-workflow.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/explore-harness-release-workflow.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAChF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,qBAAqB,YAAY,EAAE,CAAC,CAAC;QAElF,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,wCAAwC,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,yFAAyF,CAAC,CAAC;QAClH,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,wCAAwC,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,+DAA+D,CAAC,CAAC;QACxF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,8BAA8B,iBAAiB,EAAE,CAAC,CAAC;QAErG,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,+BAA+B,CAAC,CAAC;QACxG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,sCAAsC,kBAAkB,EAAE,CAAC,CAAC;IAClH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-release-manifest.test.d.ts","sourceRoot":"","sources":["../../../src/verification/__tests__/native-release-manifest.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
4
|
+
import { spawnSync } from 'node:child_process';
|
|
5
|
+
import { tmpdir } from 'node:os';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
describe('native release manifest generator', () => {
|
|
8
|
+
it('annotates Linux libc variants and sorts musl assets before glibc fallbacks', async () => {
|
|
9
|
+
const root = await mkdtemp(join(tmpdir(), 'omx-native-release-manifest-'));
|
|
10
|
+
try {
|
|
11
|
+
const artifactsDir = join(root, 'artifacts');
|
|
12
|
+
await mkdir(artifactsDir, { recursive: true });
|
|
13
|
+
const muslArchive = 'omx-sparkshell-x86_64-unknown-linux-musl.tar.gz';
|
|
14
|
+
const glibcArchive = 'omx-sparkshell-x86_64-unknown-linux-gnu.tar.gz';
|
|
15
|
+
await writeFile(join(artifactsDir, muslArchive), 'musl');
|
|
16
|
+
await writeFile(join(artifactsDir, `${muslArchive}.sha256`), 'musl-checksum\n');
|
|
17
|
+
await writeFile(join(artifactsDir, glibcArchive), 'glibc');
|
|
18
|
+
await writeFile(join(artifactsDir, `${glibcArchive}.sha256`), 'glibc-checksum\n');
|
|
19
|
+
const planPath = join(root, 'dist-plan.json');
|
|
20
|
+
await writeFile(planPath, JSON.stringify({
|
|
21
|
+
announcement_tag: 'v0.10.2',
|
|
22
|
+
releases: [
|
|
23
|
+
{ app_name: 'omx-sparkshell', app_version: '0.10.2' },
|
|
24
|
+
],
|
|
25
|
+
artifacts: {
|
|
26
|
+
linuxGlibc: {
|
|
27
|
+
kind: 'executable-zip',
|
|
28
|
+
name: glibcArchive,
|
|
29
|
+
checksum: `${glibcArchive}.sha256`,
|
|
30
|
+
target_triples: ['x86_64-unknown-linux-gnu'],
|
|
31
|
+
assets: [
|
|
32
|
+
{
|
|
33
|
+
kind: 'executable',
|
|
34
|
+
name: 'omx-sparkshell',
|
|
35
|
+
path: 'omx-sparkshell',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
linuxMusl: {
|
|
40
|
+
kind: 'executable-zip',
|
|
41
|
+
name: muslArchive,
|
|
42
|
+
checksum: `${muslArchive}.sha256`,
|
|
43
|
+
target_triples: ['x86_64-unknown-linux-musl'],
|
|
44
|
+
assets: [
|
|
45
|
+
{
|
|
46
|
+
kind: 'executable',
|
|
47
|
+
name: 'omx-sparkshell',
|
|
48
|
+
path: 'omx-sparkshell',
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
}, null, 2));
|
|
54
|
+
const outputPath = join(root, 'native-release-manifest.json');
|
|
55
|
+
const result = spawnSync(process.execPath, [
|
|
56
|
+
join(process.cwd(), 'scripts', 'generate-native-release-manifest.mjs'),
|
|
57
|
+
'--plan',
|
|
58
|
+
planPath,
|
|
59
|
+
'--artifacts-dir',
|
|
60
|
+
artifactsDir,
|
|
61
|
+
'--out',
|
|
62
|
+
outputPath,
|
|
63
|
+
'--release-base-url',
|
|
64
|
+
'https://github.com/example/releases/download/v0.10.2',
|
|
65
|
+
], {
|
|
66
|
+
cwd: process.cwd(),
|
|
67
|
+
encoding: 'utf-8',
|
|
68
|
+
});
|
|
69
|
+
assert.equal(result.status, 0, result.stderr || result.stdout);
|
|
70
|
+
const manifest = JSON.parse(await readFile(outputPath, 'utf-8'));
|
|
71
|
+
assert.deepEqual(manifest.assets.map((asset) => asset.archive), [muslArchive, glibcArchive]);
|
|
72
|
+
assert.deepEqual(manifest.assets.map((asset) => asset.libc), ['musl', 'glibc']);
|
|
73
|
+
assert.deepEqual(manifest.assets.map((asset) => asset.target), ['x86_64-unknown-linux-musl', 'x86_64-unknown-linux-gnu']);
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
await rm(root, { recursive: true, force: true });
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=native-release-manifest.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-release-manifest.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/native-release-manifest.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/prompts/executor.md
CHANGED
|
@@ -151,11 +151,26 @@ Default final-output shape: concise and evidence-dense unless the user asked for
|
|
|
151
151
|
**Bad:** The user says `merge if CI green`, and you reply `Should I check CI?` instead of checking it.
|
|
152
152
|
</scenario_handling>
|
|
153
153
|
|
|
154
|
+
<lore_commits>
|
|
155
|
+
When committing code, follow the Lore commit protocol:
|
|
156
|
+
- Intent line first: describe *why*, not *what* (the diff shows what).
|
|
157
|
+
- Add git trailers after a blank line for decision context:
|
|
158
|
+
- `Constraint:` — external forces that shaped the decision
|
|
159
|
+
- `Rejected: <alternative> | <reason>` — dead ends future agents shouldn't revisit
|
|
160
|
+
- `Directive:` — warnings for future modifiers ("do not X without Y")
|
|
161
|
+
- `Confidence:` — low/medium/high
|
|
162
|
+
- `Scope-risk:` — narrow/moderate/broad
|
|
163
|
+
- `Tested:` / `Not-tested:` — verification coverage and gaps
|
|
164
|
+
- Use only the trailers that add value; all are optional.
|
|
165
|
+
- Keep the body concise but include enough context for a future agent to understand the decision without reading the diff.
|
|
166
|
+
</lore_commits>
|
|
167
|
+
|
|
154
168
|
<final_checklist>
|
|
155
169
|
- Did I fully implement the requested behavior?
|
|
156
170
|
- Did I verify with fresh command output?
|
|
157
171
|
- Did I keep scope tight and changes minimal?
|
|
158
172
|
- Did I avoid unnecessary abstractions?
|
|
159
173
|
- Did I include evidence-backed completion details?
|
|
174
|
+
- Did I write Lore-format commit messages with decision context?
|
|
160
175
|
</final_checklist>
|
|
161
176
|
</style>
|