@telora/daemon-core 0.2.18 → 0.2.24

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.
@@ -11,6 +11,16 @@
11
11
  */
12
12
  import type { z } from 'zod';
13
13
  import { CircuitBreaker } from './resilience.js';
14
+ export declare function setReadOnlyMode(enabled: boolean): void;
15
+ export declare function isReadOnlyMode(): boolean;
16
+ /**
17
+ * Return true if the action is safe to invoke while the daemon is in
18
+ * read-only mode.
19
+ *
20
+ * Pattern: explicit allowlist + naming-convention prefix/suffix match.
21
+ * Exported for tests; not part of the ApiClient interface.
22
+ */
23
+ export declare function isReadOnlyAction(action: string): boolean;
14
24
  /**
15
25
  * Minimal configuration required by the API client.
16
26
  *
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAA2C,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAO1F;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAExG;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7E;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC1C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAC1C,SAAS,CAyJX"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAyF,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA0BxI,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEtD;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAQD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKxD;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAExG;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7E;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC1C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAC1C,SAAS,CA2KX"}
@@ -9,9 +9,57 @@
9
9
  * (daemon has 4 concerns, factory has 3). This module provides the
10
10
  * factory function; each engine provides its own concern mapping.
11
11
  */
12
- import { withRetry, ApiError, classifyHttpStatus } from './resilience.js';
12
+ import { withRetry, ApiError, ReadOnlyModeError, SchemaConstraintViolation, classifyHttpStatus } from './resilience.js';
13
13
  import { healthEvents } from './health-events.js';
14
14
  // ---------------------------------------------------------------------------
15
+ // Read-only mode (schema-version gate, warn path)
16
+ // ---------------------------------------------------------------------------
17
+ //
18
+ // When the daemon's schema-version gate fires in warn mode (missing
19
+ // migrations in the live DB but the operator chose to keep running),
20
+ // the daemon enters read-only mode. Non-read actions throw
21
+ // ReadOnlyModeError; the listener-auto-advance retry path treats this
22
+ // the same as a schema_constraint_violation and escalates after the
23
+ // retry cap. See docs/runbook-schema-version-gate.md.
24
+ //
25
+ // Read-only actions are those that don't mutate domain state:
26
+ // - daemon_get_* (polling)
27
+ // - *_list (enumeration)
28
+ // - daemon_heartbeat / daemon_heartbeat_ping (liveness; allowed so
29
+ // operators still see the daemon process as live and degraded
30
+ // rather than silently dead)
31
+ // - explicit per-action additions below
32
+ //
33
+ // Anything else is treated as a write and blocked.
34
+ let readOnlyModeFlag = false;
35
+ export function setReadOnlyMode(enabled) {
36
+ readOnlyModeFlag = enabled;
37
+ }
38
+ export function isReadOnlyMode() {
39
+ return readOnlyModeFlag;
40
+ }
41
+ const READ_ONLY_ALLOWLIST = new Set([
42
+ 'daemon_heartbeat',
43
+ 'daemon_heartbeat_ping',
44
+ 'daemon_get_applied_migrations',
45
+ ]);
46
+ /**
47
+ * Return true if the action is safe to invoke while the daemon is in
48
+ * read-only mode.
49
+ *
50
+ * Pattern: explicit allowlist + naming-convention prefix/suffix match.
51
+ * Exported for tests; not part of the ApiClient interface.
52
+ */
53
+ export function isReadOnlyAction(action) {
54
+ if (READ_ONLY_ALLOWLIST.has(action))
55
+ return true;
56
+ if (action.startsWith('daemon_get_'))
57
+ return true;
58
+ if (action.endsWith('_list'))
59
+ return true;
60
+ return false;
61
+ }
62
+ // ---------------------------------------------------------------------------
15
63
  // Factory function
16
64
  // ---------------------------------------------------------------------------
17
65
  /**
@@ -54,6 +102,11 @@ export function createApiClient(config, breakerMap, actionToConcern) {
54
102
  * Throws ApiError with retryability classification.
55
103
  */
56
104
  async function callApiOnceImpl(action, params = {}) {
105
+ // Read-only gate: when the schema-version gate fired in warn mode,
106
+ // refuse non-read actions before issuing any network call.
107
+ if (readOnlyModeFlag && !isReadOnlyAction(action)) {
108
+ throw new ReadOnlyModeError(action);
109
+ }
57
110
  const url = `${config.teloraUrl}/functions/v1/product-api`;
58
111
  let response;
59
112
  try {
@@ -80,6 +133,14 @@ export function createApiClient(config, breakerMap, actionToConcern) {
80
133
  message: `Authentication failed (HTTP ${response.status}): ${data.error || 'token rejected'}`,
81
134
  });
82
135
  }
136
+ // Typed schema-drift errors (D2): edge function returns
137
+ // { errorType: 'schema_constraint_violation', constraintName, rejectedValue }
138
+ // The listener uses this discriminated subclass to bound retries on
139
+ // the same (constraint, value) combo.
140
+ const body = data;
141
+ if (body.errorType === 'schema_constraint_violation') {
142
+ throw new SchemaConstraintViolation(body.error || `CHECK constraint violation (${response.status})`, body.constraintName ?? null, body.rejectedValue ?? null);
143
+ }
83
144
  const classification = classifyHttpStatus(response.status);
84
145
  throw new ApiError(data.error || `API error (${response.status})`, response.status, classification === 'retryable');
