@pleri/olam-cli 0.1.188 → 0.1.195

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.
Files changed (156) hide show
  1. package/README.md +1 -1
  2. package/dist/ask/knowledge-pack.generated.d.ts.map +1 -1
  3. package/dist/ask/knowledge-pack.generated.js +37 -12
  4. package/dist/ask/knowledge-pack.generated.js.map +1 -1
  5. package/dist/commands/bootstrap.d.ts +4 -0
  6. package/dist/commands/bootstrap.d.ts.map +1 -1
  7. package/dist/commands/bootstrap.js +6 -9
  8. package/dist/commands/bootstrap.js.map +1 -1
  9. package/dist/commands/clean.js +1 -1
  10. package/dist/commands/clean.js.map +1 -1
  11. package/dist/commands/completion.d.ts.map +1 -1
  12. package/dist/commands/completion.js +1 -4
  13. package/dist/commands/completion.js.map +1 -1
  14. package/dist/commands/create.d.ts.map +1 -1
  15. package/dist/commands/create.js +6 -0
  16. package/dist/commands/create.js.map +1 -1
  17. package/dist/commands/crystallize.js +12 -14
  18. package/dist/commands/crystallize.js.map +1 -1
  19. package/dist/commands/destroy.d.ts +13 -1
  20. package/dist/commands/destroy.d.ts.map +1 -1
  21. package/dist/commands/destroy.js +52 -6
  22. package/dist/commands/destroy.js.map +1 -1
  23. package/dist/commands/dispatch.d.ts +9 -0
  24. package/dist/commands/dispatch.d.ts.map +1 -1
  25. package/dist/commands/dispatch.js +21 -2
  26. package/dist/commands/dispatch.js.map +1 -1
  27. package/dist/commands/doctor.d.ts +1 -1
  28. package/dist/commands/doctor.d.ts.map +1 -1
  29. package/dist/commands/doctor.js +29 -22
  30. package/dist/commands/doctor.js.map +1 -1
  31. package/dist/commands/enter.d.ts +3 -3
  32. package/dist/commands/enter.d.ts.map +1 -1
  33. package/dist/commands/enter.js +57 -44
  34. package/dist/commands/enter.js.map +1 -1
  35. package/dist/commands/flywheel/index.d.ts.map +1 -1
  36. package/dist/commands/flywheel/index.js +1 -1
  37. package/dist/commands/flywheel/index.js.map +1 -1
  38. package/dist/commands/host-cp.d.ts.map +1 -1
  39. package/dist/commands/host-cp.js +2 -1
  40. package/dist/commands/host-cp.js.map +1 -1
  41. package/dist/commands/implode.d.ts.map +1 -1
  42. package/dist/commands/implode.js +1 -1
  43. package/dist/commands/implode.js.map +1 -1
  44. package/dist/commands/init.d.ts +20 -0
  45. package/dist/commands/init.d.ts.map +1 -1
  46. package/dist/commands/init.js +102 -9
  47. package/dist/commands/init.js.map +1 -1
  48. package/dist/commands/kg-build.d.ts.map +1 -1
  49. package/dist/commands/kg-build.js +3 -0
  50. package/dist/commands/kg-build.js.map +1 -1
  51. package/dist/commands/kg-classify.d.ts +20 -0
  52. package/dist/commands/kg-classify.d.ts.map +1 -1
  53. package/dist/commands/kg-classify.js +59 -42
  54. package/dist/commands/kg-classify.js.map +1 -1
  55. package/dist/commands/kg-mirror.d.ts +40 -0
  56. package/dist/commands/kg-mirror.d.ts.map +1 -0
  57. package/dist/commands/kg-mirror.js +228 -0
  58. package/dist/commands/kg-mirror.js.map +1 -0
  59. package/dist/commands/mcp/index.js +1 -1
  60. package/dist/commands/mcp/index.js.map +1 -1
  61. package/dist/commands/memory/index.d.ts.map +1 -1
  62. package/dist/commands/memory/index.js +1 -1
  63. package/dist/commands/memory/index.js.map +1 -1
  64. package/dist/commands/resume.d.ts.map +1 -1
  65. package/dist/commands/resume.js +1 -1
  66. package/dist/commands/resume.js.map +1 -1
  67. package/dist/commands/services-tls.d.ts +120 -0
  68. package/dist/commands/services-tls.d.ts.map +1 -0
  69. package/dist/commands/services-tls.js +434 -0
  70. package/dist/commands/services-tls.js.map +1 -0
  71. package/dist/commands/services.d.ts.map +1 -1
  72. package/dist/commands/services.js +28 -1
  73. package/dist/commands/services.js.map +1 -1
  74. package/dist/commands/setup-linux-gate.d.ts.map +1 -1
  75. package/dist/commands/setup-linux-gate.js +1 -3
  76. package/dist/commands/setup-linux-gate.js.map +1 -1
  77. package/dist/commands/setup-metrics.d.ts.map +1 -1
  78. package/dist/commands/setup-metrics.js +1 -2
  79. package/dist/commands/setup-metrics.js.map +1 -1
  80. package/dist/commands/setup-phase-5a-skill-source.d.ts +17 -1
  81. package/dist/commands/setup-phase-5a-skill-source.d.ts.map +1 -1
  82. package/dist/commands/setup-phase-5a-skill-source.js +69 -6
  83. package/dist/commands/setup-phase-5a-skill-source.js.map +1 -1
  84. package/dist/commands/setup.d.ts +26 -1
  85. package/dist/commands/setup.d.ts.map +1 -1
  86. package/dist/commands/setup.js +189 -47
  87. package/dist/commands/setup.js.map +1 -1
  88. package/dist/commands/skills-onboard.d.ts.map +1 -1
  89. package/dist/commands/skills-onboard.js +4 -1
  90. package/dist/commands/skills-onboard.js.map +1 -1
  91. package/dist/commands/skills-source.d.ts.map +1 -1
  92. package/dist/commands/skills-source.js +20 -4
  93. package/dist/commands/skills-source.js.map +1 -1
  94. package/dist/commands/status.js +1 -1
  95. package/dist/commands/status.js.map +1 -1
  96. package/dist/commands/upgrade.d.ts.map +1 -1
  97. package/dist/commands/upgrade.js +1 -3
  98. package/dist/commands/upgrade.js.map +1 -1
  99. package/dist/commands/yolo.d.ts.map +1 -1
  100. package/dist/commands/yolo.js +1 -1
  101. package/dist/commands/yolo.js.map +1 -1
  102. package/dist/context.d.ts +4 -0
  103. package/dist/context.d.ts.map +1 -1
  104. package/dist/context.js +3 -2
  105. package/dist/context.js.map +1 -1
  106. package/dist/image-digests.json +8 -8
  107. package/dist/index.js +3846 -2232
  108. package/dist/index.js.map +1 -1
  109. package/dist/lib/auth-refresh-kubernetes.d.ts.map +1 -1
  110. package/dist/lib/auth-refresh-kubernetes.js +14 -5
  111. package/dist/lib/auth-refresh-kubernetes.js.map +1 -1
  112. package/dist/lib/bootstrap-kubernetes.d.ts +41 -0
  113. package/dist/lib/bootstrap-kubernetes.d.ts.map +1 -1
  114. package/dist/lib/bootstrap-kubernetes.js +289 -36
  115. package/dist/lib/bootstrap-kubernetes.js.map +1 -1
  116. package/dist/lib/cf-access-token.d.ts.map +1 -1
  117. package/dist/lib/cf-access-token.js +2 -3
  118. package/dist/lib/cf-access-token.js.map +1 -1
  119. package/dist/lib/help-groups.d.ts +36 -0
  120. package/dist/lib/help-groups.d.ts.map +1 -0
  121. package/dist/lib/help-groups.js +124 -0
  122. package/dist/lib/help-groups.js.map +1 -0
  123. package/dist/lib/k8s-bootstrap.d.ts +6 -0
  124. package/dist/lib/k8s-bootstrap.d.ts.map +1 -1
  125. package/dist/lib/k8s-bootstrap.js +15 -2
  126. package/dist/lib/k8s-bootstrap.js.map +1 -1
  127. package/dist/lib/k8s-secret-render.d.ts.map +1 -1
  128. package/dist/lib/k8s-secret-render.js +17 -10
  129. package/dist/lib/k8s-secret-render.js.map +1 -1
  130. package/dist/lib/memory-secret.d.ts +15 -2
  131. package/dist/lib/memory-secret.d.ts.map +1 -1
  132. package/dist/lib/memory-secret.js +25 -8
  133. package/dist/lib/memory-secret.js.map +1 -1
  134. package/dist/lib/upgrade-check.d.ts +60 -0
  135. package/dist/lib/upgrade-check.d.ts.map +1 -0
  136. package/dist/lib/upgrade-check.js +169 -0
  137. package/dist/lib/upgrade-check.js.map +1 -0
  138. package/dist/lib/upgrade-kubernetes.d.ts +17 -0
  139. package/dist/lib/upgrade-kubernetes.d.ts.map +1 -1
  140. package/dist/lib/upgrade-kubernetes.js +125 -1
  141. package/dist/lib/upgrade-kubernetes.js.map +1 -1
  142. package/dist/mcp-server.js +2651 -2850
  143. package/hermes-bundle/version.json +1 -1
  144. package/host-cp/k8s/manifests/30-configmap.yaml +8 -1
  145. package/host-cp/k8s/manifests/50-deployment.yaml +1 -1
  146. package/host-cp/k8s/manifests/60-service.yaml +12 -4
  147. package/host-cp/k8s/manifests/70-ingressroute.yaml +58 -0
  148. package/host-cp/k8s/manifests/auth-service/50-deployment.yaml +1 -1
  149. package/host-cp/k8s/manifests/kg-service/50-deployment.yaml +1 -1
  150. package/host-cp/k8s/manifests/mcp-auth-service/50-deployment.yaml +1 -1
  151. package/host-cp/k8s/manifests/memory-service/50-deployment.yaml +1 -1
  152. package/host-cp/src/plan-chat-secret.mjs +16 -1
  153. package/host-cp/src/plan-chat-service.mjs +493 -11
  154. package/host-cp/src/planning-sessions.mjs +252 -0
  155. package/host-cp/src/server.mjs +92 -2
  156. package/package.json +2 -1
