@kindgi/agents 0.1.2 → 0.1.4-rc.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 (159) hide show
  1. package/dist/blocks.d.ts +101 -0
  2. package/dist/blocks.d.ts.map +1 -0
  3. package/dist/blocks.js +149 -0
  4. package/dist/blocks.js.map +1 -0
  5. package/dist/conversation-binding.d.ts +9 -1
  6. package/dist/conversation-binding.d.ts.map +1 -1
  7. package/dist/define.d.ts +17 -2
  8. package/dist/define.d.ts.map +1 -1
  9. package/dist/define.js +93 -6
  10. package/dist/define.js.map +1 -1
  11. package/dist/guardrails-gate.d.ts +7 -4
  12. package/dist/guardrails-gate.d.ts.map +1 -1
  13. package/dist/guardrails-gate.js +5 -2
  14. package/dist/guardrails-gate.js.map +1 -1
  15. package/dist/handlers/compose-result.d.ts.map +1 -1
  16. package/dist/handlers/compose-result.js +3 -0
  17. package/dist/handlers/compose-result.js.map +1 -1
  18. package/dist/handlers/context.d.ts +24 -0
  19. package/dist/handlers/context.d.ts.map +1 -1
  20. package/dist/handlers/dispatch-tools.d.ts.map +1 -1
  21. package/dist/handlers/dispatch-tools.js +69 -43
  22. package/dist/handlers/dispatch-tools.js.map +1 -1
  23. package/dist/handlers/errors.d.ts +12 -1
  24. package/dist/handlers/errors.d.ts.map +1 -1
  25. package/dist/handlers/errors.js.map +1 -1
  26. package/dist/handlers/evaluate-guardrails.d.ts.map +1 -1
  27. package/dist/handlers/evaluate-guardrails.js +36 -1
  28. package/dist/handlers/evaluate-guardrails.js.map +1 -1
  29. package/dist/handlers/gate-decision.d.ts +62 -0
  30. package/dist/handlers/gate-decision.d.ts.map +1 -0
  31. package/dist/handlers/gate-decision.js +55 -0
  32. package/dist/handlers/gate-decision.js.map +1 -0
  33. package/dist/handlers/model-call.d.ts +10 -0
  34. package/dist/handlers/model-call.d.ts.map +1 -1
  35. package/dist/handlers/model-call.js +120 -34
  36. package/dist/handlers/model-call.js.map +1 -1
  37. package/dist/handlers/persist-provenance.d.ts.map +1 -1
  38. package/dist/handlers/persist-provenance.js +3 -1
  39. package/dist/handlers/persist-provenance.js.map +1 -1
  40. package/dist/handlers/persist-user-message.d.ts.map +1 -1
  41. package/dist/handlers/persist-user-message.js +5 -16
  42. package/dist/handlers/persist-user-message.js.map +1 -1
  43. package/dist/handlers/public-types.d.ts +37 -3
  44. package/dist/handlers/public-types.d.ts.map +1 -1
  45. package/dist/handlers/rehydrate.d.ts.map +1 -1
  46. package/dist/handlers/rehydrate.js +91 -1
  47. package/dist/handlers/rehydrate.js.map +1 -1
  48. package/dist/handlers/render-prompt.d.ts.map +1 -1
  49. package/dist/handlers/render-prompt.js +4 -1
  50. package/dist/handlers/render-prompt.js.map +1 -1
  51. package/dist/handlers/replay.d.ts +143 -0
  52. package/dist/handlers/replay.d.ts.map +1 -0
  53. package/dist/handlers/replay.js +177 -0
  54. package/dist/handlers/replay.js.map +1 -0
  55. package/dist/handlers/resolve-blocks.d.ts +32 -0
  56. package/dist/handlers/resolve-blocks.d.ts.map +1 -0
  57. package/dist/handlers/resolve-blocks.js +129 -0
  58. package/dist/handlers/resolve-blocks.js.map +1 -0
  59. package/dist/handlers/resolve-tools.d.ts +6 -2
  60. package/dist/handlers/resolve-tools.d.ts.map +1 -1
  61. package/dist/handlers/resolve-tools.js +59 -27
  62. package/dist/handlers/resolve-tools.js.map +1 -1
  63. package/dist/handlers/result-shape.d.ts +7 -0
  64. package/dist/handlers/result-shape.d.ts.map +1 -1
  65. package/dist/handlers/result-shape.js.map +1 -1
  66. package/dist/handlers/run-retrievals.d.ts.map +1 -1
  67. package/dist/handlers/run-retrievals.js +35 -35
  68. package/dist/handlers/run-retrievals.js.map +1 -1
  69. package/dist/handlers/run-snapshot.d.ts.map +1 -1
  70. package/dist/handlers/run-snapshot.js +1 -0
  71. package/dist/handlers/run-snapshot.js.map +1 -1
  72. package/dist/handlers/setup.d.ts +2 -0
  73. package/dist/handlers/setup.d.ts.map +1 -1
  74. package/dist/handlers/setup.js +29 -12
  75. package/dist/handlers/setup.js.map +1 -1
  76. package/dist/handlers/tool-hitl.d.ts +5 -9
  77. package/dist/handlers/tool-hitl.d.ts.map +1 -1
  78. package/dist/handlers/tool-hitl.js +5 -0
  79. package/dist/handlers/tool-hitl.js.map +1 -1
  80. package/dist/handlers/turn-environment.d.ts +13 -2
  81. package/dist/handlers/turn-environment.d.ts.map +1 -1
  82. package/dist/handlers/turn-environment.js +12 -3
  83. package/dist/handlers/turn-environment.js.map +1 -1
  84. package/dist/handlers/turn-provenance.d.ts +67 -0
  85. package/dist/handlers/turn-provenance.d.ts.map +1 -0
  86. package/dist/handlers/turn-provenance.js +160 -0
  87. package/dist/handlers/turn-provenance.js.map +1 -0
  88. package/dist/index.d.ts +10 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +5 -0
  91. package/dist/index.js.map +1 -1
  92. package/dist/invoke.d.ts +14 -1
  93. package/dist/invoke.d.ts.map +1 -1
  94. package/dist/invoke.js +37 -19
  95. package/dist/invoke.js.map +1 -1
  96. package/dist/pins.d.ts +54 -0
  97. package/dist/pins.d.ts.map +1 -0
  98. package/dist/pins.js +51 -0
  99. package/dist/pins.js.map +1 -0
  100. package/dist/prompt.d.ts +12 -2
  101. package/dist/prompt.d.ts.map +1 -1
  102. package/dist/prompt.js +41 -4
  103. package/dist/prompt.js.map +1 -1
  104. package/dist/provenance-emit.d.ts +4 -2
  105. package/dist/provenance-emit.d.ts.map +1 -1
  106. package/dist/provenance-emit.js +4 -2
  107. package/dist/provenance-emit.js.map +1 -1
  108. package/dist/run-snapshot-binding.d.ts +5 -0
  109. package/dist/run-snapshot-binding.d.ts.map +1 -1
  110. package/dist/schema.d.ts +34 -0
  111. package/dist/schema.d.ts.map +1 -1
  112. package/dist/schema.js +16 -0
  113. package/dist/schema.js.map +1 -1
  114. package/dist/streaming.d.ts +5 -0
  115. package/dist/streaming.d.ts.map +1 -1
  116. package/dist/streaming.js.map +1 -1
  117. package/dist/types.d.ts +65 -2
  118. package/dist/types.d.ts.map +1 -1
  119. package/migrations/0003_hesitant_captain_cross.sql +2 -0
  120. package/migrations/0004_stormy_moondragon.sql +1 -0
  121. package/migrations/meta/0003_snapshot.json +321 -0
  122. package/migrations/meta/0004_snapshot.json +327 -0
  123. package/migrations/meta/_journal.json +14 -0
  124. package/package.json +15 -15
  125. package/src/blocks.ts +231 -0
  126. package/src/conversation-binding.ts +9 -1
  127. package/src/define.ts +104 -7
  128. package/src/guardrails-gate.ts +17 -3
  129. package/src/handlers/compose-result.ts +3 -0
  130. package/src/handlers/context.ts +24 -0
  131. package/src/handlers/dispatch-tools.ts +75 -44
  132. package/src/handlers/errors.ts +13 -0
  133. package/src/handlers/evaluate-guardrails.ts +41 -1
  134. package/src/handlers/gate-decision.ts +101 -0
  135. package/src/handlers/model-call.ts +163 -33
  136. package/src/handlers/persist-provenance.ts +3 -1
  137. package/src/handlers/persist-user-message.ts +3 -16
  138. package/src/handlers/public-types.ts +38 -3
  139. package/src/handlers/rehydrate.ts +141 -9
  140. package/src/handlers/render-prompt.ts +13 -7
  141. package/src/handlers/replay.ts +314 -0
  142. package/src/handlers/resolve-blocks.ts +188 -0
  143. package/src/handlers/resolve-tools.ts +76 -28
  144. package/src/handlers/result-shape.ts +8 -0
  145. package/src/handlers/run-retrievals.ts +45 -41
  146. package/src/handlers/run-snapshot.ts +1 -0
  147. package/src/handlers/setup.ts +30 -22
  148. package/src/handlers/tool-hitl.ts +6 -10
  149. package/src/handlers/turn-environment.ts +28 -3
  150. package/src/handlers/turn-provenance.ts +230 -0
  151. package/src/index.ts +44 -0
  152. package/src/invoke.ts +49 -20
  153. package/src/pins.ts +98 -0
  154. package/src/prompt.ts +52 -4
  155. package/src/provenance-emit.ts +4 -1
  156. package/src/run-snapshot-binding.ts +6 -0
  157. package/src/schema.ts +16 -0
  158. package/src/streaming.ts +5 -0
  159. package/src/types.ts +68 -2