85
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Canonical execution-status enum for product_deliveries.execution_status.
3
+ *
4
+ * Source of truth for both @telora/daemon and @telora/mcp-products so the
5
+ * two cannot drift on what values they write/accept. Must match the
6
+ * production DB CHECK constraint defined in supabase/migrations -- the
7
+ * daemon's startup schema-version gate (packages/daemon/src/schema-version-gate.ts)
8
+ * refuses to start if the live DB lacks a migration that the daemon expects.
9
+ *
10
+ * Adding a value:
11
+ * 1. Add it to EXECUTION_STATUSES below.
12
+ * 2. Ship a migration extending the DB CHECK constraint.
13
+ * 3. The schema-version gate (D3-T3) will refuse to start in prod until
14
+ * the migration is applied. CI publish gate (D3-T5) verifies the
15
+ * build-info migration set is consistent with on-disk migrations.
16
+ */
17
+ export declare const EXECUTION_STATUSES: readonly ["draft", "planning", "queued", "coding", "verify", "verify_failed", "done", "paused", "cancelled"];
18
+ export type ExecutionStatus = (typeof EXECUTION_STATUSES)[number];
19
+ export declare function isExecutionStatus(value: unknown): value is ExecutionStatus;
20
+ //# sourceMappingURL=execution-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-status.d.ts","sourceRoot":"","sources":["../src/execution-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,kBAAkB,8GAUrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAK1E"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Canonical execution-status enum for product_deliveries.execution_status.
3
+ *
4
+ * Source of truth for both @telora/daemon and @telora/mcp-products so the
5
+ * two cannot drift on what values they write/accept. Must match the
6
+ * production DB CHECK constraint defined in supabase/migrations -- the
7
+ * daemon's startup schema-version gate (packages/daemon/src/schema-version-gate.ts)
8
+ * refuses to start if the live DB lacks a migration that the daemon expects.
9
+ *
10
+ * Adding a value:
11
+ * 1. Add it to EXECUTION_STATUSES below.
12
+ * 2. Ship a migration extending the DB CHECK constraint.
13
+ * 3. The schema-version gate (D3-T3) will refuse to start in prod until
14
+ * the migration is applied. CI publish gate (D3-T5) verifies the
15
+ * build-info migration set is consistent with on-disk migrations.
16
+ */
17
+ export const EXECUTION_STATUSES = [
18
+ 'draft',
19
+ 'planning',
20
+ 'queued',
21
+ 'coding',
22
+ 'verify',
23
+ 'verify_failed',
24
+ 'done',
25
+ 'paused',
26
+ 'cancelled',
27
+ ];
28
+ export function isExecutionStatus(value) {
29
+ return (typeof value === 'string' &&
30
+ EXECUTION_STATUSES.includes(value));
31
+ }
32
+ //# sourceMappingURL=execution-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-status.js","sourceRoot":"","sources":["../src/execution-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO;IACP,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,MAAM;IACN,QAAQ;IACR,WAAW;CACH,CAAC;AAIX,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Canonical focus-status enum for product_focuses.status.
3
+ *
4
+ * Source of truth for both @telora/daemon and @telora/mcp-products so the
5
+ * two cannot drift. Must match the production DB `focus_status` enum type
6
+ * defined in supabase/migrations -- the daemon's startup schema-version
7
+ * gate (packages/daemon/src/schema-version-gate.ts) refuses to start if
8
+ * the live DB lacks a migration that the daemon expects.
9
+ *
10
+ * Adding a value:
11
+ * 1. Add it to FOCUS_STATUSES below.
12
+ * 2. Ship a migration extending the `focus_status` enum.
13
+ * 3. The schema-version gate (D3-T3) will refuse to start in prod until
14
+ * the migration is applied. CI publish gate (D3-T5) verifies the
15
+ * build-info migration set is consistent with on-disk migrations.
16
+ */
17
+ export declare const FOCUS_STATUSES: readonly ["proposed", "active", "complete", "cancelled"];
18
+ export type FocusStatus = (typeof FOCUS_STATUSES)[number];
19
+ export declare function isFocusStatus(value: unknown): value is FocusStatus;
20
+ //# sourceMappingURL=focus-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-status.d.ts","sourceRoot":"","sources":["../src/focus-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,cAAc,0DAKjB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAKlE"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Canonical focus-status enum for product_focuses.status.
3
+ *
4
+ * Source of truth for both @telora/daemon and @telora/mcp-products so the
5
+ * two cannot drift. Must match the production DB `focus_status` enum type
6
+ * defined in supabase/migrations -- the daemon's startup schema-version
7
+ * gate (packages/daemon/src/schema-version-gate.ts) refuses to start if
8
+ * the live DB lacks a migration that the daemon expects.
9
+ *
10
+ * Adding a value:
11
+ * 1. Add it to FOCUS_STATUSES below.
12
+ * 2. Ship a migration extending the `focus_status` enum.
13
+ * 3. The schema-version gate (D3-T3) will refuse to start in prod until
14
+ * the migration is applied. CI publish gate (D3-T5) verifies the
15
+ * build-info migration set is consistent with on-disk migrations.
16
+ */
17
+ export const FOCUS_STATUSES = [
18
+ 'proposed',
19
+ 'active',
20
+ 'complete',
21
+ 'cancelled',
22
+ ];
23
+ export function isFocusStatus(value) {
24
+ return (typeof value === 'string' &&
25
+ FOCUS_STATUSES.includes(value));
26
+ }
27
+ //# sourceMappingURL=focus-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-status.js","sourceRoot":"","sources":["../src/focus-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU;IACV,QAAQ;IACR,UAAU;IACV,WAAW;CACH,CAAC;AAIX,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACtD,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { ApiError, CircuitBreaker, CircuitOpenError, type CircuitBreakerOptions, type CircuitState, type RetryOptions, classifyHttpStatus, forceCloseAllCircuitBreakers, getCircuitBreakers, isRetryableError, safeInterval, withRetry, } from './resilience.js';
2
- export { createApiClient, type BaseApiConfig, type ApiClient, } from './api-client.js';
1
+ export { ApiError, CircuitBreaker, CircuitOpenError, ReadOnlyModeError, SchemaConstraintViolation, type CircuitBreakerOptions, type CircuitState, type RetryOptions, classifyHttpStatus, forceCloseAllCircuitBreakers, getCircuitBreakers, isRetryableError, safeInterval, withRetry, } from './resilience.js';
2
+ export { createApiClient, isReadOnlyAction, setReadOnlyMode, isReadOnlyMode, type BaseApiConfig, type ApiClient, } from './api-client.js';
3
3
  export { createTransform, mapDefinedKeys, } from './transforms.js';
4
4
  export { TokenSniffingTransform, parseTokenUsageFromOutput, sumTokenUsage, type ParsedTokenUsage, } from './token-usage.js';
5
5
  export { OutputEventSchema, StreamJsonParser, sendMessage, type AssistantMessage, type GenericSystemEvent, type InputJsonDelta, type OutputEvent, type RateLimitEvent, type RawStreamEvent, type ResultError, type ResultSuccess, type StreamEvent, type StreamJsonParserEvents, type SystemInitEvent, type TeammateEvent, type TextBlock, type TextDelta, type ThinkingBlock, type TokenUsage, type ToolUseBlock, type UserMessage, type UserTextMessageEvent, type UserToolResultEvent, } from './stream-json.js';
@@ -15,6 +15,9 @@ export { formatEventForLog, } from './event-logger.js';
15
15
  export { ActivityTracker, type ActivitySnapshot, } from './activity-tracker.js';