@@ -0,0 +1,228 @@
1
+ /**
2
+ * `olam kg mirror <subcommand>` — operator CLI for the cloud-kg-mirror feature.
3
+ *
4
+ * Subcommands:
5
+ * - build <workspace> POST to the builder Worker (/v1/build)
6
+ * - status [<ws>] GET /freshness from the classifier Worker
7
+ *
8
+ * Both subcommands resolve their Worker URL + bearer from env-or-file:
9
+ * - OLAM_KG_MIRROR_BUILDER_URL / ~/.olam/kg-mirror-builder-url
10
+ * - OLAM_KG_MIRROR_BUILDER_BEARER / ~/.olam/kg-mirror-builder-bearer (chmod 600)
11
+ * - OLAM_KG_PROXY_URL / ~/.olam/kg-proxy-url
12
+ * - OLAM_KG_PROXY_BEARER / ~/.olam/kg-proxy-bearer (chmod 600)
13
+ *
14
+ * Mirrors the readAnthropicBaseUrl pattern at host-cp/src/server.mjs:317.
15
+ *
16
+ * See docs/plans/cloud-kg-mirror/README.md §§6-7.
17
+ */
18
+ import * as fs from 'node:fs';
19
+ import * as os from 'node:os';
20
+ import * as path from 'node:path';
21
+ import { printError, printInfo, printSuccess } from '../output.js';
22
+ /**
23
+ * Env-then-file resolver mirroring readAnthropicBaseUrl
24
+ * (packages/host-cp/src/server.mjs:317).
25
+ */
26
+ export function readEnvOrFile(envVar, fileName) {
27
+ const fromEnv = process.env[envVar];
28
+ if (fromEnv && fromEnv.length > 0)
29
+ return fromEnv.trim();
30
+ try {
31
+ const file = path.join(os.homedir(), '.olam', fileName);
32
+ const content = fs.readFileSync(file, 'utf-8').trim();
33
+ if (content.length > 0)
34
+ return content;
35
+ }
36
+ catch {
37
+ // file absent — fall through
38
+ }
39
+ return '';
40
+ }
41
+ function resolveBuilder() {
42
+ const url = readEnvOrFile('OLAM_KG_MIRROR_BUILDER_URL', 'kg-mirror-builder-url');
43
+ const bearer = readEnvOrFile('OLAM_KG_MIRROR_BUILDER_BEARER', 'kg-mirror-builder-bearer');
44
+ if (!url || !bearer)
45
+ return null;
46
+ return { url, bearer };
47
+ }
48
+ function resolveClassifier() {
49
+ const url = readEnvOrFile('OLAM_KG_PROXY_URL', 'kg-proxy-url');
50
+ const bearer = readEnvOrFile('OLAM_KG_PROXY_BEARER', 'kg-proxy-bearer');
51
+ if (!url || !bearer)
52
+ return null;
53
+ return { url, bearer };
54
+ }
55
+ export async function runKgMirrorBuild(workspace, options = {}) {
56
+ const cfg = resolveBuilder();
57
+ if (!cfg) {
58
+ printError('kg-mirror builder URL/bearer not configured. Set OLAM_KG_MIRROR_BUILDER_URL + OLAM_KG_MIRROR_BUILDER_BEARER (or ~/.olam/kg-mirror-builder-url + ~/.olam/kg-mirror-builder-bearer).');
59
+ return { exitCode: 3 };
60
+ }
61
+ const gitUrl = options.gitUrl ?? guessGitUrl(workspace);
62
+ if (!gitUrl) {
63
+ printError(`unable to infer git_url for workspace "${workspace}". Pass --git-url <https://github.com/...>.`);
64
+ return { exitCode: 2 };
65
+ }
66
+ const body = { workspace, git_url: gitUrl };
67
+ if (options.gitRef)
68
+ body.git_ref = options.gitRef;
69
+ const human = !options.json;
70
+ if (human) {
71
+ printInfo('kg mirror build', `workspace=${workspace} git_url=${gitUrl}`);
72
+ printInfo('kg mirror build', `→ POST ${cfg.url}/v1/build (may take 1-15 min)`);
73
+ }
74
+ let res;
75
+ try {
76
+ res = await fetch(`${cfg.url}/v1/build`, {
77
+ method: 'POST',
78
+ headers: {
79
+ Authorization: `Bearer ${cfg.bearer}`,
80
+ 'Content-Type': 'application/json',
81
+ },
82
+ body: JSON.stringify(body),
83
+ });
84
+ }
85
+ catch (err) {
86
+ printError(`builder unreachable: ${err instanceof Error ? err.message : String(err)}`);
87
+ return { exitCode: 4 };
88
+ }
89
+ const text = await res.text();
90
+ let parsed;
91
+ try {
92
+ parsed = JSON.parse(text);
93
+ }
94
+ catch {
95
+ printError(`builder returned non-JSON (HTTP ${res.status}): ${text.slice(0, 200)}`);
96
+ return { exitCode: 5 };
97
+ }
98
+ if (options.json) {
99
+ process.stdout.write(JSON.stringify(parsed) + '\n');
100
+ return { exitCode: res.ok ? 0 : 1 };
101
+ }
102
+ const j = parsed;
103
+ if (res.ok && j.ok === true) {
104
+ printSuccess(`kg mirror build ${workspace} — ${j.nodes ?? '?'} nodes / ${j.edges ?? '?'} edges in ${((j.duration_ms ?? 0) / 1000).toFixed(1)}s (build_dir=${j.build_dir})`);
105
+ return { exitCode: 0 };
106
+ }
107
+ printError(`builder /v1/build failed (HTTP ${res.status}): error=${j.error ?? '?'} stage=${j.stage ?? '?'}${j.submodule ? ` submodule=${j.submodule}` : ''}`);
108
+ if (typeof j.detail === 'string' && j.detail.length > 0) {
109
+ process.stderr.write(`detail: ${j.detail.slice(0, 1000)}\n`);
110
+ }
111
+ return { exitCode: 1 };
112
+ }
113
+ export async function runKgMirrorStatus(workspace, options = {}) {
114
+ const cfg = resolveClassifier();
115
+ if (!cfg) {
116
+ printError('kg-mirror classifier URL/bearer not configured. Set OLAM_KG_PROXY_URL + OLAM_KG_PROXY_BEARER (or ~/.olam/kg-proxy-url + ~/.olam/kg-proxy-bearer).');
117
+ return { exitCode: 3 };
118
+ }
119
+ if (!workspace) {
120
+ // GET /health when no workspace supplied.
121
+ const res = await fetch(`${cfg.url}/health`);
122
+ const text = await res.text();
123
+ if (options.json) {
124
+ process.stdout.write(text + '\n');
125
+ return { exitCode: res.ok ? 0 : 1 };
126
+ }
127
+ try {
128
+ const j = JSON.parse(text);
129
+ printInfo('classifier', JSON.stringify(j));
130
+ }
131
+ catch {
132
+ printError(`HTTP ${res.status}: ${text.slice(0, 200)}`);
133
+ return { exitCode: 1 };
134
+ }
135
+ return { exitCode: 0 };
136
+ }
137
+ const url = `${cfg.url}/freshness?workspace=${encodeURIComponent(workspace)}`;
138
+ const res = await fetch(url);
139
+ const text = await res.text();
140
+ if (options.json) {
141
+ process.stdout.write(text + '\n');
142
+ return { exitCode: res.ok ? 0 : 1 };
143
+ }
144
+ let parsed;
145
+ try {
146
+ parsed = JSON.parse(text);
147
+ }
148
+ catch {
149
+ printError(`classifier returned non-JSON (HTTP ${res.status}): ${text.slice(0, 200)}`);
150
+ return { exitCode: 1 };
151
+ }
152
+ const j = parsed;
153
+ if (!res.ok) {
154
+ printError(`classifier /freshness failed (HTTP ${res.status}): ${j.error ?? '?'}`);
155
+ return { exitCode: 1 };
156
+ }
157
+ printSuccess(`kg mirror status ${workspace} — ${j.node_count ?? '?'} nodes / ${j.label_count ?? '?'} labels (build_dir=${j.build_dir}, built_at=${j.built_at})`);
158
+ return { exitCode: 0 };
159
+ }
160
+ /**
161
+ * Infer the git URL from `git -C <workspace> remote get-url origin`.
162
+ * Returns the empty string when the workspace dir isn't a git repo
163
+ * or `git` is unavailable.
164
+ *
165
+ * Implementation note: synchronous spawn so the CLI flow is sequential
166
+ * and errors surface cleanly. This is invoked at most once per `mirror
167
+ * build` call.
168
+ */
169
+ function guessGitUrl(workspace) {
170
+ try {
171
+ const { spawnSync } = require('node:child_process');
172
+ const cwd = path.resolve(process.cwd());
173
+ // Prefer cwd as the repo root when basename matches; otherwise try a
174
+ // sibling dir of cwd.
175
+ const candidates = [
176
+ cwd,
177
+ path.join(path.dirname(cwd), workspace),
178
+ path.join(os.homedir(), 'Projects', workspace),
179
+ ];
180
+ for (const dir of candidates) {
181
+ if (!fs.existsSync(path.join(dir, '.git')))
182
+ continue;
183
+ const r = spawnSync('git', ['-C', dir, 'remote', 'get-url', 'origin'], {
184
+ encoding: 'utf-8',
185
+ });
186
+ if (r.status === 0 && r.stdout.trim().length > 0) {
187
+ // Normalize git@github.com:foo/bar.git → https URL.
188
+ const raw = r.stdout.trim();
189
+ const sshMatch = /^git@github\.com:([^/]+\/[^/]+?)(?:\.git)?$/.exec(raw);
190
+ if (sshMatch)
191
+ return `https://github.com/${sshMatch[1]}`;
192
+ return raw.replace(/\.git$/, '');
193
+ }
194
+ }
195
+ }
196
+ catch {
197
+ // fall through
198
+ }
199
+ return '';
200
+ }
201
+ export function registerKgMirrorCommand(kg) {
202
+ const mirror = kg
203
+ .command('mirror')
204
+ .description('cloud-kg-mirror operations (build via CF Worker, classify at edge)');
205
+ mirror
206
+ .command('build')
207
+ .description('Trigger a cloud-side KG build (POST /v1/build on the builder Worker)')
208
+ .argument('<workspace>', 'workspace name (e.g. atlas-core)')
209
+ .option('--git-url <url>', 'override the git URL (default: inferred from `git remote`)')
210
+ .option('--git-ref <ref>', 'override the branch / commit (default: repo default branch)')
211
+ .option('--json', 'emit raw JSON response')
212
+ .action(async (workspace, opts) => {
213
+ const r = await runKgMirrorBuild(workspace, opts);
214
+ if (r.exitCode !== 0)
215
+ process.exitCode = r.exitCode;
216
+ });
217
+ mirror
218
+ .command('status')
219
+ .description('Report cloud-kg-mirror freshness for a workspace (or /health when omitted)')
220
+ .argument('[workspace]', 'workspace name')
221
+ .option('--json', 'emit raw JSON response')
222
+ .action(async (workspace, opts) => {
223
+ const r = await runKgMirrorStatus(workspace, opts);
224
+ if (r.exitCode !== 0)
225
+ process.exitCode = r.exitCode;
226
+ });
227
+ }
228
+ //# sourceMappingURL=kg-mirror.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kg-mirror.js","sourceRoot":"","sources":["../../src/commands/kg-mirror.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ import { registerMcpRevoke } from './revoke.js';
22
22
  export function registerMcp(program) {
23
23
  const mcp = program
24
24
  .command('mcp')
25
- .description('Run the olam MCP server, wire it into Claude Code, or manage MCP credentials (serve, install, uninstall, login, add, list, remove, import, revoke)');
25
+ .description('Run the olam MCP server or manage MCP credentials');
26
26
  registerMcpServe(mcp);
27
27
  registerMcpInstall(mcp);
28
28
  registerMcpUninstall(mcp);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,oJAAoJ,CAAC,CAAC;IAErK,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxB,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,eAAe,CAAC,GAAG,CAAC,CAAC;IACrB,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,mDAAmD,CAAC,CAAC;IAEpE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxB,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,eAAe,CAAC,GAAG,CAAC,CAAC;IACrB,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmBrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBrD"}
@@ -30,7 +30,7 @@ import { registerMemoryInstallHooks } from './install-hooks.js';
30
30
  export function registerMemory(program) {
31
31
  const memory = program
32
32
  .command('memory')
33
- .description('Host-process agent-memory service for the olam fleet (start, stop, status, logs, secret, install, uninstall, bridge, reclassify, stats)');
33
+ .description('Host-process agent-memory service for the olam fleet');
34
34
  registerMemoryStart(memory);
35
35
  registerMemoryStop(memory);
36
36
  registerMemoryStatus(memory);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,yIAAyI,CAC1I,CAAC;IAEJ,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sDAAsD,CAAC,CAAC;IAEvE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,sFAAsF;AACtF,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACjE,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,SAAS,QAAQ,EAAE,CAAC;IAC/C,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA2DhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAwCvE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoDrD"}
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,sFAAsF;AACtF,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACjE,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,SAAS,QAAQ,EAAE,CAAC;IAC/C,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA2DhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAwCvE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkDrD"}
@@ -128,7 +128,7 @@ export function resolveInputViaGh(input) {
128
128
  export function registerResume(program) {
129
129
  program
130
130
  .command('resume')
131
- .description('Resume a world by PR number, URL, or branch — finds the world that opened the PR and enters it.')
131
+ .description('Re-enter a world by PR number, URL, or branch name')
132
132
  .argument('<pr>', 'PR number (876), PR URL, or branch name')
133
133
  .addHelpText('after', `
134
134
  Examples:
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * `olam services tls-install` — generate a locally-trusted TLS certificate
3
+ * for the K3d Traefik IngressRoute and apply it as a Kubernetes Secret.
4
+ *
5
+ * Why this exists: HTTP/1.1 inside `kubectl port-forward` hits the browser's
6
+ * 6-connection-per-origin cap under Electric SQL long-poll load (one shape
7
+ * subscription per concurrent route → SPA stalls at ~25s pending). Putting
8
+ * Traefik in front with TLS + HTTP/2 fixes both problems with one cert
9
+ * provisioning step. mkcert handles the root-CA dance so browsers trust
10
+ * `https://olam.local` natively — no padlock warnings, no `--insecure`.
11
+ *
12
+ * Flow:
13
+ * 1. Verify `mkcert` is on PATH (actionable error otherwise).
14
+ * 2. Run `mkcert -install` (idempotent — no-op if root CA already trusted).
15
+ * 3. Mint a cert in a tmp dir for `olam.local 127.0.0.1 ::1`.
16
+ * 4. Read tls.crt + tls.key, base64-encode, substitute into the template.
17
+ * 5. `kubectl apply -f -` against the rendered Secret manifest.
18
+ * 6. Suggest the /etc/hosts line (do NOT auto-edit).
19
+ *
20
+ * Idempotency: if `olam-host-cp-tls` already exists AND its NotAfter is
21
+ * more than 30 days away, skip the whole flow. Operators can force renewal
22
+ * with `kubectl -n olam delete secret olam-host-cp-tls`.
23
+ *
24
+ * Design constraints honoured:
25
+ * - No new npm deps (uses node:child_process + node:fs + node:os).
26
+ * - SAN list includes `127.0.0.1` + `::1` because modern browsers ignore
27
+ * CN and only honour SANs (Chrome 58+, Brave, Safari, Firefox).
28
+ * - `/etc/hosts` is printed, not auto-mutated — touching it behind the
29
+ * operator's back is a foot-gun (and would require sudo).
30
+ */
31
+ import type { Command } from 'commander';
32
+ /** Result of `tlsInstall` — exported for tests and the auto-invoke path in `services up`. */
33
+ export interface TlsInstallResult {
34
+ readonly action: 'installed' | 'renewed' | 'skipped' | 'failed';
35
+ /** Reason string surfaced to the operator; non-null when action === 'failed' or 'skipped'. */
36
+ readonly reason?: string;
37
+ /** Traefik websecure NodePort, when discovered. */
38
+ readonly httpsPort?: number;
39
+ }
40
+ export interface TlsInstallDeps {
41
+ /** Override path to a `mkcert`-compatible binary (defaults to PATH lookup). */
42
+ readonly mkcertPath?: string;
43
+ /** Injectable subprocess runner — tests pass a stub; production uses spawnSync. */
44
+ readonly spawnImpl?: (cmd: string, args: readonly string[], opts?: {
45
+ encoding?: 'utf-8';
46
+ timeout?: number;
47
+ input?: string;
48
+ }) => {
49
+ status: number | null;
50
+ stdout: string;
51
+ stderr: string;
52
+ };
53
+ /**
54
+ * Inject the kubectl context (skip resolution). When undefined the helper
55
+ * resolves via `~/.olam/config.json` → `OLAM_K8S_CONTEXT_ACK` (matches the
56
+ * services.ts policy).
57
+ */
58
+ readonly kubectlContext?: string;
59
+ /** Skip mkcert -install (used in tests where the binary is a stub). */
60
+ readonly skipRootInstall?: boolean;
61
+ /**
62
+ * Returns true when the current process has an interactive terminal attached.
63
+ * Defaults to `() => process.stdin.isTTY === true`.
64
+ * Injectable for tests that need to exercise the non-TTY path.
65
+ */
66
+ readonly isTtyAttached?: () => boolean;
67
+ /**
68
+ * Override the path to the TLS Secret template. Defaults to the bundled
69
+ * `packages/host-cp/k8s/manifests/65-tls-secret-template.yaml`.
70
+ */
71
+ readonly templatePath?: string;
72
+ /** Override "now" for renewal-window tests. */
73
+ readonly now?: Date;
74
+ }
75
+ /**
76
+ * Probe whether the mkcert root CA is already trusted on this machine.
77
+ *
78
+ * macOS: `mkcert -CAROOT` → directory; if `rootCA.pem` exists there AND
79
+ * `security find-certificate -c mkcert /Library/Keychains/System.keychain`
80
+ * exits 0, the CA is already in the system keychain.
81
+ * Linux/other: CA file existence alone is used as a proxy for "trusted"
82
+ * (nss-based stores don't need sudo and mkcert handles them idempotently).
83
+ *
84
+ * Returns false on any probe failure so the caller falls back to attempting
85
+ * `mkcert -install` (safe — mkcert itself is idempotent).
86
+ */
87
+ export declare function isMkcertRootTrusted(mkcertPath: string, spawn: NonNullable<TlsInstallDeps['spawnImpl']>): boolean;
88
+ /** Resolve Traefik's `websecure` NodePort (HTTPS edge), or null on failure. */
89
+ export declare function resolveTraefikHttpsPort(spawnArg?: TlsInstallDeps['spawnImpl'], context?: string): number | null;
90
+ /**
91
+ * Pure renderer: substitutes the placeholders in the TLS Secret template.
92
+ * Exported for snapshot testing.
93
+ */
94
+ export declare function renderTlsSecret(template: string, crtBase64: string, keyBase64: string): string;
95
+ /**
96
+ * The full tls-install flow. Returns a structured result so the caller in
97
+ * `services up` can decide whether to print the success URL or fall back.
98
+ */
99
+ export declare function tlsInstall(deps?: TlsInstallDeps): Promise<TlsInstallResult>;
100
+ /** Auto-invoke seam used by `olam services up` — silent when skipped, loud when failed. */
101
+ export declare function ensureTlsInstalled(): Promise<TlsInstallResult>;
102
+ export declare function registerServicesTls(services: Command): void;
103
+ /** Constants exported for tests + cross-module usage. */
104
+ export declare const TLS_SECRET_NAME = "olam-host-cp-tls";
105
+ export declare const TLS_NAMESPACE = "olam";
106
+ export declare const TLS_RENEWAL_THRESHOLD_DAYS = 30;
107
+ export declare const TLS_SAN_LIST: readonly ["olam.local", "127.0.0.1", "::1"];
108
+ /** Used by services.ts to write a "did we already do this" probe. */
109
+ export declare function tlsSecretExists(spawnArg?: TlsInstallDeps['spawnImpl'], context?: string): boolean;
110
+ /**
111
+ * Best-effort: `execFileSync('kubectl', ...)` to apply the bundled
112
+ * IngressRoute + Service manifests when `services up` first runs. Idempotent
113
+ * via `kubectl apply`. We DON'T do this from tls-install (single-responsibility:
114
+ * tls-install only handles certs); services.ts orchestrates the manifest apply.
115
+ */
116
+ export declare function applyIngressManifests(context: string): {
117
+ ok: boolean;
118
+ reason?: string;
119
+ };
120
+ //# sourceMappingURL=services-tls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-tls.d.ts","sourceRoot":"","sources":["../../src/commands/services-tls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChE,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,SAAS,CAAC,EAAE,CACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAC5D;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;CACrB;AAmBD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,GAC9C,OAAO,CAoBT;AAgED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CACrC,QAAQ,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,EACtC,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAYf;AAYD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAI9F;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0KrF;AAwCD,2FAA2F;AAC3F,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAQ3D;AAED,yDAAyD;AACzD,eAAO,MAAM,eAAe,qBAAc,CAAC;AAC3C,eAAO,MAAM,aAAa,SAAY,CAAC;AACvC,eAAO,MAAM,0BAA0B,KAAyB,CAAC;AACjE,eAAO,MAAM,YAAY,6CAAW,CAAC;AAErC,qEAAqE;AACrE,wBAAgB,eAAe,CAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,EACtC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAWT;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBvF"}