@pylabmit/agent-cmdb 1.5.0 → 2.0.0

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 (64) hide show
  1. package/README.md +29 -4
  2. package/dist/brain.d.ts.map +1 -1
  3. package/dist/brain.js +119 -44
  4. package/dist/brain.js.map +1 -1
  5. package/dist/checkpoint.d.ts +6 -0
  6. package/dist/checkpoint.d.ts.map +1 -0
  7. package/dist/checkpoint.js +137 -0
  8. package/dist/checkpoint.js.map +1 -0
  9. package/dist/cli.js +162 -7
  10. package/dist/cli.js.map +1 -1
  11. package/dist/cost.d.ts +3 -0
  12. package/dist/cost.d.ts.map +1 -0
  13. package/dist/cost.js +49 -0
  14. package/dist/cost.js.map +1 -0
  15. package/dist/digest.d.ts +2 -1
  16. package/dist/digest.d.ts.map +1 -1
  17. package/dist/digest.js +18 -2
  18. package/dist/digest.js.map +1 -1
  19. package/dist/engine.d.ts +0 -2
  20. package/dist/engine.d.ts.map +1 -1
  21. package/dist/engine.js +0 -2
  22. package/dist/engine.js.map +1 -1
  23. package/dist/health.d.ts +9 -0
  24. package/dist/health.d.ts.map +1 -0
  25. package/dist/health.js +222 -0
  26. package/dist/health.js.map +1 -0
  27. package/dist/interface.d.ts +15 -2
  28. package/dist/interface.d.ts.map +1 -1
  29. package/dist/interface.js +47 -3
  30. package/dist/interface.js.map +1 -1
  31. package/dist/internal.d.ts +3 -0
  32. package/dist/internal.d.ts.map +1 -0
  33. package/dist/internal.js +3 -0
  34. package/dist/internal.js.map +1 -0
  35. package/dist/loader.js +54 -3
  36. package/dist/loader.js.map +1 -1
  37. package/dist/policy-engine.js +7 -7
  38. package/dist/policy-engine.js.map +1 -1
  39. package/dist/preflight.d.ts +5 -3
  40. package/dist/preflight.d.ts.map +1 -1
  41. package/dist/preflight.js +144 -20
  42. package/dist/preflight.js.map +1 -1
  43. package/dist/route-resolver.d.ts.map +1 -1
  44. package/dist/route-resolver.js +47 -6
  45. package/dist/route-resolver.js.map +1 -1
  46. package/dist/slo.d.ts +4 -0
  47. package/dist/slo.d.ts.map +1 -0
  48. package/dist/slo.js +147 -0
  49. package/dist/slo.js.map +1 -0
  50. package/dist/store.d.ts +10 -0
  51. package/dist/store.d.ts.map +1 -1
  52. package/dist/store.js +165 -12
  53. package/dist/store.js.map +1 -1
  54. package/dist/types.d.ts +75 -4
  55. package/dist/types.d.ts.map +1 -1
  56. package/package.json +9 -1
  57. package/dist/agent-preflight.d.ts +0 -6
  58. package/dist/agent-preflight.d.ts.map +0 -1
  59. package/dist/agent-preflight.js +0 -55
  60. package/dist/agent-preflight.js.map +0 -1
  61. package/dist/preflight-action.d.ts +0 -3
  62. package/dist/preflight-action.d.ts.map +0 -1
  63. package/dist/preflight-action.js +0 -101
  64. package/dist/preflight-action.js.map +0 -1
