@telora/daemon 0.19.82 → 0.19.91

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 (42) hide show
  1. package/build-info.json +2 -2
  2. package/dist/cli/session-state.d.ts +26 -0
  3. package/dist/cli/session-state.d.ts.map +1 -1
  4. package/dist/cli/session-state.js +53 -2
  5. package/dist/cli/session-state.js.map +1 -1
  6. package/dist/cli/verify-setup-config.d.ts +58 -0
  7. package/dist/cli/verify-setup-config.d.ts.map +1 -0
  8. package/dist/cli/verify-setup-config.js +105 -0
  9. package/dist/cli/verify-setup-config.js.map +1 -0
  10. package/dist/cli/verify-setup.d.ts +96 -0
  11. package/dist/cli/verify-setup.d.ts.map +1 -0
  12. package/dist/cli/verify-setup.js +175 -0
  13. package/dist/cli/verify-setup.js.map +1 -0
  14. package/dist/config.d.ts +29 -1
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +79 -23
  17. package/dist/config.js.map +1 -1
  18. package/dist/heartbeat.d.ts.map +1 -1
  19. package/dist/heartbeat.js +6 -0
  20. package/dist/heartbeat.js.map +1 -1
  21. package/dist/index.js +33 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/types/config.d.ts +35 -1
  24. package/dist/types/config.d.ts.map +1 -1
  25. package/dist/unified-engine-lifecycle.d.ts.map +1 -1
  26. package/dist/unified-engine-lifecycle.js +14 -2
  27. package/dist/unified-engine-lifecycle.js.map +1 -1
  28. package/dist/unified-init.d.ts.map +1 -1
  29. package/dist/unified-init.js +21 -1
  30. package/dist/unified-init.js.map +1 -1
  31. package/dist/unified-shell-status.d.ts +11 -0
  32. package/dist/unified-shell-status.d.ts.map +1 -1
  33. package/dist/unified-shell-status.js +30 -0
  34. package/dist/unified-shell-status.js.map +1 -1
  35. package/dist/unified-shell.d.ts.map +1 -1
  36. package/dist/unified-shell.js +13 -1
  37. package/dist/unified-shell.js.map +1 -1
  38. package/dist/verification-config.d.ts +45 -1
  39. package/dist/verification-config.d.ts.map +1 -1
  40. package/dist/verification-config.js +41 -0
  41. package/dist/verification-config.js.map +1 -1
  42. package/package.json +1 -1
