@telora/daemon 0.14.23 → 0.14.25
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 +58 -1
- package/build-info.json +2 -2
- package/dist/cli/connect.d.ts +107 -20
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +375 -84
- package/dist/cli/connect.js.map +1 -1
- package/dist/mcp-resolution.d.ts +1 -1
- package/dist/mcp-resolution.d.ts.map +1 -1
- package/dist/mcp-resolution.js +1 -1
- package/dist/mcp-resolution.js.map +1 -1
- package/dist/prompts/starter-prompt.d.ts +1 -1
- package/dist/prompts/starter-prompt.d.ts.map +1 -1
- package/dist/prompts/starter-prompt.js +27 -2
- package/dist/prompts/starter-prompt.js.map +1 -1
- package/dist/templates/claude-md.d.ts +24 -0
- package/dist/templates/claude-md.d.ts.map +1 -0
- package/dist/templates/claude-md.js +123 -0
- package/dist/templates/claude-md.js.map +1 -0
- package/dist/templates/claude-settings.d.ts +34 -0
- package/dist/templates/claude-settings.d.ts.map +1 -0
- package/dist/templates/claude-settings.js +84 -0
- package/dist/templates/claude-settings.js.map +1 -0
- package/dist/unified-init.d.ts.map +1 -1
- package/dist/unified-init.js +12 -25
- package/dist/unified-init.js.map +1 -1
- package/package.json +2 -2
package/dist/cli/connect.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `telora-daemon connect <token>` subcommand.
|
|
3
3
|
*
|
|
4
|
-
* Redeems a Telora connect token, writes the daemon config +
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* (`scripts/connect.sh`) so the user lands
|
|
4
|
+
* Redeems a Telora connect token, writes the daemon config + a committable
|
|
5
|
+
* `.mcp.json`, then starts the daemon in the background via `npx -p
|
|
6
|
+
* @telora/daemon@latest telora-daemon run`. Designed to be invoked at the
|
|
7
|
+
* tail end of the bash bootstrap (`scripts/connect.sh`) so the user lands
|
|
8
|
+
* in `claude` with everything wired -- and importantly leaves no node-side
|
|
9
|
+
* footprint (no package.json, no node_modules, no dev dependency) in the
|
|
10
|
+
* user's repo. Rust/Python/Go/empty repos stay untouched.
|
|
8
11
|
*/
|
|
9
12
|
import { closeSync, existsSync, mkdirSync, openSync, readFileSync, writeFileSync, } from 'node:fs';
|
|
10
13
|
import { spawn, spawnSync } from 'node:child_process';
|
|
11
|
-
import { resolve } from 'node:path';
|
|
14
|
+
import { resolve, delimiter } from 'node:path';
|
|
12
15
|
import { homedir } from 'node:os';
|
|
13
|
-
import {
|
|
16
|
+
import { isLegacyMcpConfigShape, writeMcpConfigFile, } from '../mcp-resolution.js';
|
|
14
17
|
import { ensureGlobalStateDir, resolveDaemonLogPath } from '../daemon-process.js';
|
|
15
18
|
import { STARTER_PROMPT } from '../prompts/starter-prompt.js';
|
|
19
|
+
import { TELORA_CLAUDE_MD_BEGIN, TELORA_CLAUDE_MD_END, renderClaudeMd, } from '../templates/claude-md.js';
|
|
20
|
+
import { buildClaudeSettings, mergeClaudeSettings, } from '../templates/claude-settings.js';
|
|
16
21
|
/**
|
|
17
22
|
* Production Telora API URL embedded in the published @telora/daemon package.
|
|
18
23
|
* Override with TELORA_URL for local dev.
|
|
@@ -29,6 +34,14 @@ export function remediationFor(code) {
|
|
|
29
34
|
return 'This token was already used. Mint a new one-liner from Telora.';
|
|
30
35
|
case 'token_not_found':
|
|
31
36
|
return "Token doesn't exist. Check that you copied the full one-liner from Telora.";
|
|
37
|
+
case 'product_name_collision':
|
|
38
|
+
return ("Telora couldn't find a free product name based on this repo's directory " +
|
|
39
|
+
'(too many existing products with similar names). Rename the directory, ' +
|
|
40
|
+
'or pick an existing product on the Connect Workstation page, and re-run.');
|
|
41
|
+
case 'proposed_name_required':
|
|
42
|
+
return ('This is a bug in connect: the unbound token reached redeem without a ' +
|
|
43
|
+
'proposed product name. Please report this. As a workaround, mint a ' +
|
|
44
|
+
'bound token from a product page on the Connect Workstation page and re-run.');
|
|
32
45
|
default:
|
|
33
46
|
return 'Token redemption failed. Check your network and try again.';
|
|
34
47
|
}
|
|
@@ -128,11 +141,20 @@ export function writeStarterPromptArtifacts(repoPath, io) {
|
|
|
128
141
|
}
|
|
129
142
|
}
|
|
130
143
|
/**
|
|
131
|
-
* Append
|
|
144
|
+
* Append `.telora/` to .gitignore in the repo root if missing.
|
|
145
|
+
*
|
|
146
|
+
* Earlier connect runs added `.mcp.json` here too, because the file embedded
|
|
147
|
+
* a per-user secret (TELORA_TRACKER_ID). The new `.mcp.json` shape is
|
|
148
|
+
* credential-free and meant to be committed; new runs no longer add it.
|
|
149
|
+
*
|
|
150
|
+
* If a previous run added `.mcp.json` to .gitignore, leave that line in
|
|
151
|
+
* place -- removing it would surface as a noisy migration. The user can
|
|
152
|
+
* delete the line on their own when they realize they want to commit the
|
|
153
|
+
* file.
|
|
132
154
|
*/
|
|
133
155
|
export function ensureGitignoreEntries(repoPath, io) {
|
|
134
156
|
const gitignorePath = resolve(repoPath, '.gitignore');
|
|
135
|
-
const entries = ['.telora/'
|
|
157
|
+
const entries = ['.telora/'];
|
|
136
158
|
if (existsSync(gitignorePath)) {
|
|
137
159
|
const content = readFileSync(gitignorePath, 'utf-8');
|
|
138
160
|
const lines = content.split('\n').map((l) => l.trim());
|
|
@@ -147,69 +169,25 @@ export function ensureGitignoreEntries(repoPath, io) {
|
|
|
147
169
|
io.out(`Created ${gitignorePath}.\n`);
|
|
148
170
|
}
|
|
149
171
|
/**
|
|
150
|
-
*
|
|
151
|
-
* `npm install --save-dev` without npm complaining.
|
|
152
|
-
*/
|
|
153
|
-
export function ensurePackageJson(repoPath, io) {
|
|
154
|
-
const pkgPath = resolve(repoPath, 'package.json');
|
|
155
|
-
if (existsSync(pkgPath))
|
|
156
|
-
return;
|
|
157
|
-
const dirName = repoPath.split(/[\\/]/).filter(Boolean).pop() ?? 'project';
|
|
158
|
-
const stub = {
|
|
159
|
-
name: dirName.toLowerCase().replace(/[^a-z0-9._-]/g, '-'),
|
|
160
|
-
version: '0.0.0',
|
|
161
|
-
private: true,
|
|
162
|
-
};
|
|
163
|
-
writeFileSync(pkgPath, JSON.stringify(stub, null, 2) + '\n');
|
|
164
|
-
io.out(`Created ${pkgPath} (stub).\n`);
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Install @telora/daemon as a dev dependency in the project.
|
|
168
|
-
* Skipped if the package is already declared in devDependencies/dependencies.
|
|
169
|
-
*/
|
|
170
|
-
export function installDaemonIfNeeded(repoPath, io) {
|
|
171
|
-
const pkgPath = resolve(repoPath, 'package.json');
|
|
172
|
-
if (existsSync(pkgPath)) {
|
|
173
|
-
try {
|
|
174
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
175
|
-
if (pkg.dependencies?.['@telora/daemon'] || pkg.devDependencies?.['@telora/daemon']) {
|
|
176
|
-
io.out('@telora/daemon already installed in this project.\n');
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
catch {
|
|
181
|
-
// Fall through to install.
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
io.out('Installing @telora/daemon as a dev dependency...\n');
|
|
185
|
-
const result = spawnSync('npm', ['install', '--save-dev', '@telora/daemon'], {
|
|
186
|
-
cwd: repoPath,
|
|
187
|
-
stdio: 'inherit',
|
|
188
|
-
});
|
|
189
|
-
if (result.status !== 0) {
|
|
190
|
-
throw new Error(`npm install failed with exit code ${result.status ?? 'unknown'}`);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Spawn the locally-installed daemon as a detached background process.
|
|
172
|
+
* Spawn the daemon as a detached background process via `npx`.
|
|
195
173
|
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
* a
|
|
174
|
+
* Deliberately uses `npx -p @telora/daemon@latest telora-daemon run` (and
|
|
175
|
+
* NOT a node_modules path) so the connect flow does not require a
|
|
176
|
+
* `package.json` or `node_modules/` in the user's repo. This keeps the
|
|
177
|
+
* connect flow language-agnostic: a Rust/Python/Go/empty repo never gets
|
|
178
|
+
* a Node footprint.
|
|
179
|
+
*
|
|
180
|
+
* Bin name is explicit (`telora-daemon`) because the package's bins are
|
|
181
|
+
* `telora-daemon` and `telora-daemon-wrapper`; neither matches the unscoped
|
|
182
|
+
* package name `daemon`, so `npx @telora/daemon` cannot resolve a bin and
|
|
183
|
+
* aborts with a misleading error (lesson from commit 0368f4b6).
|
|
201
184
|
*/
|
|
202
|
-
export function
|
|
185
|
+
export function startDaemonViaNpx(repoPath) {
|
|
203
186
|
ensureGlobalStateDir();
|
|
204
187
|
const logPath = resolveDaemonLogPath();
|
|
205
|
-
const localEntry = resolve(repoPath, 'node_modules/@telora/daemon/dist/index.js');
|
|
206
|
-
if (!existsSync(localEntry)) {
|
|
207
|
-
throw new Error(`Could not find local @telora/daemon install at ${localEntry}. ` +
|
|
208
|
-
'Did `npm install --save-dev @telora/daemon` complete?');
|
|
209
|
-
}
|
|
210
188
|
const logFd = openSync(logPath, 'a', 0o600);
|
|
211
189
|
try {
|
|
212
|
-
const child = spawn(
|
|
190
|
+
const child = spawn('npx', ['--yes', '-p', '@telora/daemon@latest', 'telora-daemon', 'run'], {
|
|
213
191
|
detached: true,
|
|
214
192
|
stdio: ['ignore', logFd, logFd],
|
|
215
193
|
cwd: repoPath,
|
|
@@ -222,13 +200,16 @@ export function startInstalledDaemonBackground(repoPath) {
|
|
|
222
200
|
closeSync(logFd);
|
|
223
201
|
}
|
|
224
202
|
}
|
|
225
|
-
async function redeemToken(token, teloraUrl, io) {
|
|
203
|
+
async function redeemToken(token, teloraUrl, proposedProductName, io) {
|
|
226
204
|
let response;
|
|
205
|
+
const requestBody = { token };
|
|
206
|
+
if (proposedProductName)
|
|
207
|
+
requestBody.proposed_product_name = proposedProductName;
|
|
227
208
|
try {
|
|
228
209
|
response = await io.fetch(redeemEndpoint(teloraUrl), {
|
|
229
210
|
method: 'POST',
|
|
230
211
|
headers: { 'Content-Type': 'application/json' },
|
|
231
|
-
body: JSON.stringify(
|
|
212
|
+
body: JSON.stringify(requestBody),
|
|
232
213
|
});
|
|
233
214
|
}
|
|
234
215
|
catch (err) {
|
|
@@ -243,6 +224,256 @@ async function redeemToken(token, teloraUrl, io) {
|
|
|
243
224
|
}
|
|
244
225
|
return body;
|
|
245
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Look up an existing product entry in `~/.telora/daemon.json` whose
|
|
229
|
+
* repoPath matches the given path. Returns the product id when found,
|
|
230
|
+
* else null. Used by runConnect for re-run idempotency: a second run on
|
|
231
|
+
* the same dir reuses the existing binding instead of creating a duplicate
|
|
232
|
+
* product on the unbound path.
|
|
233
|
+
*/
|
|
234
|
+
export function findExistingProductForRepo(repoPath) {
|
|
235
|
+
const configPath = resolve(homedir(), '.telora', 'daemon.json');
|
|
236
|
+
if (!existsSync(configPath))
|
|
237
|
+
return null;
|
|
238
|
+
try {
|
|
239
|
+
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
240
|
+
const target = resolve(repoPath);
|
|
241
|
+
for (const entry of config.products ?? []) {
|
|
242
|
+
if (entry.repoPath && resolve(entry.repoPath) === target && entry.id) {
|
|
243
|
+
return entry.id;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
// Malformed config -- treat as no match; runConnect overwrites it anyway.
|
|
249
|
+
}
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Write or merge a seeded `CLAUDE.md` at the repo root.
|
|
254
|
+
*
|
|
255
|
+
* - Fresh repo: writes the seeded block straight in.
|
|
256
|
+
* - Existing CLAUDE.md without the Telora delimiters: appends a delimited
|
|
257
|
+
* Telora block at the end. The user's content is untouched.
|
|
258
|
+
* - Existing CLAUDE.md WITH the delimiters: replaces only the delimited
|
|
259
|
+
* block. Re-runs are byte-identical (no churn, no duplication).
|
|
260
|
+
*/
|
|
261
|
+
export function writeOrMergeClaudeMd(repoPath, productName, io) {
|
|
262
|
+
const path = resolve(repoPath, 'CLAUDE.md');
|
|
263
|
+
const seedBlock = renderClaudeMd(productName);
|
|
264
|
+
if (!existsSync(path)) {
|
|
265
|
+
writeFileSync(path, seedBlock);
|
|
266
|
+
io.out(`Wrote ${path}.\n`);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const existing = readFileSync(path, 'utf-8');
|
|
270
|
+
const beginIdx = existing.indexOf(TELORA_CLAUDE_MD_BEGIN);
|
|
271
|
+
if (beginIdx === -1) {
|
|
272
|
+
// No prior Telora block -- append, preserving user content.
|
|
273
|
+
const sep = existing.endsWith('\n') ? '\n' : '\n\n';
|
|
274
|
+
writeFileSync(path, existing + sep + seedBlock);
|
|
275
|
+
io.out(`Appended Telora seed block to ${path}.\n`);
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
// Replace the existing Telora block in place.
|
|
279
|
+
const endIdx = existing.indexOf(TELORA_CLAUDE_MD_END, beginIdx);
|
|
280
|
+
if (endIdx === -1) {
|
|
281
|
+
// Begin marker without end -- treat as malformed. Append a fresh block
|
|
282
|
+
// rather than risk corrupting whatever's there.
|
|
283
|
+
const sep = existing.endsWith('\n') ? '\n' : '\n\n';
|
|
284
|
+
writeFileSync(path, existing + sep + seedBlock);
|
|
285
|
+
io.out(`Appended Telora seed block to ${path} (prior block was malformed).\n`);
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
const after = endIdx + TELORA_CLAUDE_MD_END.length;
|
|
289
|
+
// Trim a trailing newline after the end marker so we don't accumulate
|
|
290
|
+
// blank lines on each re-run.
|
|
291
|
+
const trailingNewline = existing[after] === '\n' ? 1 : 0;
|
|
292
|
+
const newContent = existing.slice(0, beginIdx) + seedBlock.trimEnd() + '\n' + existing.slice(after + trailingNewline);
|
|
293
|
+
writeFileSync(path, newContent);
|
|
294
|
+
io.out(`Refreshed Telora seed block in ${path}.\n`);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Write or deep-merge `<repo>/.claude/settings.json`.
|
|
298
|
+
*
|
|
299
|
+
* Fresh: writes the template directly.
|
|
300
|
+
* Existing: deep-merges our `permissions.allow` entries into the user's
|
|
301
|
+
* settings, deduplicating. All other top-level keys are untouched.
|
|
302
|
+
* Re-runs produce no diff.
|
|
303
|
+
*/
|
|
304
|
+
export function writeOrMergeClaudeSettings(repoPath, io) {
|
|
305
|
+
const dir = resolve(repoPath, '.claude');
|
|
306
|
+
const path = resolve(dir, 'settings.json');
|
|
307
|
+
const seed = buildClaudeSettings();
|
|
308
|
+
if (!existsSync(dir))
|
|
309
|
+
mkdirSync(dir, { recursive: true });
|
|
310
|
+
let existing = null;
|
|
311
|
+
if (existsSync(path)) {
|
|
312
|
+
try {
|
|
313
|
+
const parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
314
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
315
|
+
existing = parsed;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
catch (err) {
|
|
319
|
+
io.err(`Warning: existing ${path} is not valid JSON; leaving it alone: ` +
|
|
320
|
+
`${err instanceof Error ? err.message : String(err)}\n`);
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
const merged = mergeClaudeSettings(existing, seed);
|
|
325
|
+
writeFileSync(path, JSON.stringify(merged, null, 2) + '\n');
|
|
326
|
+
io.out(existing ? `Merged Telora entries into ${path}.\n` : `Wrote ${path}.\n`);
|
|
327
|
+
}
|
|
328
|
+
// ── Workstation tracking (D4): telora-ai detection + hook merge ─────────
|
|
329
|
+
/**
|
|
330
|
+
* Locate the `telora-ai` Python CLI on PATH. Returns the absolute path if
|
|
331
|
+
* found, else null. Detection is the entire install model -- if the user
|
|
332
|
+
* doesn't have it, connect prints a remediation hint and continues
|
|
333
|
+
* (tracking is opt-in).
|
|
334
|
+
*/
|
|
335
|
+
export function locateTeloraAi() {
|
|
336
|
+
const path = process.env.PATH ?? '';
|
|
337
|
+
const entries = path.split(delimiter).filter(Boolean);
|
|
338
|
+
for (const entry of entries) {
|
|
339
|
+
const candidate = resolve(entry, 'telora-ai');
|
|
340
|
+
if (existsSync(candidate))
|
|
341
|
+
return candidate;
|
|
342
|
+
}
|
|
343
|
+
return null;
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Pre-populate the user's `~/.syntelyos/ai_tracking.db` config table with
|
|
347
|
+
* the redeem-derived credentials. Skips the
|
|
348
|
+
* `telora-ai register <code>` round-trip that Settings > AI Trackers
|
|
349
|
+
* normally requires -- the tracker row already exists in Telora (the
|
|
350
|
+
* redeem RPC inserted it), so all we need is to point the local DB at
|
|
351
|
+
* it.
|
|
352
|
+
*
|
|
353
|
+
* Each `telora-ai config <key> <value>` call is a single sqlite UPSERT;
|
|
354
|
+
* idempotent on re-runs.
|
|
355
|
+
*
|
|
356
|
+
* Returns true on success, false if any sub-call failed (the failure is
|
|
357
|
+
* surfaced via io.err but never aborts the connect flow).
|
|
358
|
+
*/
|
|
359
|
+
export function registerWorkstationLocally(params) {
|
|
360
|
+
const entries = [
|
|
361
|
+
['telora_url', params.teloraUrl],
|
|
362
|
+
['tracker_id', params.trackerId],
|
|
363
|
+
// The python tool's data model treats access_token and tracker_id as
|
|
364
|
+
// separate fields, but in our model the tracker_id IS the bearer
|
|
365
|
+
// token. Setting both keeps cmd_status / cmd_sync happy.
|
|
366
|
+
['access_token', params.trackerId],
|
|
367
|
+
['org_id', params.organizationId],
|
|
368
|
+
];
|
|
369
|
+
for (const [key, value] of entries) {
|
|
370
|
+
const result = spawnSync(params.teloraAiPath, ['config', key, value], {
|
|
371
|
+
stdio: 'pipe',
|
|
372
|
+
encoding: 'utf-8',
|
|
373
|
+
});
|
|
374
|
+
if (result.status !== 0) {
|
|
375
|
+
params.io.err(`Warning: workstation registration step '${key}' failed (${result.status ?? 'no exit'}): ${result.stderr ?? result.stdout ?? ''}\n`);
|
|
376
|
+
return false;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return true;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Idempotent merge of `PostToolUse` and `UserPromptSubmit` hook entries
|
|
383
|
+
* into `~/.claude/settings.json`. Mirrors the shape of `telora-ai
|
|
384
|
+
* setup-hooks` in scripts/telora-ai but runs from the daemon connect flow
|
|
385
|
+
* so the user doesn't have to invoke it manually.
|
|
386
|
+
*
|
|
387
|
+
* Existing hook entries are preserved. Re-runs do not duplicate.
|
|
388
|
+
*/
|
|
389
|
+
export function mergeUserClaudeSettingsHooks(io, homeOverride) {
|
|
390
|
+
const home = homeOverride ?? homedir();
|
|
391
|
+
const settingsDir = resolve(home, '.claude');
|
|
392
|
+
const settingsPath = resolve(settingsDir, 'settings.json');
|
|
393
|
+
const hookBin = locateBinaryOnPath('telora-ai-hook');
|
|
394
|
+
const humanHookBin = locateBinaryOnPath('telora-ai-human-hook');
|
|
395
|
+
if (!hookBin || !humanHookBin) {
|
|
396
|
+
io.err(`Warning: telora-ai-hook / telora-ai-human-hook not on PATH. Skipping ~/.claude/settings.json merge.\n`);
|
|
397
|
+
return false;
|
|
398
|
+
}
|
|
399
|
+
if (!existsSync(settingsDir))
|
|
400
|
+
mkdirSync(settingsDir, { recursive: true });
|
|
401
|
+
let parsed = {};
|
|
402
|
+
if (existsSync(settingsPath)) {
|
|
403
|
+
try {
|
|
404
|
+
const raw = readFileSync(settingsPath, 'utf-8');
|
|
405
|
+
const candidate = JSON.parse(raw);
|
|
406
|
+
if (candidate && typeof candidate === 'object' && !Array.isArray(candidate)) {
|
|
407
|
+
parsed = candidate;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
catch (err) {
|
|
411
|
+
io.err(`Warning: ${settingsPath} is not valid JSON; leaving it alone: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
412
|
+
return false;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
const hooks = typeof parsed.hooks === 'object' && parsed.hooks !== null
|
|
416
|
+
? parsed.hooks
|
|
417
|
+
: {};
|
|
418
|
+
const desired = {
|
|
419
|
+
PostToolUse: {
|
|
420
|
+
matcher: '',
|
|
421
|
+
hooks: [{ type: 'command', command: hookBin }],
|
|
422
|
+
},
|
|
423
|
+
UserPromptSubmit: {
|
|
424
|
+
matcher: '',
|
|
425
|
+
hooks: [{ type: 'command', command: humanHookBin }],
|
|
426
|
+
},
|
|
427
|
+
};
|
|
428
|
+
for (const [eventName, entry] of Object.entries(desired)) {
|
|
429
|
+
const existing = hooks[eventName] ?? [];
|
|
430
|
+
let alreadyPresent = false;
|
|
431
|
+
for (const rule of existing) {
|
|
432
|
+
for (const h of rule.hooks ?? []) {
|
|
433
|
+
const cmd = h.command ?? '';
|
|
434
|
+
if (cmd.includes('telora-ai-hook') || cmd.includes('telora-ai-human-hook')) {
|
|
435
|
+
alreadyPresent = true;
|
|
436
|
+
// Refresh path in case the binary moved between runs.
|
|
437
|
+
const desiredCmd = entry.hooks[0].command;
|
|
438
|
+
if (cmd !== desiredCmd)
|
|
439
|
+
h.command = desiredCmd;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
if (!alreadyPresent)
|
|
444
|
+
existing.push(entry);
|
|
445
|
+
hooks[eventName] = existing;
|
|
446
|
+
}
|
|
447
|
+
parsed.hooks = hooks;
|
|
448
|
+
writeFileSync(settingsPath, JSON.stringify(parsed, null, 2) + '\n');
|
|
449
|
+
io.out(`Merged Telora tracking hooks into ${settingsPath}.\n`);
|
|
450
|
+
return true;
|
|
451
|
+
}
|
|
452
|
+
function locateBinaryOnPath(name) {
|
|
453
|
+
const path = process.env.PATH ?? '';
|
|
454
|
+
for (const entry of path.split(delimiter).filter(Boolean)) {
|
|
455
|
+
const candidate = resolve(entry, name);
|
|
456
|
+
if (existsSync(candidate))
|
|
457
|
+
return candidate;
|
|
458
|
+
}
|
|
459
|
+
return null;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Write `.telora/.product-bootstrapped` -- a marker the starter prompt
|
|
463
|
+
* detects on first turn to offer a rename of the basename-derived product
|
|
464
|
+
* name. The starter prompt removes the marker after acting on it.
|
|
465
|
+
*/
|
|
466
|
+
export function writeBootstrapMarker(repoPath, io) {
|
|
467
|
+
const teloraDir = resolve(repoPath, '.telora');
|
|
468
|
+
try {
|
|
469
|
+
if (!existsSync(teloraDir))
|
|
470
|
+
mkdirSync(teloraDir, { recursive: true });
|
|
471
|
+
writeFileSync(resolve(teloraDir, '.product-bootstrapped'), '');
|
|
472
|
+
}
|
|
473
|
+
catch (err) {
|
|
474
|
+
io.err(`Warning: could not write bootstrap marker: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
246
477
|
/**
|
|
247
478
|
* Run the connect flow.
|
|
248
479
|
*
|
|
@@ -257,8 +488,18 @@ export async function runConnect(opts) {
|
|
|
257
488
|
if (!validateTokenShape(opts.token)) {
|
|
258
489
|
throw new Error('Invalid token. Expected a TOK_-prefixed token from a Telora connect link.');
|
|
259
490
|
}
|
|
491
|
+
// Re-run idempotency: if daemon.json already has an entry for this repo,
|
|
492
|
+
// the user is reconnecting -- never send a proposed name for that path
|
|
493
|
+
// (which would risk creating a duplicate product on the unbound flow).
|
|
494
|
+
const reusedExistingBinding = findExistingProductForRepo(repoPath) !== null;
|
|
495
|
+
const proposedProductName = reusedExistingBinding
|
|
496
|
+
? null
|
|
497
|
+
: repoPath.split(/[\\/]/).filter(Boolean).pop() ?? null;
|
|
498
|
+
if (reusedExistingBinding) {
|
|
499
|
+
io.out(`Reusing existing product binding for ${repoPath}.\n`);
|
|
500
|
+
}
|
|
260
501
|
io.out(`Redeeming connect token at ${teloraUrl}...\n`);
|
|
261
|
-
const body = await redeemToken(opts.token, teloraUrl, io);
|
|
502
|
+
const body = await redeemToken(opts.token, teloraUrl, proposedProductName, io);
|
|
262
503
|
if (!body.success || !body.tracker_id || !body.organization_id || !body.product_id) {
|
|
263
504
|
const hint = remediationFor(body.code);
|
|
264
505
|
const detail = body.error ? ` (${body.error})` : '';
|
|
@@ -285,39 +526,87 @@ export async function runConnect(opts) {
|
|
|
285
526
|
io,
|
|
286
527
|
});
|
|
287
528
|
io.out(`Wrote ${configPath}.\n`);
|
|
288
|
-
// -- Write .mcp.json
|
|
529
|
+
// -- Write .mcp.json (committable shape; secrets stay in daemon.json) ----
|
|
530
|
+
const mcpAtPath = resolve(repoPath, '.mcp.json');
|
|
531
|
+
let priorShape = 'none';
|
|
532
|
+
if (existsSync(mcpAtPath)) {
|
|
533
|
+
try {
|
|
534
|
+
const parsed = JSON.parse(readFileSync(mcpAtPath, 'utf-8'));
|
|
535
|
+
priorShape = isLegacyMcpConfigShape(parsed) ? 'legacy' : 'current';
|
|
536
|
+
}
|
|
537
|
+
catch {
|
|
538
|
+
priorShape = 'legacy';
|
|
539
|
+
}
|
|
540
|
+
}
|
|
289
541
|
let mcpConfigPath = null;
|
|
290
542
|
try {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
543
|
+
writeMcpConfigFile(repoPath, { teloraUrl: resolvedTeloraUrl });
|
|
544
|
+
mcpConfigPath = mcpAtPath;
|
|
545
|
+
if (priorShape === 'legacy') {
|
|
546
|
+
io.out(`${mcpConfigPath} upgraded -- credentials moved out of the file.\n`);
|
|
547
|
+
}
|
|
548
|
+
else {
|
|
549
|
+
io.out(`Wrote ${mcpConfigPath}.\n`);
|
|
550
|
+
}
|
|
299
551
|
}
|
|
300
552
|
catch (err) {
|
|
301
553
|
io.err(`Warning: could not generate .mcp.json: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
302
554
|
}
|
|
303
555
|
ensureGitignoreEntries(repoPath, io);
|
|
556
|
+
// -- Seed agent scaffolding (CLAUDE.md + .claude/settings.json) -----------
|
|
557
|
+
// Both files are committable and merge-aware on re-runs. The CLAUDE.md
|
|
558
|
+
// omits the product name -- the starter prompt fetches and surfaces it
|
|
559
|
+
// on phase 1, and skipping it here means the bootstrapped (renamed
|
|
560
|
+
// first-turn) and bound flows produce identical CLAUDE.md content.
|
|
561
|
+
writeOrMergeClaudeMd(repoPath, null, io);
|
|
562
|
+
writeOrMergeClaudeSettings(repoPath, io);
|
|
304
563
|
// -- Write starter prompt + first-session marker --------------------------
|
|
305
564
|
const starterPromptPath = writeStarterPromptArtifacts(repoPath, io);
|
|
306
|
-
// --
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
565
|
+
// -- Bootstrap marker (unbound flow) ------------------------------------
|
|
566
|
+
// The redeem step creates a product on the fly when the token is unbound;
|
|
567
|
+
// when it does, it sets product_was_created=true. The starter prompt
|
|
568
|
+
// detects the marker we drop here and offers a rename on first turn.
|
|
569
|
+
if (body.product_was_created) {
|
|
570
|
+
writeBootstrapMarker(repoPath, io);
|
|
571
|
+
io.out(`Bootstrapped a new Telora product from your repo's directory name. ` +
|
|
572
|
+
`You can rename it on first turn.\n`);
|
|
573
|
+
}
|
|
574
|
+
// -- Workstation tracking (D4): wire telora-ai if available -------------
|
|
575
|
+
// Detect-only install model: if `telora-ai` is on PATH, use the redeem-
|
|
576
|
+
// derived credentials to populate its local DB and merge tracking hooks
|
|
577
|
+
// into ~/.claude/settings.json. If absent, print a remediation hint and
|
|
578
|
+
// continue -- tracking is opt-in.
|
|
579
|
+
const teloraAiPath = locateTeloraAi();
|
|
580
|
+
if (teloraAiPath) {
|
|
581
|
+
const registered = registerWorkstationLocally({
|
|
582
|
+
teloraAiPath,
|
|
583
|
+
trackerId,
|
|
584
|
+
organizationId,
|
|
585
|
+
teloraUrl: resolvedTeloraUrl,
|
|
586
|
+
io,
|
|
587
|
+
});
|
|
588
|
+
if (registered) {
|
|
589
|
+
io.out(`Workstation registered with tracker ${trackerId.slice(0, 8)}...\n`);
|
|
590
|
+
}
|
|
591
|
+
mergeUserClaudeSettingsHooks(io);
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
io.out(`Workstation tracking not auto-installed: \`telora-ai\` not on PATH.\n` +
|
|
595
|
+
` To enable end-to-end tracking, install telora-ai (see docs/AI_WORK_TRACKING.md), then run:\n` +
|
|
596
|
+
` telora-ai config telora_url ${resolvedTeloraUrl}\n` +
|
|
597
|
+
` telora-ai config tracker_id ${trackerId}\n` +
|
|
598
|
+
` telora-ai setup-hooks\n`);
|
|
310
599
|
}
|
|
311
|
-
// -- Start daemon in background
|
|
600
|
+
// -- Start daemon in background via npx ----------------------------------
|
|
312
601
|
let daemonPid = null;
|
|
313
602
|
if (!opts.skipDaemonStart) {
|
|
314
603
|
try {
|
|
315
|
-
daemonPid =
|
|
604
|
+
daemonPid = startDaemonViaNpx(repoPath);
|
|
316
605
|
io.out(`Daemon started (PID ${daemonPid}). Logs: telora-daemon logs --follow\n`);
|
|
317
606
|
}
|
|
318
607
|
catch (err) {
|
|
319
608
|
io.err(`Warning: could not start daemon in background: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
320
|
-
io.err('Run `npx telora-daemon
|
|
609
|
+
io.err('Run `npx -p @telora/daemon@latest telora-daemon run` manually.\n');
|
|
321
610
|
}
|
|
322
611
|
}
|
|
323
612
|
// Hand-off line for the bash script to surface to the user.
|
|
@@ -331,6 +620,8 @@ export async function runConnect(opts) {
|
|
|
331
620
|
mcpConfigPath,
|
|
332
621
|
starterPromptPath,
|
|
333
622
|
daemonPid,
|
|
623
|
+
productWasCreated: body.product_was_created === true,
|
|
624
|
+
reusedExistingBinding,
|
|
334
625
|
};
|
|
335
626
|
}
|
|
336
627
|
//# sourceMappingURL=connect.js.map
|
package/dist/cli/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/cli/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AA+C9D;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,2EAA2E,CAAC;QACrF,KAAK,wBAAwB;YAC3B,OAAO,gEAAgE,CAAC;QAC1E,KAAK,iBAAiB;YACpB,OAAO,4EAA4E,CAAC;QACtF;YACE,OAAO,4DAA4D,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,oCAAoC,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,EAAuB;IACxC,OAAO;QACL,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,UAAU,CAAC,KAAK;KACrC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAOxC;IACC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,MAAM,CAAC,SAAS;gBACpB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;aACnC;SACF;QACD,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,OAAO,EAAE,IAAI;gBACb,iBAAiB,EAAE,aAAa;gBAChC,gBAAgB,EAAE,CAAC;aACpB;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,sBAAsB,EAAE,CAAC;aAC1B;SACF;KACF,CAAC;IAEF,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEnF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,UAAU,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAgB,EAChB,EAAa;IAEb,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAC3D,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC1C,sEAAsE;QACtE,wEAAwE;QACxE,uDAAuD;QACvD,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,EAAE,CAAC,GAAG,CAAC,SAAS,UAAU,KAAK,CAAC,CAAC;QACjC,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CACJ,4CACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB,EAAE,EAAa;IACpE,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE1C,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACnF,EAAE,CAAC,GAAG,CAAC,WAAW,aAAa,WAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;QACD,OAAO;IACT,CAAC;IAED,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,EAAE,CAAC,GAAG,CAAC,WAAW,aAAa,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,EAAa;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IAEhC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IAC3E,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;QACzD,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,EAAE,CAAC,GAAG,CAAC,WAAW,OAAO,YAAY,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,EAAa;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAGpD,CAAC;YACF,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpF,EAAE,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,EAAE,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,gBAAgB,CAAC,EAAE;QAC3E,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAgB;IAC7D,oBAAoB,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,2CAA2C,CAAC,CAAC;IAElF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,kDAAkD,UAAU,IAAI;YAC9D,uDAAuD,CAC1D,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;YACzD,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC;YAC/B,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAa,EACb,SAAiB,EACjB,EAAa;IAEb,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;IAED,IAAI,IAAoB,CAAC;IACzB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,6CAA6C,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB;IACnD,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEvG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,EAAE,CAAC,GAAG,CAAC,8BAA8B,SAAS,OAAO,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACnF,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAClC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAClC,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,kEAAkE;IAClE,4DAA4D;IAC5D,MAAM,iBAAiB,GAAG,SAAS,CAAC;IAEpC,4EAA4E;IAC5E,MAAM,UAAU,GAAG,wBAAwB,CAAC;QAC1C,SAAS,EAAE,iBAAiB;QAC5B,SAAS;QACT,cAAc;QACd,SAAS;QACT,QAAQ;QACR,EAAE;KACH,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,SAAS,UAAU,KAAK,CAAC,CAAC;IAEjC,4EAA4E;IAC5E,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;QAC7C,kBAAkB,CAAC,QAAQ,EAAE;YAC3B,aAAa;YACb,SAAS;YACT,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;QACH,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/C,EAAE,CAAC,GAAG,CAAC,SAAS,aAAa,KAAK,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CACJ,0CACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAErC,4EAA4E;IAC5E,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEpE,4EAA4E;IAC5E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,2EAA2E;IAC3E,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,SAAS,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;YACrD,EAAE,CAAC,GAAG,CAAC,uBAAuB,SAAS,wCAAwC,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,GAAG,CACJ,kDACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;YACF,EAAE,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,EAAE,CAAC,GAAG,CAAC,wBAAwB,SAAS,KAAK,CAAC,CAAC;IAE/C,OAAO;QACL,SAAS;QACT,cAAc;QACd,SAAS;QACT,SAAS,EAAE,iBAAiB;QAC5B,UAAU;QACV,aAAa;QACb,iBAAiB;QACjB,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/cli/connect.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-resolution.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* so that createRequire resolves @telora/mcp-products from daemon's
|
|
6
6
|
* node_modules (where it is a declared dependency).
|
|
7
7
|
*/
|
|
8
|
-
export { buildMcpConfig, writeMcpConfigFile, type McpConfigOptions, } from '@telora/daemon-core';
|
|
8
|
+
export { buildMcpConfig, isLegacyMcpConfigShape, writeMcpConfigFile, MCP_PRODUCTS_PACKAGE, MCP_PRODUCTS_BIN, type McpConfigOptions, } from '@telora/daemon-core';
|
|
9
9
|
/**
|
|
10
10
|
* Resolve the MCP server path from daemon's package context.
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-resolution.d.ts","sourceRoot":"","sources":["../src/mcp-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|
|
1
|
+
{"version":3,"file":"mcp-resolution.d.ts","sourceRoot":"","sources":["../src/mcp-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|
package/dist/mcp-resolution.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* node_modules (where it is a declared dependency).
|
|
7
7
|
*/
|
|
8
8
|
import { resolveMcpServerPath as _resolveMcpServerPath } from '@telora/daemon-core';
|
|
9
|
-
export { buildMcpConfig, writeMcpConfigFile, } from '@telora/daemon-core';
|
|
9
|
+
export { buildMcpConfig, isLegacyMcpConfigShape, writeMcpConfigFile, MCP_PRODUCTS_PACKAGE, MCP_PRODUCTS_BIN, } from '@telora/daemon-core';
|
|
10
10
|
/**
|
|
11
11
|
* Resolve the MCP server path from daemon's package context.
|
|
12
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-resolution.js","sourceRoot":"","sources":["../src/mcp-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACL,cAAc,EACd,kBAAkB,
|
|
1
|
+
{"version":3,"file":"mcp-resolution.js","sourceRoot":"","sources":["../src/mcp-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC"}
|