agentfootprint 9.0.0 → 9.2.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 (107) hide show
  1. package/README.md +15 -0
  2. package/dist/core/Agent.js +344 -18
  3. package/dist/core/Agent.js.map +1 -1
  4. package/dist/core/LLMCall.js +17 -0
  5. package/dist/core/LLMCall.js.map +1 -1
  6. package/dist/core/RunnerBase.js +22 -6
  7. package/dist/core/RunnerBase.js.map +1 -1
  8. package/dist/core/agent/AgentBuilder.js +20 -0
  9. package/dist/core/agent/AgentBuilder.js.map +1 -1
  10. package/dist/core/conversation.js +139 -0
  11. package/dist/core/conversation.js.map +1 -0
  12. package/dist/core/runCheckpoint.js +60 -2
  13. package/dist/core/runCheckpoint.js.map +1 -1
  14. package/dist/embedders/index.js +112 -0
  15. package/dist/embedders/index.js.map +1 -1
  16. package/dist/esm/core/Agent.d.ts +218 -3
  17. package/dist/esm/core/Agent.js +345 -19
  18. package/dist/esm/core/Agent.js.map +1 -1
  19. package/dist/esm/core/LLMCall.d.ts +9 -0
  20. package/dist/esm/core/LLMCall.js +17 -0
  21. package/dist/esm/core/LLMCall.js.map +1 -1
  22. package/dist/esm/core/RunnerBase.d.ts +22 -6
  23. package/dist/esm/core/RunnerBase.js +22 -6
  24. package/dist/esm/core/RunnerBase.js.map +1 -1
  25. package/dist/esm/core/agent/AgentBuilder.d.ts +5 -0
  26. package/dist/esm/core/agent/AgentBuilder.js +20 -0
  27. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  28. package/dist/esm/core/agent/types.d.ts +45 -3
  29. package/dist/esm/core/conversation.d.ts +96 -0
  30. package/dist/esm/core/conversation.js +133 -0
  31. package/dist/esm/core/conversation.js.map +1 -0
  32. package/dist/esm/core/runCheckpoint.d.ts +85 -1
  33. package/dist/esm/core/runCheckpoint.js +57 -1
  34. package/dist/esm/core/runCheckpoint.js.map +1 -1
  35. package/dist/esm/embedders/index.d.ts +31 -0
  36. package/dist/esm/embedders/index.js +112 -0
  37. package/dist/esm/embedders/index.js.map +1 -1
  38. package/dist/esm/hosting/standingAgent.d.ts +6 -2
  39. package/dist/esm/hosting/standingAgent.js +36 -27
  40. package/dist/esm/hosting/standingAgent.js.map +1 -1
  41. package/dist/esm/index.d.ts +2 -1
  42. package/dist/esm/index.js +5 -1
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/esm/lib/rag/indexDocuments.d.ts +18 -0
  45. package/dist/esm/lib/rag/indexDocuments.js +29 -0
  46. package/dist/esm/lib/rag/indexDocuments.js.map +1 -1
  47. package/dist/esm/memory/embedding/inputCeiling.d.ts +98 -0
  48. package/dist/esm/memory/embedding/inputCeiling.js +53 -0
  49. package/dist/esm/memory/embedding/inputCeiling.js.map +1 -0
  50. package/dist/esm/memory/embedding/mockEmbedder.js +13 -0
  51. package/dist/esm/memory/embedding/mockEmbedder.js.map +1 -1
  52. package/dist/esm/memory/embedding/types.d.ts +32 -0
  53. package/dist/esm/rag/indexCorpus.d.ts +16 -2
  54. package/dist/esm/rag/indexCorpus.js +27 -3
  55. package/dist/esm/rag/indexCorpus.js.map +1 -1
  56. package/dist/esm/rag/splitters/index.d.ts +22 -0
  57. package/dist/esm/rag/splitters/index.js +22 -0
  58. package/dist/esm/rag/splitters/index.js.map +1 -1
  59. package/dist/esm/rag/types.d.ts +9 -0
  60. package/dist/hosting/standingAgent.js +36 -27
  61. package/dist/hosting/standingAgent.js.map +1 -1
  62. package/dist/index.js +9 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/rag/indexDocuments.js +29 -0
  65. package/dist/lib/rag/indexDocuments.js.map +1 -1
  66. package/dist/memory/embedding/inputCeiling.js +58 -0
  67. package/dist/memory/embedding/inputCeiling.js.map +1 -0
  68. package/dist/memory/embedding/mockEmbedder.js +13 -0
  69. package/dist/memory/embedding/mockEmbedder.js.map +1 -1
  70. package/dist/rag/indexCorpus.js +27 -3
  71. package/dist/rag/indexCorpus.js.map +1 -1
  72. package/dist/rag/splitters/index.js +22 -0
  73. package/dist/rag/splitters/index.js.map +1 -1
  74. package/dist/types/core/Agent.d.ts +218 -3
  75. package/dist/types/core/Agent.d.ts.map +1 -1
  76. package/dist/types/core/LLMCall.d.ts +9 -0
  77. package/dist/types/core/LLMCall.d.ts.map +1 -1
  78. package/dist/types/core/RunnerBase.d.ts +22 -6
  79. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  80. package/dist/types/core/agent/AgentBuilder.d.ts +5 -0
  81. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  82. package/dist/types/core/agent/types.d.ts +45 -3
  83. package/dist/types/core/agent/types.d.ts.map +1 -1
  84. package/dist/types/core/conversation.d.ts +97 -0
  85. package/dist/types/core/conversation.d.ts.map +1 -0
  86. package/dist/types/core/runCheckpoint.d.ts +85 -1
  87. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  88. package/dist/types/embedders/index.d.ts +31 -0
  89. package/dist/types/embedders/index.d.ts.map +1 -1
  90. package/dist/types/hosting/standingAgent.d.ts +6 -2
  91. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  92. package/dist/types/index.d.ts +2 -1
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/dist/types/lib/rag/indexDocuments.d.ts +18 -0
  95. package/dist/types/lib/rag/indexDocuments.d.ts.map +1 -1
  96. package/dist/types/memory/embedding/inputCeiling.d.ts +99 -0
  97. package/dist/types/memory/embedding/inputCeiling.d.ts.map +1 -0
  98. package/dist/types/memory/embedding/mockEmbedder.d.ts.map +1 -1
  99. package/dist/types/memory/embedding/types.d.ts +32 -0
  100. package/dist/types/memory/embedding/types.d.ts.map +1 -1
  101. package/dist/types/rag/indexCorpus.d.ts +16 -2
  102. package/dist/types/rag/indexCorpus.d.ts.map +1 -1
  103. package/dist/types/rag/splitters/index.d.ts +22 -0
  104. package/dist/types/rag/splitters/index.d.ts.map +1 -1
  105. package/dist/types/rag/types.d.ts +9 -0
  106. package/dist/types/rag/types.d.ts.map +1 -1
  107. package/package.json +1 -1
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ /**
3
+ * conversation — the refusals that guard a runner's per-instance state.
4
+ *
5
+ * Pattern: teaching refusal at a boundary (the shape `runInput` uses for a
6
+ * caller's message, applied to a caller's TIMING).
7
+ * Role: core/ layer. An `Agent` keeps the last run's executor, run context,
8
+ * answer and pause on ITSELF — that is what makes `checkpoint()`,
9
+ * `getLastSnapshot()` and `followUp()` possible at all. Those fields
10
+ * have exactly one owner at a time, and until 9.2.0 nothing said so.
11
+ * Emits: N/A — these fire before a run starts.
12
+ *
13
+ * ## Why these are refusals and not warnings
14
+ *
15
+ * Both shapes below used to SUCCEED, which is the entire problem. Two `run()`
16
+ * calls overlapping on one Agent both resolved with plausible answers, and the
17
+ * per-instance state afterwards belonged to whichever finished last: the
18
+ * conversation `checkpoint()` handed back was the other run's, the snapshot
19
+ * `getLastSnapshot()` served was the other run's, and every event carried the
20
+ * other run's meta. That is not concurrency, it is corruption — and nothing in
21
+ * the recording said so, because each run's own trace looked perfect.
22
+ *
23
+ * A message sent while a person still owes the agent an answer used to start a
24
+ * fresh run and silently abandon the pending question. A consent gate that can
25
+ * be walked around by sending another message is not a consent gate.
26
+ *
27
+ * Neither refusal is new policy. `standingAgent` has refused both since it
28
+ * existed (it serializes runs globally and calls that "a correctness
29
+ * requirement rather than a tuning choice", and answers a message that arrives
30
+ * mid-question with `AwaitingDecisionError`), and `recordedChat.send` refuses
31
+ * an overlapping turn in the same words. 9.2.0 moves the guarantee from the
32
+ * compositions down to the primitive, so it holds however you drive it.
33
+ *
34
+ * The names are deliberately NOT the hosting ones. `hosting/errors.ts` already
35
+ * owns `ConcurrentRunError` and `AwaitingDecisionError`, both of which carry a
36
+ * `sessionId` and speak about a session; core has no sessions, and two classes
37
+ * sharing one name across two doors is the duplicate-type hazard this codebase
38
+ * has fixed before.
39
+ */
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.NoConversationError = exports.PendingQuestionError = exports.RunInFlightError = void 0;
42
+ /**
43
+ * Thrown when `run()` / `resume()` is called on a runner that is already
44
+ * running.
45
+ *
46
+ * One instance answers one turn at a time. To run two turns at once, build two
47
+ * agents — a chart is built once per instance and instances are cheap — or put
48
+ * the turns behind `standingAgent({ onConcurrentInvoke: 'enqueue' })`, which
49
+ * queues them.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * // Refused: both would write the same instance's last-run state.
54
+ * await Promise.all([agent.run({ message: 'a' }), agent.run({ message: 'b' })]);
55
+ *
56
+ * // Fine: two instances, two sets of state.
57
+ * await Promise.all([agentA.run({ message: 'a' }), agentB.run({ message: 'b' })]);
58
+ * ```
59
+ */
60
+ class RunInFlightError extends Error {
61
+ code = 'ERR_RUN_IN_FLIGHT';
62
+ /** The runner that is busy, by its configured id. */
63
+ agentId;
64
+ /** The run already in flight, so a log line can be joined to its trace. */
65
+ activeRunId;
66
+ constructor(door, agentId, activeRunId) {
67
+ super(`${door}: this agent is already running (run '${activeRunId}'). One instance answers one ` +
68
+ `turn at a time — its last executor, run context, answer and pause all live on the ` +
69
+ `instance, so two overlapping runs would each finish having overwritten the other's. ` +
70
+ `Both would return a plausible answer and checkpoint() would then hand back whichever ` +
71
+ `finished last, which is why this is refused rather than left to look like it worked. ` +
72
+ `Await the run in flight, build a second Agent for the second turn (charts are ` +
73
+ `built per instance and instances are cheap), or serve the agent through ` +
74
+ `standingAgent({ onConcurrentInvoke: 'enqueue' }) to queue turns behind each other.`);
75
+ this.name = 'RunInFlightError';
76
+ this.agentId = agentId;
77
+ this.activeRunId = activeRunId;
78
+ }
79
+ }
80
+ exports.RunInFlightError = RunInFlightError;
81
+ /**
82
+ * Thrown when a new message is sent to an agent whose last run PAUSED to ask a
83
+ * person something, and that question has not been answered.
84
+ *
85
+ * The pause is not a failure and not a stale flag — it is unfinished work with
86
+ * a person on the other end. Answer it with `resume(checkpoint, decision)`, or
87
+ * say plainly that it is being dropped with `abandonPause()`; both are visible
88
+ * in the record, and silently starting a fresh run was not.
89
+ */
90
+ class PendingQuestionError extends Error {
91
+ code = 'ERR_PENDING_QUESTION';
92
+ /** The tool that asked, when the pause named one. */
93
+ toolName;
94
+ /** The id of the tool call that asked, for joining back to the trace. */
95
+ toolCallId;
96
+ constructor(door, pending) {
97
+ const asked = pending.toolName !== undefined
98
+ ? `'${pending.toolName}'${pending.toolCallId ? ` (call ${pending.toolCallId})` : ''}`
99
+ : 'a tool';
100
+ const quoted = pending.question !== undefined ? ` It asked: "${pending.question}"` : '';
101
+ super(`${door}: this agent's last run paused to ask a person something and is still waiting. ` +
102
+ `${asked} raised the question and nothing has answered it.${quoted} Answer it with ` +
103
+ `agent.resume(outcome.checkpoint, decision) — that continues the paused run from where ` +
104
+ `it stopped, with no earlier tool re-executed. If the question really is being dropped, ` +
105
+ `call agent.abandonPause() first and then run() again: a pending question that a later ` +
106
+ `message silently discards is a consent gate anyone can walk around.`);
107
+ this.name = 'PendingQuestionError';
108
+ if (pending.toolName !== undefined)
109
+ this.toolName = pending.toolName;
110
+ if (pending.toolCallId !== undefined)
111
+ this.toolCallId = pending.toolCallId;
112
+ }
113
+ }
114
+ exports.PendingQuestionError = PendingQuestionError;
115
+ /**
116
+ * Thrown by `followUp()` when there is no conversation to follow up on.
117
+ *
118
+ * `followUp()` continues THIS agent's own last completed run. Before the first
119
+ * one there is nothing to continue, and a "follow-up" that quietly became a
120
+ * first turn would be the very confusion the door exists to remove.
121
+ */
122
+ class NoConversationError extends Error {
123
+ code = 'ERR_NO_CONVERSATION';
124
+ constructor(door, reason) {
125
+ super(reason === 'never-run'
126
+ ? `${door}: this agent has not completed a run, so there is no conversation to ` +
127
+ `continue. Start it with agent.run({ message }) — the first turn is a run; every ` +
128
+ `turn after it is a followUp(). To continue a conversation this PROCESS did not ` +
129
+ `have (a stored one, or one from another instance), pass it explicitly: ` +
130
+ `agent.run({ message, continueFrom: storedConversation }).`
131
+ : `${door}: this agent's last run did not finish with an answer, so there is no ` +
132
+ `conversation to continue yet. A failed run's conversation is carried by ` +
133
+ `RunCheckpointError.checkpoint — catch it and pass that to ` +
134
+ `run({ message, continueFrom }) or resumeOnError(checkpoint).`);
135
+ this.name = 'NoConversationError';
136
+ }
137
+ }
138
+ exports.NoConversationError = NoConversationError;
139
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/core/conversation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;;;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,GAAG,mBAA4B,CAAC;IAC7C,qDAAqD;IAC5C,OAAO,CAAS;IACzB,2EAA2E;IAClE,WAAW,CAAS;IAE7B,YAAY,IAAY,EAAE,OAAe,EAAE,WAAmB;QAC5D,KAAK,CACH,GAAG,IAAI,yCAAyC,WAAW,+BAA+B;YACxF,oFAAoF;YACpF,sFAAsF;YACtF,uFAAuF;YACvF,uFAAuF;YACvF,gFAAgF;YAChF,0EAA0E;YAC1E,oFAAoF,CACvF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAtBD,4CAsBC;AAED;;;;;;;;GAQG;AACH,MAAa,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,sBAA+B,CAAC;IAChD,qDAAqD;IAC5C,QAAQ,CAAU;IAC3B,yEAAyE;IAChE,UAAU,CAAU;IAE7B,YACE,IAAY,EACZ,OAAsE;QAEtE,MAAM,KAAK,GACT,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC5B,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrF,CAAC,CAAC,QAAQ,CAAC;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,KAAK,CACH,GAAG,IAAI,iFAAiF;YACtF,GAAG,KAAK,oDAAoD,MAAM,kBAAkB;YACpF,wFAAwF;YACxF,yFAAyF;YACzF,wFAAwF;YACxF,qEAAqE,CACxE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC7E,CAAC;CACF;AA5BD,oDA4BC;AAED;;;;;;GAMG;AACH,MAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,qBAA8B,CAAC;IAE/C,YAAY,IAAY,EAAE,MAA2C;QACnE,KAAK,CACH,MAAM,KAAK,WAAW;YACpB,CAAC,CAAC,GAAG,IAAI,uEAAuE;gBAC5E,kFAAkF;gBAClF,iFAAiF;gBACjF,yEAAyE;gBACzE,2DAA2D;YAC/D,CAAC,CAAC,GAAG,IAAI,wEAAwE;gBAC7E,0EAA0E;gBAC1E,4DAA4D;gBAC5D,8DAA8D,CACrE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAlBD,kDAkBC"}
@@ -55,7 +55,7 @@
55
55
  * DFS stage).