@@ -0,0 +1,129 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { pickVersion } from '@kindgi/tools';
4
+ import { MODEL_SETTINGS_SCHEMA, settingsSchemaIssues, } from '../blocks.js';
5
+ import { throwAgentTurnFailure } from './errors.js';
6
+ /**
7
+ * Load the data blocks the agent references, each at one exact version:
8
+ * the resumed turn's own (`pinned`, from its `setup`), else the agent
9
+ * version's pin (`agent.pins`), else its range resolved now by
10
+ * `pickVersion` (an agent version published before pins). A pinned
11
+ * version that's unregistered still loads; one that's gone, a range
12
+ * nothing satisfies, or a runtime with no blocks fails the turn
13
+ * (`block-unresolvable`). `undefined` when the agent references none.
14
+ */
15
+ export async function resolveTurnBlocks(ctx, pinned) {
16
+ const agent = ctx.input.agent;
17
+ const refs = blockRefs(ctx);
18
+ if (refs.length === 0)
19
+ return undefined;
20
+ const reader = ctx.bindings.blockReader;
21
+ if (reader === undefined) {
22
+ fail(refs[0], `agent "${agent.id}" references data blocks, but this runtime serves none`);
23
+ }
24
+ const versions = {
25
+ prompts: {},
26
+ settings: {},
27
+ };
28
+ const loaded = new Map();
29
+ for (const ref of refs) {
30
+ const version = pinned?.[ref.kind][ref.id] ??
31
+ agent.pins?.[ref.kind][ref.id] ??
32
+ (await resolveRange(ctx, ref));
33
+ const block = await reader.getVersion({
34
+ tenantId: ctx.input.tenantId,
35
+ blockId: ref.id,
36
+ version,
37
+ });
38
+ if (block === null) {
39
+ fail(ref, `${describe(ref)} runs version ${version}, which isn't published`);
40
+ }
41
+ if (block.kind !== (ref.role === 'prompt' ? 'prompt' : 'settings')) {
42
+ fail(ref, `${describe(ref)} is a ${block.kind} block`);
43
+ }
44
+ versions[ref.kind][ref.id] = version;
45
+ loaded.set(ref, block);
46
+ }
47
+ return turnBlocks(refs, loaded, versions);
48
+ }
49
+ function blockRefs(ctx) {
50
+ const agent = ctx.input.agent;
51
+ const refs = [];
52
+ if (typeof agent.instructions === 'object') {
53
+ refs.push({
54
+ kind: 'prompts',
55
+ id: agent.instructions.prompt,
56
+ range: agent.instructions.version,
57
+ role: 'prompt',
58
+ });
59
+ }
60
+ for (const s of agent.settings ?? []) {
61
+ refs.push({ kind: 'settings', id: s.id, range: s.version, role: 'settings' });
62
+ }
63
+ if (agent.modelSettings !== undefined) {
64
+ refs.push({
65
+ kind: 'settings',
66
+ id: agent.modelSettings.id,
67
+ range: agent.modelSettings.version,
68
+ role: 'model-settings',
69
+ });
70
+ }
71
+ return refs;
72
+ }
73
+ /** An unpinned reference's range, resolved over the block's active versions. */
74
+ async function resolveRange(ctx, ref) {
75
+ const available = (await ctx.bindings.blockReader?.activeVersions({
76
+ tenantId: ctx.input.tenantId,
77
+ blockId: ref.id,
78
+ })) ?? [];
79
+ const pick = pickVersion(available, ref.range);
80
+ if (pick.kind === 'ok')
81
+ return pick.version;
82
+ return fail(ref, available.length === 0
83
+ ? `${describe(ref)} has no published version`
84
+ : `${describe(ref)} has no published version in "${ref.range}" (published: ${available.join(', ')})`);
85
+ }
86
+ function turnBlocks(refs, loaded, versions) {
87
+ const settings = {};
88
+ let prompt;
89
+ let modelSettings;
90
+ for (const ref of refs) {
91
+ const block = loaded.get(ref);
92
+ if (block.kind === 'prompt') {
93
+ prompt = { id: block.id, version: block.version, content: block.content };
94
+ }
95
+ else if (ref.role === 'model-settings') {
96
+ const issues = settingsSchemaIssues(block.content.values, MODEL_SETTINGS_SCHEMA);
97
+ if (issues.length > 0) {
98
+ fail(ref, `${describe(ref)} version ${block.version} isn't model settings: ${issues.map((i) => `${i.path} ${i.message}`).join('; ')}`);
99
+ }
100
+ modelSettings = block.content.values;
101
+ }
102
+ else {
103
+ settings[block.id] = block.content.values;
104
+ }
105
+ }
106
+ return {
107
+ ...(prompt !== undefined && { prompt }),
108
+ settings,
109
+ ...(modelSettings !== undefined && { modelSettings }),
110
+ versions,
111
+ };
112
+ }
113
+ function describe(ref) {
114
+ const what = ref.role === 'prompt'
115
+ ? 'prompt'
116
+ : ref.role === 'model-settings'
117
+ ? 'model-settings'
118
+ : 'settings';
119
+ return `${what} block "${ref.id}"`;
120
+ }
121
+ function fail(ref, message) {
122
+ return throwAgentTurnFailure({
123
+ code: 'block-unresolvable',
124
+ message,
125
+ blockId: ref.id,
126
+ requestedRange: ref.range,
127
+ });
128
+ }
129
+ //# sourceMappingURL=resolve-blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-blocks.js","sourceRoot":"","sources":["../../src/handlers/resolve-blocks.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,11 @@ import type { TurnContext } from './context.js';
4
4
  /**
5
5
  * Resolve the agent's tool references against one tenant's registry
6
6
  * (`ToolRegistry.forTenant`). Throws the turn failure for an unknown
7
- * tool or an unsatisfiable version range.
7
+ * tool or an unsatisfiable version range. A tool in `pinned` (a resumed
8
+ * turn's, from its `setup`) resolves to exactly that version, and so,
9
+ * otherwise, does one in the agent version's own pins (`agent.pins`, set
10
+ * when it was published): one that's gone fails the turn rather than
11
+ * running another. Without either, the tool's range resolves.
8
12
  */