16
16
  export { buildOtelEnv, type BuildOtelEnvOptions, } from './otel-env.js';
17
17
  export { ESCALATION_REASONS, ESCALATION_KINDS, type EscalationReasonType, type EscalationKind, } from './escalation-types.js';
18
+ export { EXECUTION_STATUSES, isExecutionStatus, type ExecutionStatus, } from './execution-status.js';
19
+ export { FOCUS_STATUSES, isFocusStatus, type FocusStatus, } from './focus-status.js';
20
+ export { PRODUCT_STATUSES, isProductStatus, type ProductStatus, } from './product-status.js';
18
21
  export { extractSessionKey, pruneOldLogs, scanLogDirectory, type LogFileInfo, type LogManagerDeps, type LogRetentionConfig, type PruneResult, } from './log-manager.js';
19
22
  export { buildMcpConfig, isLegacyMcpConfigShape, resolveMcpServerPath, writeMcpConfigFile, MCP_PRODUCTS_PACKAGE, MCP_PRODUCTS_BIN, type McpConfigOptions, } from './mcp-resolution.js';
20
23
  export { HealthEventBuffer, healthEvents, type HealthEvent, type HealthSeverity, } from './health-events.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  // @telora/daemon-core - Shared infrastructure for Telora daemon and factory
2
2
  // This package provides the common foundation that both engines build upon.
3
- export { ApiError, CircuitBreaker, CircuitOpenError, classifyHttpStatus, forceCloseAllCircuitBreakers, getCircuitBreakers, isRetryableError, safeInterval, withRetry, } from './resilience.js';
3
+ export { ApiError, CircuitBreaker, CircuitOpenError, ReadOnlyModeError, SchemaConstraintViolation, classifyHttpStatus, forceCloseAllCircuitBreakers, getCircuitBreakers, isRetryableError, safeInterval, withRetry, } from './resilience.js';
4
4
  // API client factory (creates engine-specific API clients)
5
- export { createApiClient, } from './api-client.js';
5
+ export { createApiClient, isReadOnlyAction, setReadOnlyMode, isReadOnlyMode, } from './api-client.js';
6
6
  // Transform utilities (camelCase <-> snake_case key mapping)
7
7
  export { createTransform, mapDefinedKeys, } from './transforms.js';
8
8
  // Token usage parsing (NDJSON result-event sniffing)
@@ -31,6 +31,12 @@ export { ActivityTracker, } from './activity-tracker.js';
31
31
  export { buildOtelEnv, } from './otel-env.js';
32
32
  // Escalation reason types (shared enum/constants for agent_escalations.reason_type)
33
33
  export { ESCALATION_REASONS, ESCALATION_KINDS, } from './escalation-types.js';
34
+ // Execution status enum (shared source of truth for product_deliveries.execution_status)
35
+ export { EXECUTION_STATUSES, isExecutionStatus, } from './execution-status.js';
36
+ // Focus status enum (shared source of truth for product_focuses.status)
37
+ export { FOCUS_STATUSES, isFocusStatus, } from './focus-status.js';
38
+ // Product status enum (shared source of truth for products.status)
39
+ export { PRODUCT_STATUSES, isProductStatus, } from './product-status.js';
34
40
  // Log manager (retention policy and pruning for agent log files)
35
41
  export { extractSessionKey, pruneOldLogs, scanLogDirectory, } from './log-manager.js';
36
42
  // MCP server resolution and config generation
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAE5E,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAIhB,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,2DAA2D;AAC3D,OAAO,EACL,eAAe,GAGhB,MAAM,iBAAiB,CAAC;AAEzB,6DAA6D;AAC7D,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,qDAAqD;AACrD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,GAEd,MAAM,kBAAkB,CAAC;AAE1B,iFAAiF;AACjF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GAqBZ,MAAM,kBAAkB,CAAC;AAE1B,iEAAiE;AACjE,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAErB,0EAA0E;AAC1E,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AAExB,yDAAyD;AACzD,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,MAAM,GAEP,MAAM,UAAU,CAAC;AAElB,0DAA0D;AAC1D,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,eAAe,CAAC;AAEvB,gEAAgE;AAChE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,sBAAsB,GAGvB,MAAM,YAAY,CAAC;AASpB,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAE7B,2EAA2E;AAC3E,OAAO,EACL,gBAAgB,GAGjB,MAAM,wBAAwB,CAAC;AAEhC,0EAA0E;AAC1E,OAAO,EACL,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,4DAA4D;AAC5D,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAE/B,sFAAsF;AACtF,OAAO,EACL,YAAY,GAEb,MAAM,eAAe,CAAC;AAEvB,oFAAoF;AACpF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAE/B,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GAKjB,MAAM,kBAAkB,CAAC;AAE1B,8CAA8C;AAC9C,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAE7B,oEAAoE;AACpE,OAAO,EACL,iBAAiB,EACjB,YAAY,GAGb,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAE5E,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAIzB,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,2DAA2D;AAC3D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,GAGf,MAAM,iBAAiB,CAAC;AAEzB,6DAA6D;AAC7D,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,qDAAqD;AACrD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,GAEd,MAAM,kBAAkB,CAAC;AAE1B,iFAAiF;AACjF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GAqBZ,MAAM,kBAAkB,CAAC;AAE1B,iEAAiE;AACjE,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAErB,0EAA0E;AAC1E,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AAExB,yDAAyD;AACzD,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,MAAM,GAEP,MAAM,UAAU,CAAC;AAElB,0DAA0D;AAC1D,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,eAAe,CAAC;AAEvB,gEAAgE;AAChE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,sBAAsB,GAGvB,MAAM,YAAY,CAAC;AASpB,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAE7B,2EAA2E;AAC3E,OAAO,EACL,gBAAgB,GAGjB,MAAM,wBAAwB,CAAC;AAEhC,0EAA0E;AAC1E,OAAO,EACL,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,4DAA4D;AAC5D,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAE/B,sFAAsF;AACtF,OAAO,EACL,YAAY,GAEb,MAAM,eAAe,CAAC;AAEvB,oFAAoF;AACpF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAE/B,yFAAyF;AACzF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AAE/B,wEAAwE;AACxE,OAAO,EACL,cAAc,EACd,aAAa,GAEd,MAAM,mBAAmB,CAAC;AAE3B,mEAAmE;AACnE,OAAO,EACL,gBAAgB,EAChB,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAE7B,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GAKjB,MAAM,kBAAkB,CAAC;AAE1B,8CAA8C;AAC9C,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAE7B,oEAAoE;AACpE,OAAO,EACL,iBAAiB,EACjB,YAAY,GAGb,MAAM,oBAAoB,CAAC"}
@@ -1,23 +1,23 @@
1
1
  /**
2
2
  * MCP server path resolution and config generation.
3
3
  *
4
- * `.mcp.json` files written by the daemon use a committable, npx-based shape:
5
- * the command is `npx`, args invoke `@telora/mcp-products@latest` with an
6
- * explicit bin name, and per-user secrets (TELORA_TRACKER_ID) are NOT inlined.
7
- * The MCP server reads them from `~/.telora/daemon.json` at startup. This
8
- * makes a single `.mcp.json` byte-identical across collaborators.
4
+ * `.mcp.json` is per-user-machine (gitignored). It uses `command: "node"`
5
+ * with an absolute path to the daemon's bundled `@telora/mcp-products`. The
6
+ * daemon owns the dependency; its self-update mechanism keeps the bundled
7
+ * MCP fresh, so there is no second self-updater and no npx cache key for
8
+ * `@latest` to fossilize into.
9
9
  *
10
- * `resolveMcpServerPath` is retained for daemon-spawned worktrees that need
11
- * an absolute node-modules path (e.g. cold-start before npx cache exists).
10
+ * Earlier shape used `npx -p @telora/mcp-products@latest telora-mcp-products`.
11
+ * That argv hashes into `~/.npm/_npx/<hash>/` and npx reuses the cache for
12
+ * the same argv -- the `@latest` token never re-resolves. Users would sit on
13
+ * a months-old MCP without any signal. The abs-path shape sidesteps the
14
+ * problem entirely.
12
15
  *
13
16
  * The config generation helpers are pure JSON builders with no external deps.
14
17
  */