package/dist/health.js ADDED
@@ -0,0 +1,222 @@
1
+ import { appendChange, readJsonState, writeJsonState } from './store.js';
2
+ const healthFile = 'health.json';
3
+ const defaultHealthConfig = {
4
+ failureThreshold: 5,
5
+ recoveryTimeoutMs: 30_000
6
+ };
7
+ export async function recordSourceSuccess(controlPlane, storeDir, sourceId) {
8
+ ensureKnownSource(controlPlane, sourceId);
9
+ const state = await readHealthState(storeDir);
10
+ const current = getHealthFromState(state, sourceId);
11
+ const now = new Date().toISOString();
12
+ if (current.warnings && current.warnings.length > 0) {
13
+ return current;
14
+ }
15
+ if (current.status === 'down' && !recoveryElapsed(controlPlane, current)) {
16
+ return current;
17
+ }
18
+ const next = {
19
+ sourceId,
20
+ status: 'up',
21
+ consecutiveFailures: 0,
22
+ lastChecked: now,
23
+ lastFailure: current.lastFailure,
24
+ lastSuccess: now
25
+ };
26
+ await writeHealthEntry(storeDir, state, next);
27
+ await appendChange(storeDir, {
28
+ target: `source.${sourceId}`,
29
+ targetType: 'source',
30
+ action: 'verify',
31
+ actor: 'agent-cmdb-health',
32
+ reason: `Source ${sourceId} reported success.`,
33
+ changedAt: now,
34
+ after: next
35
+ });
36
+ return next;
37
+ }
38
+ export async function recordSourceFailure(controlPlane, storeDir, sourceId) {
39
+ ensureKnownSource(controlPlane, sourceId);
40
+ const state = await readHealthState(storeDir);
41
+ const current = getHealthFromState(state, sourceId);
42
+ const config = healthConfig(controlPlane, sourceId);
43
+ const now = new Date().toISOString();
44
+ const consecutiveFailures = current.status === 'half-open'
45
+ ? config.failureThreshold
46
+ : current.consecutiveFailures + 1;
47
+ const status = consecutiveFailures >= config.failureThreshold ? 'down' : 'up';
48
+ const next = {
49
+ sourceId,
50
+ status,
51
+ consecutiveFailures,
52
+ lastChecked: now,
53
+ lastFailure: now,
54
+ lastSuccess: current.lastSuccess
55
+ };
56
+ await writeHealthEntry(storeDir, state, next);
57
+ await appendChange(storeDir, {
58
+ target: `source.${sourceId}`,
59
+ targetType: 'source',
60
+ action: 'verify',
61
+ actor: 'agent-cmdb-health',
62
+ reason: `Source ${sourceId} reported failure.`,
63
+ changedAt: now,
64
+ after: next
65
+ });
66
+ return next;
67
+ }
68
+ export async function getSourceHealth(controlPlane, storeDir, sourceId) {
69
+ ensureKnownSource(controlPlane, sourceId);
70
+ return getHealthFromState(await readHealthState(storeDir), sourceId);
71
+ }
72
+ export async function listSourceHealth(controlPlane, storeDir) {
73
+ const state = await readHealthState(storeDir);
74
+ return controlPlane.sources.map((source) => getHealthFromState(state, source.id));
75
+ }
76
+ export async function isSourceAvailable(controlPlane, storeDir, sourceId) {
77
+ ensureKnownSource(controlPlane, sourceId);
78
+ const state = await readHealthState(storeDir);
79
+ const current = getHealthFromState(state, sourceId);
80
+ if (current.status === 'up' || current.status === 'half-open') {
81
+ return true;
82
+ }
83
+ if (!recoveryElapsed(controlPlane, current)) {
84
+ return false;
85
+ }
86
+ const next = {
87
+ ...current,
88
+ status: 'half-open',
89
+ lastChecked: new Date().toISOString()
90
+ };
91
+ await writeHealthEntry(storeDir, state, next);
92
+ return true;
93
+ }
94
+ export async function getCircuitState(controlPlane, storeDir, sourceId) {
95
+ const health = await getSourceHealth(controlPlane, storeDir, sourceId);
96
+ if (health.status === 'down')
97
+ return 'open';
98
+ if (health.status === 'half-open')
99
+ return 'half-open';
100
+ return 'closed';
101
+ }
102
+ export async function resetSourceHealth(controlPlane, storeDir, sourceId) {
103
+ ensureKnownSource(controlPlane, sourceId);
104
+ const state = await readHealthState(storeDir);
105
+ const now = new Date().toISOString();
106
+ const next = {
107
+ sourceId,
108
+ status: 'up',
109
+ consecutiveFailures: 0,
110
+ lastChecked: now,
111
+ lastSuccess: now
112
+ };
113
+ await writeHealthEntry(storeDir, state, next);
114
+ await appendChange(storeDir, {
115
+ target: `source.${sourceId}`,
116
+ targetType: 'source',
117
+ action: 'resume',
118
+ actor: 'agent-cmdb-health',
119
+ reason: `Source ${sourceId} health manually reset.`,
120
+ changedAt: now,
121
+ after: next
122
+ });
123
+ return next;
124
+ }
125
+ async function readHealthState(storeDir) {
126
+ return readJsonState(storeDir, healthFile, { sources: [] }, parseHealthState);
127
+ }
128
+ async function writeHealthEntry(storeDir, state, entry) {
129
+ const sources = state.sources.filter((source) => source.sourceId !== entry.sourceId);
130
+ sources.push(entry);
131
+ sources.sort((left, right) => left.sourceId.localeCompare(right.sourceId));
132
+ await writeJsonState(storeDir, healthFile, { sources }, parseHealthState);
133
+ }
134
+ function getHealthFromState(state, sourceId) {
135
+ const health = state.sources.find((source) => source.sourceId === sourceId) ?? {
136
+ sourceId,
137
+ status: 'up',
138
+ consecutiveFailures: 0,
139
+ lastChecked: new Date(0).toISOString()
140
+ };
141
+ if (!state.warnings || state.warnings.length === 0)
142
+ return health;
143
+ return {
144
+ ...health,
145
+ status: 'down',
146
+ consecutiveFailures: Math.max(health.consecutiveFailures, healthConfigFromStateFallback()),
147
+ warnings: state.warnings
148
+ };
149
+ }
150
+ function recoveryElapsed(controlPlane, health) {
151
+ if (!health.lastFailure)
152
+ return true;
153
+ const elapsedMs = Date.now() - Date.parse(health.lastFailure);
154
+ return elapsedMs >= healthConfig(controlPlane, health.sourceId).recoveryTimeoutMs;
155
+ }
156
+ function healthConfig(controlPlane, sourceId) {
157
+ const source = controlPlane.sources.find((candidate) => candidate.id === sourceId);
158
+ return {
159
+ failureThreshold: source?.health?.failureThreshold ?? defaultHealthConfig.failureThreshold,
160
+ recoveryTimeoutMs: source?.health?.recoveryTimeoutMs ?? defaultHealthConfig.recoveryTimeoutMs
161
+ };
162
+ }
163
+ function ensureKnownSource(controlPlane, sourceId) {
164
+ if (!controlPlane.sources.some((source) => source.id === sourceId)) {
165
+ throw new Error(`Unknown source: ${sourceId}.`);
166
+ }
167
+ }
168
+ function parseHealthState(value) {
169
+ const record = requireRecord(value, 'Health state');
170
+ const sources = Array.isArray(record.sources) ? record.sources.map(parseSourceHealth) : [];
171
+ const warnings = Array.isArray(record.warnings)
172
+ ? record.warnings.filter((warning) => typeof warning === 'string')
173
+ : undefined;
174
+ return {
175
+ sources,
176
+ warnings: warnings && warnings.length > 0 ? warnings : undefined
177
+ };
178
+ }
179
+ function parseSourceHealth(value) {
180
+ const record = requireRecord(value, 'Source health');
181
+ const status = readString(record, 'status', 'Source health status');
182
+ if (!['up', 'down', 'half-open'].includes(status)) {
183
+ throw new Error(`Invalid source health status: ${status}.`);
184
+ }
185
+ return {
186
+ sourceId: readString(record, 'sourceId', 'Source health sourceId'),
187
+ status: status,
188
+ consecutiveFailures: readNumber(record, 'consecutiveFailures', 'Source health consecutiveFailures'),
189
+ lastChecked: readString(record, 'lastChecked', 'Source health lastChecked'),
190
+ lastFailure: optionalString(record, 'lastFailure'),
191
+ lastSuccess: optionalString(record, 'lastSuccess')
192
+ };
193
+ }
194
+ function requireRecord(value, label) {
195
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
196
+ throw new Error(`${label} must be an object.`);
197
+ }
198
+ return value;
199
+ }
200
+ function readString(record, key, label) {
201
+ const value = record[key];
202
+ if (typeof value !== 'string' || value.trim().length === 0) {
203
+ throw new Error(`${label} must be a non-empty string.`);
204
+ }
205
+ return value;
206
+ }
207
+ function optionalString(record, key) {
208
+ if (record[key] === undefined)
209
+ return undefined;
210
+ return readString(record, key, key);
211
+ }
212
+ function readNumber(record, key, label) {
213
+ const value = record[key];
214
+ if (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {
215
+ throw new Error(`${label} must be a non-negative number.`);
216
+ }
217
+ return value;
218
+ }
219
+ function healthConfigFromStateFallback() {
220
+ return defaultHealthConfig.failureThreshold;
221
+ }
222
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentCmdbReport, BrainEntity, BrainEntityKind, BrainReadResult, BrainSearchQuery, BrainWriteInput, ChangeInput, ChangeQuery, ChangeRecord, ControlPlane, DigestResult, EvidenceInput, EvidenceQuery, EvidenceRecord, PreflightRequest, PreflightResult, ResolvedSourceRoute, SourceRouteRequest, ValidationIssue } from './types.js';
1
+ import type { AgentCmdbReport, AgentCheckpoint, BrainEntity, BrainEntityKind, BrainReadResult, BrainSearchQuery, BrainWriteInput, CircuitState, ChangeInput, ChangeQuery, ChangeRecord, ControlPlane, CostSummary, DigestResult, EvidenceInput, EvidenceQuery, EvidenceRecord, PreflightRequest, PreflightResult, ResolvedSourceRoute, SloResult, SourceHealth, SourceRouteRequest, ValidationIssue } from './types.js';
2
2
  export interface AgentCmdbHealth {
3
3
  ok: boolean;
4
4
  errors: number;
@@ -6,7 +6,7 @@ export interface AgentCmdbHealth {
6
6
  issues: ValidationIssue[];
7
7
  }
8
8
  export interface IAgentCMDB {
9
- preflight(request: PreflightRequest): PreflightResult;
9
+ preflight(request: PreflightRequest): Promise<PreflightResult>;
10
10
  resolveRoute(request: SourceRouteRequest): ResolvedSourceRoute;
11
11
  logEvidence(input: EvidenceInput): Promise<EvidenceRecord>;
12
12
  listEvidence(query?: EvidenceQuery): Promise<EvidenceRecord[]>;
@@ -23,6 +23,19 @@ export interface IAgentCMDB {
23
23
  listEntities(kind?: BrainEntityKind): Promise<BrainEntity[]>;
24
24
  generateDailyDigest(profile: string, date?: string): Promise<DigestResult>;
25
25
  generateWeeklyDigest(profile: string, weekStart?: string): Promise<DigestResult>;
26
+ recordSourceSuccess(sourceId: string): Promise<SourceHealth>;
27
+ recordSourceFailure(sourceId: string): Promise<SourceHealth>;
28
+ getSourceHealth(sourceId: string): Promise<SourceHealth>;
29
+ listSourceHealth(): Promise<SourceHealth[]>;
30
+ isSourceAvailable(sourceId: string): Promise<boolean>;
31
+ getCircuitState(sourceId: string): Promise<CircuitState>;
32
+ resetSourceHealth(sourceId: string): Promise<SourceHealth>;
33
+ calculateSlo(profile: string): Promise<SloResult>;
34
+ getCostSummary(profile: string, date?: string): Promise<CostSummary>;
35
+ saveCheckpoint(checkpoint: AgentCheckpoint): Promise<void>;
36
+ loadCheckpoint(id: string): Promise<AgentCheckpoint | null>;
37
+ listCheckpoints(profile?: string): Promise<AgentCheckpoint[]>;
38
+ deleteCheckpoint(id: string): Promise<void>;
26
39
  }
27
40
  export interface AgentCmdbOptions {
28
41
  configPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAAC;IACtD,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;IAC/D,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3D,YAAY,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACrD,WAAW,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1D,QAAQ,IAAI,eAAe,EAAE,CAAC;IAC9B,MAAM,IAAI,eAAe,CAAC;IAC1B,MAAM,IAAI,eAAe,CAAC;IAC1B,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvD,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,YAAY,CACV,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,eAAe,CAAC,EAC1D,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,YAAY,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3E,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,CAiF1E"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"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"}
package/dist/interface.js CHANGED
@@ -1,8 +1,12 @@
1
1
  import { createEntity, deleteEntity, initBrainDir, listEntities, readEntity, searchEntities, writeEntity } from './brain.js';
2
2
  import { generateDailyDigest, generateWeeklyDigest } from './digest.js';
3
+ import { getCircuitState, getSourceHealth, isSourceAvailable, listSourceHealth, recordSourceFailure, recordSourceSuccess, resetSourceHealth } from './health.js';
4
+ import { calculateSlo } from './slo.js';
5
+ import { getCostSummary } from './cost.js';
6
+ import { deleteCheckpoint, listCheckpoints, loadCheckpoint, saveCheckpoint } from './checkpoint.js';
3
7
  import { generateReadinessReport, validateControlPlane } from './validator.js';
4
8
  import { loadDefaultControlPlane, loadControlPlane } from './loader.js';
5
- import { preflightAction } from './preflight-action.js';
9
+ import { preflight } from './preflight.js';
6
10
  import { resolveSourceRoute } from './route-resolver.js';
7
11
  import { appendChange, appendEvidence, listChanges, listEvidence } from './store.js';
8
12
  export function createAgentCmdb(options = {}) {
@@ -11,7 +15,7 @@ export function createAgentCmdb(options = {}) {
11
15
  const brainDir = options.brainDir;
12
16
  return {
13
17
  preflight(request) {
14
- return preflightAction(controlPlane, request);
18
+ return preflight(controlPlane, storeDir, request);
15
19
  },
16
20
  resolveRoute(request) {
17
21
  return resolveSourceRoute(controlPlane, request);
@@ -68,7 +72,8 @@ export function createAgentCmdb(options = {}) {
68
72
  profile,
69
73
  date,
70
74
  storeDir,
71
- brainDir: await requireBrainDir(brainDir)
75
+ brainDir: await requireBrainDir(brainDir),
76
+ controlPlane
72
77
  });
73
78
  },
74
79
  async generateWeeklyDigest(profile, weekStart) {
@@ -78,6 +83,45 @@ export function createAgentCmdb(options = {}) {
78
83
  storeDir,
79
84
  brainDir: await requireBrainDir(brainDir)
80
85
  });
86
+ },
87
+ recordSourceSuccess(sourceId) {
88
+ return recordSourceSuccess(controlPlane, storeDir, sourceId);
89
+ },
90
+ recordSourceFailure(sourceId) {
91
+ return recordSourceFailure(controlPlane, storeDir, sourceId);
92
+ },
93
+ getSourceHealth(sourceId) {
94
+ return getSourceHealth(controlPlane, storeDir, sourceId);
95
+ },
96
+ listSourceHealth() {
97
+ return listSourceHealth(controlPlane, storeDir);
98
+ },
99
+ isSourceAvailable(sourceId) {
100
+ return isSourceAvailable(controlPlane, storeDir, sourceId);
101
+ },
102
+ getCircuitState(sourceId) {
103
+ return getCircuitState(controlPlane, storeDir, sourceId);
104
+ },
105
+ resetSourceHealth(sourceId) {
106
+ return resetSourceHealth(controlPlane, storeDir, sourceId);
107
+ },
108
+ calculateSlo(profile) {
109
+ return calculateSlo(controlPlane, storeDir, profile);
110
+ },
111
+ getCostSummary(profile, date) {
112
+ return getCostSummary(controlPlane, storeDir, profile, date);
113
+ },
114
+ saveCheckpoint(checkpoint) {
115
+ return saveCheckpoint(storeDir, checkpoint);
116
+ },
117
+ loadCheckpoint(id) {
118
+ return loadCheckpoint(storeDir, id);
119
+ },
120
+ listCheckpoints(profile) {
121
+ return listCheckpoints(storeDir, profile);
122
+ },
123
+ deleteCheckpoint(id) {
124
+ return deleteCheckpoint(storeDir, id);
81
125
  }
82
126
  };
83
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { evaluatePolicy, normalizePolicyRequest, policiesConflict, policyMatches, policyShadows } from './policy-engine.js';
2
+ export { evaluatePreflight, preflight } from './preflight.js';
3
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,SAAS,EACV,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { evaluatePolicy, normalizePolicyRequest, policiesConflict, policyMatches, policyShadows } from './policy-engine.js';
2
+ export { evaluatePreflight, preflight } from './preflight.js';
3
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,SAAS,EACV,MAAM,gBAAgB,CAAC"}
package/dist/loader.js CHANGED
@@ -74,7 +74,9 @@ function parseSourceRef(value) {
74
74
  readOnly: readBoolean(record, 'readOnly', 'Source readOnly'),
75
75
  notes: optionalString(record, 'notes'),
76
76
  freshnessTtl: optionalString(record, 'freshnessTtl'),
77
- brainEntityId: optionalString(record, 'brainEntityId')
77
+ brainEntityId: optionalString(record, 'brainEntityId'),
78
+ health: parseOptionalHealthConfig(record.health),
79
+ costPerCall: optionalNonNegativeNumber(record, 'costPerCall')
78
80
  };
79
81
  }
80
82
  function parseAgentProfile(value) {
@@ -84,7 +86,8 @@ function parseAgentProfile(value) {
84
86
  name: readString(record, 'name', 'Profile name'),
85
87
  purpose: readString(record, 'purpose', 'Profile purpose'),
86
88
  guardrails: readStringArray(record, 'guardrails', 'Profile guardrails'),
87
- routes: readArray(record, 'routes', 'Profile routes').map(parseSourceRoute)
89
+ routes: readArray(record, 'routes', 'Profile routes').map(parseSourceRoute),
90
+ slo: parseOptionalSloConfig(record.slo)
88
91
  };
89
92
  }
90
93
  function parseSourceRoute(value) {
@@ -92,7 +95,8 @@ function parseSourceRoute(value) {
92
95
  return {
93
96
  intent: readString(record, 'intent', 'Source route intent'),
94
97
  sources: readStringArray(record, 'sources', 'Source route sources'),
95
- notes: optionalString(record, 'notes')
98
+ notes: optionalString(record, 'notes'),
99
+ blockOnStale: optionalBoolean(record, 'blockOnStale')
96
100
  };
97
101
  }
98
102
  function parsePolicyRule(value) {
@@ -184,6 +188,53 @@ function optionalBoolean(record, key) {
184
188
  }
185
189
  return record[key];
186
190
  }
191
+ function optionalNonNegativeNumber(record, key) {
192
+ if (record[key] === undefined)
193
+ return undefined;
194
+ if (typeof record[key] !== 'number' || !Number.isFinite(record[key]) || record[key] < 0) {
195
+ throw new ControlPlaneLoadError(`${key} must be a non-negative number.`);
196
+ }
197
+ return record[key];
198
+ }
199
+ function parseOptionalHealthConfig(value) {
200
+ if (value === undefined)
201
+ return undefined;
202
+ const record = requireRecord(value, 'Source health');
203
+ return {
204
+ failureThreshold: optionalPositiveInteger(record, 'failureThreshold'),
205
+ recoveryTimeoutMs: optionalNonNegativeNumber(record, 'recoveryTimeoutMs')
206
+ };
207
+ }
208
+ function parseOptionalSloConfig(value) {
209
+ if (value === undefined)
210
+ return undefined;
211
+ const record = requireRecord(value, 'Profile SLO');
212
+ const metric = readString(record, 'metric', 'Profile SLO metric');
213
+ if (metric !== 'allow_rate') {
214
+ throw new ControlPlaneLoadError(`Profile SLO metric has invalid value ${metric}.`);
215
+ }
216
+ const target = optionalNonNegativeNumber(record, 'target');
217
+ const windowHours = optionalNonNegativeNumber(record, 'windowHours');
218
+ if (target === undefined || target > 1) {
219
+ throw new ControlPlaneLoadError('Profile SLO target must be between 0 and 1.');
220
+ }
221
+ if (windowHours === undefined || windowHours <= 0) {
222
+ throw new ControlPlaneLoadError('Profile SLO windowHours must be greater than 0.');
223
+ }
224
+ return {
225
+ target,
226
+ windowHours,
227
+ metric
228
+ };
229
+ }
230
+ function optionalPositiveInteger(record, key) {
231
+ if (record[key] === undefined)
232
+ return undefined;
233
+ if (!Number.isInteger(record[key]) || record[key] <= 0) {
234
+ throw new ControlPlaneLoadError(`${key} must be a positive integer.`);
235
+ }
236
+ return record[key];
237
+ }
187
238
  function requireRecord(value, label) {
188
239
  if (!value || typeof value !== 'object' || Array.isArray(value)) {
189
240
  throw new ControlPlaneLoadError(`${label} must be an object.`);
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
@@ -29,15 +29,15 @@ export function evaluatePolicy(controlPlane, request) {
29
29
  })[0];
30
30
  if (!selectedRule) {
31
31
  return {
32
- effect: 'approval_required',
33
- ruleId: 'default-approval-required',
34
- code: 'no_explicit_policy_match',
35
- reason: 'No explicit allow rule matched this action, so approval is required.',
32
+ effect: 'deny',
33
+ ruleId: 'default-deny',
34
+ code: 'default_deny',
35
+ reason: 'No explicit allow rule matched this action.',
36
36
  profile: normalizedRequest.profile,
37
37
  action: normalizedRequest.action,
38
38
  tool: normalizedRequest.tool,
39
- canEscalate: true,
40
- suggestedAlternative: 'Ask for explicit approval or add a policy rule.'
39
+ canEscalate: false,
40
+ suggestedAlternative: 'Add an explicit allow or approval_required policy rule.'
41
41
  };
42
42
  }
43
43
  return {
@@ -69,7 +69,7 @@ export function policyMatches(rule, request) {
69
69
  if (rule.profiles && !matchesList(rule.profiles, request.profile))
70
70
  return false;
71
71
  if (rule.tools && !request.tool)
72
- return rule.tools.includes('*');
72
+ return false;
73
73
  if (rule.tools && request.tool && !matchesList(rule.tools, request.tool))
74
74
  return false;
75
75
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../src/policy-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../src/policy-engine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { type AgentCmdbOptions } from './interface.js';
2
- import type { PreflightRequest, PreflightResult } from './types.js';
3
- export declare function agentPreflight(request: PreflightRequest, options?: AgentCmdbOptions): Promise<PreflightResult>;
1
+ import type { ControlPlane, PreflightRequest, PreflightResult, SourceHealth } from './types.js';
2
+ export declare function evaluatePreflight(controlPlane: ControlPlane, request: PreflightRequest, options?: {
3
+ health?: SourceHealth[];
4
+ }): PreflightResult;
5
+ export declare function preflight(controlPlane: ControlPlane, storeDir: string, request: PreflightRequest): Promise<PreflightResult>;
4
6
  //# sourceMappingURL=preflight.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpE,wBAAsB,cAAc,CAClC,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAqC1B"}
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EAEZ,gBAAgB,EAChB,eAAe,EAEf,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;CAAO,GACxC,eAAe,CAmFjB;AAED,wBAAsB,SAAS,CAC7B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAmC1B"}