@polpo-ai/core 0.15.36 → 0.15.38

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 (79) hide show
  1. package/README.md +102 -0
  2. package/dist/__tests__/model-profiles.test.d.ts +2 -0
  3. package/dist/__tests__/model-profiles.test.d.ts.map +1 -0
  4. package/dist/__tests__/model-profiles.test.js +221 -0
  5. package/dist/__tests__/model-profiles.test.js.map +1 -0
  6. package/dist/__tests__/model-router.test.d.ts +2 -0
  7. package/dist/__tests__/model-router.test.d.ts.map +1 -0
  8. package/dist/__tests__/model-router.test.js +458 -0
  9. package/dist/__tests__/model-router.test.js.map +1 -0
  10. package/dist/__tests__/runtime-plan.test.d.ts +2 -0
  11. package/dist/__tests__/runtime-plan.test.d.ts.map +1 -0
  12. package/dist/__tests__/runtime-plan.test.js +358 -0
  13. package/dist/__tests__/runtime-plan.test.js.map +1 -0
  14. package/dist/__tests__/task-runner-model-profiles.test.d.ts +2 -0
  15. package/dist/__tests__/task-runner-model-profiles.test.d.ts.map +1 -0
  16. package/dist/__tests__/task-runner-model-profiles.test.js +84 -0
  17. package/dist/__tests__/task-runner-model-profiles.test.js.map +1 -0
  18. package/dist/adapter.d.ts +8 -1
  19. package/dist/adapter.d.ts.map +1 -1
  20. package/dist/assessment-orchestrator.d.ts +1 -0
  21. package/dist/assessment-orchestrator.d.ts.map +1 -1
  22. package/dist/assessment-orchestrator.js +11 -4
  23. package/dist/assessment-orchestrator.js.map +1 -1
  24. package/dist/escalation-manager.d.ts.map +1 -1
  25. package/dist/escalation-manager.js +6 -1
  26. package/dist/escalation-manager.js.map +1 -1
  27. package/dist/events.d.ts +2 -0
  28. package/dist/events.d.ts.map +1 -1
  29. package/dist/index.d.ts +5 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +4 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/loop/types.d.ts +3 -3
  34. package/dist/loop/types.d.ts.map +1 -1
  35. package/dist/mission-executor.d.ts.map +1 -1
  36. package/dist/mission-executor.js +2 -2
  37. package/dist/mission-executor.js.map +1 -1
  38. package/dist/model-profiles.d.ts +39 -0
  39. package/dist/model-profiles.d.ts.map +1 -0
  40. package/dist/model-profiles.js +181 -0
  41. package/dist/model-profiles.js.map +1 -0
  42. package/dist/model-router.d.ts +98 -0
  43. package/dist/model-router.d.ts.map +1 -0
  44. package/dist/model-router.js +358 -0
  45. package/dist/model-router.js.map +1 -0
  46. package/dist/runtime-plan/events.d.ts +5 -0
  47. package/dist/runtime-plan/events.d.ts.map +1 -0
  48. package/dist/runtime-plan/events.js +10 -0
  49. package/dist/runtime-plan/events.js.map +1 -0
  50. package/dist/runtime-plan/index.d.ts +5 -0
  51. package/dist/runtime-plan/index.d.ts.map +1 -0
  52. package/dist/runtime-plan/index.js +4 -0
  53. package/dist/runtime-plan/index.js.map +1 -0
  54. package/dist/runtime-plan/planner.d.ts +10 -0
  55. package/dist/runtime-plan/planner.d.ts.map +1 -0
  56. package/dist/runtime-plan/planner.js +322 -0
  57. package/dist/runtime-plan/planner.js.map +1 -0
  58. package/dist/runtime-plan/settings.d.ts +18 -0
  59. package/dist/runtime-plan/settings.d.ts.map +1 -0
  60. package/dist/runtime-plan/settings.js +63 -0
  61. package/dist/runtime-plan/settings.js.map +1 -0
  62. package/dist/runtime-plan/types.d.ts +112 -0
  63. package/dist/runtime-plan/types.d.ts.map +1 -0
  64. package/dist/runtime-plan/types.js +2 -0
  65. package/dist/runtime-plan/types.js.map +1 -0
  66. package/dist/schemas.d.ts +79 -19
  67. package/dist/schemas.d.ts.map +1 -1
  68. package/dist/schemas.js +16 -2
  69. package/dist/schemas.js.map +1 -1
  70. package/dist/task-runner.d.ts.map +1 -1
  71. package/dist/task-runner.js +5 -2
  72. package/dist/task-runner.js.map +1 -1
  73. package/dist/types/agent.d.ts +5 -3
  74. package/dist/types/agent.d.ts.map +1 -1
  75. package/dist/types/agent.js.map +1 -1
  76. package/dist/types/config.d.ts +24 -3
  77. package/dist/types/config.d.ts.map +1 -1
  78. package/dist/types/config.js.map +1 -1
  79. package/package.json +13 -1