package/build-info.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "commitSha": "fcf99bf1e",
3
- "builtAt": "2026-07-06T07:34:29.655Z",
2
+ "commitSha": "30a14182e",
3
+ "builtAt": "2026-07-06T16:46:16.684Z",
4
4
  "expectedMigrations": [
5
5
  "20250829113330_create_org_nodes_table.sql",
6
6
  "20250829113402_fix_function_security_search_path.sql",
@@ -31,6 +31,7 @@
31
31
  * so an unreachable registry must not cost a fetch timeout. The running
32
32
  * daemon keeps the cache warm (startVersionCacheRefreshLoop, 6h TTL).
33
33
  */
34
+ import { type VerificationPosture } from '../verification-config.js';
34
35
  interface DaemonJsonProduct {
35
36
  id?: string;
36
37
  repoPath?: string;
@@ -61,6 +62,15 @@ interface SessionStateResponse {
61
62
  pipelineConfig: Record<string, unknown> | null;
62
63
  };
63
64
  deliveryCounts?: Record<string, number>;
65
+ /**
66
+ * Derived verification posture for the session's active product
67
+ * (configured | declined | unconfigured). Locally derived from daemon.json --
68
+ * NOT from the product-api, which cannot know a workstation's config. Absent
69
+ * when it cannot be resolved (degrade-safe; the hook never blocks on it).
70
+ */
71
+ verificationPosture?: VerificationPosture;
72
+ /** The configured command, present only when posture is `configured`. */
73
+ verificationCommand?: string;
64
74
  error?: string;
65
75
  }
66
76
  export interface SessionStateOptions {
@@ -84,6 +94,12 @@ export interface SessionStateOptions {
84
94
  * channel for the invariants the agent must not reason its way around.
85
95
  * Exported for unit testing.
86
96
  */
97
+ /**
98
+ * One-line verification-posture summary for the session's active product.
99
+ * Emitted only when a posture was resolved (see formatPlain), so the byte
100
+ * contract is unchanged for the not-connected / unresolvable case.
101
+ */
102
+ export declare function formatVerificationLine(posture: VerificationPosture, command?: string): string;
87
103
  export declare function formatPlain(state: SessionStateResponse): string;
88
104
  /**
89
105
  * Resolve the default daemon.json path using global-first search order:
@@ -140,6 +156,16 @@ export declare function resolveCwdRepoPath(cfg: DaemonJson): string | null;
140
156
  * is never blocked.
141
157
  */
142
158
  export declare function selfHealClaudeMdSeed(cfg: DaemonJson): void;
159
+ /**
160
+ * Derive the verification posture for the session's active product from the raw
161
+ * daemon.json, via the shared carriage resolver + derivation (single source with
162
+ * the daemon engine + startup surfaces). Degrade-safe: returns null on any error
163
+ * so session start is never blocked.
164
+ */
165
+ export declare function resolveActivePosture(cfg: DaemonJson, productId: string): {
166
+ posture: VerificationPosture;
167
+ command: string;
168
+ } | null;
143
169
  export declare function runSessionState(opts: SessionStateOptions): Promise<void>;
144
170
  export {};
145
171
  //# sourceMappingURL=session-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-state.d.ts","sourceRoot":"","sources":["../../src/cli/session-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAUH,UAAU,iBAAiB;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE;YAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,CAAC;CACH;AAED,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,GAAG;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;KAChD,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iHAAiH;IACjH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwGD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAU/D;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,IAAI,CAMxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,UAAU,GAAG;IAC5D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAiBA;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAWjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAqB1D;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD9E"}
1
+ {"version":3,"file":"session-state.d.ts","sourceRoot":"","sources":["../../src/cli/session-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAUH,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,UAAU,iBAAiB;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE;YAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,CAAC;CACH;AAED,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,GAAG;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;KAChD,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iHAAiH;IACjH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwGD;;;;;;;;;;;;;;GAcG;AACH;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAS7F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAgB/D;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,IAAI,CAMxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,UAAU,GAAG;IAC5D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAiBA;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAWjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAqB1D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,GAChB;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe1D;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8D9E"}
@@ -38,6 +38,8 @@ import { resolve, sep } from 'node:path';
38
38
  import { writeOrMergeClaudeMd } from './connect.js';
39
39
  import { getStalenessInfo, formatStalenessWarning } from '../staleness.js';
40
40
  import { renderCapabilityPointer } from '../capability-pointer.js';
41
+ import { resolveVerificationCarriage } from '../config.js';
42
+ import { deriveVerificationPosture, resolveDefaultVerification, } from '../verification-config.js';
41
43
  function loadDaemonJson(configPath) {
42
44
  if (!existsSync(configPath))
43
45
  return null;
@@ -148,16 +150,37 @@ async function callSessionState(cfg, productId) {
148
150
  * channel for the invariants the agent must not reason its way around.
149
151
  * Exported for unit testing.
150
152
  */
153
+ /**
154
+ * One-line verification-posture summary for the session's active product.
155
+ * Emitted only when a posture was resolved (see formatPlain), so the byte
156
+ * contract is unchanged for the not-connected / unresolvable case.
157
+ */
158
+ export function formatVerificationLine(posture, command) {
159
+ switch (posture) {
160
+ case 'configured':
161
+ return `Verification: configured${command ? ` (${command})` : ''} -- deliveries run a deterministic check before AI review.`;
162
+ case 'declined':
163
+ return 'Verification: declined (review-only) -- deliveries gate on AI review only, by recorded decision.';
164
+ case 'unconfigured':
165
+ return "Verification: unconfigured -- deliveries gate on AI review only; run 'telora-daemon verify-setup' to enable a deterministic gate.";
166
+ }
167
+ }
151
168
  export function formatPlain(state) {
152
169
  const url = state.connectedUrl ?? '';
153
170
  const orgName = state.organizationName ?? 'unknown';
154
171
  const productName = state.productName ?? 'unknown';
155
- return [
172
+ const lines = [
156
173
  `Telora connected: ${url} / ${orgName} / ${productName}`,
157
174
  'Active focuses, branches, and deliveries are resolved on demand via Telora MCP.',
158
175
  'DEFAULT: declare intent in Telora (Focus -> delivery -> issue, moved to In Progress) BEFORE writing or scaffolding code; build directly in the working tree only when the user explicitly says so (e.g. "build locally", "just write it").',
159
176
  renderCapabilityPointer(),
160
- ].join('\n');
177
+ ];
178
+ // Conditional: only when posture resolved -- preserves the byte contract for
179
+ // sessions where it cannot be derived.
180
+ if (state.verificationPosture) {
181
+ lines.push(formatVerificationLine(state.verificationPosture, state.verificationCommand));
182
+ }
183
+ return lines.join('\n');
161
184
  }
162
185
  /**
163
186
  * Resolve the default daemon.json path using global-first search order:
@@ -273,6 +296,26 @@ export function selfHealClaudeMdSeed(cfg) {
273
296
  process.stderr.write(`session-state: CLAUDE.md seed refresh skipped: ${err.message}\n`);
274
297
  }
275
298
  }
299
+ /**
300
+ * Derive the verification posture for the session's active product from the raw
301
+ * daemon.json, via the shared carriage resolver + derivation (single source with
302
+ * the daemon engine + startup surfaces). Degrade-safe: returns null on any error
303
+ * so session start is never blocked.
304
+ */
305
+ export function resolveActivePosture(cfg, productId) {
306
+ try {
307
+ const carriage = resolveVerificationCarriage(cfg, (cfg.products ?? []).map((p) => ({ id: p.id ?? '', repoPath: p.repoPath ?? '' })));
308
+ const active = carriage.products.find((p) => p.id === productId);
309
+ const scoped = { defaultVerification: active?.defaultVerification ?? carriage.defaultVerification };
310
+ return {
311
+ posture: deriveVerificationPosture(scoped),
312
+ command: resolveDefaultVerification(scoped).command,
313
+ };
314
+ }
315
+ catch {
316
+ return null;
317
+ }
318
+ }
276
319
  export async function runSessionState(opts) {
277
320
  const configPath = opts.config ? resolve(opts.config) : resolveDefaultConfigPath();
278
321
  if (!configPath)
@@ -296,6 +339,14 @@ export async function runSessionState(opts) {
296
339
  return;
297
340
  if (cfg.teloraUrl)
298
341
  state.connectedUrl = cfg.teloraUrl;
342
+ // Locally-derived verification posture for the active product (config-only;
343
+ // degrade-safe). Surfaced on both the plain hook output and the --json payload.
344
+ const posture = resolveActivePosture(cfg, productId);
345
+ if (posture) {
346
+ state.verificationPosture = posture.posture;
347
+ if (posture.posture === 'configured')
348
+ state.verificationCommand = posture.command;
349
+ }
299
350
  // Staleness signal for the RUNNING daemon (null when no daemon is running
300
351
  // or no fresh latest-version answer exists -- see staleness.ts). cacheOnly:
301
352
  // this path must never wait on the registry (the SessionStart hook blocks
@@ -1 +1 @@
1
- {"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/cli/session-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-state.js","sourceRoot":"","sources":["../../src/cli/session-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Shared primitives for the guided verification-setup path: candidate command
3
+ * DETECTION and the config WRITER. Used by both `telora-daemon verify-setup`
4
+ * (existing installs) and the `telora-daemon init` per-product question.
5
+ *
6
+ * Detection PROPOSES; it never auto-adopts. A command is only ever written
7
+ * after an explicit operator confirmation in the caller -- a vacuous pass (an
8
+ * empty or placeholder command) would stamp a false "verified" signal, so the
9
+ * operator is always in the loop.
10
+ *
11
+ * The write payload reuses the shared DefaultVerificationConfig shape (and its
12
+ * `declined` marker) from the per-product posture delivery -- there is no second
13
+ * config shape.
14
+ *
15
+ * @module cli/verify-setup-config
16
+ */
17
+ import type { DefaultVerificationConfig } from '../types.js';
18
+ /** A detected candidate command plus a short human-readable reason. */
19
+ export interface DetectedVerifyCommand {
20
+ command: string;
21
+ /** Why this candidate was proposed (shown to the operator before confirm). */
22
+ reason: string;
23
+ }
24
+ /**
25
+ * Detect a candidate verification command by inspecting ONLY the given repo
26
+ * directory -- never a parent. Walking up the tree misattributes an unrelated
27
+ * ancestor's toolchain to this repo (see the deps-scanner misattribution
28
+ * history); a control plane runs on many repo types, so a wrong guess here is
29
+ * worse than no guess. Returns null when no confident candidate is found.
30
+ *
31
+ * Node repos are matched by their package.json scripts (a real `verify` or
32
+ * non-placeholder `test`); other ecosystems by their canonical manifest file.
33
+ * Never throws -- a malformed manifest yields no candidate.
34
+ */
35
+ export declare function detectVerifyCommand(repoPath: string): DetectedVerifyCommand | null;
36
+ /**
37
+ * Configured write entry: a command plus optional tuning. A subset of the
38
+ * shared DefaultVerificationConfig -- timeoutMs/maxConcurrent default in at load
39
+ * time (parseVerifyBlock), so a guided write only needs the command (+ an
40
+ * optional validated timeout).
41
+ */
42
+ export type ConfiguredVerifyEntry = Pick<DefaultVerificationConfig, 'command'> & Partial<Pick<DefaultVerificationConfig, 'timeoutMs' | 'maxConcurrent'>>;
43
+ /** The payload written under `products[].defaultVerification`. */
44
+ export type VerifyConfigEntry = ConfiguredVerifyEntry | {
45
+ declined: true;
46
+ };
47
+ /**
48
+ * Write `products[].defaultVerification` for one product into a daemon.json
49
+ * file, preserving every other product and every other config key. Idempotent
50
+ * (writing the same entry twice produces the same file). Throws when the target
51
+ * product id is not present in the config's `products` array -- the caller must
52
+ * not silently create a phantom product entry.
53
+ *
54
+ * This is the ONLY write path; callers gate it behind an explicit operator
55
+ * confirmation so nothing is ever auto-adopted.
56
+ */
57
+ export declare function writeVerifyConfig(configPath: string, productId: string, entry: VerifyConfigEntry): void;
58
+ //# sourceMappingURL=verify-setup-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-setup-config.d.ts","sourceRoot":"","sources":["../../src/cli/verify-setup-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CA+BlF;AAED;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAC/B,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC;AAE1E,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAE3E;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,iBAAiB,GACvB,IAAI,CAiBN"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Shared primitives for the guided verification-setup path: candidate command
3
+ * DETECTION and the config WRITER. Used by both `telora-daemon verify-setup`
4
+ * (existing installs) and the `telora-daemon init` per-product question.
5
+ *
6
+ * Detection PROPOSES; it never auto-adopts. A command is only ever written
7
+ * after an explicit operator confirmation in the caller -- a vacuous pass (an
8
+ * empty or placeholder command) would stamp a false "verified" signal, so the
9
+ * operator is always in the loop.
10
+ *
11
+ * The write payload reuses the shared DefaultVerificationConfig shape (and its
12
+ * `declined` marker) from the per-product posture delivery -- there is no second
13
+ * config shape.
14
+ *
15
+ * @module cli/verify-setup-config
16
+ */
17
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
18
+ import { resolve } from 'node:path';
19
+ /**
20
+ * Detect a candidate verification command by inspecting ONLY the given repo
21
+ * directory -- never a parent. Walking up the tree misattributes an unrelated
22
+ * ancestor's toolchain to this repo (see the deps-scanner misattribution
23
+ * history); a control plane runs on many repo types, so a wrong guess here is
24
+ * worse than no guess. Returns null when no confident candidate is found.
25
+ *
26
+ * Node repos are matched by their package.json scripts (a real `verify` or
27
+ * non-placeholder `test`); other ecosystems by their canonical manifest file.
28
+ * Never throws -- a malformed manifest yields no candidate.
29
+ */
30
+ export function detectVerifyCommand(repoPath) {
31
+ // Node: read package.json in THIS directory only.
32
+ const pkgPath = resolve(repoPath, 'package.json');
33
+ if (existsSync(pkgPath)) {
34
+ const scripts = readPackageScripts(pkgPath);
35
+ if (scripts) {
36
+ if (isNonEmptyString(scripts.verify)) {
37
+ return { command: 'npm run verify', reason: 'package.json "verify" script' };
38
+ }
39
+ if (isNonEmptyString(scripts.test) && !isPlaceholderTest(scripts.test)) {
40
+ return { command: 'npm test', reason: 'package.json "test" script' };
41
+ }
42
+ }
43
+ }
44
+ // Rust
45
+ if (existsSync(resolve(repoPath, 'Cargo.toml'))) {
46
+ return { command: 'cargo test', reason: 'Cargo.toml (Rust crate)' };
47
+ }
48
+ // Go
49
+ if (existsSync(resolve(repoPath, 'go.mod'))) {
50
+ return { command: 'go test ./...', reason: 'go.mod (Go module)' };
51
+ }
52
+ // Python
53
+ if (existsSync(resolve(repoPath, 'pyproject.toml')) || existsSync(resolve(repoPath, 'setup.py'))) {
54
+ return { command: 'pytest', reason: 'pyproject.toml/setup.py (Python project)' };
55
+ }
56
+ // Make (generic) -- last resort; a Makefile with a test target is common.
57
+ if (existsSync(resolve(repoPath, 'Makefile'))) {
58
+ return { command: 'make test', reason: 'Makefile' };
59
+ }
60
+ return null;
61
+ }
62
+ /**
63
+ * Write `products[].defaultVerification` for one product into a daemon.json
64
+ * file, preserving every other product and every other config key. Idempotent
65
+ * (writing the same entry twice produces the same file). Throws when the target
66
+ * product id is not present in the config's `products` array -- the caller must
67
+ * not silently create a phantom product entry.
68
+ *
69
+ * This is the ONLY write path; callers gate it behind an explicit operator
70
+ * confirmation so nothing is ever auto-adopted.
71
+ */
72
+ export function writeVerifyConfig(configPath, productId, entry) {
73
+ if (!existsSync(configPath)) {
74
+ throw new Error(`Config file not found: ${configPath}`);
75
+ }
76
+ const raw = JSON.parse(readFileSync(configPath, 'utf-8'));
77
+ const products = Array.isArray(raw.products) ? raw.products : [];
78
+ const target = products.find((p) => typeof p === 'object' && p !== null && p.id === productId);
79
+ if (!target) {
80
+ throw new Error(`Product ${productId} not found in ${configPath}; cannot write verification config.`);
81
+ }
82
+ target.defaultVerification = entry;
83
+ writeFileSync(configPath, JSON.stringify(raw, null, 2) + '\n', { mode: 0o600 });
84
+ }
85
+ // ── internals ──
86
+ function readPackageScripts(pkgPath) {
87
+ try {
88
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
89
+ return typeof pkg.scripts === 'object' && pkg.scripts !== null
90
+ ? pkg.scripts
91
+ : null;
92
+ }
93
+ catch {
94
+ // Malformed package.json -> no candidate, never crash the wizard.
95
+ return null;
96
+ }
97
+ }
98
+ function isNonEmptyString(v) {
99
+ return typeof v === 'string' && v.trim() !== '';
100
+ }
101
+ /** The npm-init default placeholder test (`echo "Error: no test specified" && exit 1`). */
102
+ function isPlaceholderTest(script) {
103
+ return /no test specified/i.test(script);
104
+ }
105
+ //# sourceMappingURL=verify-setup-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-setup-config.js","sourceRoot":"","sources":["../../src/cli/verify-setup-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * `telora-daemon verify-setup`: a guided, per-repo path to configure the
3
+ * default-on deterministic verification command for existing installs.
4
+ *
5
+ * Per configured product it detects a candidate command, offers a validation
6
+ * run (execute once, report exit code + runtime to size the timeout), and
7
+ * writes `products[].defaultVerification` -- or records an explicit review-only
8
+ * decline. Detection PROPOSES; nothing is auto-adopted: every write path
9
+ * requires an explicit operator confirmation (a vacuous pass would stamp a
10
+ * false "verified" signal).
11
+ *
12
+ * The per-product driver (`runVerifySetupForProduct`) is dependency-injected
13
+ * (ask / runCommand / write / out) so it is unit-testable without a TTY or a
14
+ * real subprocess. `runVerifySetupCommand` wires the real readline + child
15
+ * process + config writer for the CLI.
16
+ *
17
+ * @module cli/verify-setup
18
+ */
19
+ import { type VerifyConfigEntry, type ConfiguredVerifyEntry } from './verify-setup-config.js';
20
+ /** Minimum timeout floor for a sized default-on run: 5 minutes. */
21
+ export declare const VERIFY_SETUP_MIN_TIMEOUT_MS: number;
22
+ /** One product the wizard walks. */
23
+ export interface VerifySetupProduct {
24
+ id: string;
25
+ repoPath: string;
26
+ }
27
+ /** Injected side-effect surface -- real impls in runVerifySetupCommand. */
28
+ export interface VerifySetupIO {
29
+ /** Ask the operator a free-text question; returns their trimmed answer. */
30
+ ask(question: string): Promise<string>;
31
+ /** Run a command in a repo; report exit code + wall-clock runtime (ms). */
32
+ runCommand(command: string, repoPath: string): Promise<{
33
+ exitCode: number;
34
+ durationMs: number;
35
+ }>;
36
+ /** Persist a per-product verification entry to config. */
37
+ write(productId: string, entry: VerifyConfigEntry): void;
38
+ /** Emit a line to the operator. */
39
+ out(line: string): void;
40
+ }
41
+ /** Per-product outcome. */
42
+ export type VerifySetupOutcome = 'configured' | 'declined' | 'skipped';
43
+ /** IO surface for the prompt-only flow (no write) -- used by init, which
44
+ * attaches the entry to the product being built rather than writing a file. */
45
+ export type VerifyPromptIO = Omit<VerifySetupIO, 'write'>;
46
+ /**
47
+ * Result of prompting for one product's verification entry, decoupled from the
48
+ * write so both verify-setup (writes to an existing config) and init (attaches
49
+ * to a product being built) can consume it.
50
+ */
51
+ export type VerifyPromptResult = {
52
+ kind: 'skip';
53
+ } | {
54
+ kind: 'decline';
55
+ } | {
56
+ kind: 'configure';
57
+ entry: ConfiguredVerifyEntry;
58
+ };
59
+ /**
60
+ * Size a timeout from an observed validation runtime: at least 2x the run, with
61
+ * a 5-minute floor, rounded up to whole seconds.
62
+ */
63
+ export declare function sizeTimeoutFromRuntime(durationMs: number): number;
64
+ /**
65
+ * Prompt the operator for one product's verification entry: show a detected
66
+ * candidate, accept confirm/edit/skip/decline, optionally validate. Emits
67
+ * informational lines via io.out but performs NO write -- it returns the
68
+ * decision. Nothing is auto-adopted: a skip/empty answer returns `skip`; a
69
+ * non-zero validation exit returns `skip` unless the operator overrides.
70
+ */
71
+ export declare function promptVerifyEntry(product: VerifySetupProduct, io: VerifyPromptIO): Promise<VerifyPromptResult>;
72
+ /**
73
+ * Drive the guided setup for ONE product and PERSIST the decision. Returns what
74
+ * was decided. Never writes config without an explicit confirm/edit/decline; a
75
+ * skip (or empty answer) writes nothing.
76
+ */
77
+ export declare function runVerifySetupForProduct(product: VerifySetupProduct, io: VerifySetupIO): Promise<VerifySetupOutcome>;
78
+ /**
79
+ * Walk every product through the guided setup. Returns the per-product outcomes
80
+ * in order.
81
+ */
82
+ export declare function runVerifySetup(products: readonly VerifySetupProduct[], io: VerifySetupIO): Promise<VerifySetupOutcome[]>;
83
+ /** Run a verification command once in a repo, reporting exit code + runtime.
84
+ * Shared by the verify-setup CLI and the init wizard's validation step. */
85
+ export declare function runVerifyCommandOnce(command: string, repoPath: string): Promise<{
86
+ exitCode: number;
87
+ durationMs: number;
88
+ }>;
89
+ /**
90
+ * CLI entry: load config, resolve its path, and walk each product through the
91
+ * guided setup with real readline + subprocess + config writer.
92
+ */
93
+ export declare function runVerifySetupCommand(opts?: {
94
+ config?: string;
95
+ }): Promise<void>;
96
+ //# sourceMappingURL=verify-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-setup.d.ts","sourceRoot":"","sources":["../../src/cli/verify-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAElC,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,QAAa,CAAC;AAEtD,oCAAoC;AACpC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,2EAA2E;IAC3E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjG,0DAA0D;IAC1D,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzD,mCAAmC;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvE;+EAC+E;AAC/E,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAMxD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAuD7B;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,aAAa,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAW7B;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,EAAE,EAAE,aAAa,GAChB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAM/B;AAWD;2EAC2E;AAC3E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAOzH;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BzF"}