@intutic/cli 0.1.1 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +376 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/benchmark.d.ts +31 -0
- package/dist/commands/benchmark.d.ts.map +1 -0
- package/dist/commands/benchmark.js +211 -0
- package/dist/commands/benchmark.js.map +1 -0
- package/dist/commands/connect.d.ts +8 -6
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +414 -80
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/enterprise-install.d.ts +36 -0
- package/dist/commands/enterprise-install.d.ts.map +1 -0
- package/dist/commands/enterprise-install.js +289 -0
- package/dist/commands/enterprise-install.js.map +1 -0
- package/dist/commands/eval.d.ts +13 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/eval.js +67 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/exec.d.ts +34 -0
- package/dist/commands/exec.d.ts.map +1 -0
- package/dist/commands/exec.js +114 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/exec.test.d.ts +2 -0
- package/dist/commands/exec.test.d.ts.map +1 -0
- package/dist/commands/exec.test.js +29 -0
- package/dist/commands/exec.test.js.map +1 -0
- package/dist/commands/export.d.ts +21 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +116 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +28 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-daemon.d.ts +61 -0
- package/dist/commands/install-daemon.d.ts.map +1 -0
- package/dist/commands/install-daemon.js +691 -0
- package/dist/commands/install-daemon.js.map +1 -0
- package/dist/commands/install-daemon.test.d.ts +2 -0
- package/dist/commands/install-daemon.test.d.ts.map +1 -0
- package/dist/commands/install-daemon.test.js +93 -0
- package/dist/commands/install-daemon.test.js.map +1 -0
- package/dist/commands/login.js +2 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/mdm.d.ts +23 -0
- package/dist/commands/mdm.d.ts.map +1 -0
- package/dist/commands/mdm.js +134 -0
- package/dist/commands/mdm.js.map +1 -0
- package/dist/commands/skill.d.ts +27 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +289 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/sop-audit.d.ts +17 -0
- package/dist/commands/sop-audit.d.ts.map +1 -0
- package/dist/commands/sop-audit.js +136 -0
- package/dist/commands/sop-audit.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +53 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/syncContext.d.ts +18 -0
- package/dist/commands/syncContext.d.ts.map +1 -0
- package/dist/commands/syncContext.js +37 -0
- package/dist/commands/syncContext.js.map +1 -0
- package/dist/commands/traces.d.ts +13 -0
- package/dist/commands/traces.d.ts.map +1 -1
- package/dist/commands/traces.js +96 -2
- package/dist/commands/traces.js.map +1 -1
- package/dist/commands/whoami.js +1 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config/keychain.d.ts +28 -0
- package/dist/config/keychain.d.ts.map +1 -0
- package/dist/config/keychain.js +99 -0
- package/dist/config/keychain.js.map +1 -0
- package/dist/config/store.d.ts +3 -3
- package/dist/config/store.d.ts.map +1 -1
- package/dist/config/store.js +30 -6
- package/dist/config/store.js.map +1 -1
- package/dist/harness/aider.d.ts +4 -3
- package/dist/harness/aider.d.ts.map +1 -1
- package/dist/harness/aider.js +13 -27
- package/dist/harness/aider.js.map +1 -1
- package/dist/harness/claudeDesktop.d.ts +18 -0
- package/dist/harness/claudeDesktop.d.ts.map +1 -0
- package/dist/harness/claudeDesktop.js +69 -0
- package/dist/harness/claudeDesktop.js.map +1 -0
- package/dist/harness/cline.d.ts +13 -0
- package/dist/harness/cline.d.ts.map +1 -0
- package/dist/harness/cline.js +75 -0
- package/dist/harness/cline.js.map +1 -0
- package/dist/harness/codex.d.ts +4 -4
- package/dist/harness/codex.d.ts.map +1 -1
- package/dist/harness/codex.js +33 -21
- package/dist/harness/codex.js.map +1 -1
- package/dist/harness/continue.d.ts +14 -0
- package/dist/harness/continue.d.ts.map +1 -0
- package/dist/harness/continue.js +97 -0
- package/dist/harness/continue.js.map +1 -0
- package/dist/harness/cursor.d.ts +13 -1
- package/dist/harness/cursor.d.ts.map +1 -1
- package/dist/harness/cursor.js +59 -3
- package/dist/harness/cursor.js.map +1 -1
- package/dist/harness/detector.d.ts +1 -1
- package/dist/harness/detector.d.ts.map +1 -1
- package/dist/harness/detector.js +13 -1
- package/dist/harness/detector.js.map +1 -1
- package/dist/harness/goose.d.ts +13 -0
- package/dist/harness/goose.d.ts.map +1 -0
- package/dist/harness/goose.js +45 -0
- package/dist/harness/goose.js.map +1 -0
- package/dist/harness/n8n.d.ts +8 -4
- package/dist/harness/n8n.d.ts.map +1 -1
- package/dist/harness/n8n.js +108 -13
- package/dist/harness/n8n.js.map +1 -1
- package/dist/harness/openWebUI.d.ts +13 -0
- package/dist/harness/openWebUI.d.ts.map +1 -0
- package/dist/harness/openWebUI.js +25 -0
- package/dist/harness/openWebUI.js.map +1 -0
- package/dist/harness/openhands.d.ts +3 -3
- package/dist/harness/openhands.d.ts.map +1 -1
- package/dist/harness/openhands.js +13 -9
- package/dist/harness/openhands.js.map +1 -1
- package/dist/harness/rooCode.d.ts +14 -0
- package/dist/harness/rooCode.d.ts.map +1 -0
- package/dist/harness/rooCode.js +77 -0
- package/dist/harness/rooCode.js.map +1 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js +6 -0
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/vscodeSettingsWriter.d.ts +40 -0
- package/dist/harness/vscodeSettingsWriter.d.ts.map +1 -0
- package/dist/harness/vscodeSettingsWriter.js +116 -0
- package/dist/harness/vscodeSettingsWriter.js.map +1 -0
- package/dist/harness/windsurf.d.ts +13 -1
- package/dist/harness/windsurf.d.ts.map +1 -1
- package/dist/harness/windsurf.js +58 -3
- package/dist/harness/windsurf.js.map +1 -1
- package/dist/lib/api.d.ts +2 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +71 -1
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/envInjector.d.ts +24 -0
- package/dist/lib/envInjector.d.ts.map +1 -0
- package/dist/lib/envInjector.js +146 -0
- package/dist/lib/envInjector.js.map +1 -0
- package/dist/lib/envInjector.test.d.ts +2 -0
- package/dist/lib/envInjector.test.d.ts.map +1 -0
- package/dist/lib/envInjector.test.js +32 -0
- package/dist/lib/envInjector.test.js.map +1 -0
- package/dist/lib/gitHooks.d.ts +19 -0
- package/dist/lib/gitHooks.d.ts.map +1 -0
- package/dist/lib/gitHooks.js +58 -0
- package/dist/lib/gitHooks.js.map +1 -0
- package/dist/lib/onboarding.d.ts +17 -0
- package/dist/lib/onboarding.d.ts.map +1 -0
- package/dist/lib/onboarding.js +164 -0
- package/dist/lib/onboarding.js.map +1 -0
- package/dist/lib/process.d.ts +53 -0
- package/dist/lib/process.d.ts.map +1 -0
- package/dist/lib/process.js +181 -0
- package/dist/lib/process.js.map +1 -0
- package/dist/lib/process.test.d.ts +2 -0
- package/dist/lib/process.test.d.ts.map +1 -0
- package/dist/lib/process.test.js +44 -0
- package/dist/lib/process.test.js.map +1 -0
- package/package.json +22 -33
|
@@ -28,5 +28,18 @@ export declare function runTracesList(opts: TraceListCliOpts): Promise<void>;
|
|
|
28
28
|
export declare function runTracesInspect(traceId: string, opts: {
|
|
29
29
|
dev?: boolean;
|
|
30
30
|
}): Promise<void>;
|
|
31
|
+
interface ForkCliOpts {
|
|
32
|
+
fromStep: string;
|
|
33
|
+
type: 'tool_arg_mutation' | 'sop_config_mutation' | 'model_swap';
|
|
34
|
+
args?: string;
|
|
35
|
+
sopThreshold?: string;
|
|
36
|
+
model?: string;
|
|
37
|
+
label?: string;
|
|
38
|
+
dev?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* `intutic traces fork <trace_id>` — Fork a completed trace with a mutation.
|
|
42
|
+
*/
|
|
43
|
+
export declare function runTracesFork(traceId: string, opts: ForkCliOpts): Promise<void>;
|
|
31
44
|
export {};
|
|
32
45
|
//# sourceMappingURL=traces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../src/commands/traces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AA2HD;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEzE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CAmCf"}
|
|
1
|
+
{"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../src/commands/traces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AA2HD;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEzE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,YAAY,CAAA;IAChE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC,CAsGf"}
|
package/dist/commands/traces.js
CHANGED
|
@@ -122,7 +122,7 @@ function friendlyDuration(since) {
|
|
|
122
122
|
* `intutic traces list` — List execution traces for the authenticated workspace.
|
|
123
123
|
*/
|
|
124
124
|
export async function runTracesList(opts) {
|
|
125
|
-
const creds = loadCredentials();
|
|
125
|
+
const creds = await loadCredentials();
|
|
126
126
|
if (!creds) {
|
|
127
127
|
log.error('Not authenticated. Run `intutic login` first.');
|
|
128
128
|
process.exit(1);
|
|
@@ -177,7 +177,7 @@ export async function runTracesList(opts) {
|
|
|
177
177
|
* `intutic traces inspect <trace_id>` — Show full detail of a single trace.
|
|
178
178
|
*/
|
|
179
179
|
export async function runTracesInspect(traceId, opts) {
|
|
180
|
-
const creds = loadCredentials();
|
|
180
|
+
const creds = await loadCredentials();
|
|
181
181
|
if (!creds) {
|
|
182
182
|
log.error('Not authenticated. Run `intutic login` first.');
|
|
183
183
|
process.exit(1);
|
|
@@ -204,4 +204,98 @@ export async function runTracesInspect(traceId, opts) {
|
|
|
204
204
|
process.exit(1);
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* `intutic traces fork <trace_id>` — Fork a completed trace with a mutation.
|
|
209
|
+
*/
|
|
210
|
+
export async function runTracesFork(traceId, opts) {
|
|
211
|
+
const creds = await loadCredentials();
|
|
212
|
+
if (!creds) {
|
|
213
|
+
log.error('Not authenticated. Run `intutic login` first.');
|
|
214
|
+
process.exit(1);
|
|
215
|
+
}
|
|
216
|
+
const controlPlaneUrl = resolveControlPlaneUrl(opts.dev);
|
|
217
|
+
const client = createApiClient(controlPlaneUrl, creds.apiKey);
|
|
218
|
+
// Construct mutation config
|
|
219
|
+
let mutation = {};
|
|
220
|
+
if (opts.type === 'tool_arg_mutation') {
|
|
221
|
+
let argOverrides = {};
|
|
222
|
+
try {
|
|
223
|
+
if (opts.args) {
|
|
224
|
+
argOverrides = JSON.parse(opts.args);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
log.error('Invalid JSON string passed to --args');
|
|
229
|
+
process.exit(1);
|
|
230
|
+
}
|
|
231
|
+
mutation = {
|
|
232
|
+
stepId: opts.fromStep,
|
|
233
|
+
toolName: '',
|
|
234
|
+
argOverrides,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
else if (opts.type === 'sop_config_mutation') {
|
|
238
|
+
mutation = {
|
|
239
|
+
sopId: '',
|
|
240
|
+
configOverrides: {
|
|
241
|
+
threshold: opts.sopThreshold ? parseFloat(opts.sopThreshold) : 0.5,
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
else if (opts.type === 'model_swap') {
|
|
246
|
+
mutation = {
|
|
247
|
+
fromStepId: opts.fromStep,
|
|
248
|
+
newModel: opts.model || 'claude-haiku-3-5',
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
try {
|
|
252
|
+
log.info(`Creating trace fork for ${traceId} from step ${opts.fromStep}...`);
|
|
253
|
+
const createRes = await client.post(`/api/v1/traces/${encodeURIComponent(traceId)}/forks`, {
|
|
254
|
+
fromStepId: opts.fromStep,
|
|
255
|
+
forkType: opts.type,
|
|
256
|
+
mutation,
|
|
257
|
+
label: opts.label,
|
|
258
|
+
});
|
|
259
|
+
const forkId = createRes.counterfactualRunId;
|
|
260
|
+
log.success(`Fork successfully queued. Run ID: ${forkId}`);
|
|
261
|
+
// Polling loop
|
|
262
|
+
let status = createRes.status;
|
|
263
|
+
let runDetails = null;
|
|
264
|
+
log.info('Waiting for simulated sandbox replay to complete...');
|
|
265
|
+
while (status === 'queued' || status === 'running') {
|
|
266
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
267
|
+
runDetails = await client.get(`/api/v1/traces/${encodeURIComponent(traceId)}/forks/${encodeURIComponent(forkId)}`);
|
|
268
|
+
status = runDetails.status;
|
|
269
|
+
}
|
|
270
|
+
if (status === 'failed') {
|
|
271
|
+
log.error(`Fork run failed: ${runDetails.errorDetail || 'Unknown error'}`);
|
|
272
|
+
process.exit(1);
|
|
273
|
+
}
|
|
274
|
+
log.success('Fork simulation completed successfully!');
|
|
275
|
+
log.header('Trace Diff Summary');
|
|
276
|
+
log.field('Original Trace ID', traceId);
|
|
277
|
+
log.field('Counterfactual Run ID', forkId);
|
|
278
|
+
log.field('Verdict Changed', runDetails.verdictChanged ? 'YES' : 'NO');
|
|
279
|
+
log.field('Cost Delta USD', `$${(runDetails.costDeltaUsd ?? 0).toFixed(4)}`);
|
|
280
|
+
log.field('Token Delta', String(runDetails.tokenDelta ?? 0));
|
|
281
|
+
if (runDetails.diff) {
|
|
282
|
+
console.log('');
|
|
283
|
+
log.header('Step Diff Details');
|
|
284
|
+
const diffSteps = runDetails.diff.steps || [];
|
|
285
|
+
const headers = ['Step', 'Original Verdict', 'Counterfactual Verdict', 'Diverged'];
|
|
286
|
+
const widths = [6, 18, 22, 9];
|
|
287
|
+
const rows = diffSteps.map((s) => [
|
|
288
|
+
String(s.stepIndex),
|
|
289
|
+
s.original ? String(s.original.verdict) : 'N/A',
|
|
290
|
+
s.counterfactual ? String(s.counterfactual.verdict) : 'N/A',
|
|
291
|
+
s.diverged ? 'YES' : 'NO',
|
|
292
|
+
]);
|
|
293
|
+
renderTable(headers, widths, rows);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
log.error(`Failed to fork trace: ${err instanceof Error ? err.message : String(err)}`);
|
|
298
|
+
process.exit(1);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
207
301
|
//# sourceMappingURL=traces.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces.js","sourceRoot":"","sources":["../../src/commands/traces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,MAAM,YAAY,CAAA;AAc3B,uEAAuE;AAEvE;;;GAGG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,+CAA+C;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAEtB,IAAI,EAAU,CAAA;IACd,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,IAAI,CAAA;YACtB,MAAK;QACP,KAAK,GAAG;YACN,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YAC3B,MAAK;QACP,KAAK,GAAG;YACN,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YAChC,MAAK;QACP;YACE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC5B,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AACzC,CAAC;AAED,uEAAuE;AAEvE,8EAA8E;AAC9E,SAAS,UAAU,CAAC,EAAU;IAC5B,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IAC9B,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAA;AAChC,CAAC;AAED,sDAAsD;AACtD,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrD,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAA;AAC7I,CAAC;AAED,kDAAkD;AAClD,SAAS,WAAW,CAAC,MAAc;IACjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACzB,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxB,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1B,KAAK,MAAM;YACT,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACvB;YACE,OAAO,MAAM,CAAA;IACjB,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACpC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACrC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAED,2CAA2C;AAC3C,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;AAC7B,CAAC;AAED,6DAA6D;AAC7D,SAAS,GAAG,CAAC,GAAW,EAAE,KAAa;IACrC,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACnD,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC;AAED,0CAA0C;AAC1C,SAAS,WAAW,CAClB,OAAiB,EACjB,MAAgB,EAChB,IAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACtE,MAAM,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACtE,MAAM,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IAEtE,MAAM,MAAM,GAAG,CAAC,KAAe,EAAE,EAAE,CACjC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IAElE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC;AAED,uEAAuE;AAEvE,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACnC,MAAM,MAAM,GAA2B,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;IAClC,OAAO,GAAG,GAAG,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACzD,CAAC;AAED,uEAAuE;AAEvE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAsB;IACxD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAE7D,qBAAqB;IACrB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IACpC,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACvD,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAC3B,kBAAkB,MAAM,CAAC,QAAQ,EAAE,EAAE,CACtC,CAAA;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC1C,OAAM;QACR,CAAC;QAED,0BAA0B;QAC1B,GAAG,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAA;QAExC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;YACnD,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC7E,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAClC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;YACrB,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5B,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE;gBAC1B,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;gBACrC,CAAC,CAAC,CAAC,CAAC,cAAc;YACpB,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAChC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;YAC7B,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;SAC5B,CAAC,CAAA;QAEF,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAElC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAA;QACtC,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,GAAG,CACJ,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,iBAAiB,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAC/F,CACF,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CACP,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7E,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,IAAuB;IAEvB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAE7D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAC3B,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAChD,CAAA;QAED,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;QACpC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEf,iCAAiC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC1C,MAAM,WAAW,GAAG,IAAI;aACrB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;aACrE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;aACxE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;aACpE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;aAClE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAE3D,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CACP,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"traces.js","sourceRoot":"","sources":["../../src/commands/traces.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/whoami.js
CHANGED
|
@@ -11,7 +11,7 @@ import { loadCredentials } from '../config/store.js';
|
|
|
11
11
|
import { resolveControlPlaneUrl } from '../config/paths.js';
|
|
12
12
|
import { createApiClient } from '../lib/api.js';
|
|
13
13
|
export async function runWhoami(opts) {
|
|
14
|
-
const creds = loadCredentials();
|
|
14
|
+
const creds = await loadCredentials();
|
|
15
15
|
if (!creds) {
|
|
16
16
|
log.error('Not authenticated. Run `intutic login` first.');
|
|
17
17
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAuB;IACrD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAuB;IACrD,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAE7D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAC/B,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;QAChC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;QAC5B,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;QACnC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;QACtC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* keychain.ts — Secure credential storage using native OS commands.
|
|
3
|
+
*
|
|
4
|
+
* Utilizes:
|
|
5
|
+
* - macOS: `security` command line tool
|
|
6
|
+
* - Linux: `secret-tool` (libsecret-tools package)
|
|
7
|
+
* - Windows: `cmdkey` (Credential Manager CLI) and PowerShell fallback
|
|
8
|
+
*
|
|
9
|
+
* Falls back to local credentials.json if OS keychain utility is unavailable.
|
|
10
|
+
*
|
|
11
|
+
* LLD #14 — keychain.ts
|
|
12
|
+
* HLD §3.14 — OS Keychain Storage
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Stores token in OS Keychain. Returns true on success, false on failure/fallback.
|
|
18
|
+
*/
|
|
19
|
+
export declare function storeToken(workspaceId: string, token: string): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Retrieves token from OS Keychain. Returns null if absent/fallback.
|
|
22
|
+
*/
|
|
23
|
+
export declare function retrieveToken(workspaceId: string): Promise<string | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Deletes token from OS Keychain. Returns true on success.
|
|
26
|
+
*/
|
|
27
|
+
export declare function deleteToken(workspaceId: string): Promise<boolean>;
|
|
28
|
+
//# sourceMappingURL=keychain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/config/keychain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BrF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6B/E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BvE"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* keychain.ts — Secure credential storage using native OS commands.
|
|
3
|
+
*
|
|
4
|
+
* Utilizes:
|
|
5
|
+
* - macOS: `security` command line tool
|
|
6
|
+
* - Linux: `secret-tool` (libsecret-tools package)
|
|
7
|
+
* - Windows: `cmdkey` (Credential Manager CLI) and PowerShell fallback
|
|
8
|
+
*
|
|
9
|
+
* Falls back to local credentials.json if OS keychain utility is unavailable.
|
|
10
|
+
*
|
|
11
|
+
* LLD #14 — keychain.ts
|
|
12
|
+
* HLD §3.14 — OS Keychain Storage
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import { execSync } from 'node:child_process';
|
|
17
|
+
import { log } from '../lib/logger.js';
|
|
18
|
+
const SERVICE_NAME = 'intutic';
|
|
19
|
+
const ACCOUNT_NAME = 'token';
|
|
20
|
+
/**
|
|
21
|
+
* Stores token in OS Keychain. Returns true on success, false on failure/fallback.
|
|
22
|
+
*/
|
|
23
|
+
export async function storeToken(workspaceId, token) {
|
|
24
|
+
const target = `${SERVICE_NAME}:workspace:${workspaceId}`;
|
|
25
|
+
try {
|
|
26
|
+
if (process.platform === 'darwin') {
|
|
27
|
+
// macOS keychain
|
|
28
|
+
execSync(`security add-generic-password -a "${ACCOUNT_NAME}" -s "${target}" -w "${token}" -U`, { stdio: 'ignore' });
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
else if (process.platform === 'linux') {
|
|
32
|
+
// Linux libsecret (secret-tool)
|
|
33
|
+
// Pass token via stdin to avoid exposing it in process tree
|
|
34
|
+
execSync(`secret-tool store --label="Intutic Workspace ${workspaceId}" workspace "${workspaceId}" service "${SERVICE_NAME}"`, { input: token, stdio: 'pipe' });
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
else if (process.platform === 'win32') {
|
|
38
|
+
// Windows cmdkey (Credential Manager)
|
|
39
|
+
execSync(`cmdkey /generic:"${target}" /user:"${ACCOUNT_NAME}" /pass:"${token}"`, { stdio: 'ignore' });
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
log.dim(`OS Keychain save failed (falling back to credentials.json): ${err instanceof Error ? err.message : String(err)}`);
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Retrieves token from OS Keychain. Returns null if absent/fallback.
|
|
50
|
+
*/
|
|
51
|
+
export async function retrieveToken(workspaceId) {
|
|
52
|
+
const target = `${SERVICE_NAME}:workspace:${workspaceId}`;
|
|
53
|
+
try {
|
|
54
|
+
if (process.platform === 'darwin') {
|
|
55
|
+
const output = execSync(`security find-generic-password -a "${ACCOUNT_NAME}" -s "${target}" -w`, { encoding: 'utf-8', stdio: 'pipe' });
|
|
56
|
+
return output.trim();
|
|
57
|
+
}
|
|
58
|
+
else if (process.platform === 'linux') {
|
|
59
|
+
const output = execSync(`secret-tool lookup workspace "${workspaceId}" service "${SERVICE_NAME}"`, { encoding: 'utf-8', stdio: 'pipe' });
|
|
60
|
+
return output.trim();
|
|
61
|
+
}
|
|
62
|
+
else if (process.platform === 'win32') {
|
|
63
|
+
// Windows Credential Manager lookup via PowerShell
|
|
64
|
+
// We retrieve the credential password cleanly using the PasswordVault API in PowerShell
|
|
65
|
+
const psCommand = `[void][Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]; $v = New-Object Windows.Security.Credentials.PasswordVault; try { $c = $v.Retrieve("${target}", "${ACCOUNT_NAME}"); $c.RetrievePassword(); $c.Password } catch { exit 1 }`;
|
|
66
|
+
const output = execSync(`powershell -Command "${psCommand}"`, { encoding: 'utf-8', stdio: 'pipe' });
|
|
67
|
+
return output.trim();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Normal case: key doesn't exist, or tool unavailable. Fallback handles it.
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Deletes token from OS Keychain. Returns true on success.
|
|
77
|
+
*/
|
|
78
|
+
export async function deleteToken(workspaceId) {
|
|
79
|
+
const target = `${SERVICE_NAME}:workspace:${workspaceId}`;
|
|
80
|
+
try {
|
|
81
|
+
if (process.platform === 'darwin') {
|
|
82
|
+
execSync(`security delete-generic-password -a "${ACCOUNT_NAME}" -s "${target}"`, { stdio: 'ignore' });
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
else if (process.platform === 'linux') {
|
|
86
|
+
execSync(`secret-tool clear workspace "${workspaceId}" service "${SERVICE_NAME}"`, { stdio: 'ignore' });
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
else if (process.platform === 'win32') {
|
|
90
|
+
execSync(`cmdkey /delete:"${target}"`, { stdio: 'ignore' });
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Key might not exist or tool unavailable
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=keychain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/config/keychain.ts"],"names":[],"mappings":"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"}
|
package/dist/config/store.d.ts
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { IntuticCredentials, IntuticConfig, IntegrityStore } from '@intutic/shared-types';
|
|
11
11
|
/** Load stored credentials. Returns null if not found. */
|
|
12
|
-
export declare function loadCredentials(): IntuticCredentials | null
|
|
12
|
+
export declare function loadCredentials(): Promise<IntuticCredentials | null>;
|
|
13
13
|
/** Save credentials with restricted permissions (0o600). */
|
|
14
|
-
export declare function saveCredentials(creds: IntuticCredentials): void
|
|
14
|
+
export declare function saveCredentials(creds: IntuticCredentials): Promise<void>;
|
|
15
15
|
/** Delete credentials file. */
|
|
16
|
-
export declare function clearCredentials(): void
|
|
16
|
+
export declare function clearCredentials(): Promise<void>;
|
|
17
17
|
/** Load workspace config. Returns null if not found. */
|
|
18
18
|
export declare function loadConfig(): IntuticConfig | null;
|
|
19
19
|
/** Save workspace config. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AA6B9F,0DAA0D;AAC1D,wBAAsB,eAAe,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAW1E;AAED,4DAA4D;AAC5D,wBAAsB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E;AAED,+BAA+B;AAC/B,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CActD;AAID,wDAAwD;AACxD,wBAAgB,UAAU,IAAI,aAAa,GAAG,IAAI,CAEjD;AAED,6BAA6B;AAC7B,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAEtD;AAID,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAE1E;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAEhF"}
|
package/dist/config/store.js
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { readFileSync, writeFileSync, unlinkSync, mkdirSync } from 'node:fs';
|
|
11
11
|
import { dirname } from 'node:path';
|
|
12
|
-
import { getCredentialsPath, getConfigPath, getIntegrityPath
|
|
12
|
+
import { getCredentialsPath, getConfigPath, getIntegrityPath } from './paths.js';
|
|
13
|
+
import { storeToken, retrieveToken, deleteToken } from './keychain.js';
|
|
13
14
|
// ─── Helpers ─────────────────────────────────────────────────────────
|
|
14
15
|
function ensureDir(filePath) {
|
|
15
16
|
mkdirSync(dirname(filePath), { recursive: true });
|
|
@@ -32,15 +33,38 @@ function writeJsonFile(filePath, data, mode) {
|
|
|
32
33
|
}
|
|
33
34
|
// ─── Credentials ─────────────────────────────────────────────────────
|
|
34
35
|
/** Load stored credentials. Returns null if not found. */
|
|
35
|
-
export function loadCredentials() {
|
|
36
|
-
|
|
36
|
+
export async function loadCredentials() {
|
|
37
|
+
const creds = readJsonFile(getCredentialsPath());
|
|
38
|
+
if (!creds)
|
|
39
|
+
return null;
|
|
40
|
+
if (creds.apiKey === 'keychain') {
|
|
41
|
+
const token = await retrieveToken(creds.workspaceId);
|
|
42
|
+
if (token) {
|
|
43
|
+
creds.apiKey = token;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return creds;
|
|
37
47
|
}
|
|
38
48
|
/** Save credentials with restricted permissions (0o600). */
|
|
39
|
-
export function saveCredentials(creds) {
|
|
40
|
-
|
|
49
|
+
export async function saveCredentials(creds) {
|
|
50
|
+
const savedToKeychain = await storeToken(creds.workspaceId, creds.apiKey);
|
|
51
|
+
const credsToSave = { ...creds };
|
|
52
|
+
if (savedToKeychain) {
|
|
53
|
+
credsToSave.apiKey = 'keychain';
|
|
54
|
+
}
|
|
55
|
+
writeJsonFile(getCredentialsPath(), credsToSave, 0o600);
|
|
41
56
|
}
|
|
42
57
|
/** Delete credentials file. */
|
|
43
|
-
export function clearCredentials() {
|
|
58
|
+
export async function clearCredentials() {
|
|
59
|
+
try {
|
|
60
|
+
const creds = readJsonFile(getCredentialsPath());
|
|
61
|
+
if (creds) {
|
|
62
|
+
await deleteToken(creds.workspaceId);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Ignore keychain deletion failures
|
|
67
|
+
}
|
|
44
68
|
try {
|
|
45
69
|
unlinkSync(getCredentialsPath());
|
|
46
70
|
}
|
package/dist/config/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAa,MAAM,SAAS,CAAA;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"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"}
|
package/dist/harness/aider.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Aider adapter
|
|
2
|
+
* aider.ts — Aider adapter (full implementation with safe YAML merge).
|
|
3
3
|
*
|
|
4
|
-
* Writes SOP content into
|
|
5
|
-
*
|
|
4
|
+
* Writes SOP content into .aider.conf.yml using the aiderConfigMerger
|
|
5
|
+
* which safely merges proxy keys and strips dangerous auto-exec keys
|
|
6
|
+
* (test-cmd, lint-cmd) that Aider auto-executes on startup.
|
|
6
7
|
*
|
|
7
8
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
8
9
|
* @module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aider.d.ts","sourceRoot":"","sources":["../../src/harness/aider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"aider.d.ts","sourceRoot":"","sources":["../../src/harness/aider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAMjD,eAAO,MAAM,YAAY,EAAE,eAiC1B,CAAA"}
|
package/dist/harness/aider.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Aider adapter
|
|
2
|
+
* aider.ts — Aider adapter (full implementation with safe YAML merge).
|
|
3
3
|
*
|
|
4
|
-
* Writes SOP content into
|
|
5
|
-
*
|
|
4
|
+
* Writes SOP content into .aider.conf.yml using the aiderConfigMerger
|
|
5
|
+
* which safely merges proxy keys and strips dangerous auto-exec keys
|
|
6
|
+
* (test-cmd, lint-cmd) that Aider auto-executes on startup.
|
|
6
7
|
*
|
|
7
8
|
* HLD §3.14 — Harness Onboarding Matrix
|
|
8
9
|
* @module
|
|
9
10
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
11
|
+
import { access } from 'node:fs/promises';
|
|
12
|
+
import { join } from 'node:path';
|
|
12
13
|
import { HarnessType } from '@intutic/shared-types';
|
|
13
14
|
import { hashFile } from '../lib/hash.js';
|
|
14
|
-
import {
|
|
15
|
+
import { mergeAiderConfig } from '@intutic/sync-daemon/harness/aiderConfigMerger';
|
|
15
16
|
const CONFIG_FILE = '.aider.conf.yml';
|
|
16
17
|
export const aiderAdapter = {
|
|
17
18
|
type: HarnessType.AIDER,
|
|
@@ -26,28 +27,13 @@ export const aiderAdapter = {
|
|
|
26
27
|
}
|
|
27
28
|
},
|
|
28
29
|
async writeConfig(workspaceRoot, sops, proxyUrl) {
|
|
29
|
-
if (sops.length === 0)
|
|
30
|
-
return null;
|
|
31
30
|
const filePath = join(workspaceRoot, CONFIG_FILE);
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
'# Intutic Governance Rules (auto-generated)',
|
|
39
|
-
'# DO NOT EDIT — managed by intutic sync daemon',
|
|
40
|
-
`# Last sync: ${newIso()}`,
|
|
41
|
-
'',
|
|
42
|
-
`# Proxy URL: ${proxyUrl}`,
|
|
43
|
-
'',
|
|
44
|
-
'extra-instructions: |',
|
|
45
|
-
...instructions.split('\n').map((line) => ` ${line}`),
|
|
46
|
-
'',
|
|
47
|
-
].join('\n');
|
|
48
|
-
await mkdir(dirname(filePath), { recursive: true });
|
|
49
|
-
await writeFile(tmpPath, yaml, 'utf-8');
|
|
50
|
-
await rename(tmpPath, filePath);
|
|
31
|
+
const sopsText = sops.length > 0
|
|
32
|
+
? sops.map((sop) => `## ${sop.title}\n\n${sop.content}`).join('\n\n---\n\n')
|
|
33
|
+
: undefined;
|
|
34
|
+
// Safe merge: strips test-cmd/lint-cmd, preserves all other user keys,
|
|
35
|
+
// injects proxy URL as openai-api-base and anthropic-api-base
|
|
36
|
+
await mergeAiderConfig(filePath, proxyUrl, sopsText);
|
|
51
37
|
return filePath;
|
|
52
38
|
},
|
|
53
39
|
async readCurrentHash(workspaceRoot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aider.js","sourceRoot":"","sources":["../../src/harness/aider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"aider.js","sourceRoot":"","sources":["../../src/harness/aider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AAEjF,MAAM,WAAW,GAAG,iBAAiB,CAAA;AAErC,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,WAAW,CAAC,KAAK;IACvB,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;YAC9C,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,IAAoB,EAAE,QAAgB;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;YAC5E,CAAC,CAAC,SAAS,CAAA;QAEb,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACpD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,aAAqB;QACzC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* claudeDesktop.ts — Claude Desktop adapter (drift guard only).
|
|
3
|
+
*
|
|
4
|
+
* Claude Desktop has no hook system and no proxy override capability.
|
|
5
|
+
* Its config file (claude_desktop_config.json) is writable by any user
|
|
6
|
+
* process, so we register it with the drift watcher to detect tampering
|
|
7
|
+
* (e.g., a malicious MCP server added by another tool).
|
|
8
|
+
*
|
|
9
|
+
* writeConfig() returns null — no governance content can be injected.
|
|
10
|
+
* readCurrentHash() returns the hash of the config file so the drift
|
|
11
|
+
* watcher can detect changes and emit a governance_drift incident.
|
|
12
|
+
*
|
|
13
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import type { IHarnessAdapter } from './types.js';
|
|
17
|
+
export declare const claudeDesktopAdapter: IHarnessAdapter;
|
|
18
|
+
//# sourceMappingURL=claudeDesktop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeDesktop.d.ts","sourceRoot":"","sources":["../../src/harness/claudeDesktop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAiBjD,eAAO,MAAM,oBAAoB,EAAE,eA2BlC,CAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* claudeDesktop.ts — Claude Desktop adapter (drift guard only).
|
|
3
|
+
*
|
|
4
|
+
* Claude Desktop has no hook system and no proxy override capability.
|
|
5
|
+
* Its config file (claude_desktop_config.json) is writable by any user
|
|
6
|
+
* process, so we register it with the drift watcher to detect tampering
|
|
7
|
+
* (e.g., a malicious MCP server added by another tool).
|
|
8
|
+
*
|
|
9
|
+
* writeConfig() returns null — no governance content can be injected.
|
|
10
|
+
* readCurrentHash() returns the hash of the config file so the drift
|
|
11
|
+
* watcher can detect changes and emit a governance_drift incident.
|
|
12
|
+
*
|
|
13
|
+
* HLD §3.14 — Harness Onboarding Matrix
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import { access } from 'node:fs/promises';
|
|
17
|
+
import { join } from 'node:path';
|
|
18
|
+
import { homedir } from 'node:os';
|
|
19
|
+
import { HarnessType } from '@intutic/shared-types';
|
|
20
|
+
import { hashFile } from '../lib/hash.js';
|
|
21
|
+
/** Platform-specific path to claude_desktop_config.json. */
|
|
22
|
+
function getClaudeDesktopConfigPath() {
|
|
23
|
+
switch (process.platform) {
|
|
24
|
+
case 'darwin':
|
|
25
|
+
return join(homedir(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json');
|
|
26
|
+
case 'win32':
|
|
27
|
+
return join(process.env.APPDATA ?? homedir(), 'Claude', 'claude_desktop_config.json');
|
|
28
|
+
default: // linux / WSL
|
|
29
|
+
return join(homedir(), '.config', 'Claude', 'claude_desktop_config.json');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const CONFIG_PATH = getClaudeDesktopConfigPath();
|
|
33
|
+
export const claudeDesktopAdapter = {
|
|
34
|
+
type: HarnessType.CLAUDE_DESKTOP,
|
|
35
|
+
configFileName: CONFIG_PATH,
|
|
36
|
+
async detect(_workspaceRoot) {
|
|
37
|
+
// Check for /Applications/Claude.app (macOS)
|
|
38
|
+
try {
|
|
39
|
+
await access('/Applications/Claude.app');
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch { /* fall through */ }
|
|
43
|
+
// Check for the config file directly
|
|
44
|
+
try {
|
|
45
|
+
await access(CONFIG_PATH);
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
/** No governance content can be injected into Claude Desktop. */
|
|
53
|
+
async writeConfig() {
|
|
54
|
+
return null;
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Hash the config file so the drift watcher can detect if an
|
|
58
|
+
* unauthorized MCP server entry is added between sync cycles.
|
|
59
|
+
*/
|
|
60
|
+
async readCurrentHash(_workspaceRoot) {
|
|
61
|
+
try {
|
|
62
|
+
return await hashFile(CONFIG_PATH);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=claudeDesktop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeDesktop.js","sourceRoot":"","sources":["../../src/harness/claudeDesktop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,4DAA4D;AAC5D,SAAS,0BAA0B;IACjC,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAA;QAClG,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAA;QACvF,SAAS,cAAc;YACrB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,0BAA0B,EAAE,CAAA;AAEhD,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,IAAI,EAAE,WAAW,CAAC,cAAc;IAChC,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,6CAA6C;QAC7C,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAAC,OAAO,IAAI,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC1F,qCAAqC;QACrC,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAAC,OAAO,IAAI,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAA;QAAC,CAAC;IACvE,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAA;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
|