@@ -0,0 +1,322 @@
1
+ import { nanoid } from "nanoid";
2
+ import { normalizeModelPolicy } from "../model-policy.js";
3
+ import { RUNTIME_DECISION_SOURCES, RUNTIME_EXECUTION_MODES, RUNTIME_GUARDRAIL_ACTIONS, RUNTIME_GUARDRAIL_PHASES, RUNTIME_GUARDRAIL_RISKS, RUNTIME_INVOCATION_SOURCES, RUNTIME_PLAN_DEFAULTS, RUNTIME_SURFACES, RUNTIME_TOOL_EXPOSURES, } from "./settings.js";
4
+ function assertMember(value, allowed, label) {
5
+ if (typeof value !== "string" || !allowed.includes(value)) {
6
+ throw new Error(`${label} must be one of: ${allowed.join(", ")}`);
7
+ }
8
+ }
9
+ function requiredString(value, label) {
10
+ if (typeof value !== "string" || !value.trim()) {
11
+ throw new Error(`${label} must be a non-empty string`);
12
+ }
13
+ return value.trim();
14
+ }
15
+ function optionalString(value, label) {
16
+ if (value === undefined)
17
+ return undefined;
18
+ return requiredString(value, label);
19
+ }
20
+ function requiredValue(value, label) {
21
+ if (value === undefined)
22
+ throw new Error(`${label} is required`);
23
+ return value;
24
+ }
25
+ function uniqueStrings(value, label) {
26
+ if (value === undefined)
27
+ return [];
28
+ if (!Array.isArray(value))
29
+ throw new Error(`${label} must be an array of strings`);
30
+ const seen = new Set();
31
+ const output = [];
32
+ for (const item of value) {
33
+ if (typeof item !== "string")
34
+ throw new Error(`${label} must contain only strings`);
35
+ const normalized = item.trim();
36
+ if (!normalized || seen.has(normalized))
37
+ continue;
38
+ seen.add(normalized);
39
+ output.push(normalized);
40
+ }
41
+ return output;
42
+ }
43
+ function normalizeLatencyMap(value) {
44
+ if (value === undefined)
45
+ return undefined;
46
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
47
+ throw new Error("Runtime plan audit latencyMs must be an object");
48
+ }
49
+ const prototype = Object.getPrototypeOf(value);
50
+ if (prototype !== Object.prototype && prototype !== null) {
51
+ throw new Error("Runtime plan audit latencyMs must be a plain object");
52
+ }
53
+ const output = {};
54
+ for (const [rawKey, rawLatency] of Object.entries(value)) {
55
+ const key = requiredString(rawKey, "Runtime plan audit latencyMs key");
56
+ if (key === "__proto__" ||
57
+ key === "constructor" ||
58
+ key === "prototype" ||
59
+ key.length > 64) {
60
+ throw new Error("Runtime plan audit latencyMs contains an invalid key");
61
+ }
62
+ if (typeof rawLatency !== "number" ||
63
+ !Number.isFinite(rawLatency) ||
64
+ rawLatency < 0) {
65
+ throw new Error("Runtime plan audit latencyMs values must be non-negative finite numbers");
66
+ }
67
+ output[key] = rawLatency;
68
+ }
69
+ return output;
70
+ }
71
+ function normalizedModelSelection(selection) {
72
+ const policy = normalizeModelPolicy(selection);
73
+ if (policy.fallbacks.length === 0)
74
+ return policy.primary;
75
+ return {
76
+ primary: policy.primary,
77
+ fallbacks: policy.fallbacks,
78
+ };
79
+ }
80
+ function cloneJson(value, path, ancestors) {
81
+ if (value === null ||
82
+ typeof value === "string" ||
83
+ typeof value === "boolean") {
84
+ return value;
85
+ }
86
+ if (typeof value === "number") {
87
+ if (!Number.isFinite(value)) {
88
+ throw new Error(`${path} must be JSON-serializable`);
89
+ }
90
+ return value;
91
+ }
92
+ if (typeof value !== "object") {
93
+ throw new Error(`${path} must be JSON-serializable`);
94
+ }
95
+ if (ancestors.has(value)) {
96
+ throw new Error(`${path} must be JSON-serializable (cyclic value)`);
97
+ }
98
+ ancestors.add(value);
99
+ try {
100
+ if (Array.isArray(value)) {
101
+ return value.map((item, index) => cloneJson(item, `${path}[${index}]`, ancestors));
102
+ }
103
+ const prototype = Object.getPrototypeOf(value);
104
+ if (prototype !== Object.prototype && prototype !== null) {
105
+ throw new Error(`${path} must be JSON-serializable`);
106
+ }
107
+ const output = {};
108
+ for (const [key, item] of Object.entries(value)) {
109
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
110
+ throw new Error(`${path}.${key} is not allowed`);
111
+ }
112
+ output[key] = cloneJson(item, `${path}.${key}`, ancestors);
113
+ }
114
+ return output;
115
+ }
116
+ finally {
117
+ ancestors.delete(value);
118
+ }
119
+ }
120
+ function normalizeGuardrailDecision(decision, index) {
121
+ const label = `Runtime plan guardrails[${index}]`;
122
+ const id = requiredString(decision?.id, `${label}.id`);
123
+ const policyId = requiredString(decision?.policyId, `${label}.policyId`);
124
+ const policyVersion = optionalString(decision?.policyVersion, `${label}.policyVersion`);
125
+ assertMember(decision?.phase, RUNTIME_GUARDRAIL_PHASES, `${label}.phase`);
126
+ assertMember(decision?.action, RUNTIME_GUARDRAIL_ACTIONS, `${label}.action`);
127
+ assertMember(decision?.risk, RUNTIME_GUARDRAIL_RISKS, `${label}.risk`);
128
+ const reason = requiredString(decision?.reason, `${label}.reason`);
129
+ if (decision.latencyMs !== undefined &&
130
+ (!Number.isFinite(decision.latencyMs) || decision.latencyMs < 0)) {
131
+ throw new Error(`${label}.latencyMs must be a non-negative finite number`);
132
+ }
133
+ if (decision.fallbackUsed !== undefined &&
134
+ typeof decision.fallbackUsed !== "boolean") {
135
+ throw new Error(`${label}.fallbackUsed must be a boolean`);
136
+ }
137
+ return {
138
+ id,
139
+ policyId,
140
+ ...(policyVersion ? { policyVersion } : {}),
141
+ phase: decision.phase,
142
+ action: decision.action,
143
+ risk: decision.risk,
144
+ reason,
145
+ ...(decision.latencyMs !== undefined ? { latencyMs: decision.latencyMs } : {}),
146
+ ...(decision.fallbackUsed !== undefined
147
+ ? { fallbackUsed: decision.fallbackUsed }
148
+ : {}),
149
+ };
150
+ }
151
+ function resolvedAt(factory) {
152
+ const value = factory.now?.() ?? new Date();
153
+ const date = value instanceof Date ? value : new Date(value);
154
+ if (Number.isNaN(date.getTime())) {
155
+ throw new Error("Runtime plan clock must return a valid date");
156
+ }
157
+ return date.toISOString();
158
+ }
159
+ export function freezeRuntimePlan(value) {
160
+ if (!value || typeof value !== "object" || Object.isFrozen(value))
161
+ return value;
162
+ for (const nested of Object.values(value)) {
163
+ freezeRuntimePlan(nested);
164
+ }
165
+ return Object.freeze(value);
166
+ }
167
+ export function createRuntimePlan(input, factory = {}) {
168
+ assertMember(input?.surface, RUNTIME_SURFACES, "Runtime plan surface");
169
+ assertMember(input?.source, RUNTIME_INVOCATION_SOURCES, "Runtime plan source");
170
+ const id = requiredString(input.id ?? factory.createId?.() ?? `plan-${nanoid(16)}`, "Runtime plan id");
171
+ const executionMode = input.execution?.mode ?? RUNTIME_PLAN_DEFAULTS.executionMode;
172
+ assertMember(executionMode, RUNTIME_EXECUTION_MODES, "Runtime plan execution mode");
173
+ const executionSource = input.execution?.source ?? RUNTIME_PLAN_DEFAULTS.executionSource;
174
+ assertMember(executionSource, RUNTIME_DECISION_SOURCES, "Runtime plan execution source");
175
+ const loop = optionalString(input.execution?.loop, "Runtime plan loop name");
176
+ if (executionMode === "loop" && !loop) {
177
+ throw new Error("Runtime plan loop mode requires a loop name");
178
+ }
179
+ if (executionMode === "direct" && loop) {
180
+ throw new Error("Direct runtime plans cannot carry a loop name");
181
+ }
182
+ const modelSource = input.model?.source ?? RUNTIME_PLAN_DEFAULTS.modelSource;
183
+ assertMember(modelSource, RUNTIME_DECISION_SOURCES, "Runtime plan model source");
184
+ const modelSelection = normalizedModelSelection(input.model?.selection);
185
+ const profile = optionalString(input.model?.profile, "Runtime plan model profile");
186
+ const sandboxIsolation = input.sandbox?.isolation ?? RUNTIME_PLAN_DEFAULTS.sandboxIsolation;
187
+ if (sandboxIsolation !== "reuse" && sandboxIsolation !== "fresh") {
188
+ throw new Error("Runtime plan sandbox isolation must be one of: reuse, fresh");
189
+ }
190
+ const sandboxSource = input.sandbox?.source ?? RUNTIME_PLAN_DEFAULTS.sandboxSource;
191
+ if (sandboxSource !== "request" &&
192
+ sandboxSource !== "agent" &&
193
+ sandboxSource !== "default") {
194
+ throw new Error("Runtime plan sandbox source must be one of: request, agent, default");
195
+ }
196
+ const toolExposure = input.tools?.exposure ?? RUNTIME_PLAN_DEFAULTS.toolExposure;
197
+ assertMember(toolExposure, RUNTIME_TOOL_EXPOSURES, "Runtime plan tool exposure");
198
+ const confidence = input.audit?.confidence;
199
+ if (confidence !== undefined &&
200
+ (!Number.isFinite(confidence) || confidence < 0 || confidence > 1)) {
201
+ throw new Error("Runtime plan confidence must be between 0 and 1");
202
+ }
203
+ if (input.audit?.fallbackUsed !== undefined &&
204
+ typeof input.audit.fallbackUsed !== "boolean") {
205
+ throw new Error("Runtime plan fallbackUsed must be a boolean");
206
+ }
207
+ const auditLatencyMs = normalizeLatencyMap(input.audit?.latencyMs);
208
+ const context = input.context === undefined
209
+ ? {}
210
+ : cloneJson(input.context, "Runtime plan context", new Set());
211
+ const plan = {
212
+ id,
213
+ surface: input.surface,
214
+ source: input.source,
215
+ execution: {
216
+ mode: executionMode,
217
+ ...(loop ? { loop } : {}),
218
+ source: executionSource,
219
+ },
220
+ model: {
221
+ selection: modelSelection,
222
+ ...(profile ? { profile } : {}),
223
+ source: modelSource,
224
+ },
225
+ sandbox: {
226
+ isolation: sandboxIsolation,
227
+ source: sandboxSource,
228
+ },
229
+ tools: {
230
+ exposure: toolExposure,
231
+ allowed: uniqueStrings(input.tools?.allowed, "Runtime plan allowed tools"),
232
+ },
233
+ guardrails: (input.guardrails ?? []).map(normalizeGuardrailDecision),
234
+ context,
235
+ audit: {
236
+ resolvedAt: resolvedAt(factory),
237
+ planner: optionalString(input.audit?.planner, "Runtime plan planner")
238
+ ?? RUNTIME_PLAN_DEFAULTS.planner,
239
+ reasons: uniqueStrings(input.audit?.reasons, "Runtime plan audit reasons"),
240
+ warnings: uniqueStrings(input.audit?.warnings, "Runtime plan audit warnings"),
241
+ policyIds: uniqueStrings(input.audit?.policyIds, "Runtime plan audit policy ids"),
242
+ ...(confidence !== undefined ? { confidence } : {}),
243
+ ...(auditLatencyMs !== undefined ? { latencyMs: auditLatencyMs } : {}),
244
+ fallbackUsed: input.audit?.fallbackUsed ?? false,
245
+ },
246
+ };
247
+ return freezeRuntimePlan(plan);
248
+ }
249
+ function record(value, label) {
250
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
251
+ throw new Error(`${label} must be an object`);
252
+ }
253
+ return value;
254
+ }
255
+ /**
256
+ * Rebuild a plan crossing a host boundary from the public allowlisted shape.
257
+ * This strips unknown fields and re-applies every invariant even when a
258
+ * JavaScript host bypasses the TypeScript contract.
259
+ */
260
+ export function normalizeRuntimePlan(value) {
261
+ const plan = record(value, "Runtime plan");
262
+ const execution = record(plan.execution, "Runtime plan execution");
263
+ const model = record(plan.model, "Runtime plan model");
264
+ const sandbox = record(plan.sandbox, "Runtime plan sandbox");
265
+ const tools = record(plan.tools, "Runtime plan tools");
266
+ const audit = record(plan.audit, "Runtime plan audit");
267
+ if (!Array.isArray(plan.guardrails)) {
268
+ throw new Error("Runtime plan guardrails must be an array");
269
+ }
270
+ const context = record(plan.context, "Runtime plan context");
271
+ if (!Array.isArray(tools.allowed)) {
272
+ throw new Error("Runtime plan allowed tools must be an array");
273
+ }
274
+ if (!Array.isArray(audit.reasons)) {
275
+ throw new Error("Runtime plan audit reasons must be an array");
276
+ }
277
+ if (!Array.isArray(audit.warnings)) {
278
+ throw new Error("Runtime plan audit warnings must be an array");
279
+ }
280
+ if (!Array.isArray(audit.policyIds)) {
281
+ throw new Error("Runtime plan audit policy ids must be an array");
282
+ }
283
+ const resolvedAtValue = requiredString(audit.resolvedAt, "Runtime plan audit resolvedAt");
284
+ return createRuntimePlan({
285
+ id: plan.id,
286
+ surface: plan.surface,
287
+ source: plan.source,
288
+ execution: {
289
+ mode: requiredValue(execution.mode, "Runtime plan execution mode"),
290
+ ...(execution.loop !== undefined ? { loop: execution.loop } : {}),
291
+ source: requiredValue(execution.source, "Runtime plan execution source"),
292
+ },
293
+ model: {
294
+ selection: requiredValue(model.selection, "Runtime plan model selection"),
295
+ ...(model.profile !== undefined ? { profile: model.profile } : {}),
296
+ source: requiredValue(model.source, "Runtime plan model source"),
297
+ },
298
+ sandbox: {
299
+ isolation: requiredValue(sandbox.isolation, "Runtime plan sandbox isolation"),
300
+ source: requiredValue(sandbox.source, "Runtime plan sandbox source"),
301
+ },
302
+ tools: {
303
+ exposure: requiredValue(tools.exposure, "Runtime plan tool exposure"),
304
+ allowed: tools.allowed,
305
+ },
306
+ guardrails: plan.guardrails,
307
+ context,
308
+ audit: {
309
+ planner: requiredValue(audit.planner, "Runtime plan planner"),
310
+ reasons: audit.reasons,
311
+ warnings: audit.warnings,
312
+ policyIds: audit.policyIds,
313
+ ...(audit.confidence !== undefined ? { confidence: audit.confidence } : {}),
314
+ ...(audit.latencyMs !== undefined ? { latencyMs: audit.latencyMs } : {}),
315
+ fallbackUsed: requiredValue(audit.fallbackUsed, "Runtime plan fallbackUsed"),
316
+ },
317
+ }, {
318
+ createId: () => requiredString(plan.id, "Runtime plan id"),
319
+ now: () => resolvedAtValue,
320
+ });
321
+ }
322
+ //# sourceMappingURL=planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/runtime-plan/planner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare const RUNTIME_SURFACES: readonly ["agent", "task", "channel", "webhook"];
2
+ export declare const RUNTIME_INVOCATION_SOURCES: readonly ["request", "channel", "task", "schedule", "loop-step", "internal"];
3
+ export declare const RUNTIME_DECISION_SOURCES: readonly ["request", "agent", "project", "router", "default"];
4
+ export declare const RUNTIME_EXECUTION_MODES: readonly ["direct", "loop"];
5
+ export declare const RUNTIME_TOOL_EXPOSURES: readonly ["direct", "router"];
6
+ export declare const RUNTIME_GUARDRAIL_PHASES: readonly ["input", "context", "model.preflight", "tool.before", "tool.after", "output"];
7
+ export declare const RUNTIME_GUARDRAIL_ACTIONS: readonly ["allow", "audit", "taint", "redact", "rewrite", "block", "approval"];
8
+ export declare const RUNTIME_GUARDRAIL_RISKS: readonly ["none", "low", "medium", "high", "critical"];
9
+ export declare const RUNTIME_PLAN_DEFAULTS: Readonly<{
10
+ readonly executionMode: "direct";
11
+ readonly executionSource: "default";
12
+ readonly modelSource: "default";
13
+ readonly sandboxIsolation: "reuse";
14
+ readonly sandboxSource: "default";
15
+ readonly toolExposure: "direct";
16
+ readonly planner: "runtime-default";
17
+ }>;
18
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/runtime-plan/settings.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB,kDAKiB,CAAC;AAE/C,eAAO,MAAM,0BAA0B,8EAOgB,CAAC;AAExD,eAAO,MAAM,wBAAwB,+DAMgB,CAAC;AAEtD,eAAO,MAAM,uBAAuB,6BAGgB,CAAC;AAErD,eAAO,MAAM,sBAAsB,+BAGgB,CAAC;AAEpD,eAAO,MAAM,wBAAwB,yFAOgB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,gFAQgB,CAAC;AAEvD,eAAO,MAAM,uBAAuB,wDAMgB,CAAC;AAErD,eAAO,MAAM,qBAAqB;;;;;;;;EAQvB,CAAC"}
@@ -0,0 +1,63 @@
1
+ export const RUNTIME_SURFACES = [
2
+ "agent",
3
+ "task",
4
+ "channel",
5
+ "webhook",
6
+ ];
7
+ export const RUNTIME_INVOCATION_SOURCES = [
8
+ "request",
9
+ "channel",
10
+ "task",
11
+ "schedule",
12
+ "loop-step",
13
+ "internal",
14
+ ];
15
+ export const RUNTIME_DECISION_SOURCES = [
16
+ "request",
17
+ "agent",
18
+ "project",
19
+ "router",
20
+ "default",
21
+ ];
22
+ export const RUNTIME_EXECUTION_MODES = [
23
+ "direct",
24
+ "loop",
25
+ ];
26
+ export const RUNTIME_TOOL_EXPOSURES = [
27
+ "direct",
28
+ "router",
29
+ ];
30
+ export const RUNTIME_GUARDRAIL_PHASES = [
31
+ "input",
32
+ "context",
33
+ "model.preflight",
34
+ "tool.before",
35
+ "tool.after",
36
+ "output",
37
+ ];
38
+ export const RUNTIME_GUARDRAIL_ACTIONS = [
39
+ "allow",
40
+ "audit",
41
+ "taint",
42
+ "redact",
43
+ "rewrite",
44
+ "block",
45
+ "approval",
46
+ ];
47
+ export const RUNTIME_GUARDRAIL_RISKS = [
48
+ "none",
49
+ "low",
50
+ "medium",
51
+ "high",
52
+ "critical",
53
+ ];
54
+ export const RUNTIME_PLAN_DEFAULTS = Object.freeze({
55
+ executionMode: "direct",
56
+ executionSource: "default",
57
+ modelSource: "default",
58
+ sandboxIsolation: "reuse",
59
+ sandboxSource: "default",
60
+ toolExposure: "direct",
61
+ planner: "runtime-default",
62
+ });
63
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/runtime-plan/settings.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO;IACP,MAAM;IACN,SAAS;IACT,SAAS;CACmC,CAAC;AAE/C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,SAAS;IACT,SAAS;IACT,MAAM;IACN,UAAU;IACV,WAAW;IACX,UAAU;CAC2C,CAAC;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,SAAS;CAC0C,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ;IACR,MAAM;CAC4C,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ;IACR,QAAQ;CACyC,CAAC;AAEpD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO;IACP,SAAS;IACT,iBAAiB;IACjB,aAAa;IACb,YAAY;IACZ,QAAQ;CAC2C,CAAC;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,UAAU;CAC0C,CAAC;AAEvD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,UAAU;CACwC,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,aAAa,EAAE,QAAQ;IACvB,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,SAAS;IACtB,gBAAgB,EAAE,OAAO;IACzB,aAAa,EAAE,SAAS;IACxB,YAAY,EAAE,QAAQ;IACtB,OAAO,EAAE,iBAAiB;CAClB,CAAC,CAAC"}
@@ -0,0 +1,112 @@
1
+ import type { ModelSelection } from "../model-policy.js";
2
+ import type { SandboxIsolation } from "../runtime-sandbox.js";
3
+ export type RuntimeSurface = "agent" | "task" | "channel" | "webhook";
4
+ export type RuntimeInvocationSource = "request" | "channel" | "task" | "schedule" | "loop-step" | "internal";
5
+ export type RuntimeDecisionSource = "request" | "agent" | "project" | "router" | "default";
6
+ export type RuntimeExecutionMode = "direct" | "loop";
7
+ export type RuntimeToolExposure = "direct" | "router";
8
+ export type RuntimeGuardrailPhase = "input" | "context" | "model.preflight" | "tool.before" | "tool.after" | "output";
9
+ export type RuntimeGuardrailAction = "allow" | "audit" | "taint" | "redact" | "rewrite" | "block" | "approval";
10
+ export type RuntimeGuardrailRisk = "none" | "low" | "medium" | "high" | "critical";
11
+ export interface RuntimeGuardrailDecision {
12
+ readonly id: string;
13
+ readonly policyId: string;
14
+ readonly policyVersion?: string;
15
+ readonly phase: RuntimeGuardrailPhase;
16
+ readonly action: RuntimeGuardrailAction;
17
+ readonly risk: RuntimeGuardrailRisk;
18
+ readonly reason: string;
19
+ readonly latencyMs?: number;
20
+ readonly fallbackUsed?: boolean;
21
+ }
22
+ /** Compatibility alias while the dedicated guardrail package lands in O-R3. */
23
+ export type RuntimePlanGuardrailDecision = RuntimeGuardrailDecision;
24
+ export type RuntimePlanJsonPrimitive = string | number | boolean | null;
25
+ export type RuntimePlanJsonValue = RuntimePlanJsonPrimitive | readonly RuntimePlanJsonValue[] | {
26
+ readonly [key: string]: RuntimePlanJsonValue;
27
+ };
28
+ /**
29
+ * Host-neutral context policy references only. Raw context, prompts, retrieved
30
+ * documents, and messages never belong in a Runtime Plan.
31
+ */
32
+ export type RuntimeContextPolicy = Readonly<Record<string, RuntimePlanJsonValue>>;
33
+ export interface RuntimeDecisionAudit {
34
+ readonly resolvedAt: string;
35
+ readonly planner: string;
36
+ readonly reasons: readonly string[];
37
+ readonly warnings: readonly string[];
38
+ readonly policyIds: readonly string[];
39
+ readonly confidence?: number;
40
+ /** Named planning-stage latency measurements in milliseconds. */
41
+ readonly latencyMs?: Readonly<Record<string, number>>;
42
+ readonly fallbackUsed: boolean;
43
+ }
44
+ export interface RuntimePlan {
45
+ readonly id: string;
46
+ readonly surface: RuntimeSurface;
47
+ readonly source: RuntimeInvocationSource;
48
+ readonly execution: Readonly<{
49
+ mode: RuntimeExecutionMode;
50
+ loop?: string;
51
+ source: RuntimeDecisionSource;
52
+ }>;
53
+ readonly model: Readonly<{
54
+ selection: ModelSelection;
55
+ profile?: string;
56
+ source: RuntimeDecisionSource;
57
+ }>;
58
+ readonly sandbox: Readonly<{
59
+ isolation: SandboxIsolation;
60
+ source: Extract<RuntimeDecisionSource, "request" | "agent" | "default">;
61
+ }>;
62
+ readonly tools: Readonly<{
63
+ exposure: RuntimeToolExposure;
64
+ allowed: readonly string[];
65
+ }>;
66
+ readonly guardrails: readonly RuntimeGuardrailDecision[];
67
+ readonly context: RuntimeContextPolicy;
68
+ readonly audit: RuntimeDecisionAudit;
69
+ }
70
+ export interface CreateRuntimePlanInput {
71
+ readonly id?: string;
72
+ readonly surface: RuntimeSurface;
73
+ readonly source: RuntimeInvocationSource;
74
+ readonly execution?: Readonly<{
75
+ mode?: RuntimeExecutionMode;
76
+ loop?: string;
77
+ source?: RuntimeDecisionSource;
78
+ }>;
79
+ readonly model: Readonly<{
80
+ selection: ModelSelection;
81
+ profile?: string;
82
+ source?: RuntimeDecisionSource;
83
+ }>;
84
+ readonly sandbox?: Readonly<{
85
+ isolation?: SandboxIsolation;
86
+ source?: Extract<RuntimeDecisionSource, "request" | "agent" | "default">;
87
+ }>;
88
+ readonly tools?: Readonly<{
89
+ exposure?: RuntimeToolExposure;
90
+ allowed?: readonly string[];
91
+ }>;
92
+ readonly guardrails?: readonly RuntimeGuardrailDecision[];
93
+ readonly context?: RuntimeContextPolicy;
94
+ readonly audit?: Readonly<{
95
+ planner?: string;
96
+ reasons?: readonly string[];
97
+ warnings?: readonly string[];
98
+ policyIds?: readonly string[];
99
+ confidence?: number;
100
+ latencyMs?: Readonly<Record<string, number>>;
101
+ fallbackUsed?: boolean;
102
+ }>;
103
+ }
104
+ export interface RuntimePlanFactoryOptions {
105
+ readonly createId?: () => string;
106
+ readonly now?: () => Date | string;
107
+ }
108
+ export interface RuntimePlanResolvedEvent {
109
+ readonly type: "runtime.plan.resolved";
110
+ readonly plan: RuntimePlan;
111
+ }
112
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime-plan/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/runtime-plan/types.ts"],"names":[],"mappings":""}