15
18
  /**
16
- * Canonical bin name for `@telora/mcp-products`. The package's bin map
17
- * exposes only `telora-mcp-products`; the unscoped package name is
18
- * `mcp-products`, which does NOT match, so `npx -p @telora/mcp-products
19
- * @latest` requires the bin to be named explicitly. Same lesson the daemon
20
- * learned in commit 0368f4b6.
19
+ * Canonical package + bin names. Retained as exported constants for callers
20
+ * that need to detect or migrate legacy npx-shape `.mcp.json` files.
21
21
  */
22
22
  export declare const MCP_PRODUCTS_PACKAGE = "@telora/mcp-products";
23
23
  export declare const MCP_PRODUCTS_BIN = "telora-mcp-products";
@@ -36,50 +36,44 @@ export declare function resolveMcpServerPath(callerImportMetaUrl: string): strin
36
36
  /**
37
37
  * MCP config generation options.
38
38
  *
39
- * `mcpServerPath` is no longer required for the committable connect-time shape;
40
- * it is retained for callers (e.g. daemon-spawned worktrees) that prefer an
41
- * absolute node-modules path over npx.
39
+ * `mcpServerPath` is required: the file uses an absolute path so Claude
40
+ * Code can spawn the MCP without npx (the cache trap that motivated this
41
+ * shape). Callers resolve the path from their own package context via
42
+ * `resolveMcpServerPath(import.meta.url)`.
42
43
  */
43
44
  export interface McpConfigOptions {
44
- /** Optional absolute path to the MCP server entry point. When set, emits
45
- * a node-based command instead of the default npx-based committable shape. */
46
- mcpServerPath?: string;
47
- /** Telora tracker ID. Only inlined when `inlineTrackerId` is true (legacy
48
- * worktree path); the committable shape leaves this off. */
45
+ /** Absolute path to the MCP server entry point (`dist/index.js`). */
46
+ mcpServerPath: string;
47
+ /** Telora tracker ID. Inlined into env when present. */
49
48
  trackerId?: string;
50
- /** Telora API URL. Inlined into env unless omitted. */
49
+ /** Telora API URL. Inlined into env when present. */
51
50
  teloraUrl?: string;
52
- /** MCP profile (e.g. 'execution' for daemon-spawned agents). */
51
+ /** MCP profile (e.g. 'execution' for daemon-spawned agents, 'human' for
52
+ * user repos). Optional; inlined into env when present. */
53
53
  profile?: string;
54
- /** When true, inline TELORA_TRACKER_ID into env (legacy / daemon-spawned
55
- * worktrees). When false/undefined, omit from env so the file is
56
- * committable -- the MCP server reads tracker_id from daemon.json. */
57
- inlineTrackerId?: boolean;
58
54
  }
59
55
  /**
60
56
  * Build the .mcp.json content object.
61
57
  *
62
- * Default shape (committable, written by `telora-daemon connect` to user repos):
63
- * command: "npx"
64
- * args: ["-p", "@telora/mcp-products@latest", "telora-mcp-products"]
65
- * env: { TELORA_URL: "<url>" } (TELORA_TRACKER_ID intentionally absent)
66
- *
67
- * Legacy shape (daemon-spawned worktrees, when mcpServerPath is set):
58
+ * Shape:
68
59
  * command: "node"
69
- * args: ["<absolute-path>"]
60
+ * args: ["<abs-path-to-mcp-products/dist/index.js>"]
70
61
  * env: { TELORA_TRACKER_ID, TELORA_URL, [TELORA_MCP_PROFILE] }
62
+ *
63
+ * The file is per-user-machine and gitignored. The daemon refreshes it on
64
+ * every startup so the path stays valid across daemon self-updates.
71
65
  */
72
66
  export declare function buildMcpConfig(options: McpConfigOptions): Record<string, unknown>;
73
67
  /**
74
- * Heuristic: is a parsed .mcp.json the legacy embedded-credentials shape?
68
+ * Heuristic: is a parsed .mcp.json the legacy npx shape?
75
69
  *
76
- * Old shape:
77
- * - command === "node" with absolute args path into node_modules, OR
78
- * - env contains a literal TELORA_TRACKER_ID value (a UUID, not a
79
- * `${...}` interpolation placeholder)
70
+ * Old shape used `command: "npx"` with args invoking
71
+ * `@telora/mcp-products@latest`. That argv hashes into a stable npx cache
72
+ * directory and never re-resolves `@latest` -- users would sit on a stale
73
+ * MCP version with no signal.
80
74
  *
81
- * Used by the connect flow on re-runs to detect a stale file the user may
82
- * now expect to commit, so we rewrite it to the credential-free shape.
75
+ * Used by the connect flow and the daemon's startup refresh to detect a
76
+ * pre-fix file and rewrite it to the current node + abs-path shape.
83
77
  */
