@pleri/olam-cli 0.1.147 → 0.1.150
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/agent-stream/agent-sdk-to-chunks.js +276 -0
- package/dist/agent-stream/agent-stream-launch.js +348 -0
- package/dist/agent-stream/chunks-subscriber-transport.js +262 -0
- package/dist/agent-stream/codex-runner.js +188 -0
- package/dist/agent-stream/driver-runner.js +347 -0
- package/dist/agent-stream/operator-subscription.js +179 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +26 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +39 -0
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/doctor.d.ts +54 -3
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +348 -6
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +46 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +90 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/kg-build.d.ts +23 -0
- package/dist/commands/kg-build.d.ts.map +1 -1
- package/dist/commands/kg-build.js +104 -2
- package/dist/commands/kg-build.js.map +1 -1
- package/dist/commands/restart.d.ts +18 -0
- package/dist/commands/restart.d.ts.map +1 -0
- package/dist/commands/restart.js +113 -0
- package/dist/commands/restart.js.map +1 -0
- package/dist/commands/services.d.ts +41 -3
- package/dist/commands/services.d.ts.map +1 -1
- package/dist/commands/services.js +221 -13
- package/dist/commands/services.js.map +1 -1
- package/dist/commands/setup-linux-gate.d.ts +26 -0
- package/dist/commands/setup-linux-gate.d.ts.map +1 -0
- package/dist/commands/setup-linux-gate.js +42 -0
- package/dist/commands/setup-linux-gate.js.map +1 -0
- package/dist/commands/setup-metrics.d.ts +26 -0
- package/dist/commands/setup-metrics.d.ts.map +1 -0
- package/dist/commands/setup-metrics.js +57 -0
- package/dist/commands/setup-metrics.js.map +1 -0
- package/dist/commands/setup-phase-5a-skill-source.d.ts +68 -0
- package/dist/commands/setup-phase-5a-skill-source.d.ts.map +1 -0
- package/dist/commands/setup-phase-5a-skill-source.js +196 -0
- package/dist/commands/setup-phase-5a-skill-source.js.map +1 -0
- package/dist/commands/setup-phase-5b-project-sweep.d.ts +38 -0
- package/dist/commands/setup-phase-5b-project-sweep.d.ts.map +1 -0
- package/dist/commands/setup-phase-5b-project-sweep.js +176 -0
- package/dist/commands/setup-phase-5b-project-sweep.js.map +1 -0
- package/dist/commands/setup.d.ts +19 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +22 -0
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skills-10x.d.ts +23 -0
- package/dist/commands/skills-10x.d.ts.map +1 -0
- package/dist/commands/skills-10x.js +308 -0
- package/dist/commands/skills-10x.js.map +1 -0
- package/dist/commands/substrate-audit-log.d.ts +2 -0
- package/dist/commands/substrate-audit-log.d.ts.map +1 -1
- package/dist/commands/substrate-audit-log.js +13 -0
- package/dist/commands/substrate-audit-log.js.map +1 -1
- package/dist/image-digests.json +7 -7
- package/dist/index.js +18102 -15234
- package/dist/index.js.map +1 -1
- package/dist/lib/auth-refresh-kubernetes.d.ts +62 -0
- package/dist/lib/auth-refresh-kubernetes.d.ts.map +1 -0
- package/dist/lib/auth-refresh-kubernetes.js +127 -0
- package/dist/lib/auth-refresh-kubernetes.js.map +1 -0
- package/dist/lib/build-if-stale.d.ts +33 -0
- package/dist/lib/build-if-stale.d.ts.map +1 -0
- package/dist/lib/build-if-stale.js +156 -0
- package/dist/lib/build-if-stale.js.map +1 -0
- package/dist/lib/bundle-freshness.d.ts +57 -0
- package/dist/lib/bundle-freshness.d.ts.map +1 -0
- package/dist/lib/bundle-freshness.js +223 -0
- package/dist/lib/bundle-freshness.js.map +1 -0
- package/dist/lib/bundle-source.d.ts +52 -0
- package/dist/lib/bundle-source.d.ts.map +1 -0
- package/dist/lib/bundle-source.js +83 -0
- package/dist/lib/bundle-source.js.map +1 -0
- package/dist/lib/kubectl-wrap.d.ts +6 -0
- package/dist/lib/kubectl-wrap.d.ts.map +1 -1
- package/dist/lib/kubectl-wrap.js +6 -1
- package/dist/lib/kubectl-wrap.js.map +1 -1
- package/dist/lib/manifest-refresh.d.ts +42 -1
- package/dist/lib/manifest-refresh.d.ts.map +1 -1
- package/dist/lib/manifest-refresh.js +83 -7
- package/dist/lib/manifest-refresh.js.map +1 -1
- package/dist/lib/peripheral-registry.d.ts +36 -0
- package/dist/lib/peripheral-registry.d.ts.map +1 -0
- package/dist/lib/peripheral-registry.js +55 -0
- package/dist/lib/peripheral-registry.js.map +1 -0
- package/dist/lib/port-forward.d.ts +67 -0
- package/dist/lib/port-forward.d.ts.map +1 -1
- package/dist/lib/port-forward.js +153 -0
- package/dist/lib/port-forward.js.map +1 -1
- package/dist/lib/upgrade-kubernetes.d.ts +52 -12
- package/dist/lib/upgrade-kubernetes.d.ts.map +1 -1
- package/dist/lib/upgrade-kubernetes.js +390 -22
- package/dist/lib/upgrade-kubernetes.js.map +1 -1
- package/dist/mcp-server.js +84 -58
- package/host-cp/compose.yaml +6 -0
- package/host-cp/k8s/manifests/30-configmap.yaml +6 -0
- package/host-cp/k8s/manifests/50-deployment.yaml +46 -9
- package/host-cp/k8s/manifests/auth-service/10-serviceaccount.yaml +8 -0
- package/host-cp/k8s/manifests/auth-service/20-rbac.yaml +34 -0
- package/host-cp/k8s/manifests/auth-service/30-configmap.yaml +24 -0
- package/host-cp/k8s/manifests/auth-service/45-pvc.yaml +25 -0
- package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +117 -0
- package/host-cp/k8s/manifests/auth-service/60-service.yaml +21 -0
- package/host-cp/k8s/manifests/kg-service/10-serviceaccount.yaml +8 -0
- package/host-cp/k8s/manifests/kg-service/20-rbac.yaml +34 -0
- package/host-cp/k8s/manifests/kg-service/30-configmap.yaml +18 -0
- package/host-cp/k8s/manifests/kg-service/45-pvc.yaml +25 -0
- package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +108 -0
- package/host-cp/k8s/manifests/kg-service/60-service.yaml +21 -0
- package/host-cp/k8s/manifests/mcp-auth-service/10-serviceaccount.yaml +8 -0
- package/host-cp/k8s/manifests/mcp-auth-service/20-rbac.yaml +34 -0
- package/host-cp/k8s/manifests/mcp-auth-service/30-configmap.yaml +18 -0
- package/host-cp/k8s/manifests/mcp-auth-service/45-pvc.yaml +25 -0
- package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +117 -0
- package/host-cp/k8s/manifests/mcp-auth-service/60-service.yaml +21 -0
- package/host-cp/k8s/manifests/memory-service/10-serviceaccount.yaml +8 -0
- package/host-cp/k8s/manifests/memory-service/20-rbac.yaml +34 -0
- package/host-cp/k8s/manifests/memory-service/30-configmap.yaml +20 -0
- package/host-cp/k8s/manifests/memory-service/45-pvc.yaml +25 -0
- package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +121 -0
- package/host-cp/k8s/manifests/memory-service/60-service.yaml +21 -0
- package/host-cp/k8s/templates/auth-service-secret-template.yaml +28 -0
- package/host-cp/k8s/templates/kg-service-secret-template.yaml +28 -0
- package/host-cp/k8s/templates/mcp-auth-service-secret-template.yaml +28 -0
- package/host-cp/k8s/templates/memory-service-secret-template.yaml +29 -0
- package/host-cp/src/agent-runtime-trigger.mjs +7 -5
- package/host-cp/src/plan-chat-secret.mjs +13 -2
- package/host-cp/src/plan-chat-service.mjs +116 -15
- package/host-cp/src/server.mjs +23 -11
- package/host-cp/src/upgrade-spawner.mjs +10 -5
- package/package.json +4 -2
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* olam skills 10x — sub-namespace for managing the /10x: planning chain
|
|
3
|
+
* skills + beads (bd) integration.
|
|
4
|
+
*
|
|
5
|
+
* olam skills 10x install [--no-beads] Sync chain skills via existing
|
|
6
|
+
* syncSkills() machinery + auto-
|
|
7
|
+
* bootstrap beads.
|
|
8
|
+
* olam skills 10x uninstall Remove /10x: chain skill symlinks.
|
|
9
|
+
* olam skills 10x doctor Health probe: chain skill presence
|
|
10
|
+
* + beads CLI + beads project init +
|
|
11
|
+
* beads Claude hooks.
|
|
12
|
+
* olam skills 10x version Show olam-cli version + registered
|
|
13
|
+
* skill source identities.
|
|
14
|
+
*
|
|
15
|
+
* Per Pass 3.1 scope-reduction (olam-harness-flywheel.md): this is a thin
|
|
16
|
+
* wrapper over the existing `olam skills` surface (skills.ts, skills-hook.ts,
|
|
17
|
+
* skills-doctor.ts). The 10x sub-namespace gives /10x: chain skills their own
|
|
18
|
+
* verb without colliding with `olam install` (which provisions worlds, not
|
|
19
|
+
* skills).
|
|
20
|
+
*/
|
|
21
|
+
import { execFileSync } from 'node:child_process';
|
|
22
|
+
import * as fs from 'node:fs';
|
|
23
|
+
import * as path from 'node:path';
|
|
24
|
+
import { syncSkills, listSkillSources, claudeDir, } from '@olam/core/src/skill-sources/index.js';
|
|
25
|
+
import { readCliVersion } from '../cli-version.js';
|
|
26
|
+
import { printError, printSuccess, printWarning } from '../output.js';
|
|
27
|
+
const CHAIN_SKILL_NAMES = [
|
|
28
|
+
'10x:brainstorm',
|
|
29
|
+
'10x:plan-hard',
|
|
30
|
+
'10x:review-plan',
|
|
31
|
+
'10x:break-plan',
|
|
32
|
+
'10x:commit-plan',
|
|
33
|
+
'10x:execute',
|
|
34
|
+
'10x:retro',
|
|
35
|
+
'10x:learn',
|
|
36
|
+
];
|
|
37
|
+
function asMessage(err) {
|
|
38
|
+
return err instanceof Error ? err.message : String(err);
|
|
39
|
+
}
|
|
40
|
+
function hasBeadsCli() {
|
|
41
|
+
try {
|
|
42
|
+
execFileSync('bd', ['--version'], { stdio: 'ignore' });
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function hasBeadsProjectInit(cwd) {
|
|
50
|
+
return fs.existsSync(path.join(cwd, '.beads'));
|
|
51
|
+
}
|
|
52
|
+
function hasBeadsClaudeSetup() {
|
|
53
|
+
const settingsPath = path.join(claudeDir(), 'settings.json');
|
|
54
|
+
if (!fs.existsSync(settingsPath))
|
|
55
|
+
return false;
|
|
56
|
+
try {
|
|
57
|
+
const content = fs.readFileSync(settingsPath, 'utf8');
|
|
58
|
+
// Sentinel detection: `bd setup claude` writes hook entries whose
|
|
59
|
+
// `command` field invokes the `bd` binary directly. Look for a
|
|
60
|
+
// specific shape rather than the word `bd` anywhere — the looser
|
|
61
|
+
// form false-positives on user comments, paths, or unrelated tokens
|
|
62
|
+
// (CP3 audit S-LOW finding).
|
|
63
|
+
return /"command"\s*:\s*"bd\b/.test(content) || /"bd setup\b/.test(content);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async function bootstrapBeads(cwd) {
|
|
70
|
+
if (!hasBeadsCli()) {
|
|
71
|
+
printWarning('beads CLI (bd) not installed — skipping bd auto-bootstrap. Install: brew install beads OR npm i -g @beads/bd');
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (!hasBeadsProjectInit(cwd)) {
|
|
75
|
+
console.log('bd init — initializing beads in current project');
|
|
76
|
+
try {
|
|
77
|
+
execFileSync('bd', ['init', '--quiet', '--stealth'], {
|
|
78
|
+
cwd,
|
|
79
|
+
stdio: 'inherit',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
printWarning(`bd init failed (continuing): ${asMessage(err)}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
console.log('beads project already initialized — skipping bd init');
|
|
88
|
+
}
|
|
89
|
+
if (!hasBeadsClaudeSetup()) {
|
|
90
|
+
console.log('bd setup claude — installing beads Claude Code hooks');
|
|
91
|
+
try {
|
|
92
|
+
execFileSync('bd', ['setup', 'claude'], { cwd, stdio: 'inherit' });
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
printWarning(`bd setup claude failed (continuing): ${asMessage(err)}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.log('beads Claude hooks already installed — skipping bd setup');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function captureSourceShas() {
|
|
103
|
+
return listSkillSources().map((s) => ({
|
|
104
|
+
id: s.id,
|
|
105
|
+
name: s.name,
|
|
106
|
+
sha: s.lastPulledSha,
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
function diffSourceShas(before, after) {
|
|
110
|
+
const beforeMap = new Map(before.map((s) => [s.id, s]));
|
|
111
|
+
const bumps = [];
|
|
112
|
+
for (const post of after) {
|
|
113
|
+
const pre = beforeMap.get(post.id);
|
|
114
|
+
if (!pre || pre.sha !== post.sha) {
|
|
115
|
+
bumps.push({
|
|
116
|
+
id: post.id,
|
|
117
|
+
name: post.name,
|
|
118
|
+
from: pre?.sha,
|
|
119
|
+
to: post.sha,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return bumps;
|
|
124
|
+
}
|
|
125
|
+
function shortSha(sha) {
|
|
126
|
+
if (!sha)
|
|
127
|
+
return '<none>';
|
|
128
|
+
return sha.slice(0, 8);
|
|
129
|
+
}
|
|
130
|
+
function listInstalledClaudeSkills() {
|
|
131
|
+
const skillsDir = path.join(claudeDir(), 'skills');
|
|
132
|
+
if (!fs.existsSync(skillsDir))
|
|
133
|
+
return [];
|
|
134
|
+
try {
|
|
135
|
+
return fs.readdirSync(skillsDir).filter((name) => {
|
|
136
|
+
try {
|
|
137
|
+
const stat = fs.lstatSync(path.join(skillsDir, name));
|
|
138
|
+
return stat.isSymbolicLink() || stat.isDirectory();
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function isChainSkill(name) {
|
|
150
|
+
// Tolerant match: chain skills may land as `10x:brainstorm`, `brainstorm`,
|
|
151
|
+
// or `10x-brainstorm` depending on source-side naming. Speculative
|
|
152
|
+
// `endsWith(':${slug}')` branch dropped — no source emits it (CP3 audit
|
|
153
|
+
// S-LOW finding); add back when a real consumer is identified.
|
|
154
|
+
const lower = name.toLowerCase();
|
|
155
|
+
return CHAIN_SKILL_NAMES.some((canonical) => {
|
|
156
|
+
const slug = canonical.replace(/^10x:/, '');
|
|
157
|
+
return (lower === canonical.toLowerCase() ||
|
|
158
|
+
lower === slug ||
|
|
159
|
+
lower === `10x-${slug}`);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
export function registerSkills10x(program) {
|
|
163
|
+
const skills = program.commands.find((c) => c.name() === 'skills') ??
|
|
164
|
+
program.command('skills').description('Manage skill sources and synchronization');
|
|
165
|
+
const tenx = skills
|
|
166
|
+
.command('10x')
|
|
167
|
+
.description('Manage the /10x: planning chain skills + beads integration');
|
|
168
|
+
tenx
|
|
169
|
+
.command('install')
|
|
170
|
+
.description('Sync /10x: chain skills from registered sources + auto-bootstrap beads (bd init + bd setup claude). Surfaces source-SHA bumps + shadow-backups for sentinel-versioned upgrade.')
|
|
171
|
+
.option('--no-beads', 'Skip beads auto-bootstrap (chain skills only)')
|
|
172
|
+
.option('--force', 'Suppress shadow-backup warning + proceed without operator attention (shadow backups are still created by the sync engine; this flag only suppresses the surface-prominence)')
|
|
173
|
+
.action(async (opts) => {
|
|
174
|
+
try {
|
|
175
|
+
// A2 — capture pre-sync SHAs to detect canonical-version bumps
|
|
176
|
+
// after sync completes.
|
|
177
|
+
const preSync = captureSourceShas();
|
|
178
|
+
console.log('Syncing /10x: chain skills from registered sources...');
|
|
179
|
+
const summary = await syncSkills({});
|
|
180
|
+
printSuccess(`Synced ${summary.artifactCount} artifact(s) from ${summary.sourceCount} source(s)`);
|
|
181
|
+
// A2 — surface canonical-version bumps (lastPulledSha changes).
|
|
182
|
+
const postSync = captureSourceShas();
|
|
183
|
+
const bumps = diffSourceShas(preSync, postSync);
|
|
184
|
+
if (bumps.length > 0) {
|
|
185
|
+
console.log('');
|
|
186
|
+
console.log(`Canonical-version bumps detected (${bumps.length}):`);
|
|
187
|
+
for (const b of bumps) {
|
|
188
|
+
console.log(` ${b.name}: ${shortSha(b.from)} → ${shortSha(b.to)}`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// A2 — surface shadow-backups. These are created by the sync engine
|
|
192
|
+
// whenever a non-symlink (locally-edited) file would be overwritten.
|
|
193
|
+
// Operator attention required unless --force.
|
|
194
|
+
const shadowBackups = summary.deploy?.shadowBackups ?? [];
|
|
195
|
+
if (shadowBackups.length > 0 && !opts.force) {
|
|
196
|
+
printWarning(`${shadowBackups.length} shadow backup(s) created — local edits preserved at .pre-sync-* paths:`);
|
|
197
|
+
for (const p of shadowBackups)
|
|
198
|
+
console.log(` ${p}`);
|
|
199
|
+
console.log(' Review backups; re-run with --force to suppress this warning.');
|
|
200
|
+
}
|
|
201
|
+
else if (shadowBackups.length > 0 && opts.force) {
|
|
202
|
+
console.log(`--force — ${shadowBackups.length} shadow backup(s) created silently`);
|
|
203
|
+
}
|
|
204
|
+
if (opts.beads !== false) {
|
|
205
|
+
await bootstrapBeads(process.cwd());
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
console.log('--no-beads — skipping beads auto-bootstrap');
|
|
209
|
+
}
|
|
210
|
+
printSuccess('olam skills 10x install complete');
|
|
211
|
+
console.log('Verify with: olam skills 10x doctor');
|
|
212
|
+
}
|
|
213
|
+
catch (err) {
|
|
214
|
+
printError(`Install failed: ${asMessage(err)}`);
|
|
215
|
+
process.exitCode = 1;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
tenx
|
|
219
|
+
.command('uninstall')
|
|
220
|
+
.description('Remove /10x: chain skill symlinks from ~/.claude/skills (preserves user-authored skills + non-chain skill sources)')
|
|
221
|
+
.action(() => {
|
|
222
|
+
const skillsDir = path.join(claudeDir(), 'skills');
|
|
223
|
+
if (!fs.existsSync(skillsDir)) {
|
|
224
|
+
printWarning('No ~/.claude/skills/ directory found; nothing to uninstall');
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
let removed = 0;
|
|
228
|
+
for (const name of fs.readdirSync(skillsDir)) {
|
|
229
|
+
const full = path.join(skillsDir, name);
|
|
230
|
+
try {
|
|
231
|
+
const stat = fs.lstatSync(full);
|
|
232
|
+
if (!stat.isSymbolicLink())
|
|
233
|
+
continue;
|
|
234
|
+
const target = fs.readlinkSync(full);
|
|
235
|
+
// Only unlink symlinks whose name OR target path identifies them
|
|
236
|
+
// as /10x: chain skills. Conservative: leave non-chain symlinks alone.
|
|
237
|
+
if (isChainSkill(name) || /\/10x[-:]/.test(target)) {
|
|
238
|
+
fs.unlinkSync(full);
|
|
239
|
+
removed += 1;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
// ignore
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
printSuccess(`Removed ${removed} /10x: chain skill symlink(s)`);
|
|
247
|
+
console.log('User-authored + non-chain skill sources preserved');
|
|
248
|
+
});
|
|
249
|
+
tenx
|
|
250
|
+
.command('doctor')
|
|
251
|
+
.description('Diagnose /10x: chain skill installation + beads bootstrap state')
|
|
252
|
+
.action(() => {
|
|
253
|
+
console.log('=== /10x: chain skills + beads health ===');
|
|
254
|
+
const installed = listInstalledClaudeSkills();
|
|
255
|
+
const chainInstalled = installed.filter(isChainSkill);
|
|
256
|
+
console.log(` /10x: chain skills: ${chainInstalled.length} / ${CHAIN_SKILL_NAMES.length} installed`);
|
|
257
|
+
for (const canonical of CHAIN_SKILL_NAMES) {
|
|
258
|
+
const slug = canonical.replace(/^10x:/, '');
|
|
259
|
+
const found = installed.some((n) => n.toLowerCase() === canonical.toLowerCase() ||
|
|
260
|
+
n.toLowerCase() === slug ||
|
|
261
|
+
n.toLowerCase() === `10x-${slug}`);
|
|
262
|
+
console.log(` ${found ? '✓' : '✗'} ${canonical}`);
|
|
263
|
+
}
|
|
264
|
+
const bdCli = hasBeadsCli();
|
|
265
|
+
const bdInit = hasBeadsProjectInit(process.cwd());
|
|
266
|
+
const bdHooks = hasBeadsClaudeSetup();
|
|
267
|
+
console.log(` beads CLI installed: ${bdCli ? '✓' : '✗'}`);
|
|
268
|
+
console.log(` beads project init: ${bdInit ? '✓' : '✗'} (cwd)`);
|
|
269
|
+
console.log(` beads Claude hooks: ${bdHooks ? '✓' : '✗'}`);
|
|
270
|
+
const allChainPresent = chainInstalled.length === CHAIN_SKILL_NAMES.length;
|
|
271
|
+
const allOk = allChainPresent && bdCli && bdInit && bdHooks;
|
|
272
|
+
if (allOk) {
|
|
273
|
+
printSuccess('All /10x: chain skill + beads checks pass');
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
const fixHints = [];
|
|
277
|
+
if (!allChainPresent)
|
|
278
|
+
fixHints.push('olam skills 10x install');
|
|
279
|
+
if (!bdCli)
|
|
280
|
+
fixHints.push('brew install beads OR npm i -g @beads/bd');
|
|
281
|
+
if (!bdInit)
|
|
282
|
+
fixHints.push('bd init');
|
|
283
|
+
if (!bdHooks)
|
|
284
|
+
fixHints.push('bd setup claude');
|
|
285
|
+
printWarning('Some checks failed. Remediate via:');
|
|
286
|
+
for (const hint of fixHints)
|
|
287
|
+
console.log(` $ ${hint}`);
|
|
288
|
+
process.exitCode = 1;
|
|
289
|
+
});
|
|
290
|
+
tenx
|
|
291
|
+
.command('version')
|
|
292
|
+
.description('Show olam-cli version + registered chain-skill source identities')
|
|
293
|
+
.action(() => {
|
|
294
|
+
const olamVersion = readCliVersion();
|
|
295
|
+
const sources = listSkillSources();
|
|
296
|
+
console.log(`olam-cli: ${olamVersion}`);
|
|
297
|
+
console.log(`chain canonical: ${CHAIN_SKILL_NAMES.length} skills (/10x: chain)`);
|
|
298
|
+
console.log(`registered sources: ${sources.length}`);
|
|
299
|
+
for (const s of sources) {
|
|
300
|
+
const shortId = s.id ? s.id.slice(0, 8) : '????????';
|
|
301
|
+
console.log(` [${shortId}] ${s.name} ${s.gitUrl}#${s.branch}`);
|
|
302
|
+
}
|
|
303
|
+
if (sources.length === 0) {
|
|
304
|
+
printWarning('No skill sources registered. Add one via: olam skills source add <url>');
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=skills-10x.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-10x.js","sourceRoot":"","sources":["../../src/commands/skills-10x.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,8 @@ export interface AuditLogOpts {
|
|
|
33
33
|
readonly json?: boolean;
|
|
34
34
|
readonly since?: string;
|
|
35
35
|
readonly limit?: number | string;
|
|
36
|
+
/** When set, filter entries to only those with matching peripheral field (C4/D19). */
|
|
37
|
+
readonly peripheral?: string;
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
40
|
* Implementation of `olam substrate audit-log`. Exported for testability.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"substrate-audit-log.d.ts","sourceRoot":"","sources":["../../src/commands/substrate-audit-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"substrate-audit-log.d.ts","sourceRoot":"","sources":["../../src/commands/substrate-audit-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAQ9B,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA2CD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,GAAE,YAAiB,GAAG,MAAM,CAsFlF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAoBxE"}
|
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
import * as fs from 'node:fs';
|
|
24
24
|
import pc from 'picocolors';
|
|
25
25
|
import { MANIFEST_REFRESH_AUDIT_LOG } from '../lib/manifest-refresh.js';
|
|
26
|
+
import { PERIPHERALS } from '../lib/peripheral-registry.js';
|
|
27
|
+
/** Sorted list of valid peripheral names from the canonical registry. */
|
|
28
|
+
const VALID_PERIPHERAL_NAMES = PERIPHERALS.map((p) => p.name).sort();
|
|
26
29
|
const DEFAULT_LIMIT = 50;
|
|
27
30
|
/**
|
|
28
31
|
* Parse the JSONL audit log file into entries. Skips malformed lines.
|
|
@@ -88,6 +91,14 @@ export function handleAuditLog(opts, deps = {}) {
|
|
|
88
91
|
return 1;
|
|
89
92
|
}
|
|
90
93
|
let entries = parseAuditLog(raw);
|
|
94
|
+
// --peripheral filter (C4/D19): validate name against PERIPHERALS registry; reject unknown.
|
|
95
|
+
if (opts.peripheral) {
|
|
96
|
+
if (!VALID_PERIPHERAL_NAMES.includes(opts.peripheral)) {
|
|
97
|
+
stderr.write(`${pc.red('error:')} unknown peripheral "${opts.peripheral}". Valid names: ${VALID_PERIPHERAL_NAMES.join(', ')}\n`);
|
|
98
|
+
return 1;
|
|
99
|
+
}
|
|
100
|
+
entries = entries.filter((e) => e.peripheral === opts.peripheral);
|
|
101
|
+
}
|
|
91
102
|
// --since filter
|
|
92
103
|
if (opts.since) {
|
|
93
104
|
const sinceMs = Date.parse(opts.since);
|
|
@@ -135,11 +146,13 @@ export function registerSubstrateAuditLog(substrateCmdRef) {
|
|
|
135
146
|
.option('--json', 'Emit raw JSONL on stdout instead of a pretty table')
|
|
136
147
|
.option('--since <ISO-date>', 'Filter entries with timestamp >= <ISO-date>')
|
|
137
148
|
.option('--limit <N>', `Max entries to show (default ${DEFAULT_LIMIT})`)
|
|
149
|
+
.option('--peripheral <name>', 'Filter entries by peripheral name (C4/D19; e.g. auth-service)')
|
|
138
150
|
.action((opts) => {
|
|
139
151
|
const code = handleAuditLog({
|
|
140
152
|
json: opts.json,
|
|
141
153
|
since: opts.since,
|
|
142
154
|
limit: opts.limit,
|
|
155
|
+
peripheral: opts.peripheral,
|
|
143
156
|
});
|
|
144
157
|
if (code !== 0)
|
|
145
158
|
process.exitCode = code;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"substrate-audit-log.js","sourceRoot":"","sources":["../../src/commands/substrate-audit-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAkC,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"substrate-audit-log.js","sourceRoot":"","sources":["../../src/commands/substrate-audit-log.ts"],"names":[],"mappings":"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"}
|
package/dist/image-digests.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"auth": "sha256:
|
|
3
|
-
"devbox": "sha256:
|
|
4
|
-
"devbox-base": "sha256:
|
|
5
|
-
"host-cp": "sha256:
|
|
6
|
-
"kg-service": "sha256:
|
|
7
|
-
"mcp-auth": "sha256:
|
|
2
|
+
"auth": "sha256:8530c3ad6719eeadcd141ff04f6d209f57cdc9aff3636afd43e774d7445df8ee",
|
|
3
|
+
"devbox": "sha256:245a7bc2d600fa1c54d3301b09ecd1610cf87909583823b9e67977d413dc627b",
|
|
4
|
+
"devbox-base": "sha256:e5e98f3cd9c78fe1ced32842f3260e7833847ec31d50c9417566f590f9d5e1cc",
|
|
5
|
+
"host-cp": "sha256:3256501cfcd2efecd73083d74fa4f12ffe54d4a1842c95f7441d9079102e8bbb",
|
|
6
|
+
"kg-service": "sha256:7e213dcc29d865e1d99b4c92d381fa05dfd66677dce72590c23455a49e1afa4a",
|
|
7
|
+
"mcp-auth": "sha256:7f5ffeea1a697e43fd1d4569d1e82c78086b80d3f331efa2ea166c0ef4f70826",
|
|
8
8
|
"$schema_version": 1,
|
|
9
|
-
"$published_version": "0.1.
|
|
9
|
+
"$published_version": "0.1.150",
|
|
10
10
|
"$registry": "ghcr.io/pleri"
|
|
11
11
|
}
|