@pleri/olam-cli 0.1.196 → 0.1.198
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.md +52 -0
- package/dist/ask/knowledge-pack.generated.d.ts.map +1 -1
- package/dist/ask/knowledge-pack.generated.js +10 -8
- package/dist/ask/knowledge-pack.generated.js.map +1 -1
- package/dist/commands/auth-list-json.d.ts +34 -0
- package/dist/commands/auth-list-json.d.ts.map +1 -1
- package/dist/commands/auth-list-json.js +24 -0
- package/dist/commands/auth-list-json.js.map +1 -1
- package/dist/commands/auth-migrate.d.ts +212 -0
- package/dist/commands/auth-migrate.d.ts.map +1 -0
- package/dist/commands/auth-migrate.js +465 -0
- package/dist/commands/auth-migrate.js.map +1 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +239 -184
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/bootstrap.d.ts +4 -0
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +6 -0
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/dispatch.js +11 -1
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/doctor.d.ts +33 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +299 -12
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/kg-mirror.d.ts +18 -2
- package/dist/commands/kg-mirror.d.ts.map +1 -1
- package/dist/commands/kg-mirror.js +78 -3
- package/dist/commands/kg-mirror.js.map +1 -1
- package/dist/commands/mcp/complete.d.ts +36 -0
- package/dist/commands/mcp/complete.d.ts.map +1 -0
- package/dist/commands/mcp/complete.js +66 -0
- package/dist/commands/mcp/complete.js.map +1 -0
- package/dist/commands/mcp/index.d.ts +1 -1
- package/dist/commands/mcp/index.d.ts.map +1 -1
- package/dist/commands/mcp/index.js +3 -1
- package/dist/commands/mcp/index.js.map +1 -1
- package/dist/commands/memory/bridge.d.ts +1 -1
- package/dist/commands/memory/bridge.d.ts.map +1 -1
- package/dist/commands/memory/bridge.js +2 -6
- package/dist/commands/memory/bridge.js.map +1 -1
- package/dist/commands/memory/secret.d.ts.map +1 -1
- package/dist/commands/memory/secret.js +4 -3
- package/dist/commands/memory/secret.js.map +1 -1
- package/dist/commands/observe.d.ts +3 -3
- package/dist/commands/observe.d.ts.map +1 -1
- package/dist/commands/observe.js +11 -8
- package/dist/commands/observe.js.map +1 -1
- package/dist/commands/runbooks.d.ts.map +1 -1
- package/dist/commands/runbooks.js +77 -10
- package/dist/commands/runbooks.js.map +1 -1
- package/dist/commands/services-tls.d.ts.map +1 -1
- package/dist/commands/services-tls.js +41 -0
- package/dist/commands/services-tls.js.map +1 -1
- package/dist/commands/services.d.ts +35 -1
- package/dist/commands/services.d.ts.map +1 -1
- package/dist/commands/services.js +153 -32
- package/dist/commands/services.js.map +1 -1
- package/dist/commands/setup-phase-8-kg-hook.d.ts +48 -0
- package/dist/commands/setup-phase-8-kg-hook.d.ts.map +1 -0
- package/dist/commands/setup-phase-8-kg-hook.js +93 -0
- package/dist/commands/setup-phase-8-kg-hook.js.map +1 -0
- package/dist/commands/setup-phase-9-memory-bridge.d.ts +36 -0
- package/dist/commands/setup-phase-9-memory-bridge.d.ts.map +1 -0
- package/dist/commands/setup-phase-9-memory-bridge.js +59 -0
- package/dist/commands/setup-phase-9-memory-bridge.js.map +1 -0
- package/dist/commands/setup.d.ts +34 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +328 -23
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/update.d.ts +24 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +53 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.d.ts +5 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +31 -8
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/image-digests.json +8 -8
- package/dist/index.js +4193 -2426
- package/dist/lib/auth-backend.d.ts +168 -0
- package/dist/lib/auth-backend.d.ts.map +1 -0
- package/dist/lib/auth-backend.js +172 -0
- package/dist/lib/auth-backend.js.map +1 -0
- package/dist/lib/auth-list-cache.d.ts +67 -0
- package/dist/lib/auth-list-cache.d.ts.map +1 -0
- package/dist/lib/auth-list-cache.js +84 -0
- package/dist/lib/auth-list-cache.js.map +1 -0
- package/dist/lib/auth-list.d.ts +107 -0
- package/dist/lib/auth-list.d.ts.map +1 -0
- package/dist/lib/auth-list.js +123 -0
- package/dist/lib/auth-list.js.map +1 -0
- package/dist/lib/auth-login.d.ts +92 -0
- package/dist/lib/auth-login.d.ts.map +1 -0
- package/dist/lib/auth-login.js +124 -0
- package/dist/lib/auth-login.js.map +1 -0
- package/dist/lib/auth-mutator-backend.d.ts +54 -0
- package/dist/lib/auth-mutator-backend.d.ts.map +1 -0
- package/dist/lib/auth-mutator-backend.js +62 -0
- package/dist/lib/auth-mutator-backend.js.map +1 -0
- package/dist/lib/auth-remote.d.ts +50 -0
- package/dist/lib/auth-remote.d.ts.map +1 -1
- package/dist/lib/auth-remote.js +84 -2
- package/dist/lib/auth-remote.js.map +1 -1
- package/dist/lib/bootstrap-kubernetes.d.ts +69 -10
- package/dist/lib/bootstrap-kubernetes.d.ts.map +1 -1
- package/dist/lib/bootstrap-kubernetes.js +264 -46
- package/dist/lib/bootstrap-kubernetes.js.map +1 -1
- package/dist/lib/config.d.ts +7 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/health-probes.d.ts +0 -22
- package/dist/lib/health-probes.d.ts.map +1 -1
- package/dist/lib/health-probes.js +23 -2
- package/dist/lib/health-probes.js.map +1 -1
- package/dist/lib/peripheral-registry.d.ts +11 -0
- package/dist/lib/peripheral-registry.d.ts.map +1 -1
- package/dist/lib/peripheral-registry.js +5 -0
- package/dist/lib/peripheral-registry.js.map +1 -1
- package/dist/lib/plans-client.d.ts.map +1 -1
- package/dist/lib/plans-client.js +6 -3
- package/dist/lib/plans-client.js.map +1 -1
- package/dist/mcp-server.js +14 -3
- package/hermes-bundle/version.json +1 -1
- package/host-cp/k8s/manifests/30-configmap.yaml +4 -0
- package/host-cp/k8s/manifests/50-deployment.yaml +13 -1
- package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +1 -1
- package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +1 -1
- package/host-cp/src/dispatch-persister.mjs +157 -0
- package/host-cp/src/pr-nanny.mjs +7 -0
- package/host-cp/src/server.mjs +175 -3
- package/host-cp/src/world-watchdog-pid-lookup.mjs +119 -0
- package/host-cp/src/world-watchdog-probes.mjs +271 -0
- package/host-cp/src/world-watchdog-recovery.mjs +192 -0
- package/host-cp/src/world-watchdog.mjs +313 -0
- package/package.json +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 8 — KG hook install (olam setup --continue Phase 8).
|
|
3
|
+
*
|
|
4
|
+
* Installs the kg-service PreToolUse hook into `~/.claude/settings.json`
|
|
5
|
+
* (user scope) so that every new Claude Code session routes grep/find
|
|
6
|
+
* tool calls through the KG classifier.
|
|
7
|
+
*
|
|
8
|
+
* Equivalent to `olam kg install-hook --scope user`. Idempotent: if the
|
|
9
|
+
* sentinel is already present in ~/.claude/settings.json the phase skips
|
|
10
|
+
* with a friendly message.
|
|
11
|
+
*
|
|
12
|
+
* Dependency injection pattern mirrors setup-phase-5b-project-sweep.ts:
|
|
13
|
+
* - real @olam/core functions loaded lazily so this module resolves
|
|
14
|
+
* in vitest without a pre-built dist.
|
|
15
|
+
* - test callers inject stubs via KgHookPhaseDeps.
|
|
16
|
+
*/
|
|
17
|
+
import * as fs from 'node:fs';
|
|
18
|
+
import * as path from 'node:path';
|
|
19
|
+
import * as os from 'node:os';
|
|
20
|
+
// ── Lazy real-impl loaders ────────────────────────────────────────────────────
|
|
21
|
+
async function loadMergeHookFn() {
|
|
22
|
+
const m = await import('@olam/core/src/world/merge-settings.js');
|
|
23
|
+
return m.mergeHomeSettingsJson;
|
|
24
|
+
}
|
|
25
|
+
async function loadBuildHookEntryFn() {
|
|
26
|
+
const m = await import('@olam/core/src/kg/hook-template.js');
|
|
27
|
+
return m.buildHookMatcherEntry;
|
|
28
|
+
}
|
|
29
|
+
async function loadKgHookSentinel() {
|
|
30
|
+
const m = await import('@olam/core/src/kg/hook-template.js');
|
|
31
|
+
return m.KG_HOOK_SENTINEL;
|
|
32
|
+
}
|
|
33
|
+
// ── Default settings path (user scope — same as --scope user) ─────────────────
|
|
34
|
+
function defaultSettingsPath() {
|
|
35
|
+
return path.join(os.homedir(), '.claude', 'settings.json');
|
|
36
|
+
}
|
|
37
|
+
// ── Main export ───────────────────────────────────────────────────────────────
|
|
38
|
+
export async function runKgHookPhase(opts, _deps, kgDeps = {}) {
|
|
39
|
+
const settingsPath = kgDeps.settingsPath ?? defaultSettingsPath();
|
|
40
|
+
// Dry-run: describe what would happen without touching disk.
|
|
41
|
+
if (opts.dryRun) {
|
|
42
|
+
const printInfo = kgDeps.printInfo ??
|
|
43
|
+
((scope, msg) => process.stdout.write(`[${scope}] ${msg}\n`));
|
|
44
|
+
printInfo('kg-hook', `would install KG hook into ${settingsPath} (dry-run)`);
|
|
45
|
+
return {
|
|
46
|
+
ok: true,
|
|
47
|
+
skipped: true,
|
|
48
|
+
message: `dry-run: would install KG hook into ${settingsPath}`,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// Ensure directory exists.
|
|
52
|
+
const mkdirFn = kgDeps.mkdirSync ?? ((p, o) => fs.mkdirSync(p, o));
|
|
53
|
+
try {
|
|
54
|
+
mkdirFn(path.dirname(settingsPath), { recursive: true });
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
return {
|
|
58
|
+
ok: false,
|
|
59
|
+
message: `could not create ${path.dirname(settingsPath)}: ${err instanceof Error ? err.message : String(err)}`,
|
|
60
|
+
remedy: 'Ensure ~/.claude/ is writable, then re-run `olam setup --continue`.',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// Load real implementations lazily (injectable for tests).
|
|
64
|
+
const mergeHookFn = kgDeps.mergeHookFn ?? (await loadMergeHookFn());
|
|
65
|
+
const buildHookEntryFn = kgDeps.buildHookEntryFn ?? (await loadBuildHookEntryFn());
|
|
66
|
+
const kgHookSentinel = kgDeps.kgHookSentinel ?? (await loadKgHookSentinel());
|
|
67
|
+
let result;
|
|
68
|
+
try {
|
|
69
|
+
result = mergeHookFn(settingsPath, {
|
|
70
|
+
ensureHook: {
|
|
71
|
+
stage: 'PreToolUse',
|
|
72
|
+
sentinel: kgHookSentinel,
|
|
73
|
+
entry: buildHookEntryFn({ flavor: 'host' }),
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
return {
|
|
79
|
+
ok: false,
|
|
80
|
+
message: `KG hook install failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
81
|
+
remedy: 'Inspect ~/.claude/settings.json for syntax errors, then re-run `olam setup --continue`.',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
switch (result.status) {
|
|
85
|
+
case 'installed':
|
|
86
|
+
return { ok: true, message: `KG hook installed (${settingsPath})` };
|
|
87
|
+
case 'already-present':
|
|
88
|
+
return { ok: true, skipped: true, message: 'KG hook already installed — skipped' };
|
|
89
|
+
case 'no-op':
|
|
90
|
+
return { ok: true, message: `KG hook: no change to ${settingsPath}` };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=setup-phase-8-kg-hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-phase-8-kg-hook.js","sourceRoot":"","sources":["../../src/commands/setup-phase-8-kg-hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 9 — Agent memory bridge install (olam setup --continue Phase 9).
|
|
3
|
+
*
|
|
4
|
+
* Registers `agentmemory` as an MCP server with the operator's host claude
|
|
5
|
+
* (equivalent to `olam memory install --scope user`). Idempotent: `claude
|
|
6
|
+
* mcp add` is naturally idempotent — re-running overwrites the registration
|
|
7
|
+
* but produces exit 0.
|
|
8
|
+
*
|
|
9
|
+
* Pre-conditions handled gracefully (not failing the wizard):
|
|
10
|
+
* - `claude` not on PATH: phase skips with a remediation hint, not a
|
|
11
|
+
* hard failure (operator may not have Claude Code installed on every
|
|
12
|
+
* machine — Phase 9 is optional wiring, not a hard install blocker).
|
|
13
|
+
* - memory-secret missing: phase skips with a hint to run
|
|
14
|
+
* `olam memory start` first; the secret is generated on first start.
|
|
15
|
+
*
|
|
16
|
+
* Dependency injection pattern mirrors setup-phase-8-kg-hook.ts:
|
|
17
|
+
* - `runInstall` is injectable so tests don't shell out to real claude.
|
|
18
|
+
* - printFns injectable so tests can capture output.
|
|
19
|
+
*
|
|
20
|
+
* Plan reference: brainstorm docs/brainstorms/2026-05-29-olam-tutorial-mode.md
|
|
21
|
+
* Layer 1 implementation.
|
|
22
|
+
*/
|
|
23
|
+
import type { RunSetupOptions, RunSetupDeps, PhaseResult } from './setup.js';
|
|
24
|
+
import type { McpScope } from './mcp/install-shared.js';
|
|
25
|
+
import type { ClaudeShellDeps } from './mcp/install-shared.js';
|
|
26
|
+
import type { SecretReader } from './memory/install.js';
|
|
27
|
+
export type RunInstallFn = (opts: {
|
|
28
|
+
scope: McpScope;
|
|
29
|
+
readSecret?: SecretReader;
|
|
30
|
+
}, deps?: ClaudeShellDeps) => Promise<number>;
|
|
31
|
+
export interface MemoryBridgePhaseDeps {
|
|
32
|
+
readonly runInstallFn?: RunInstallFn;
|
|
33
|
+
readonly printInfo?: (scope: string, msg: string) => void;
|
|
34
|
+
}
|
|
35
|
+
export declare function runMemoryBridgePhase(opts: RunSetupOptions, _deps: RunSetupDeps, bridgeDeps?: MemoryBridgePhaseDeps): Promise<PhaseResult>;
|
|
36
|
+
//# sourceMappingURL=setup-phase-9-memory-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-phase-9-memory-bridge.d.ts","sourceRoot":"","sources":["../../src/commands/setup-phase-9-memory-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAE,YAAY,CAAA;CAAE,EACpD,IAAI,CAAC,EAAE,eAAe,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D;AAWD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,YAAY,EACnB,UAAU,GAAE,qBAA0B,GACrC,OAAO,CAAC,WAAW,CAAC,CAqCtB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 9 — Agent memory bridge install (olam setup --continue Phase 9).
|
|
3
|
+
*
|
|
4
|
+
* Registers `agentmemory` as an MCP server with the operator's host claude
|
|
5
|
+
* (equivalent to `olam memory install --scope user`). Idempotent: `claude
|
|
6
|
+
* mcp add` is naturally idempotent — re-running overwrites the registration
|
|
7
|
+
* but produces exit 0.
|
|
8
|
+
*
|
|
9
|
+
* Pre-conditions handled gracefully (not failing the wizard):
|
|
10
|
+
* - `claude` not on PATH: phase skips with a remediation hint, not a
|
|
11
|
+
* hard failure (operator may not have Claude Code installed on every
|
|
12
|
+
* machine — Phase 9 is optional wiring, not a hard install blocker).
|
|
13
|
+
* - memory-secret missing: phase skips with a hint to run
|
|
14
|
+
* `olam memory start` first; the secret is generated on first start.
|
|
15
|
+
*
|
|
16
|
+
* Dependency injection pattern mirrors setup-phase-8-kg-hook.ts:
|
|
17
|
+
* - `runInstall` is injectable so tests don't shell out to real claude.
|
|
18
|
+
* - printFns injectable so tests can capture output.
|
|
19
|
+
*
|
|
20
|
+
* Plan reference: brainstorm docs/brainstorms/2026-05-29-olam-tutorial-mode.md
|
|
21
|
+
* Layer 1 implementation.
|
|
22
|
+
*/
|
|
23
|
+
// ── Lazy real-impl loader ─────────────────────────────────────────────────────
|
|
24
|
+
async function loadRunInstallFn() {
|
|
25
|
+
const m = await import('./memory/install.js');
|
|
26
|
+
return m.runInstall;
|
|
27
|
+
}
|
|
28
|
+
// ── Main export ───────────────────────────────────────────────────────────────
|
|
29
|
+
export async function runMemoryBridgePhase(opts, _deps, bridgeDeps = {}) {
|
|
30
|
+
// Dry-run: describe what would happen without shelling out to claude.
|
|
31
|
+
if (opts.dryRun) {
|
|
32
|
+
const printInfo = bridgeDeps.printInfo ??
|
|
33
|
+
((scope, msg) => process.stdout.write(`[${scope}] ${msg}\n`));
|
|
34
|
+
printInfo('memory-bridge', 'would run `claude mcp add agentmemory --scope user` (dry-run)');
|
|
35
|
+
return {
|
|
36
|
+
ok: true,
|
|
37
|
+
skipped: true,
|
|
38
|
+
message: 'dry-run: would register agentmemory MCP with claude (--scope user)',
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const runInstallFn = bridgeDeps.runInstallFn ?? (await loadRunInstallFn());
|
|
42
|
+
const rc = await runInstallFn({ scope: 'user' });
|
|
43
|
+
if (rc === 0) {
|
|
44
|
+
return {
|
|
45
|
+
ok: true,
|
|
46
|
+
message: 'agentmemory MCP registered with claude (--scope user)',
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// Non-zero rc from runInstall means either:
|
|
50
|
+
// rc=1: claude not on PATH, OR secret missing.
|
|
51
|
+
// Both are soft failures for setup — operator can fix and re-run
|
|
52
|
+
// `olam setup --continue` or run `olam memory install` manually.
|
|
53
|
+
return {
|
|
54
|
+
ok: true,
|
|
55
|
+
skipped: true,
|
|
56
|
+
message: `agentmemory MCP registration skipped (rc=${rc}); run \`olam memory install\` after resolving`,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=setup-phase-9-memory-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-phase-9-memory-bridge.js","sourceRoot":"","sources":["../../src/commands/setup-phase-9-memory-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAmBH,iFAAiF;AAEjF,KAAK,UAAU,gBAAgB;IAC7B,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC,UAA0B,CAAC;AACtC,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAqB,EACrB,KAAmB,EACnB,aAAoC,EAAE;IAEtC,sEAAsE;IACtE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,SAAS,GACb,UAAU,CAAC,SAAS;YACpB,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QAChF,SAAS,CACP,eAAe,EACf,+DAA+D,CAChE,CAAC;QACF,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,oEAAoE;SAC9E,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;IAE3E,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjD,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,uDAAuD;SACjE,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,iDAAiD;IACjD,iEAAiE;IACjE,iEAAiE;IACjE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,4CAA4C,EAAE,gDAAgD;KACxG,CAAC;AACJ,CAAC"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* Phase 3.5: (no-op for docker)
|
|
29
29
|
* Phase 4: Shell init (idempotent append of completion eval-line)
|
|
30
30
|
* Phase 5: Init global config (ensure ~/.olam/config.json has host.substrate set)
|
|
31
|
-
* Phase 5a: Skill source picker
|
|
31
|
+
* Phase 5a: Skill source picker (runs unconditionally; auto-skips when sources already registered)
|
|
32
32
|
* Phase 5b: Project sweep
|
|
33
33
|
* Phase 6: Auth prompt (offer interactive `olam auth login`)
|
|
34
34
|
* Phase 7: Final verify (subprocess: olam doctor; halt on non-zero)
|
|
@@ -127,6 +127,38 @@ export interface RunSetupOptions {
|
|
|
127
127
|
* printed if the path doesn't exist.
|
|
128
128
|
*/
|
|
129
129
|
readonly hostCpDevPath?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Phase 0: skip the substrate picker (operator manages it manually
|
|
132
|
+
* via olam config set host.substrate). For non-interactive setups.
|
|
133
|
+
*/
|
|
134
|
+
readonly skipSubstratePicker?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* --continue: skip Phases 1-7 (assumes initial setup is already complete)
|
|
137
|
+
* and run ONLY Phase 8 (KG hook) + Phase 9 (memory bridge).
|
|
138
|
+
*
|
|
139
|
+
* Use after `olam setup` has run once successfully to add the two optional
|
|
140
|
+
* integration phases without re-running the full wizard.
|
|
141
|
+
*/
|
|
142
|
+
readonly continueMode?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Phase 8: skip KG hook install (operator will run `olam kg install-hook` later).
|
|
145
|
+
*/
|
|
146
|
+
readonly skipKgHook?: boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Phase 9: skip agent memory bridge install (operator will run
|
|
149
|
+
* `olam memory install` later).
|
|
150
|
+
*/
|
|
151
|
+
readonly skipMemoryBridge?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* [k3s] Forwarded to `olam bootstrap`: stream all phase output sequentially
|
|
154
|
+
* instead of collapsing each long phase to a live spinner line.
|
|
155
|
+
*/
|
|
156
|
+
readonly verbose?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* [k3s] Forwarded to `olam bootstrap`: skip pre-pulling olam-* images into
|
|
159
|
+
* the k3d node (pods cold-pull on demand).
|
|
160
|
+
*/
|
|
161
|
+
readonly skipPrepull?: boolean;
|
|
130
162
|
}
|
|
131
163
|
export type SpawnSubprocess = (cmd: string, args: ReadonlyArray<string>) => Promise<{
|
|
132
164
|
readonly status: number | null;
|
|
@@ -192,6 +224,7 @@ export interface SetupReport {
|
|
|
192
224
|
export declare function validateClusterName(name: string): string | null;
|
|
193
225
|
/** Migration hint printed once when an existing docker/compose install is detected. */
|
|
194
226
|
export declare const DOCKER_MIGRATION_HINT: string;
|
|
227
|
+
export declare function phase0SubstratePicker(opts: RunSetupOptions, deps: RunSetupDeps): Promise<PhaseResult>;
|
|
195
228
|
export declare function phase3_5K3dHttpsBootstrap(substrate: SetupSubstrate, opts: RunSetupOptions, _deps: RunSetupDeps): Promise<PhaseResult>;
|
|
196
229
|
export declare function runSetup(opts: RunSetupOptions, deps?: RunSetupDeps): Promise<SetupReport>;
|
|
197
230
|
export declare function registerSetup(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,OAAO,EAML,KAAK,UAAU,EAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|