84
78
  export declare function isLegacyMcpConfigShape(parsed: unknown): boolean;
85
79
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-resolution.d.ts","sourceRoot":"","sources":["../src/mcp-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAUxE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;mFAC+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;iEAC6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;2EAEuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBjF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAa/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAInF"}
1
+ {"version":3,"file":"mcp-resolution.d.ts","sourceRoot":"","sources":["../src/mcp-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAUxE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;gEAC4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBjF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAW/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAInF"}
@@ -1,14 +1,17 @@
1
1
  /**
2
2
  * MCP server path resolution and config generation.
3
3
  *
4
- * `.mcp.json` files written by the daemon use a committable, npx-based shape:
5
- * the command is `npx`, args invoke `@telora/mcp-products@latest` with an
6
- * explicit bin name, and per-user secrets (TELORA_TRACKER_ID) are NOT inlined.
7
- * The MCP server reads them from `~/.telora/daemon.json` at startup. This
8
- * makes a single `.mcp.json` byte-identical across collaborators.
4
+ * `.mcp.json` is per-user-machine (gitignored). It uses `command: "node"`
5
+ * with an absolute path to the daemon's bundled `@telora/mcp-products`. The
6
+ * daemon owns the dependency; its self-update mechanism keeps the bundled
7
+ * MCP fresh, so there is no second self-updater and no npx cache key for
8
+ * `@latest` to fossilize into.
9
9
  *
10
- * `resolveMcpServerPath` is retained for daemon-spawned worktrees that need
11
- * an absolute node-modules path (e.g. cold-start before npx cache exists).
10
+ * Earlier shape used `npx -p @telora/mcp-products@latest telora-mcp-products`.
11
+ * That argv hashes into `~/.npm/_npx/<hash>/` and npx reuses the cache for
12
+ * the same argv -- the `@latest` token never re-resolves. Users would sit on
13
+ * a months-old MCP without any signal. The abs-path shape sidesteps the
14
+ * problem entirely.
12
15
  *
13
16
  * The config generation helpers are pure JSON builders with no external deps.
14
17
  */
@@ -16,11 +19,8 @@ import { createRequire } from 'node:module';
16
19
  import { writeFileSync } from 'node:fs';
17
20
  import { join } from 'node:path';
18
21
  /**
19
- * Canonical bin name for `@telora/mcp-products`. The package's bin map
20
- * exposes only `telora-mcp-products`; the unscoped package name is
21
- * `mcp-products`, which does NOT match, so `npx -p @telora/mcp-products
22
- * @latest` requires the bin to be named explicitly. Same lesson the daemon
23
- * learned in commit 0368f4b6.
22
+ * Canonical package + bin names. Retained as exported constants for callers
23
+ * that need to detect or migrate legacy npx-shape `.mcp.json` files.
24
24
  */
25
25
  export const MCP_PRODUCTS_PACKAGE = '@telora/mcp-products';
26
26
  export const MCP_PRODUCTS_BIN = 'telora-mcp-products';
@@ -48,31 +48,26 @@ export function resolveMcpServerPath(callerImportMetaUrl) {
48
48
  /**
49
49
  * Build the .mcp.json content object.
50
50
  *
51
- * Default shape (committable, written by `telora-daemon connect` to user repos):
52
- * command: "npx"
53
- * args: ["-p", "@telora/mcp-products@latest", "telora-mcp-products"]
54
- * env: { TELORA_URL: "<url>" } (TELORA_TRACKER_ID intentionally absent)
55
- *
56
- * Legacy shape (daemon-spawned worktrees, when mcpServerPath is set):
51
+ * Shape:
57
52
  * command: "node"
58
- * args: ["<absolute-path>"]
53
+ * args: ["<abs-path-to-mcp-products/dist/index.js>"]
59
54
  * env: { TELORA_TRACKER_ID, TELORA_URL, [TELORA_MCP_PROFILE] }
55
+ *
56
+ * The file is per-user-machine and gitignored. The daemon refreshes it on
57
+ * every startup so the path stays valid across daemon self-updates.
60
58
  */
61
59
  export function buildMcpConfig(options) {
62
60
  const env = {};
63
61
  if (options.teloraUrl)
64
62
  env.TELORA_URL = options.teloraUrl;
65
- if ((options.inlineTrackerId || options.mcpServerPath) && options.trackerId) {
63
+ if (options.trackerId)
66
64
  env.TELORA_TRACKER_ID = options.trackerId;
67
- }
68
65
  if (options.profile)
69
66
  env.TELORA_MCP_PROFILE = options.profile;
70
- const useNodePath = !!options.mcpServerPath;
71
- const command = useNodePath ? 'node' : 'npx';
72
- const args = useNodePath
73
- ? [options.mcpServerPath]
74
- : ['-p', `${MCP_PRODUCTS_PACKAGE}@latest`, MCP_PRODUCTS_BIN];
75
- const server = { command, args };
67
+ const server = {
68
+ command: 'node',
69
+ args: [options.mcpServerPath],
70
+ };
76
71
  if (Object.keys(env).length > 0)
77
72
  server.env = env;
78
73
  return {
@@ -82,15 +77,15 @@ export function buildMcpConfig(options) {
82
77
  };
83
78
  }
84
79
  /**
85
- * Heuristic: is a parsed .mcp.json the legacy embedded-credentials shape?
80
+ * Heuristic: is a parsed .mcp.json the legacy npx shape?
86
81
  *
87
- * Old shape:
88
- * - command === "node" with absolute args path into node_modules, OR
89
- * - env contains a literal TELORA_TRACKER_ID value (a UUID, not a
90
- * `${...}` interpolation placeholder)
82
+ * Old shape used `command: "npx"` with args invoking
83
+ * `@telora/mcp-products@latest`. That argv hashes into a stable npx cache
84
+ * directory and never re-resolves `@latest` -- users would sit on a stale
85
+ * MCP version with no signal.
91
86
  *
92
- * Used by the connect flow on re-runs to detect a stale file the user may
93
- * now expect to commit, so we rewrite it to the credential-free shape.
87
+ * Used by the connect flow and the daemon's startup refresh to detect a
88
+ * pre-fix file and rewrite it to the current node + abs-path shape.
94
89
  */
95
90
  export function isLegacyMcpConfigShape(parsed) {
96
91
  if (!parsed || typeof parsed !== 'object')
@@ -100,14 +95,11 @@ export function isLegacyMcpConfigShape(parsed) {
100
95
  if (!server || typeof server !== 'object')
101
96
  return false;
102
97
  const s = server;
103
- if (s.command === 'node')
104
- return true;
105
- const env = s.env;
106
- const tracker = env?.TELORA_TRACKER_ID;
107
- if (typeof tracker === 'string' && tracker.length > 0 && !tracker.includes('${')) {
108
- return true;
109
- }
110
- return false;
98
+ if (s.command !== 'npx')
99
+ return false;
100
+ if (!Array.isArray(s.args))
101
+ return false;
102
+ return s.args.some((a) => typeof a === 'string' && a.includes(`${MCP_PRODUCTS_PACKAGE}@`));
111
103
  }
112
104
  /**
113
105
  * Write a .mcp.json file to a directory.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-resolution.js","sourceRoot":"","sources":["../src/mcp-resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-resolution.js","sourceRoot":"","sources":["../src/mcp-resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Canonical product-status enum for products.status.
3
+ *
4
+ * Source of truth for both @telora/daemon and @telora/mcp-products so the
5
+ * two cannot drift. Must match the production DB `product_status` enum
6
+ * type defined in supabase/migrations -- the daemon's startup
7
+ * schema-version gate (packages/daemon/src/schema-version-gate.ts)
8
+ * refuses to start if the live DB lacks a migration that the daemon
9
+ * expects.
10
+ *
11
+ * Adding a value:
12
+ * 1. Add it to PRODUCT_STATUSES below.
13
+ * 2. Ship a migration extending the `product_status` enum.
14
+ * 3. The schema-version gate (D3-T3) will refuse to start in prod until
15
+ * the migration is applied. CI publish gate (D3-T5) verifies the
16
+ * build-info migration set is consistent with on-disk migrations.
17
+ */
18
+ export declare const PRODUCT_STATUSES: readonly ["draft", "active", "archived"];
19
+ export type ProductStatus = (typeof PRODUCT_STATUSES)[number];
20
+ export declare function isProductStatus(value: unknown): value is ProductStatus;
21
+ //# sourceMappingURL=product-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-status.d.ts","sourceRoot":"","sources":["../src/product-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,gBAAgB,0CAInB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAKtE"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Canonical product-status enum for products.status.
3
+ *
4
+ * Source of truth for both @telora/daemon and @telora/mcp-products so the
5
+ * two cannot drift. Must match the production DB `product_status` enum
6
+ * type defined in supabase/migrations -- the daemon's startup
7
+ * schema-version gate (packages/daemon/src/schema-version-gate.ts)
8
+ * refuses to start if the live DB lacks a migration that the daemon
9
+ * expects.
10
+ *
11
+ * Adding a value:
12
+ * 1. Add it to PRODUCT_STATUSES below.
13
+ * 2. Ship a migration extending the `product_status` enum.
14
+ * 3. The schema-version gate (D3-T3) will refuse to start in prod until
15
+ * the migration is applied. CI publish gate (D3-T5) verifies the
16
+ * build-info migration set is consistent with on-disk migrations.
17
+ */
18
+ export const PRODUCT_STATUSES = [
19
+ 'draft',
20
+ 'active',
21
+ 'archived',
22
+ ];
23
+ export function isProductStatus(value) {
24
+ return (typeof value === 'string' &&
25
+ PRODUCT_STATUSES.includes(value));
26
+ }
27
+ //# sourceMappingURL=product-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-status.js","sourceRoot":"","sources":["../src/product-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO;IACP,QAAQ;IACR,UAAU;CACF,CAAC;AAIX,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxD,CAAC;AACJ,CAAC"}
@@ -12,6 +12,35 @@ export declare class ApiError extends Error {
12
12
  readonly isRetryable: boolean;
13
13
  constructor(message: string, statusCode?: number | undefined, isRetryable?: boolean);
14
14
  }
15
+ /**
16
+ * Surfaced when the edge function rejects a write because of a DB CHECK
17
+ * constraint (SQLSTATE 23514). The listener uses constraintName +
18
+ * rejectedValue to bound retries on the same combo and file a
19
+ * schema_drift_blocked escalation when the cap is hit -- see
20
+ * packages/daemon/src/listener-auto-advance.ts and the 2026-05-21 incident
21
+ * (escalation 4bffb633) for context.
22
+ *
23
+ * isRetryable=false so the inner withRetry does not burn 3 attempts per call.
24
+ */
25
+ export declare class SchemaConstraintViolation extends ApiError {
26
+ readonly constraintName: string | null;
27
+ readonly rejectedValue: string | null;
28
+ constructor(message: string, constraintName: string | null, rejectedValue: string | null);
29
+ }
30
+ /**
31
+ * Surfaced when the daemon is running in read-only mode (schema-version
32
+ * gate fired in warn mode -- see packages/daemon/src/schema-version-gate.ts
33
+ * and docs/runbook-schema-version-gate.md) and a non-read action is
34
+ * attempted. Carries the rejected action name so callers can escalate
35
+ * with a useful payload.
36
+ *
37
+ * isRetryable=false: retrying does nothing until the operator either
38
+ * deploys the missing migration or restarts the daemon.
39
+ */
40
+ export declare class ReadOnlyModeError extends ApiError {
41
+ constructor(action: string);
42
+ readonly action: string;
43
+ }
15
44
  /**
16
45
  * Determine if an error is retryable.
17
46
  */
@@ -1 +1 @@
1
- {"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,48 @@ export class ApiError extends Error {
37
37
  this.name = 'ApiError';
38
38
  }
39
39
  }
40
+ /**
41
+ * Surfaced when the edge function rejects a write because of a DB CHECK
42
+ * constraint (SQLSTATE 23514). The listener uses constraintName +
43
+ * rejectedValue to bound retries on the same combo and file a
44
+ * schema_drift_blocked escalation when the cap is hit -- see
45
+ * packages/daemon/src/listener-auto-advance.ts and the 2026-05-21 incident
46
+ * (escalation 4bffb633) for context.
47
+ *
48
+ * isRetryable=false so the inner withRetry does not burn 3 attempts per call.
49
+ */
50
+ export class SchemaConstraintViolation extends ApiError {
51
+ constraintName;
52
+ rejectedValue;
53
+ constructor(message, constraintName, rejectedValue) {
54
+ super(message, 400, false);
55
+ this.constraintName = constraintName;
56
+ this.rejectedValue = rejectedValue;
57
+ this.name = 'SchemaConstraintViolation';
58
+ }
59
+ }
60
+ /**
61
+ * Surfaced when the daemon is running in read-only mode (schema-version
62
+ * gate fired in warn mode -- see packages/daemon/src/schema-version-gate.ts
63
+ * and docs/runbook-schema-version-gate.md) and a non-read action is
64
+ * attempted. Carries the rejected action name so callers can escalate
65
+ * with a useful payload.
66
+ *
67
+ * isRetryable=false: retrying does nothing until the operator either
68
+ * deploys the missing migration or restarts the daemon.
69
+ */
70
+ export class ReadOnlyModeError extends ApiError {
71
+ constructor(action) {
72
+ super(`Daemon is in read-only mode; refusing to call '${action}'. ` +
73
+ `The schema-version gate fired in warn mode (TELORA_SCHEMA_GATE=warn) ` +
74
+ `with missing migrations in the live DB. ` +
75
+ `Deploy the missing migrations or restart with TELORA_SCHEMA_GATE=off. ` +
76
+ `See docs/runbook-schema-version-gate.md.`, 503, false);
77
+ this.name = 'ReadOnlyModeError';
78
+ this.action = action;
79
+ }
80
+ action;
81
+ }
40
82
  /**
41
83
  * Determine if an error is retryable.
42
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,+CAA+C;AAC/C,iCAAiC;AACjC,+CAA+C;AAE/C,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,YAAY;IACZ,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,yBAAyB;IACzB,yBAAyB;IACzB,sBAAsB;CACvB,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEzD,sDAAsD;AACtD,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IACA;IAHlB,YACE,OAAe,EACC,UAAmB,EACnB,cAAuB,KAAK;QAE5C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAS;QACnB,gBAAW,GAAX,WAAW,CAAiB;QAG5C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IAED,gCAAgC;IAChC,MAAM,GAAG,GAAG,KAAqD,CAAC;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;IACzC,IAAI,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,MAAM,OAAO,GAAI,KAAe,CAAC,OAAO,IAAI,EAAE,CAAC;IAC/C,IACE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,WAAW,CAAC;IAC5D,IAAI,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,eAAe,CAAC;IACpE,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,WAAW,CAAC,CAAC,2CAA2C;IAClF,OAAO,eAAe,CAAC;AACzB,CAAC;AAWD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,UAAwB,EAAE;IAE1B,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAE7E,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAElB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBACxD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CACV,WAAW,KAAK,oBAAoB,OAAO,IAAI,WAAW,MAAO,KAAe,CAAC,OAAO,iBAAiB,OAAO,OAAO,CACxH,CAAC;YAEF,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,SAAS,CAAC;AAClB,CAAC;AAqBD,gFAAgF;AAChF,MAAM,sBAAsB,GAAqB,EAAE,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,KAAK,MAAM,EAAE,IAAI,sBAAsB,EAAE,CAAC;QACxC,EAAE,CAAC,UAAU,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,4DAA4D,sBAAsB,CAAC,MAAM,eAAe,CAAC,CAAC;AACxH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,cAAc;IACjB,KAAK,GAAiB,QAAQ,CAAC;IAC/B,mBAAmB,GAAG,CAAC,CAAC;IACxB,eAAe,GAAG,CAAC,CAAC;IACpB,iBAAiB,GAAG,CAAC,CAAC;IACtB,qBAAqB,GAAG,CAAC,CAAC;IAClC,0FAA0F;IAClF,eAAe,GAAG,KAAK,CAAC;IAChC,mFAAmF;IAC3E,mBAAmB,GAAG,CAAC,CAAC;IAEf,gBAAgB,CAAS;IACzB,cAAc,CAAS;IACvB,aAAa,CAAS;IACtB,wBAAwB,CAAS;IACzC,KAAK,CAAS;IAEvB,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC;QACrD,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;QACxC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,2DAA2D;IACnD,sBAAsB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,8BAA8B;IACtB,aAAa,CAAC,IAAkB,EAAE,EAAgB,EAAE,MAAc;QACxE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,KAAK,KAAK,IAAI,OAAO,EAAE,aAAa,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAI,EAAoB;QACnC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;YAClD,IAAI,OAAO,GAAG,iBAAiB,EAAE,CAAC;gBAChC,kEAAkE;gBAClE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM,IAAI,gBAAgB,CACxB,IAAI,IAAI,CAAC,KAAK,sBAAsB,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CACzG,CAAC;YACJ,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,wEAAwE;IAChE,oBAAoB;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC;YACjD,CAAC,CAAC,KAAK,IAAI,CAAC,mBAAmB,8BAA8B;YAC7D,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,mCAAmC,cAAc,EAAE,CAAC,CAAC;QAChG,YAAY,CAAC,IAAI,CAAC;YAChB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;YAC/B,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,qCAAqC,IAAI,CAAC,mBAAmB,+BAA+B;SACtG,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC5D,IAAI,CAAC,aAAa,CAChB,WAAW,EAAE,QAAQ,EACrB,GAAG,IAAI,CAAC,iBAAiB,8BAA8B,CACxD,CAAC;gBACF,YAAY,CAAC,IAAI,CAAC;oBAChB,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;oBAC/B,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,2BAA2B,IAAI,CAAC,iBAAiB,8BAA8B;iBACzF,CAAC,CAAC;gBACH,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC3C,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;gBAChD,YAAY,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBACjD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,iCAAiC;gBACjE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxD,IAAI,CAAC,aAAa,CAChB,WAAW,EAAE,MAAM,EACnB,+BAA+B,IAAI,CAAC,qBAAqB,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAChH,CAAC;YACF,YAAY,CAAC,IAAI,CAAC;gBAChB,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;gBAC/B,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,+BAA+B,IAAI,CAAC,qBAAqB,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aACzH,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtD,IAAI,CAAC,aAAa,CAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,IAAI,CAAC,mBAAmB,uBAAuB,CACnD,CAAC;YACF,YAAY,CAAC,IAAI,CAAC;gBAChB,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;gBAC/B,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,wBAAwB,IAAI,CAAC,mBAAmB,uBAAuB;aACjF,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,mEAAmE;IACnE,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,iDAAiD;IACjD,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAChE,YAAY,CAAC,IAAI,CAAC;YAChB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;YAC/B,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,sBAAsB;SAChC,CAAC,CAAC;QACH,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC3C,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAChD,YAAY,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACnD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAoC,EACpC,UAAkB,EAClB,KAAa;IAEb,OAAO,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,yCAAyC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC;AAED,+CAA+C;AAC/C,UAAU;AACV,+CAA+C;AAE/C,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../src/resilience.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,+CAA+C;AAC/C,iCAAiC;AACjC,+CAA+C;AAE/C,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,YAAY;IACZ,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,yBAAyB;IACzB,yBAAyB;IACzB,sBAAsB;CACvB,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEzD,sDAAsD;AACtD,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IACA;IAHlB,YACE,OAAe,EACC,UAAmB,EACnB,cAAuB,KAAK;QAE5C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAS;QACnB,gBAAW,GAAX,WAAW,CAAiB;QAG5C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,yBAA0B,SAAQ,QAAQ;IAGnC;IACA;IAHlB,YACE,OAAe,EACC,cAA6B,EAC7B,aAA4B;QAE5C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAHX,mBAAc,GAAd,cAAc,CAAe;QAC7B,kBAAa,GAAb,aAAa,CAAe;QAG5C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,MAAc;QACxB,KAAK,CACH,kDAAkD,MAAM,KAAK;YAC7D,uEAAuE;YACvE,0CAA0C;YAC1C,wEAAwE;YACxE,0CAA0C,EAC1C,GAAG,EACH,KAAK,CACN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACe,MAAM,CAAU;CACjC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IAED,gCAAgC;IAChC,MAAM,GAAG,GAAG,KAAqD,CAAC;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;IACzC,IAAI,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,MAAM,OAAO,GAAI,KAAe,CAAC,OAAO,IAAI,EAAE,CAAC;IAC/C,IACE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,WAAW,CAAC;IAC5D,IAAI,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,eAAe,CAAC;IACpE,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,WAAW,CAAC,CAAC,2CAA2C;IAClF,OAAO,eAAe,CAAC;AACzB,CAAC;AAWD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,UAAwB,EAAE;IAE1B,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAE7E,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAElB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBACxD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CACV,WAAW,KAAK,oBAAoB,OAAO,IAAI,WAAW,MAAO,KAAe,CAAC,OAAO,iBAAiB,OAAO,OAAO,CACxH,CAAC;YAEF,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,SAAS,CAAC;AAClB,CAAC;AAqBD,gFAAgF;AAChF,MAAM,sBAAsB,GAAqB,EAAE,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,KAAK,MAAM,EAAE,IAAI,sBAAsB,EAAE,CAAC;QACxC,EAAE,CAAC,UAAU,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,4DAA4D,sBAAsB,CAAC,MAAM,eAAe,CAAC,CAAC;AACxH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,cAAc;IACjB,KAAK,GAAiB,QAAQ,CAAC;IAC/B,mBAAmB,GAAG,CAAC,CAAC;IACxB,eAAe,GAAG,CAAC,CAAC;IACpB,iBAAiB,GAAG,CAAC,CAAC;IACtB,qBAAqB,GAAG,CAAC,CAAC;IAClC,0FAA0F;IAClF,eAAe,GAAG,KAAK,CAAC;IAChC,mFAAmF;IAC3E,mBAAmB,GAAG,CAAC,CAAC;IAEf,gBAAgB,CAAS;IACzB,cAAc,CAAS;IACvB,aAAa,CAAS;IACtB,wBAAwB,CAAS;IACzC,KAAK,CAAS;IAEvB,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC;QACrD,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;QACxC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,2DAA2D;IACnD,sBAAsB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,8BAA8B;IACtB,aAAa,CAAC,IAAkB,EAAE,EAAgB,EAAE,MAAc;QACxE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,KAAK,KAAK,IAAI,OAAO,EAAE,aAAa,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAI,EAAoB;QACnC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;YAClD,IAAI,OAAO,GAAG,iBAAiB,EAAE,CAAC;gBAChC,kEAAkE;gBAClE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM,IAAI,gBAAgB,CACxB,IAAI,IAAI,CAAC,KAAK,sBAAsB,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CACzG,CAAC;YACJ,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,wEAAwE;IAChE,oBAAoB;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC;YACjD,CAAC,CAAC,KAAK,IAAI,CAAC,mBAAmB,8BAA8B;YAC7D,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,mCAAmC,cAAc,EAAE,CAAC,CAAC;QAChG,YAAY,CAAC,IAAI,CAAC;YAChB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;YAC/B,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,qCAAqC,IAAI,CAAC,mBAAmB,+BAA+B;SACtG,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC5D,IAAI,CAAC,aAAa,CAChB,WAAW,EAAE,QAAQ,EACrB,GAAG,IAAI,CAAC,iBAAiB,8BAA8B,CACxD,CAAC;gBACF,YAAY,CAAC,IAAI,CAAC;oBAChB,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;oBAC/B,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,2BAA2B,IAAI,CAAC,iBAAiB,8BAA8B;iBACzF,CAAC,CAAC;gBACH,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC3C,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;gBAChD,YAAY,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBACjD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,iCAAiC;gBACjE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxD,IAAI,CAAC,aAAa,CAChB,WAAW,EAAE,MAAM,EACnB,+BAA+B,IAAI,CAAC,qBAAqB,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAChH,CAAC;YACF,YAAY,CAAC,IAAI,CAAC;gBAChB,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;gBAC/B,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,+BAA+B,IAAI,CAAC,qBAAqB,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aACzH,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtD,IAAI,CAAC,aAAa,CAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,IAAI,CAAC,mBAAmB,uBAAuB,CACnD,CAAC;YACF,YAAY,CAAC,IAAI,CAAC;gBAChB,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;gBAC/B,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,wBAAwB,IAAI,CAAC,mBAAmB,uBAAuB;aACjF,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,mEAAmE;IACnE,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,iDAAiD;IACjD,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAChE,YAAY,CAAC,IAAI,CAAC;YAChB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;YAC/B,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,sBAAsB;SAChC,CAAC,CAAC;QACH,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC3C,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAChD,YAAY,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACnD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAoC,EACpC,UAAkB,EAClB,KAAa;IAEb,OAAO,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,yCAAyC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC;AAED,+CAA+C;AAC/C,UAAU;AACV,+CAA+C;AAE/C,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telora/daemon-core",
3
- "version": "0.2.18",
3
+ "version": "0.2.24",
4
4
  "description": "Shared core infrastructure for Telora daemon and factory - resilience, API client, config, git operations",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",