@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
@@ -1,101 +0,0 @@
1
- import { evaluatePolicy, normalizePolicyRequest } from './policy-engine.js';
2
- import { inspectProfile, resolveSourceRoute } from './route-resolver.js';
3
- export function preflightAction(controlPlane, request) {
4
- const normalizedRequest = normalizePreflightRequest(request);
5
- const decision = evaluatePolicy(controlPlane, normalizedRequest);
6
- let finalDecision = decision;
7
- let route;
8
- const warnings = [];
9
- if (normalizedRequest.intent) {
10
- try {
11
- route = resolveSourceRoute(controlPlane, {
12
- profile: normalizedRequest.profile,
13
- intent: normalizedRequest.intent,
14
- freshness: normalizedRequest.freshness,
15
- now: normalizedRequest.now
16
- });
17
- }
18
- catch (error) {
19
- const message = error instanceof Error ? error.message : String(error);
20
- const reason = `Route resolution failed: ${message}`;
21
- warnings.push(reason);
22
- if (decision.effect === 'allow') {
23
- finalDecision = {
24
- effect: 'deny',
25
- ruleId: 'route-resolution-failed',
26
- code: 'route_resolution_failed',
27
- reason,
28
- profile: normalizedRequest.profile,
29
- action: normalizedRequest.action,
30
- tool: normalizedRequest.tool,
31
- canEscalate: false,
32
- suggestedAlternative: 'Fix the source route for this profile and intent before executing.'
33
- };
34
- }
35
- }
36
- }
37
- const profile = inspectProfile(controlPlane, normalizedRequest.profile);
38
- return {
39
- allowed: finalDecision.effect === 'allow',
40
- approvalRequired: finalDecision.effect === 'approval_required',
41
- decision: finalDecision,
42
- route,
43
- routeExecutable: finalDecision.effect === 'allow' && Boolean(route),
44
- guardrails: route?.guardrails ?? profile.guardrails,
45
- warnings,
46
- dryRun: Boolean(normalizedRequest.dryRun)
47
- };
48
- }
49
- function normalizePreflightRequest(request) {
50
- const normalizedPolicy = normalizePolicyRequest(request);
51
- const record = requireRecord(request, 'Preflight request');
52
- const intent = record.intent === undefined
53
- ? undefined
54
- : requireNonEmptyString(record.intent, 'Preflight request intent', 'when provided');
55
- const dryRun = record.dryRun === undefined ? undefined : requireBoolean(record.dryRun, 'Preflight request dryRun');
56
- const freshness = normalizeFreshness(record.freshness);
57
- const now = record.now === undefined
58
- ? undefined
59
- : requireNonEmptyString(record.now, 'Preflight request now', 'when provided');
60
- return {
61
- ...normalizedPolicy,
62
- intent,
63
- dryRun,
64
- freshness,
65
- now
66
- };
67
- }
68
- function normalizeFreshness(value) {
69
- if (value === undefined)
70
- return undefined;
71
- if (!Array.isArray(value)) {
72
- throw new Error('Preflight request freshness must be an array.');
73
- }
74
- return value.map((entry) => {
75
- const record = requireRecord(entry, 'Preflight freshness input');
76
- return {
77
- sourceId: requireNonEmptyString(record.sourceId, 'Preflight freshness sourceId'),
78
- lastUpdated: requireNonEmptyString(record.lastUpdated, 'Preflight freshness lastUpdated')
79
- };
80
- });
81
- }
82
- function requireBoolean(value, label) {
83
- if (typeof value !== 'boolean') {
84
- throw new Error(`${label} must be a boolean.`);
85
- }
86
- return value;
87
- }
88
- function requireRecord(value, label) {
89
- if (!value || typeof value !== 'object' || Array.isArray(value)) {
90
- throw new Error(`${label} must be an object.`);
91
- }
92
- return value;
93
- }
94
- function requireNonEmptyString(value, label, suffix) {
95
- if (typeof value !== 'string' || value.trim().length === 0) {
96
- const suffixText = suffix ? ` ${suffix}` : '';
97
- throw new Error(`${label} must be a non-empty string${suffixText}.`);
98
- }
99
- return value;
100
- }
101
- //# sourceMappingURL=preflight-action.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight-action.js","sourceRoot":"","sources":["../src/preflight-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,MAAM,UAAU,eAAe,CAAC,YAA0B,EAAE,OAAyB;IACnF,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACjE,IAAI,aAAa,GAAmB,QAAQ,CAAC;IAC7C,IAAI,KAAsC,CAAC;IAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,KAAK,GAAG,kBAAkB,CAAC,YAAY,EAAE;gBACvC,OAAO,EAAE,iBAAiB,CAAC,OAAO;gBAClC,MAAM,EAAE,iBAAiB,CAAC,MAAM;gBAChC,SAAS,EAAE,iBAAiB,CAAC,SAAS;gBACtC,GAAG,EAAE,iBAAiB,CAAC,GAAG;aAC3B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,4BAA4B,OAAO,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAChC,aAAa,GAAG;oBACd,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,yBAAyB;oBACjC,IAAI,EAAE,yBAAyB;oBAC/B,MAAM;oBACN,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,MAAM,EAAE,iBAAiB,CAAC,MAAM;oBAChC,IAAI,EAAE,iBAAiB,CAAC,IAAI;oBAC5B,WAAW,EAAE,KAAK;oBAClB,oBAAoB,EAAE,oEAAoE;iBAC3F,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAExE,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,MAAM,KAAK,OAAO;QACzC,gBAAgB,EAAE,aAAa,CAAC,MAAM,KAAK,mBAAmB;QAC9D,QAAQ,EAAE,aAAa;QACvB,KAAK;QACL,eAAe,EAAE,aAAa,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;QACnE,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU;QACnD,QAAQ;QACR,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAyB;IAC1D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS;QACxC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,EAAE,eAAe,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACnH,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS;QAClC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAuB,EAAE,eAAe,CAAC,CAAC;IAEhF,OAAO;QACL,GAAG,gBAAgB;QACnB,MAAM;QACN,MAAM;QACN,SAAS;QACT,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;QACjE,OAAO;YACL,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;YAChF,WAAW,EAAE,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC;SAC1F,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,KAAa,EAAE,MAAe;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,UAAU,GAAG,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}