9
- export declare function resolveTurnTools(registry: ToolRegistry, agent: Agent): NonNullable<TurnContext['tools']>;
13
+ export declare function resolveTurnTools(registry: ToolRegistry, agent: Agent, pinned?: Readonly<Record<string, string>>): NonNullable<TurnContext['tools']>;
10
14
  //# sourceMappingURL=resolve-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-tools.d.ts","sourceRoot":"","sources":["../../src/handlers/resolve-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAQ,YAAY,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,GACX,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAgDnC"}
1
+ {"version":3,"file":"resolve-tools.d.ts","sourceRoot":"","sources":["../../src/handlers/resolve-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,YAAY,EAAkB,MAAM,eAAe,CAAC;AAGnF,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACxC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAgCnC"}
@@ -4,9 +4,13 @@ import { throwAgentTurnFailure } from './errors.js';
4
4
  /**
5
5
  * Resolve the agent's tool references against one tenant's registry
6
6
  * (`ToolRegistry.forTenant`). Throws the turn failure for an unknown
7
- * tool or an unsatisfiable version range.
7
+ * tool or an unsatisfiable version range. A tool in `pinned` (a resumed
8
+ * turn's, from its `setup`) resolves to exactly that version, and so,
9
+ * otherwise, does one in the agent version's own pins (`agent.pins`, set
10
+ * when it was published): one that's gone fails the turn rather than
11
+ * running another. Without either, the tool's range resolves.
8
12
  */
9
- export function resolveTurnTools(registry, agent) {
13
+ export function resolveTurnTools(registry, agent, pinned) {
10
14
  const definitions = [];
11
15
  const byName = new Map();
12
16
  for (const ref of agent.tools) {
@@ -15,32 +19,15 @@ export function resolveTurnTools(registry, agent) {
15
19
  // (npm-compatible semver, backed by `maxSatisfying`); capture `resolvedVersion` in
16
20
  // the byName map so `dispatch-tools` can emit it in provenance +
17
21
  // telemetry — a replay can then pin against the same version.
18
- const resolved = registry.resolve(ref.id, ref.version);
22
+ const turnPin = pinned?.[ref.id];
23
+ const pin = turnPin ?? agent.pins?.tools[ref.id];
24
+ // A pin names its exact version, which a retired (unregistered) one
25
+ // still serves; a range picks among the active versions only.
26
+ const resolved = pin !== undefined
27
+ ? exactVersion(registry, ref.id, pin)
28
+ : registry.resolve(ref.id, ref.version);
19
29
  if (resolved.kind === 'err') {
20
- const err = resolved.error;
21
- if (err.code === 'tool-not-found') {
22
- throwAgentTurnFailure({
23
- code: 'unresolved-tool',
24
- message: `Tool "${ref.id}" declared by agent "${agent.id}" is not registered`,
25
- toolId: ref.id,
26
- });
27
- }
28
- if (err.code === 'invalid-version-range' || err.code === 'tool-version-unresolvable') {
29
- throwAgentTurnFailure({
30
- code: 'tool-version-unresolvable',
31
- message: err.message,
32
- toolId: ref.id,
33
- requestedRange: ref.version,
34
- ...(err.code === 'tool-version-unresolvable' && {
35
- availableVersions: err.availableVersions,
36
- }),
37
- });
38
- }
39
- throwAgentTurnFailure({
40
- code: 'unresolved-tool',
41
- message: err.message,
42
- toolId: ref.id,
43
- });
30
+ throwUnresolved(agent, ref, resolved.error, pin, turnPin !== undefined ? 'turn' : 'agent');
44
31
  }
45
32
  const { tool, resolvedVersion } = resolved.value;
46
33
  definitions.push({
@@ -52,4 +39,49 @@ export function resolveTurnTools(registry, agent) {
52
39
  }
53
40
  return { definitions, byName };
54
41
  }
42
+ /** A pinned tool version, retired or not, as a resolution. */
43
+ function exactVersion(registry, id, version) {
44
+ const found = registry.getVersion(id, version);
45
+ return found.kind === 'ok'
46
+ ? { kind: 'ok', value: { tool: found.value, resolvedVersion: version } }
47
+ : found;
48
+ }
49
+ /**
50
+ * Fail the turn for a tool that didn't resolve. A pinned version that's
51
+ * gone names whose pin it was: the turn's own (it started with that
52
+ * version) or the agent version's (it was published with it).
53
+ */
54
+ function throwUnresolved(agent, ref, err, pin, pinnedBy) {
55
+ const available = err.code === 'tool-version-unresolvable' && {
56
+ availableVersions: err.availableVersions,
57
+ };
58
+ if (pin !== undefined) {
59
+ throwAgentTurnFailure({
60
+ code: 'tool-version-unresolvable',
61
+ message: pinnedBy === 'turn'
62
+ ? `Tool "${ref.id}": this turn started with version ${pin}, which is no longer registered; it doesn't run another version mid-turn. ${err.message}`
63
+ : `Tool "${ref.id}": agent "${agent.id}" version ${agent.version} runs version ${pin} (its pins), which isn't registered; it doesn't run another version. ${err.message}`,
64
+ toolId: ref.id,
65
+ requestedRange: ref.version,
66
+ ...available,
67
+ });
68
+ }
69
+ if (err.code === 'tool-not-found') {
70
+ throwAgentTurnFailure({
71
+ code: 'unresolved-tool',
72
+ message: `Tool "${ref.id}" declared by agent "${agent.id}" is not registered`,
73
+ toolId: ref.id,
74
+ });
75
+ }
76
+ if (err.code === 'invalid-version-range' || err.code === 'tool-version-unresolvable') {
77
+ throwAgentTurnFailure({
78
+ code: 'tool-version-unresolvable',
79
+ message: err.message,
80
+ toolId: ref.id,
81
+ requestedRange: ref.version,
82
+ ...available,
83
+ });
84
+ }
85
+ throwAgentTurnFailure({ code: 'unresolved-tool', message: err.message, toolId: ref.id });
86
+ }
55
87
  //# sourceMappingURL=resolve-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-tools.js","sourceRoot":"","sources":["../../src/handlers/resolve-tools.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAQjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAsB,EACtB,KAAY;IAEZ,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAGnB,CAAC;IACJ,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,yCAAyC;QACzC,kEAAkE;QAClE,mFAAmF;QACnF,iEAAiE;QACjE,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAClC,qBAAqB,CAAC;oBACpB,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,SAAS,GAAG,CAAC,EAAE,wBAAwB,KAAK,CAAC,EAAE,qBAAqB;oBAC7E,MAAM,EAAE,GAAG,CAAC,EAAE;iBACf,CAAC,CAAC;YACL,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,IAAI,GAAG,CAAC,IAAI,KAAK,2BAA2B,EAAE,CAAC;gBACrF,qBAAqB,CAAC;oBACpB,IAAI,EAAE,2BAA2B;oBACjC,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,MAAM,EAAE,GAAG,CAAC,EAAE;oBACd,cAAc,EAAE,GAAG,CAAC,OAAO;oBAC3B,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,2BAA2B,IAAI;wBAC9C,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;qBACzC,CAAC;iBACH,CAAC,CAAC;YACL,CAAC;YACD,qBAAqB,CAAC;gBACpB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,EAAE;aACf,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;QACjD,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,KAA0C;SAC7D,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"resolve-tools.js","sourceRoot":"","sources":["../../src/handlers/resolve-tools.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { EvaluationResult } from '@kindgi/guardrails';
2
2
  import type { Provenance } from '@kindgi/provenance';
3
3
  import type { RunId } from '@kindgi/types';
4
4
  import type { ConversationId, ConversationMessage, RetrievedFact } from '../types.js';
5
+ import type { ReplayTurnReport } from './replay.js';
5
6
  /**
6
7
  * Public shape returned by `invokeAgent` on success. Extracted from
7
8
  * `invoke.ts` into this module so handler code can import the type
@@ -66,6 +67,12 @@ export interface AgentTurnResult {
66
67
  * `response.content`.
67
68
  */
68
69
  readonly status?: 'completed' | 'suspended';
70
+ /**
71
+ * A replay turn's report (`InvokeAgentInput.replay`): each tool call and
72
+ * whether it ran, used the past run's result, or was refused (what the
73
+ * turn would have done), and how the session approval gate went.
74
+ */
75
+ readonly replay?: ReplayTurnReport;
69
76
  }
70
77
  /**
71
78
  * What an agent step in a flow outputs — the authoring contract for the
@@ -1 +1 @@
1
- {"version":3,"file":"result-shape.d.ts","sourceRoot":"","sources":["../../src/handlers/result-shape.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;CAC7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS;QAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,EAAE,CAAC;CACL;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAcxE"}
1
+ {"version":3,"file":"result-shape.d.ts","sourceRoot":"","sources":["../../src/handlers/result-shape.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS;QAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,EAAE,CAAC;CACL;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAcxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"result-shape.js","sourceRoot":"","sources":["../../src/handlers/result-shape.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAgGjC,sDAAsD;AACtD,MAAM,UAAU,eAAe,CAAC,MAAuB;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxC,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QACrE,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,WAAW,EAAE,CAAC,CAAC,WAAgC;YAC/C,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"result-shape.js","sourceRoot":"","sources":["../../src/handlers/result-shape.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAwGjC,sDAAsD;AACtD,MAAM,UAAU,eAAe,CAAC,MAAuB;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxC,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QACrE,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,WAAW,EAAE,CAAC,CAAC,WAAgC;YAC/C,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-retrievals.d.ts","sourceRoot":"","sources":["../../src/handlers/run-retrievals.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CA2DvE"}
1
+ {"version":3,"file":"run-retrievals.d.ts","sourceRoot":"","sources":["../../src/handlers/run-retrievals.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CA0BvE"}
@@ -3,6 +3,7 @@
3
3
  import { runRetrievals } from '../retrieval.js';
4
4
  import { emitTurnEvent } from '../streaming.js';
5
5
  import { throwAgentTurnFailure } from './errors.js';
6
+ import { addRetrievalNodes } from './turn-provenance.js';
6
7
  /**
7
8
  * Execute the agent's declared retrieval intents. Populates
8
9
  * `ctx.retrieved` for downstream prompt building + emits
@@ -10,7 +11,7 @@ import { throwAgentTurnFailure } from './errors.js';
10
11
  * is wired.
11
12
  */
12
13
  export function buildRunRetrievalsHandler(ctx) {
13
- return async () => {
14
+ return async (_input, kctx) => {
14
15
  if (ctx.conversation === undefined || ctx.userMessage === undefined) {
15
16
  throwAgentTurnFailure({
16
17
  code: 'model-invocation-failed',
@@ -18,47 +19,46 @@ export function buildRunRetrievalsHandler(ctx) {
18
19
  cause: null,
19
20
  });
20
21
  }
21
- const retrieved = await runRetrievals(ctx.input.agent, ctx.conversation, ctx.input.conversationId, ctx.input.userMessage, {
22
- memory: ctx.bindings.memoryBinding,
23
- ...(ctx.bindings.embeddingRegistry !== undefined && {
24
- embeddingRegistry: ctx.bindings.embeddingRegistry,
25
- }),
26
- ...(ctx.bindings.embeddingModel !== undefined && {
27
- embeddingModel: ctx.bindings.embeddingModel,
28
- }),
29
- });
30
- if (retrieved.kind === 'err')
31
- throwAgentTurnFailure(retrieved.error);
32
- ctx.retrieved = retrieved.value;
22
+ const facts = (await recordedRetrievals(ctx, kctx)) ?? (await retrieveLive(ctx));
23
+ ctx.retrieved = facts;
33
24
  await emitTurnEvent(ctx.bindings.onEvent, {
34
25
  kind: 'retrieval.completed',
35
- count: retrieved.value.length,
36
- factIds: retrieved.value.map((r) => r.fact.id),
26
+ count: facts.length,
27
+ factIds: facts.map((r) => r.fact.id),
37
28
  });
38
29
  if (ctx.provenance !== undefined && ctx.userMessage !== undefined) {
39
- for (const r of retrieved.value) {
40
- ctx.provenance.addNode({
41
- id: `retrieval:${r.fact.id}`,
42
- kind: 'retrieval',
43
- timestamp: ctx.userMessage.createdAt,
44
- ...(r.fact.contentHash !== undefined && { contentHash: r.fact.contentHash }),
45
- attributes: {
46
- factId: r.fact.id,
47
- factType: r.fact.type,
48
- intentScope: r.intent.scope,
49
- ...(r.score !== undefined && { score: r.score }),
50
- },
51
- });
52
- ctx.provenance.addEdge({
53
- from: `retrieval:${r.fact.id}`,
54
- to: `input:${ctx.userMessage.sequence}`,
55
- kind: 'influenced-by',
56
- });
57
- }
30
+ addRetrievalNodes(ctx.provenance, facts, ctx.userMessage);
58
31
  }
59
32
  // The facts go in the journal: a resumed turn restores them from it
60
33
  // (`rehydrateTurnContext`) rather than retrieving again.
61
- return { count: retrieved.value.length, retrieved: retrieved.value };
34
+ return { count: facts.length, retrieved: facts };
62
35
  };
63
36
  }
37
+ /** A replay's retrievals: what the past run retrieved, when the replay binding has it. */
38
+ async function recordedRetrievals(ctx, kctx) {
39
+ const replay = ctx.input.replay;
40
+ if (replay === undefined || ctx.bindings.replay?.retrievals === undefined)
41
+ return undefined;
42
+ return ctx.bindings.replay.retrievals({
43
+ tenantId: ctx.input.tenantId,
44
+ runId: kctx.runId,
45
+ replay,
46
+ });
47
+ }
48
+ async function retrieveLive(ctx) {
49
+ if (ctx.conversation === undefined)
50
+ return [];
51
+ const retrieved = await runRetrievals(ctx.input.agent, ctx.conversation, ctx.input.conversationId, ctx.input.userMessage, {
52
+ memory: ctx.bindings.memoryBinding,
53
+ ...(ctx.bindings.embeddingRegistry !== undefined && {
54
+ embeddingRegistry: ctx.bindings.embeddingRegistry,
55
+ }),
56
+ ...(ctx.bindings.embeddingModel !== undefined && {
57
+ embeddingModel: ctx.bindings.embeddingModel,
58
+ }),
59
+ });
60
+ if (retrieved.kind === 'err')
61
+ throwAgentTurnFailure(retrieved.error);
62
+ return retrieved.value;
63
+ }
64
64
  //# sourceMappingURL=run-retrievals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-retrievals.js","sourceRoot":"","sources":["../../src/handlers/run-retrievals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-retrievals.js","sourceRoot":"","sources":["../../src/handlers/run-retrievals.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-snapshot.d.ts","sourceRoot":"","sources":["../../src/handlers/run-snapshot.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBzF"}
1
+ {"version":3,"file":"run-snapshot.d.ts","sourceRoot":"","sources":["../../src/handlers/run-snapshot.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBzF"}
@@ -21,6 +21,7 @@ export async function writeRunSnapshot(ctx, kctx) {
21
21
  ...(ctx.input.dryRun === true && { dryRun: true }),
22
22
  ...(ctx.input.principal !== undefined && { principal: ctx.input.principal }),
23
23
  ...(ctx.input.authz !== undefined && { authz: ctx.input.authz }),
24
+ ...(ctx.input.replay !== undefined && { replay: ctx.input.replay }),
24
25
  });
25
26
  }
26
27
  //# sourceMappingURL=run-snapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-snapshot.js","sourceRoot":"","sources":["../../src/handlers/run-snapshot.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAoBjC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAgB,EAAE,IAAiB;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,oEAAoE;IACpE,kEAAkE;IAClE,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;QAC5B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;QAC9B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC3B,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;QACrC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc;QACxC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW;QAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACxF,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5E,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;KACjE,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"run-snapshot.js","sourceRoot":"","sources":["../../src/handlers/run-snapshot.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAoBjC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAgB,EAAE,IAAiB;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,oEAAoE;IACpE,kEAAkE;IAClE,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;QAC5B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;QAC9B,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC3B,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;QACrC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc;QACxC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW;QAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACxF,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5E,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;KACpE,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type { NodeHandler } from '@kindgi/handler';
2
2
  import type { TurnContext } from './context.js';
3
+ /** The `record` key of the session gate's decision. */
4
+ export declare const SESSION_GATE_RECORD = "session-hitl-gate";
3
5
  /**
4
6
  * The first node in the flow. Runs every precondition check in one
5
7
  * gate so the run either commits to a full turn or fails fast before
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/handlers/setup.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAoDhD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAqN/D"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/handlers/setup.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA4BhD,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAgBvD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAoO/D"}
@@ -5,8 +5,11 @@ import { WaitpointCancelledError } from '@kindgi/handler';
5
5
  import { evaluateSessionGate } from '../guardrails-gate.js';
6
6
  import { emitTurnEvent } from '../streaming.js';
7
7
  import { throwAgentTurnFailure } from './errors.js';
8
+ import { SESSION_GATE_SUBJECT, readGateDecision } from './gate-decision.js';
9
+ import { followReplaySessionGate } from './replay.js';
8
10
  import { writeRunSnapshot } from './run-snapshot.js';
9
11
  import { loadTurnConversation, resolveTurnEnvironment, resolveTurnHitlPolicy, } from './turn-environment.js';
12
+ import { decisionOf } from './turn-provenance.js';
10
13
  /**
11
14
  * Deterministic waitpoint token — must produce the same value on every
12
15
  * flow replay so the kernel's `waitForToken(tokenId)` resolves against
@@ -20,7 +23,7 @@ function computeSessionGateWaitToken(input) {
20
23
  .slice(0, 40);
21
24
  }
22
25
  /** The `record` key of the session gate's decision. */
23
- const SESSION_GATE_RECORD = 'session-hitl-gate';
26
+ export const SESSION_GATE_RECORD = 'session-hitl-gate';
24
27
  /**
25
28
  * The first node in the flow. Runs every precondition check in one
26
29
  * gate so the run either commits to a full turn or fails fast before
@@ -103,14 +106,20 @@ export function buildSetupHandler(ctx) {
103
106
  timeoutMs: effectiveHitl.timeoutMs,
104
107
  };
105
108
  });
106
- if (gate !== undefined) {
109
+ if (gate !== undefined && ctx.input.replay !== undefined) {
110
+ // A replay follows the past run's decision at this gate, or skips it
111
+ // when none was recorded; it never waits for a reviewer.
112
+ await followReplaySessionGate(ctx, kctx);
113
+ }
114
+ else if (gate !== undefined) {
107
115
  const { waitTokenId, timeoutMs } = gate;
108
116
  const expiresAt = new Date(Date.now() + timeoutMs).toISOString();
109
117
  if (ctx.bindings.hitl?.enqueue !== undefined) {
110
118
  try {
111
119
  await ctx.bindings.hitl.enqueue({
112
120
  tenantId: ctx.input.tenantId,
113
- subjectKind: 'agent-turn:session-hitl-gate',
121
+ projectId: ctx.input.projectId,
122
+ subjectKind: SESSION_GATE_SUBJECT,
114
123
  subjectRef: {
115
124
  conversationId: ctx.input.conversationId,
116
125
  agentId: ctx.input.agent.id,
@@ -153,9 +162,9 @@ export function buildSetupHandler(ctx) {
153
162
  });
154
163
  }
155
164
  try {
156
- const decision = await kctx.waitForToken(waitTokenId, {
157
- timeoutMs,
158
- });
165
+ // Fails closed: only an explicit approve lets the turn go on
166
+ // (`readGateDecision`).
167
+ const decision = readGateDecision(await kctx.waitForToken(waitTokenId, { timeoutMs }));
159
168
  // Post-resume: emit the resume node + resumed-from edge. Only
160
169
  // runs on the REPLAY path — the first execution throws
161
170
  // SuspensionSignal inside waitForToken and never gets here.
@@ -164,11 +173,14 @@ export function buildSetupHandler(ctx) {
164
173
  id: resumeNodeId,
165
174
  kind: 'resume',
166
175
  timestamp: new Date().toISOString(),
167
- actor: `agent:${ctx.input.agent.id}`,
176
+ // Whoever decided; a decision recorded before it named them, the agent.
177
+ actor: decision.decidedBy ?? `agent:${ctx.input.agent.id}`,
168
178
  attributes: {
169
179
  gate: 'session-hitl',
170
- decision: decision.decided,
171
- ...(decision.rationale !== undefined && { rationale: decision.rationale }),
180
+ decision: decisionOf(decision),
181
+ ...(!decision.approved &&
182
+ decision.rationale !== undefined && { rationale: decision.rationale }),
183
+ ...(decision.approvalId !== undefined && { approvalId: decision.approvalId }),
172
184
  },
173
185
  });
174
186
  ctx.provenance.addEdge({
@@ -177,15 +189,14 @@ export function buildSetupHandler(ctx) {
177
189
  kind: 'resumed-from',
178
190
  });
179
191
  }
180
- if (decision.decided === 'reject') {
192
+ if (!decision.approved) {
181
193
  throwAgentTurnFailure({
182
194
  code: 'hitl-rejected',
183
195
  message: `Reviewer rejected the session-HITL gate${decision.rationale !== undefined ? `: ${decision.rationale}` : ''}`,
184
196
  ...(decision.rationale !== undefined && { rationale: decision.rationale }),
185
197
  });
186
198
  }
187
- // decision.decided === 'approve' → fall through, turn proceeds
188
- // normally through the rest of setup.
199
+ // Approved: the turn proceeds through the rest of setup.
189
200
  }
190
201
  catch (cause) {
191
202
  if (cause instanceof WaitpointCancelledError) {
@@ -240,6 +251,12 @@ export function buildSetupHandler(ctx) {
240
251
  providerId: environment.providerId,
241
252
  providerModel: environment.model,
242
253
  toolCount: environment.toolCount,
254
+ // The version each tool resolved to: a resumed turn runs these.
255
+ toolVersions: environment.toolVersions,
256
+ // And each data block's.
257
+ ...(environment.blockVersions !== undefined && {
258
+ blockVersions: environment.blockVersions,
259
+ }),
243
260
  };
244
261
  };
245
262
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/handlers/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/handlers/setup.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,KAGpC;IACC,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,gCAAgC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;SACxE,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAgBvD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAgB;IAChD,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC5B,mDAAmD;QACnD,iEAAiE;QACjE,gEAAgE;QAChE,oEAAoE;QACpE,oEAAoE;QACpE,gCAAgC;QAChC,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAElC,wDAAwD;QACxD,kEAAkE;QAClE,gEAAgE;QAChE,4DAA4D;QAC5D,oEAAoE;QACpE,2DAA2D;QAC3D,6CAA6C;QAC7C,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;YACtD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;gBAClD,KAAK,EAAE,IAAI,CAAC,KAA0B;gBACtC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;aAC7B,CAAC,CAAC;YACH,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnD,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAErD,kEAAkE;QAClE,sDAAsD;QACtD,EAAE;QACF,oDAAoD;QACpD,uEAAuE;QACvE,8DAA8D;QAC9D,qEAAqE;QACrE,iEAAiE;QACjE,uEAAuE;QACvE,EAAE;QACF,oEAAoE;QACpE,2DAA2D;QAC3D,EAAE;QACF,8CAA8C;QAC9C,+DAA+D;QAC/D,gEAAgE;QAChE,yDAAyD;QACzD,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACvD,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC;QAC/B,sEAAsE;QACtE,wEAAwE;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAkC,EAAE;YACtF,MAAM,SAAS,GAAG,mBAAmB,CACnC,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAC1F,YAAY,CAAC,SAAS,CACvB,CAAC;YACF,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe;gBAAE,OAAO,SAAS,CAAC;YACzD,OAAO;gBACL,WAAW,EAAE,2BAA2B,CAAC;oBACvC,KAAK,EAAE,IAAI,CAAC,KAA0B;oBACtC,SAAS,EAAE,YAAY,CAAC,SAAS;iBAClC,CAAC;gBACF,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,YAAY,EAAE,aAAa,CAAC,mBAAmB;gBAC/C,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzD,qEAAqE;YACrE,yDAAyD;YACzD,MAAM,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEjE,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;wBAC9B,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;wBAC5B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;wBAC9B,WAAW,EAAE,oBAAoB;wBACjC,UAAU,EAAE;4BACV,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc;4BACxC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;4BAC3B,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;4BACrC,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC1B;wBACD,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,KAAK,EAAE,4BAA4B,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;wBACzD,WAAW,EAAE,IAAI,CAAC,MAAM;wBACxB,WAAW;wBACX,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;wBACpC,SAAS,EAAE,SAAkB;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,2DAA2D;oBAC3D,8DAA8D;oBAC9D,gEAAgE;gBAClE,CAAC;YACH,CAAC;YAED,+DAA+D;YAC/D,kEAAkE;YAClE,kEAAkE;YAClE,2DAA2D;YAC3D,MAAM,UAAU,GAAG,0BAA0B,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9D,MAAM,YAAY,GAAG,4BAA4B,IAAI,CAAC,SAAS,EAAE,CAAC;YAClE,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACjC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;oBACrB,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAW;oBAC5C,KAAK,EAAE,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAuB,EAAE;oBACzD,UAAU,EAAE;wBACV,IAAI,EAAE,cAAc;wBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,WAAW;qBACZ;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC;gBACH,6DAA6D;gBAC7D,wBAAwB;gBACxB,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,MAAM,IAAI,CAAC,YAAY,CAAU,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAC7D,CAAC;gBACF,8DAA8D;gBAC9D,uDAAuD;gBACvD,4DAA4D;gBAC5D,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACjC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;wBACrB,EAAE,EAAE,YAAY;wBAChB,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAW;wBAC5C,wEAAwE;wBACxE,KAAK,EAAE,QAAQ,CAAC,SAAS,IAAI,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAuB,EAAE;wBAC/E,UAAU,EAAE;4BACV,IAAI,EAAE,cAAc;4BACpB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;4BAC9B,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ;gCACpB,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;4BACxE,GAAG,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;yBAC9E;qBACF,CAAC,CAAC;oBACH,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;wBACrB,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,YAAY;wBAChB,IAAI,EAAE,cAAc;qBACrB,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACvB,qBAAqB,CAAC;wBACpB,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,0CACP,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EACjE,EAAE;wBACF,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;qBAClE,CAAC,CAAC;gBACd,CAAC;gBACD,yDAAyD;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;oBAC7C,6DAA6D;oBAC7D,6DAA6D;oBAC7D,uDAAuD;oBACvD,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;wBACjC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;4BACrB,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAW;4BAC5C,KAAK,EAAE,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAuB,EAAE;4BACzD,UAAU,EAAE;gCACV,IAAI,EAAE,cAAc;gCACpB,QAAQ,EAAE,WAAW;gCACrB,MAAM,EAAE,KAAK,CAAC,MAAM;6BACrB;yBACF,CAAC,CAAC;wBACH,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;4BACrB,IAAI,EAAE,UAAU;4BAChB,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,cAAc;yBACrB,CAAC,CAAC;oBACL,CAAC;oBACD,qBAAqB,CAAC;wBACpB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,gCAAgC,KAAK,CAAC,MAAM,EAAE;wBACvD,MAAM,EAAE,KAAK,CAAC,MAAM;qBACZ,CAAC,CAAC;gBACd,CAAC;gBACD,4DAA4D;gBAC5D,+DAA+D;gBAC/D,uDAAuD;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAEtD,kEAAkE;QAClE,mEAAmE;QACnE,0EAA0E;QAE1E,MAAM,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YACxC,IAAI,EAAE,cAAc;YACpB,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc;YACxC,UAAU,EAAE,YAAY,CAAC,SAAS,GAAG,CAAC;YACtC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC3B,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;YACrC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW;SACnC,CAAC,CAAC;QAEH,qEAAqE;QACrE,OAAO;YACL,UAAU,EAAE,YAAY,CAAC,SAAS,GAAG,CAAC;YACtC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,aAAa,EAAE,WAAW,CAAC,KAAK;YAChC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,gEAAgE;YAChE,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,yBAAyB;YACzB,GAAG,CAAC,WAAW,CAAC,aAAa,KAAK,SAAS,IAAI;gBAC7C,aAAa,EAAE,WAAW,CAAC,aAAa;aACzC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}