56
56
  */
57
57
  Object.defineProperty(exports, "__esModule", { value: true });
58
- exports.classifyFailurePhase = exports.validateCheckpoint = exports.buildCheckpoint = exports.RunCheckpointError = void 0;
58
+ exports.classifyFailurePhase = exports.validateCheckpoint = exports.buildCheckpoint = exports.assertContinuable = exports.ConversationMismatchError = exports.RunCheckpointError = void 0;
59
59
  /**
60
60
  * Thrown by `agent.run()` when a fault occurs mid-run. Carries the
61
61
  * underlying error AND the last-known-good checkpoint. Catch this
@@ -101,6 +101,55 @@ class RunCheckpointError extends Error {
101
101
  }
102
102
  }
103
103
  exports.RunCheckpointError = RunCheckpointError;
104
+ /**
105
+ * Thrown when a stored conversation is handed to an agent that is provably
106
+ * not the one that recorded it (9.2.0).
107
+ *
108
+ * Raised only when BOTH sides named themselves with an explicit
109
+ * `Agent.create({ id })` and the two names differ — see
110
+ * {@link AgentRunCheckpoint.agent} for why that is the whole of the rule.
111
+ * An agent that gained a tool, changed its prompt or moved to a new model
112
+ * since the conversation was stored is NOT this error; continuing across a
113
+ * deploy is the ordinary case and must keep working.
114
+ */
115
+ class ConversationMismatchError extends Error {
116
+ code = 'ERR_CONVERSATION_MISMATCH';
117
+ /** The id stamped on the stored conversation. */
118
+ storedAgentId;
119
+ /** The id of the agent it was handed to. */
120
+ agentId;
121
+ constructor(door, storedAgentId, agentId) {
122
+ super(`${door}: this conversation was recorded by agent '${storedAgentId}' and was handed to ` +
123
+ `agent '${agentId}'. Both agents named themselves with Agent.create({ id }), and the ` +
124
+ `names differ — so this is one agent answering another one's conversation, not a ` +
125
+ `deploy that changed. Continue it on the agent whose id is '${storedAgentId}', or, if ` +
126
+ `handing conversations between these two really is intended, give them the same id. ` +
127
+ `(An agent that merely gained a tool, changed its prompt or moved model since the ` +
128
+ `conversation was stored keeps the same id and is never refused here.)`);
129
+ this.name = 'ConversationMismatchError';
130
+ this.storedAgentId = storedAgentId;
131
+ this.agentId = agentId;
132
+ }
133
+ }
134
+ exports.ConversationMismatchError = ConversationMismatchError;
135
+ /**
136
+ * Refuse a stored conversation that provably belongs to a different agent.
137
+ *
138
+ * Both-sides-named-themselves, or nothing happens. `storedId` is absent on
139
+ * every conversation written before 9.2.0 and on every agent that never chose
140
+ * an id; `agentId` is undefined for the same reason on the reading side.
141
+ *
142
+ * @internal
143
+ */
144
+ function assertContinuable(checkpoint, agentId, door) {
145
+ const storedId = checkpoint.agent?.id;
146
+ if (storedId === undefined || agentId === undefined)
147
+ return;
148
+ if (storedId === agentId)
149
+ return;
150
+ throw new ConversationMismatchError(door, storedId, agentId);
151
+ }
152
+ exports.assertContinuable = assertContinuable;
104
153
  /**
105
154
  * The human half of `failurePoint`, as one clause.
106
155
  *
@@ -135,7 +184,14 @@ function buildCheckpoint(tracker, failurePoint,
135
184
  * and a fold's span is committed state — and because the same reader then
136
185
  * serves both checkpoint carriers, so neither can lose what the other keeps.
137
186
  */
138
- folded) {
187
+ folded,
188
+ /**
189
+ * Who the run was for and which agent ran it — the two fields that make a
190
+ * stored conversation continuable rather than merely readable (9.2.0).
191
+ * Both are absent unless the caller chose them explicitly; see
192
+ * {@link AgentRunCheckpoint.identity} and {@link AgentRunCheckpoint.agent}.
193
+ */
194
+ owner) {
139
195
  return {
140
196
  version: 1,
141
197
  runId: tracker.runId,
@@ -145,6 +201,8 @@ folded) {
145
201
  checkpointedAt: Date.now(),
146
202
  ...(failurePoint && { failurePoint }),
147
203
  ...(folded !== undefined && folded.length > 0 && { folded }),
204
+ ...(owner?.identity !== undefined && { identity: owner.identity }),
205
+ ...(owner?.agentId !== undefined && { agent: { id: owner.agentId } }),
148
206
  };
149
207
  }
150
208
  exports.buildCheckpoint = buildCheckpoint;
@@ -1 +1 @@
1
- {"version":3,"file":"runCheckpoint.js","sourceRoot":"","sources":["../../src/core/runCheckpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runCheckpoint.js","sourceRoot":"","sources":["../../src/core/runCheckpoint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;;;AA6HH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAG,oBAA6B,CAAC;IAC9C;;6BAEyB;IACP,KAAK,CAAQ;IAC/B;mEAC+D;IACtD,UAAU,CAAqB;IAExC,YAAY,KAAY,EAAE,UAA8B;QACtD,KAAK,CACH,mCAAmC,UAAU,CAAC,YAAY,EAAE,SAAS,IAAI,GAAG,GAAG;YAC7E,GAAG,oBAAoB,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI;YACpD,8CAA8C,UAAU,CAAC,sBAAsB,IAAI;YACnF,uDAAuD;YACvD,qBAAqB,KAAK,CAAC,OAAO,EAAE,CACvC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAtBD,gDAsBC;AAED;;;;;;;;;;GAUG;AACH,MAAa,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,2BAAoC,CAAC;IACrD,iDAAiD;IACxC,aAAa,CAAS;IAC/B,4CAA4C;IACnC,OAAO,CAAS;IAEzB,YAAY,IAAY,EAAE,aAAqB,EAAE,OAAe;QAC9D,KAAK,CACH,GAAG,IAAI,8CAA8C,aAAa,sBAAsB;YACtF,UAAU,OAAO,qEAAqE;YACtF,kFAAkF;YAClF,8DAA8D,aAAa,YAAY;YACvF,qFAAqF;YACrF,mFAAmF;YACnF,uEAAuE,CAC1E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AArBD,8DAqBC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC/B,UAA8B,EAC9B,OAA2B,EAC3B,IAAY;IAEZ,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAC5D,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO;IACjC,MAAM,IAAI,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AATD,8CASC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,EAAsC;IAClE,IAAI,CAAC,EAAE;QAAE,OAAO,kDAAkD,CAAC;IACnE,MAAM,KAAK,GACT,EAAE,CAAC,KAAK,KAAK,KAAK;QAChB,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM;YACrB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,WAAW;gBAC1B,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,0BAA0B,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1E,CAAC;AAoCD;;;;;GAKG;AACH,SAAgB,eAAe,CAC7B,OAA6B,EAC7B,YAA8D;AAC9D;;;;;GAKG;AACH,MAA8B;AAC9B;;;;;GAKG;AACH,KAAyE;IAEzE,OAAO;QACL,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;QACtD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;QAC1B,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;QACrC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClE,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AA9BD,0CA8BC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,CAAC,GAAG,KAAoC,CAAC;IAC/C,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CACjB,mDAAmD,CAAC,CAAC,OAAO,IAAI;YAC9D,uEAAuE;YACvE,2DAA2D,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,sBAAsB,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,SAAS,CACjB,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpE,MAAM,IAAI,SAAS,CACjB,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,6EAA6E;IAC7E,0EAA0E;IAC1E,2EAA2E;IAC3E,qEAAqE;IACrE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAK,CAAC,CAAC,OAA8B,CAAC,OAAO,EAAE,EAAE,CAAC;QACnE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,SAAS,CACjB,sCAAsC,CAAC,2BACrC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GACjC,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,GAA4C,CAAC;QACvD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CACjB,sCAAsC,CAAC,kCAAkC,OAAO,CAAC,CAAC,IAAI,IAAI;gBACxF,kBACE,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OACjD,uFAAuF;gBACvF,mFAAmF;gBACnF,+DAA+D,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,CAAuB,CAAC;AACjC,CAAC;AArDD,gDAqDC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,oBAAoB,CAAC,GAAU;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,IAAI,EAAE,CAAC;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9B,sDAAsD;IACtD,IACE,IAAI,KAAK,kBAAkB,IAAI,0BAA0B;QACzD,IAAI,KAAK,gBAAgB;QACzB,IAAI,KAAK,aAAa;QACtB,IAAI,KAAK,cAAc;QACvB,8CAA8C,CAAC,IAAI,CAAC,GAAG,CAAC,EACxD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAC/C,OAAO,SAAS,CAAC;AACnB,CAAC;AAnBD,oDAmBC"}
@@ -40,6 +40,45 @@ const NATIVE_DIMENSIONS = {
40
40
  'text-embedding-3-large': 3072,
41
41
  'text-embedding-ada-002': 1536,
42
42
  };
43
+ /**
44
+ * Chars-per-token used to convert a documented TOKEN window into the CHARACTER
45
+ * ceiling {@link Embedder.maxInputChars} states (9.1.0).
46
+ *
47
+ * **4 characters per token**, the standard rule of thumb for English prose, and
48
+ * the number every ceiling below is derived from — 8,191 tokens becomes 32,000
49
+ * characters (floored to a round number a warning can state plainly).
50
+ *
51
+ * It is an ASSUMPTION, not a measurement, and it is stated here so it can be
52
+ * argued with. Code, tables, CJK text and heavy punctuation all tokenise
53
+ * DENSER than prose, so a chunk of exactly 32,000 characters of such material
54
+ * can still exceed 8,191 tokens and be clipped. That is what an explicit
55
+ * `maxChunkChars` is for: it always wins over a declared ceiling, precisely so
56
+ * a caller who knows their corpus is dense can say a smaller number. For the
57
+ * shipped splitter defaults (1,000 characters a chunk) the distinction never
58
+ * arises — the ceiling matters when a consumer RAISES the splitter, which is
59
+ * the case this whole mechanism exists to keep honest.
60
+ */
61
+ const CHARS_PER_TOKEN = 4;
62
+ /**
63
+ * Documented input window per OpenAI embedding model, in TOKENS.
64
+ *
65
+ * All three current models accept 8,191 tokens — OpenAI's embeddings guide and
66
+ * the model pages state the same limit for `text-embedding-3-small`,
67
+ * `text-embedding-3-large` and `text-embedding-ada-002`. A model this library
68
+ * does not know gets NO declared ceiling rather than a guessed one: the same
69
+ * rule `.dimensions` applies, for the same reason — a wrong ceiling clips in
70
+ * silence, and an absent one simply leaves the indexer's conservative default
71
+ * in place.
72
+ */
73
+ const NATIVE_MAX_INPUT_TOKENS = {
74
+ 'text-embedding-3-small': 8191,
75
+ 'text-embedding-3-large': 8191,
76
+ 'text-embedding-ada-002': 8191,
77
+ };
78
+ /** Tokens → characters, floored to a round number a message can state plainly. */
79
+ function charsFor(tokens) {
80
+ return tokens === undefined ? undefined : Math.floor((tokens * CHARS_PER_TOKEN) / 1000) * 1000;
81
+ }
43
82
  /**
44
83
  * OpenAI's hosted embeddings endpoint.
45
84
  *
@@ -51,6 +90,14 @@ const NATIVE_DIMENSIONS = {
51
90
  * know, so it is a construction-time error rather than a guess that a vector
52
91
  * store would silently trust.
53
92
  *
93
+ * `.maxInputChars` (9.1.0) reports **32,000** for the three models above:
94
+ * their documented 8,191-token window at the stated {@link CHARS_PER_TOKEN}
95
+ * assumption. An indexer reads it in preference to its own 2,000-character
96
+ * default, so a corpus split at 2,500 characters is embedded WHOLE here
97
+ * instead of being clipped by a default measured on an on-device model.
98
+ * An unknown model declares no ceiling — the indexer's default stands, which
99
+ * is conservative rather than wrong.
100
+ *
54
101
  * @throws if there is no API key, or if `model` is unknown and `dimensions`
55
102
  * was not supplied.
56
103
  */
@@ -71,6 +118,7 @@ function openaiEmbedder(options = {}) {
71
118
  `library can know, and reporting a wrong .dimensions silently corrupts a vector store. ` +
72
119
  `Pass { dimensions } with the length that model returns.`);
73
120
  }
121
+ const maxInputChars = charsFor(NATIVE_MAX_INPUT_TOKENS[model]);
74
122
  const url = `${options.baseURL ?? 'https://api.openai.com/v1'}/embeddings`;
75
123
  async function call(input, signal) {
76
124
  const res = await fetch(url, {
@@ -92,6 +140,10 @@ function openaiEmbedder(options = {}) {
92
140
  // fingerprint is `'<id>@<dims>'`, so it appends the dimensions itself and
93
141
  // a truncated vector is already a different fingerprint from a native one.
94
142
  id: `openai:${model}`,
143
+ // The documented window, in the unit a splitter cuts in. Spread rather
144
+ // than assigned so an unknown model declares NOTHING instead of
145
+ // `undefined` — the field is optional and its absence is meaningful.
146
+ ...(maxInputChars !== undefined && { maxInputChars }),
95
147
  async embed({ text, signal }) {
96
148
  return (await call([text], signal))[0];
97
149
  },
@@ -117,6 +169,23 @@ const TITAN_DIMENSIONS = {
117
169
  'amazon.titan-embed-text-v2:0': 1024,
118
170
  'amazon.titan-embed-text-v1': 1536,
119
171
  };
172
+ /**
173
+ * Documented input window per Titan text-embedding model, in TOKENS.
174
+ *
175
+ * Both Titan text-embedding models accept **8,192 tokens** — sixteen times the
176
+ * on-device model the shipped default ceiling was measured on. That gap is the
177
+ * whole point of declaring one: without it, a corpus split at 2,500 characters
178
+ * is reported as clipped (and treated as such by the indexer's default) by an
179
+ * embedder that reads every one of those chunks whole.
180
+ *
181
+ * A model outside this table gets NO declared ceiling — the same rule
182
+ * `.dimensions` applies. Another vendor's embedding model on the same runtime
183
+ * may have a far shorter window, and guessing this one's would clip in silence.
184
+ */
185
+ const TITAN_MAX_INPUT_TOKENS = {
186
+ 'amazon.titan-embed-text-v2:0': 8192,
187
+ 'amazon.titan-embed-text-v1': 8192,
188
+ };
120
189
  const TITAN_V2_SUPPORTED = [1024, 512, 256];
121
190
  /**
122
191
  * Amazon Bedrock's hosted embeddings, through `InvokeModel`.
@@ -146,6 +215,16 @@ const TITAN_V2_SUPPORTED = [1024, 512, 256];
146
215
  * q8 and an fp32 build of one model are near-identical spaces, and "near" is
147
216
  * exactly the difference that surfaces as a mysteriously worse ranking.)
148
217
  *
218
+ * ── The input ceiling (9.1.0) ────────────────────────────────────────────
219
+ * `.maxInputChars` reports **32,000** for both Titan text-embedding models:
220
+ * their documented 8,192-token window, converted at the stated
221
+ * {@link CHARS_PER_TOKEN} assumption of 4 characters per token. Sixteen times
222
+ * the indexer's own default, which was measured on an on-device model — so an
223
+ * indexing run against this embedder now embeds a 2,500-character chunk whole
224
+ * instead of clipping it and calling that success. Dense text (code, tables,
225
+ * CJK) tokenises tighter than the assumption; pass an explicit `maxChunkChars`
226
+ * for such a corpus, and it wins over this number.
227
+ *
149
228
  * @throws if `model` is unknown and `dimensions` was not supplied; if
150
229
  * `dimensions` is not one of Titan V2's supported sizes; or if the SDK
151
230
  * is missing and no `client` / `_client` / `_sdk` was passed.
@@ -176,6 +255,7 @@ function bedrockEmbedder(options = {}) {
176
255
  `produce would store vectors of a length that disagrees with the .dimensions this ` +
177
256
  `embedder reports.`);
178
257
  }
258
+ const maxInputChars = charsFor(TITAN_MAX_INPUT_TOKENS[model]);
179
259
  let connection;
180
260
  /**
181
261
  * Resolve the client + command constructor, once, on first embed.
@@ -247,6 +327,9 @@ function bedrockEmbedder(options = {}) {
247
327
  dimensions,
248
328
  // The embedding SPACE, size included — see the note above.
249
329
  id: `bedrock:${model}:${dimensions}`,
330
+ // Spread, so a model this factory does not know declares NO ceiling rather
331
+ // than one it cannot stand behind.
332
+ ...(maxInputChars !== undefined && { maxInputChars }),
250
333
  async embed({ text, signal }) {
251
334
  return invoke(text, signal);
252
335
  },
@@ -324,6 +407,19 @@ function describeShape(value) {
324
407
  }
325
408
  return typeof value;
326
409
  }
410
+ /**
411
+ * The MEASURED cliff of the default model, and the origin of the whole
412
+ * mechanism: `Xenova/all-MiniLM-L6-v2` silently truncates at 512 wordpiece
413
+ * tokens ≈ 1,800–2,000 characters of English. Measured directly — at 508 base
414
+ * tokens an appended tail still moves the vector (cosine 0.9965); at 596 it
415
+ * does not (0.999999). Nothing is thrown and nothing says so.
416
+ *
417
+ * It is the number `indexCorpus` used as its own default for every embedder,
418
+ * which is why a hosted model with an 8k-token window was being cut into
419
+ * pieces a sixteenth of what it could read. Here it is declared by the
420
+ * embedder it was measured on, where it is true.
421
+ */
422
+ const LOCAL_MAX_INPUT_CHARS = 2000;
327
423
  function localEmbedder(options = {}) {
328
424
  const model = options.model ?? 'Xenova/all-MiniLM-L6-v2';
329
425
  const dimensions = options.dimensions ?? 384;
@@ -352,6 +448,7 @@ function localEmbedder(options = {}) {
352
448
  // are close but not identical spaces, and "close" is exactly the kind of
353
449
  // difference that shows up as a mysteriously worse ranking.
354
450
  id: `local:${model}:${dtype}`,
451
+ maxInputChars: options.maxInputChars ?? LOCAL_MAX_INPUT_CHARS,
355
452
  async embed({ text }) {
356
453
  const p = await getPipe();
357
454
  const out = await p(text, { pooling: 'mean', normalize: true });
@@ -365,6 +462,19 @@ function localEmbedder(options = {}) {
365
462
  };
366
463
  }
367
464
  exports.localEmbedder = localEmbedder;
465
+ /**
466
+ * Declared input ceiling for the static path (9.1.0), and the one case where
467
+ * the honest answer is "there isn't a cliff".
468
+ *
469
+ * A Model2Vec model has no transformer and therefore no context window: it
470
+ * looks each token's vector up and pools them, so the ten-thousandth token
471
+ * contributes exactly like the first. Nothing is dropped at any length. The
472
+ * number is a practical bound (a megabyte of text), declared rather than
473
+ * omitted so that an indexer does not fall back to a 2,000-character default
474
+ * measured on a model with a real cliff and warn about clipping that never
475
+ * happened.
476
+ */
477
+ const STATIC_MAX_INPUT_CHARS = 1_000_000;
368
478
  function staticEmbedder(options = {}) {
369
479
  const dimensions = options.dimensions ?? 256;
370
480
  const spec = options.module ?? '@yarflam/potion-base-8m';
@@ -408,6 +518,8 @@ function staticEmbedder(options = {}) {
408
518
  return {
409
519
  dimensions,
410
520
  id: `static:${spec}`,
521
+ // No context window to fall off — see the constant.
522
+ maxInputChars: STATIC_MAX_INPUT_CHARS,
411
523
  async embed({ text }) {
412
524
  const fn = await getEmbed();
413
525
  const rows = toRows(await fn([text]));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedders/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,0DAAoD;AA4BpD;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAqC;IAC1D,wBAAwB,EAAE,IAAI;IAC9B,wBAAwB,EAAE,IAAI;IAC9B,wBAAwB,EAAE,IAAI;CAC/B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,MAAM,GACV,OAAO,CAAC,MAAM;QACd,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,wBAAwB,CAAC;IACxD,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IACrC,MAAM,UAAU,GAAG,SAAS,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,8CAA8C;YACnF,wFAAwF;YACxF,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,2BAA2B,aAAa,CAAC;IAE3E,KAAK,UAAU,IAAI,CAAC,KAAwB,EAAE,MAAoB;QAChE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;YAClF,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CACrF;YACD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwC,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,UAAU;QACV,2EAA2E;QAC3E,yEAAyE;QACzE,sEAAsE;QACtE,0EAA0E;QAC1E,2EAA2E;QAC3E,EAAE,EAAE,UAAU,KAAK,EAAE;QACrB,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;YAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC;AAnDD,wCAmDC;AA0DD;;;;;;;;;;;GAWG;AACH,MAAM,gBAAgB,GAAqC;IACzD,8BAA8B,EAAE,IAAI;IACpC,4BAA4B,EAAE,IAAI;CACnC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,SAAgB,eAAe,CAAC,UAAkC,EAAE;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,8BAA8B,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IACrC,MAAM,UAAU,GAAG,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,mCAAmC,KAAK,8CAA8C;YACpF,wFAAwF;YACxF,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CACb,qDAAqD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACnF,yBAAyB,MAAM,CAAC,SAAS,CAAC,yCAAyC;YACnF,mFAAmF;YACnF,mBAAmB,CACtB,CAAC;IACJ,CAAC;IAMD,IAAI,UAAkC,CAAC;IAEvC;;;;;;;;;;;OAWG;IACH,MAAM,OAAO,GAAG,GAAe,EAAE;QAC/B,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;QAClC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,UAAU,GAAG;gBACX,MAAM,EAAE,OAAO,CAAC,OAAO;gBACvB,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,kBAAkB,IAAI,eAAe;aAC7D,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,sEAAsE;gBACpE,qDAAqD,CACxD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,sEAAsE;gBACpE,uDAAuD,CAC1D,CAAC;QACJ,CAAC;QACD,UAAU,GAAG;YACX,MAAM,EACJ,OAAO,CAAC,MAAM;gBACd,0BAA0B;gBAC1B,oEAAoE;gBACpE,IAAI,GAAG,CAAC,oBAAqB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACtF,OAAO,EAAE,GAAG,CAAC,kBAAkB;SAChC,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF;;;;;OAKG;IACH,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,MAAoB;QACtD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,SAAS,EAAE,IAAI;YACf,yEAAyE;YACzE,qEAAqE;YACrE,uEAAuE;YACvE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;SACvE,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,kBAAkB;YAC/B,MAAM,EAAE,kBAAkB;YAC1B,IAAI;SACL,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM;YACvB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,UAAU;QACV,2DAA2D;QAC3D,EAAE,EAAE,WAAW,KAAK,IAAI,UAAU,EAAE;QACpC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;YAC1B,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,uEAAuE;YACvE,gEAAgE;YAChE,mEAAmE;YACnE,oEAAoE;YACpE,2DAA2D;YAC3D,EAAE;YACF,sEAAsE;YACtE,sEAAsE;YACtE,8CAA8C;YAC9C,MAAM,GAAG,GAAe,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,EAAE,cAAc,EAAE,CAAC;gBACzB,GAAG,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AA5HD,0CA4HC;AAED,iFAAiF;AACjF,MAAM,eAAe,GAAG;IACtB,YAAY,KAAc;QACxB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;CACiC,CAAC;AAErC,SAAS,qBAAqB;IAC5B,IAAI,CAAC;QACH,OAAO,IAAA,4BAAW,EAA0B,iCAAiC,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,mFAAmF;YACjF,2DAA2D;YAC3D,6DAA6D,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAC,QAAiB,EAAE,KAAa;IACrD,MAAM,IAAI,GAAI,QAAsC,EAAE,IAAI,IAAI,QAAQ,CAAC;IACvE,IAAI,MAAM,GAAY,IAAI,CAAC;IAC3B,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,SAAS,GAAI,MAAyC,EAAE,SAAS,CAAC;IACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CACb,qBAAqB,KAAK,2DAA2D;YACnF,GAAG,aAAa,CAAC,MAAM,CAAC,iEAAiE;YACzF,sEAAsE,CACzE,CAAC;IACJ,CAAC;IACD,OAAO,SAAqB,CAAC;AAC/B,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,eAAe,KAAK,CAAC,MAAM,EAAE,CAAC;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClG,CAAC;IACD,OAAO,OAAO,KAAK,CAAC;AACtB,CAAC;AAgDD,SAAgB,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,yBAAyB,CAAC;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;IACpC,IAAI,IAA0C,CAAC;IAE/C,MAAM,KAAK,GAAG,CAAC,CAAsB,EAA4B,EAAE;QACjE,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1D,CAAC,CAAC,GAA+B,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAA6B,CAAC;IACxF,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAA6B,EAAE;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,4EAA4E;QAC5E,4EAA4E;QAC5E,yEAAyE;QACzE,+CAA+C;QAC/C,MAAM,IAAI,GAAG,2BAA2B,CAAC;QACzC,OAAO,CAAC,IAAI,KAAK,mBAAO,IAAI,wCAAE,IAAI,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAA0B,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC;IAEF,OAAO;QACL,UAAU;QACV,0EAA0E;QAC1E,yEAAyE;QACzE,4DAA4D;QAC5D,EAAE,EAAE,SAAS,KAAK,IAAI,KAAK,EAAE;QAC7B,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE;YAClB,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE;YACxB,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC;AAzCD,sCAyCC;AA4CD,SAAgB,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,yBAAyB,CAAC;IACzD,IAAI,OAA2C,CAAC;IAEhD,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,mDAAmD;IACnD,MAAM,IAAI,GAAG,CAAC,GAAY,EAAE,MAAc,EAAiB,EAAE;QAC3D,MAAM,CAAC,GAAG,GAAsD,CAAC;QACjE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;QACvD,MAAM,EAAE,GACL,CAAC,CAAC,OAAO,CAA+B;YACxC,CAAC,CAAC,OAAO,CAA+B;YACxC,CAAC,CAAC,QAAQ,CAA+B;YACzC,CAAC,CAAC,QAAQ,CAA+B;YAC1C,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,OAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/E,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,oDAAoD,CAC5G,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAA2B,EAAE;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,CAAC,OAAO,KAAK,mBAAO,IAAI,wCAAE,IAAI,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC;IAEF,wEAAwE;IACxE,8EAA8E;IAC9E,MAAM,MAAM,GAAG,CAAC,GAAY,EAAc,EAAE;QAC1C,MAAM,IAAI,GAAG,GAAgC,CAAC;QAC9C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAyB,CAAC,CAAC,CAAC,CAAC,+BAA+B;QACjF,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAoC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC;IAEF,OAAO;QACL,UAAU;QACV,EAAE,EAAE,UAAU,IAAI,EAAE;QACpB,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE;YAClB,MAAM,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE;YACxB,MAAM,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC;AA5DD,wCA4DC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedders/index.ts"],"names":[],"mappings":"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"}