@proposit/proposit-core 2.0.0 → 2.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 (230) hide show
  1. package/dist/cli/commands/parse.d.ts.map +1 -1
  2. package/dist/cli/commands/parse.js +27 -29
  3. package/dist/cli/commands/parse.js.map +1 -1
  4. package/dist/extensions/chat-completions/errors.d.ts +66 -0
  5. package/dist/extensions/chat-completions/errors.d.ts.map +1 -0
  6. package/dist/extensions/chat-completions/errors.js +139 -0
  7. package/dist/extensions/chat-completions/errors.js.map +1 -0
  8. package/dist/extensions/chat-completions/http.d.ts +10 -0
  9. package/dist/extensions/chat-completions/http.d.ts.map +1 -0
  10. package/dist/extensions/chat-completions/http.js +80 -0
  11. package/dist/extensions/chat-completions/http.js.map +1 -0
  12. package/dist/extensions/chat-completions/index.d.ts +7 -0
  13. package/dist/extensions/chat-completions/index.d.ts.map +1 -0
  14. package/dist/extensions/chat-completions/index.js +18 -0
  15. package/dist/extensions/chat-completions/index.js.map +1 -0
  16. package/dist/extensions/chat-completions/provider.d.ts +5 -0
  17. package/dist/extensions/chat-completions/provider.d.ts.map +1 -0
  18. package/dist/extensions/chat-completions/provider.js +192 -0
  19. package/dist/extensions/chat-completions/provider.js.map +1 -0
  20. package/dist/extensions/chat-completions/structured-output.d.ts +18 -0
  21. package/dist/extensions/chat-completions/structured-output.d.ts.map +1 -0
  22. package/dist/extensions/{ollama → chat-completions}/structured-output.js +14 -10
  23. package/dist/extensions/chat-completions/structured-output.js.map +1 -0
  24. package/dist/extensions/chat-completions/types.d.ts +65 -0
  25. package/dist/extensions/chat-completions/types.d.ts.map +1 -0
  26. package/dist/extensions/chat-completions/types.js +19 -0
  27. package/dist/extensions/chat-completions/types.js.map +1 -0
  28. package/dist/extensions/openai/errors.js +1 -1
  29. package/dist/extensions/openai/errors.js.map +1 -1
  30. package/dist/extensions/openai/provider.d.ts +2 -2
  31. package/dist/extensions/{argument-ingestion/shared → pipelines/base}/basics-extension.d.ts +1 -1
  32. package/dist/extensions/pipelines/base/basics-extension.d.ts.map +1 -0
  33. package/dist/extensions/{argument-ingestion/shared → pipelines/base}/basics-extension.js +5 -4
  34. package/dist/extensions/pipelines/base/basics-extension.js.map +1 -0
  35. package/dist/extensions/pipelines/base/finalize-response-v2.d.ts.map +1 -0
  36. package/dist/extensions/{argument-ingestion/shared → pipelines/base}/finalize-response-v2.js +1 -1
  37. package/dist/extensions/pipelines/base/finalize-response-v2.js.map +1 -0
  38. package/dist/extensions/pipelines/base/index.d.ts +9 -0
  39. package/dist/extensions/pipelines/base/index.d.ts.map +1 -0
  40. package/dist/extensions/pipelines/base/index.js +17 -0
  41. package/dist/extensions/pipelines/base/index.js.map +1 -0
  42. package/dist/extensions/pipelines/base/resolve-llm-stage-options.d.ts.map +1 -0
  43. package/dist/extensions/{argument-ingestion/shared → pipelines/base}/resolve-llm-stage-options.js +2 -2
  44. package/dist/extensions/pipelines/base/resolve-llm-stage-options.js.map +1 -0
  45. package/dist/extensions/pipelines/base/role-derivation.d.ts.map +1 -0
  46. package/dist/extensions/pipelines/base/role-derivation.js.map +1 -0
  47. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/axiom-indicator-detection.d.ts +2 -2
  48. package/dist/extensions/pipelines/base/stages/axiom-indicator-detection.d.ts.map +1 -0
  49. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/axiom-indicator-detection.js +1 -1
  50. package/dist/extensions/pipelines/base/stages/axiom-indicator-detection.js.map +1 -0
  51. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/citation-source-detection.d.ts +2 -2
  52. package/dist/extensions/pipelines/base/stages/citation-source-detection.d.ts.map +1 -0
  53. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/citation-source-detection.js +1 -1
  54. package/dist/extensions/pipelines/base/stages/citation-source-detection.js.map +1 -0
  55. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/claim-canonicalization.d.ts +20 -3
  56. package/dist/extensions/pipelines/base/stages/claim-canonicalization.d.ts.map +1 -0
  57. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/claim-canonicalization.js +20 -6
  58. package/dist/extensions/pipelines/base/stages/claim-canonicalization.js.map +1 -0
  59. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/claim-mention-extraction.d.ts +2 -2
  60. package/dist/extensions/pipelines/base/stages/claim-mention-extraction.d.ts.map +1 -0
  61. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/claim-mention-extraction.js +1 -1
  62. package/dist/extensions/pipelines/base/stages/claim-mention-extraction.js.map +1 -0
  63. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/claim-reference-validation.d.ts +1 -1
  64. package/dist/extensions/pipelines/base/stages/claim-reference-validation.d.ts.map +1 -0
  65. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/claim-reference-validation.js +1 -1
  66. package/dist/extensions/pipelines/base/stages/claim-reference-validation.js.map +1 -0
  67. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/claim-type-classification.d.ts +2 -2
  68. package/dist/extensions/pipelines/base/stages/claim-type-classification.d.ts.map +1 -0
  69. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/claim-type-classification.js +2 -2
  70. package/dist/extensions/pipelines/base/stages/claim-type-classification.js.map +1 -0
  71. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/conclusion-selection.d.ts +21 -3
  72. package/dist/extensions/pipelines/base/stages/conclusion-selection.d.ts.map +1 -0
  73. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/conclusion-selection.js +8 -2
  74. package/dist/extensions/pipelines/base/stages/conclusion-selection.js.map +1 -0
  75. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/formula-compilation.d.ts +1 -1
  76. package/dist/extensions/pipelines/base/stages/formula-compilation.d.ts.map +1 -0
  77. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/formula-compilation.js +1 -1
  78. package/dist/extensions/pipelines/base/stages/formula-compilation.js.map +1 -0
  79. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/formula-validation.d.ts +1 -1
  80. package/dist/extensions/pipelines/base/stages/formula-validation.d.ts.map +1 -0
  81. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/formula-validation.js +2 -2
  82. package/dist/extensions/pipelines/base/stages/formula-validation.js.map +1 -0
  83. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/index.d.ts +2 -2
  84. package/dist/extensions/pipelines/base/stages/index.d.ts.map +1 -0
  85. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/index.js +5 -3
  86. package/dist/extensions/pipelines/base/stages/index.js.map +1 -0
  87. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/relation-extraction.d.ts +2 -2
  88. package/dist/extensions/pipelines/base/stages/relation-extraction.d.ts.map +1 -0
  89. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/relation-extraction.js +1 -1
  90. package/dist/extensions/pipelines/base/stages/relation-extraction.js.map +1 -0
  91. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/schemas.d.ts +2 -0
  92. package/dist/extensions/pipelines/base/stages/schemas.d.ts.map +1 -0
  93. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/schemas.js +8 -0
  94. package/dist/extensions/pipelines/base/stages/schemas.js.map +1 -0
  95. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/segmentation.d.ts +2 -2
  96. package/dist/extensions/pipelines/base/stages/segmentation.d.ts.map +1 -0
  97. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/segmentation.js +2 -2
  98. package/dist/extensions/pipelines/base/stages/segmentation.js.map +1 -0
  99. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/variable-assignment.d.ts +1 -1
  100. package/dist/extensions/pipelines/base/stages/variable-assignment.d.ts.map +1 -0
  101. package/dist/extensions/{argument-ingestion → pipelines/base}/stages/variable-assignment.js +1 -1
  102. package/dist/extensions/pipelines/base/stages/variable-assignment.js.map +1 -0
  103. package/dist/extensions/{argument-ingestion/shared → pipelines/base}/types.d.ts +6 -5
  104. package/dist/extensions/pipelines/base/types.d.ts.map +1 -0
  105. package/dist/extensions/pipelines/base/types.js +15 -0
  106. package/dist/extensions/pipelines/base/types.js.map +1 -0
  107. package/dist/extensions/pipelines/ingestion/index.d.ts +5 -0
  108. package/dist/extensions/pipelines/ingestion/index.d.ts.map +1 -0
  109. package/dist/extensions/pipelines/ingestion/index.js +5 -0
  110. package/dist/extensions/pipelines/ingestion/index.js.map +1 -0
  111. package/dist/extensions/pipelines/ingestion/scholar/index.d.ts +3 -0
  112. package/dist/extensions/pipelines/ingestion/scholar/index.d.ts.map +1 -0
  113. package/dist/extensions/pipelines/ingestion/scholar/index.js +3 -0
  114. package/dist/extensions/pipelines/ingestion/scholar/index.js.map +1 -0
  115. package/dist/extensions/pipelines/ingestion/scholar/scholar.d.ts +48 -0
  116. package/dist/extensions/pipelines/ingestion/scholar/scholar.d.ts.map +1 -0
  117. package/dist/extensions/{argument-ingestion/v2-multi-stage.js → pipelines/ingestion/scholar/scholar.js} +25 -18
  118. package/dist/extensions/pipelines/ingestion/scholar/scholar.js.map +1 -0
  119. package/dist/extensions/pipelines/ingestion/scribe/extract-stage.d.ts +33 -0
  120. package/dist/extensions/pipelines/ingestion/scribe/extract-stage.d.ts.map +1 -0
  121. package/dist/extensions/pipelines/ingestion/scribe/extract-stage.js +103 -0
  122. package/dist/extensions/pipelines/ingestion/scribe/extract-stage.js.map +1 -0
  123. package/dist/extensions/pipelines/ingestion/scribe/index.d.ts +3 -0
  124. package/dist/extensions/pipelines/ingestion/scribe/index.d.ts.map +1 -0
  125. package/dist/extensions/pipelines/ingestion/scribe/index.js +3 -0
  126. package/dist/extensions/pipelines/ingestion/scribe/index.js.map +1 -0
  127. package/dist/extensions/pipelines/ingestion/scribe/schemas.d.ts +17 -0
  128. package/dist/extensions/pipelines/ingestion/scribe/schemas.d.ts.map +1 -0
  129. package/dist/extensions/pipelines/ingestion/scribe/schemas.js +26 -0
  130. package/dist/extensions/pipelines/ingestion/scribe/schemas.js.map +1 -0
  131. package/dist/extensions/pipelines/ingestion/scribe/scribe.d.ts +20 -0
  132. package/dist/extensions/pipelines/ingestion/scribe/scribe.d.ts.map +1 -0
  133. package/dist/extensions/pipelines/ingestion/scribe/scribe.js +81 -0
  134. package/dist/extensions/pipelines/ingestion/scribe/scribe.js.map +1 -0
  135. package/dist/extensions/pipelines/ingestion/scribe/structure-stage.d.ts +30 -0
  136. package/dist/extensions/pipelines/ingestion/scribe/structure-stage.d.ts.map +1 -0
  137. package/dist/extensions/pipelines/ingestion/scribe/structure-stage.js +142 -0
  138. package/dist/extensions/pipelines/ingestion/scribe/structure-stage.js.map +1 -0
  139. package/dist/lib/index.d.ts +0 -2
  140. package/dist/lib/index.d.ts.map +1 -1
  141. package/dist/lib/index.js +7 -5
  142. package/dist/lib/index.js.map +1 -1
  143. package/dist/lib/pipelines/debug-log.js +1 -1
  144. package/dist/lib/pipelines/debug-log.js.map +1 -1
  145. package/dist/lib/pipelines/stage-helpers.d.ts.map +1 -1
  146. package/dist/lib/pipelines/stage-helpers.js +37 -1
  147. package/dist/lib/pipelines/stage-helpers.js.map +1 -1
  148. package/dist/lib/pipelines/types.d.ts +2 -2
  149. package/package.json +16 -16
  150. package/dist/extensions/argument-ingestion/index.d.ts +0 -15
  151. package/dist/extensions/argument-ingestion/index.d.ts.map +0 -1
  152. package/dist/extensions/argument-ingestion/index.js +0 -17
  153. package/dist/extensions/argument-ingestion/index.js.map +0 -1
  154. package/dist/extensions/argument-ingestion/shared/basics-extension.d.ts.map +0 -1
  155. package/dist/extensions/argument-ingestion/shared/basics-extension.js.map +0 -1
  156. package/dist/extensions/argument-ingestion/shared/finalize-response-v2.d.ts.map +0 -1
  157. package/dist/extensions/argument-ingestion/shared/finalize-response-v2.js.map +0 -1
  158. package/dist/extensions/argument-ingestion/shared/finalize-response.d.ts +0 -21
  159. package/dist/extensions/argument-ingestion/shared/finalize-response.d.ts.map +0 -1
  160. package/dist/extensions/argument-ingestion/shared/finalize-response.js +0 -33
  161. package/dist/extensions/argument-ingestion/shared/finalize-response.js.map +0 -1
  162. package/dist/extensions/argument-ingestion/shared/resolve-llm-stage-options.d.ts.map +0 -1
  163. package/dist/extensions/argument-ingestion/shared/resolve-llm-stage-options.js.map +0 -1
  164. package/dist/extensions/argument-ingestion/shared/role-derivation.d.ts.map +0 -1
  165. package/dist/extensions/argument-ingestion/shared/role-derivation.js.map +0 -1
  166. package/dist/extensions/argument-ingestion/shared/types.d.ts.map +0 -1
  167. package/dist/extensions/argument-ingestion/shared/types.js +0 -16
  168. package/dist/extensions/argument-ingestion/shared/types.js.map +0 -1
  169. package/dist/extensions/argument-ingestion/stages/axiom-indicator-detection.d.ts.map +0 -1
  170. package/dist/extensions/argument-ingestion/stages/axiom-indicator-detection.js.map +0 -1
  171. package/dist/extensions/argument-ingestion/stages/citation-source-detection.d.ts.map +0 -1
  172. package/dist/extensions/argument-ingestion/stages/citation-source-detection.js.map +0 -1
  173. package/dist/extensions/argument-ingestion/stages/claim-canonicalization.d.ts.map +0 -1
  174. package/dist/extensions/argument-ingestion/stages/claim-canonicalization.js.map +0 -1
  175. package/dist/extensions/argument-ingestion/stages/claim-mention-extraction.d.ts.map +0 -1
  176. package/dist/extensions/argument-ingestion/stages/claim-mention-extraction.js.map +0 -1
  177. package/dist/extensions/argument-ingestion/stages/claim-reference-validation.d.ts.map +0 -1
  178. package/dist/extensions/argument-ingestion/stages/claim-reference-validation.js.map +0 -1
  179. package/dist/extensions/argument-ingestion/stages/claim-type-classification.d.ts.map +0 -1
  180. package/dist/extensions/argument-ingestion/stages/claim-type-classification.js.map +0 -1
  181. package/dist/extensions/argument-ingestion/stages/conclusion-selection.d.ts.map +0 -1
  182. package/dist/extensions/argument-ingestion/stages/conclusion-selection.js.map +0 -1
  183. package/dist/extensions/argument-ingestion/stages/formula-compilation.d.ts.map +0 -1
  184. package/dist/extensions/argument-ingestion/stages/formula-compilation.js.map +0 -1
  185. package/dist/extensions/argument-ingestion/stages/formula-validation.d.ts.map +0 -1
  186. package/dist/extensions/argument-ingestion/stages/formula-validation.js.map +0 -1
  187. package/dist/extensions/argument-ingestion/stages/index.d.ts.map +0 -1
  188. package/dist/extensions/argument-ingestion/stages/index.js.map +0 -1
  189. package/dist/extensions/argument-ingestion/stages/relation-extraction.d.ts.map +0 -1
  190. package/dist/extensions/argument-ingestion/stages/relation-extraction.js.map +0 -1
  191. package/dist/extensions/argument-ingestion/stages/schemas.d.ts.map +0 -1
  192. package/dist/extensions/argument-ingestion/stages/schemas.js.map +0 -1
  193. package/dist/extensions/argument-ingestion/stages/segmentation.d.ts.map +0 -1
  194. package/dist/extensions/argument-ingestion/stages/segmentation.js.map +0 -1
  195. package/dist/extensions/argument-ingestion/stages/variable-assignment.d.ts.map +0 -1
  196. package/dist/extensions/argument-ingestion/stages/variable-assignment.js.map +0 -1
  197. package/dist/extensions/argument-ingestion/v1-single-shot.d.ts +0 -26
  198. package/dist/extensions/argument-ingestion/v1-single-shot.d.ts.map +0 -1
  199. package/dist/extensions/argument-ingestion/v1-single-shot.js +0 -113
  200. package/dist/extensions/argument-ingestion/v1-single-shot.js.map +0 -1
  201. package/dist/extensions/argument-ingestion/v2-multi-stage.d.ts +0 -38
  202. package/dist/extensions/argument-ingestion/v2-multi-stage.d.ts.map +0 -1
  203. package/dist/extensions/argument-ingestion/v2-multi-stage.js.map +0 -1
  204. package/dist/extensions/ollama/errors.d.ts +0 -73
  205. package/dist/extensions/ollama/errors.d.ts.map +0 -1
  206. package/dist/extensions/ollama/errors.js +0 -228
  207. package/dist/extensions/ollama/errors.js.map +0 -1
  208. package/dist/extensions/ollama/index.d.ts +0 -6
  209. package/dist/extensions/ollama/index.d.ts.map +0 -1
  210. package/dist/extensions/ollama/index.js +0 -17
  211. package/dist/extensions/ollama/index.js.map +0 -1
  212. package/dist/extensions/ollama/provider.d.ts +0 -22
  213. package/dist/extensions/ollama/provider.d.ts.map +0 -1
  214. package/dist/extensions/ollama/provider.js +0 -417
  215. package/dist/extensions/ollama/provider.js.map +0 -1
  216. package/dist/extensions/ollama/structured-output.d.ts +0 -18
  217. package/dist/extensions/ollama/structured-output.d.ts.map +0 -1
  218. package/dist/extensions/ollama/structured-output.js.map +0 -1
  219. package/dist/extensions/ollama/timeout-fetch.d.ts +0 -24
  220. package/dist/extensions/ollama/timeout-fetch.d.ts.map +0 -1
  221. package/dist/extensions/ollama/timeout-fetch.js +0 -76
  222. package/dist/extensions/ollama/timeout-fetch.js.map +0 -1
  223. package/dist/extensions/ollama/types.d.ts +0 -219
  224. package/dist/extensions/ollama/types.d.ts.map +0 -1
  225. package/dist/extensions/ollama/types.js +0 -7
  226. package/dist/extensions/ollama/types.js.map +0 -1
  227. /package/dist/extensions/{argument-ingestion/shared → pipelines/base}/finalize-response-v2.d.ts +0 -0
  228. /package/dist/extensions/{argument-ingestion/shared → pipelines/base}/resolve-llm-stage-options.d.ts +0 -0
  229. /package/dist/extensions/{argument-ingestion/shared → pipelines/base}/role-derivation.d.ts +0 -0
  230. /package/dist/extensions/{argument-ingestion/shared → pipelines/base}/role-derivation.js +0 -0
@@ -0,0 +1,192 @@
1
+ // Concrete `TLlmProvider` backed by an OpenAI-compatible
2
+ // `/v1/chat/completions` endpoint (a local llama-server by default, or
3
+ // any OpenAI-compatible chat backend by swapping baseUrl + token).
4
+ //
5
+ // Synchronous, structured-output-only:
6
+ // * One POST to `{baseUrl}/chat/completions` via raw `fetch` (the
7
+ // `./http.ts` `requestJson` helper) — no SSE, no background/poll, no
8
+ // mid-flight responseId. `TLlmProvider.respond` is the whole surface;
9
+ // the optional `onResponseCreated` hook is left uncalled (a
10
+ // synchronous provider never learns an id mid-flight), which is
11
+ // contract-legal — the same posture the prior local provider took.
12
+ // * Structured output via the lax `typeboxToJsonSchema` converter under
13
+ // a `response_format: { type: "json_schema", json_schema: { ... } }`.
14
+ // * `reasoningEffort` is ignored (no chat-completions analogue);
15
+ // `maxOutputTokens` maps to `max_tokens` (positive values only).
16
+ // * Function tools are NOT supported — a request carrying `tools` fails
17
+ // fast with `NonRetryableLlmError`. This provider serves the
18
+ // structured-output ingestion path, which uses no tools, so there is
19
+ // no multi-round tool loop to port.
20
+ // * `requestTimeoutMs` is enforced via `AbortSignal.timeout` inside
21
+ // `requestJson` — no extra HTTP-stack dependency.
22
+ //
23
+ // Error classification routes HTTP-status families + fetch failures into
24
+ // the framework-recognized error classes (see `./errors.ts`). The
25
+ // framework's `llmStage` retry policy classifies via the `retryReason`
26
+ // tag on the thrown error.
27
+ import { debugLlmFailure, debugLlmRequest, debugLlmResponse, } from "../../lib/pipelines/debug-log.js";
28
+ import { typeboxToJsonSchema } from "./structured-output.js";
29
+ import { requestJson } from "./http.js";
30
+ import { NonRetryableLlmError, SchemaValidationLlmError } from "./errors.js";
31
+ import { DEFAULT_API_KEY, DEFAULT_BASE_URL, DEFAULT_MODEL, DEFAULT_REQUEST_TIMEOUT_MS, } from "./types.js";
32
+ const STAGE_ID_MARKER = /<!--\s*stage-id:\s*([^\s>]+)\s*-->/;
33
+ function abortError() {
34
+ const e = new Error("The chat-completions request was aborted.");
35
+ e.name = "AbortError";
36
+ return e;
37
+ }
38
+ // Derive the `json_schema.name` from the schema's `$id` (sanitized to the
39
+ // `^[a-zA-Z0-9_-]{1,64}$` shape OpenAI-compatible servers accept), or a
40
+ // stable default when the schema is anonymous.
41
+ function deriveSchemaName(schema) {
42
+ const id = schema.$id;
43
+ if (typeof id === "string" && id.length > 0) {
44
+ const cleaned = id.replace(/[^a-zA-Z0-9_-]/g, "_").slice(0, 64);
45
+ if (cleaned.length > 0)
46
+ return cleaned;
47
+ }
48
+ return "structured_output";
49
+ }
50
+ export function createChatCompletionsProvider(options) {
51
+ const config = options ?? {};
52
+ const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;
53
+ const url = `${baseUrl}/chat/completions`;
54
+ const apiKey = config.apiKey ?? DEFAULT_API_KEY;
55
+ // The provider's configured model is a fallback: a per-request
56
+ // `req.model` (the framework's normal path) wins; the configured
57
+ // model (or the `local-coder` default) applies only when a request
58
+ // carries no model.
59
+ const configuredModel = config.model ?? DEFAULT_MODEL;
60
+ const timeoutMs = config.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
61
+ const fetchImpl = config.fetch ?? globalThis.fetch;
62
+ if (!fetchImpl) {
63
+ throw new Error("createChatCompletionsProvider: no fetch implementation available. Pass `fetch` explicitly or run in an environment that provides `globalThis.fetch` (Node ≥18, modern browsers, Expo).");
64
+ }
65
+ const respond = async (req) => {
66
+ if (req.signal?.aborted) {
67
+ throw abortError();
68
+ }
69
+ if (req.tools && req.tools.length > 0) {
70
+ throw new NonRetryableLlmError({
71
+ message: "The chat-completions provider does not support function tools — it serves structured-output requests only. Remove `tools` from the request or use a tool-capable provider.",
72
+ });
73
+ }
74
+ const stageIdMatch = STAGE_ID_MARKER.exec(req.systemPrompt);
75
+ const debugStageId = stageIdMatch ? stageIdMatch[1] : null;
76
+ const convertedSchema = typeboxToJsonSchema(req.outputSchema);
77
+ // Per-request model wins; the provider's configured model (or the
78
+ // `local-coder` default) is the fallback when a request carries none.
79
+ const model = req.model || configuredModel;
80
+ const body = {
81
+ model,
82
+ messages: [
83
+ { role: "system", content: req.systemPrompt },
84
+ { role: "user", content: req.userMessage },
85
+ ],
86
+ response_format: {
87
+ type: "json_schema",
88
+ json_schema: {
89
+ name: deriveSchemaName(req.outputSchema),
90
+ schema: convertedSchema,
91
+ },
92
+ },
93
+ // Deterministic structured output.
94
+ temperature: 0,
95
+ };
96
+ // `max_tokens`, positive only: 0 means "generate nothing".
97
+ if (req.maxOutputTokens !== undefined && req.maxOutputTokens > 0) {
98
+ body.max_tokens = req.maxOutputTokens;
99
+ }
100
+ debugLlmRequest({
101
+ stageId: debugStageId,
102
+ model,
103
+ maxOutputTokens: req.maxOutputTokens,
104
+ reasoningEffort: req.reasoningEffort,
105
+ systemPromptLen: req.systemPrompt.length,
106
+ userMessageLen: req.userMessage.length,
107
+ systemPromptHead: req.systemPrompt,
108
+ userMessageHead: req.userMessage,
109
+ });
110
+ let response;
111
+ try {
112
+ response = await requestJson({
113
+ url,
114
+ apiKey,
115
+ body,
116
+ fetchImpl,
117
+ signal: req.signal,
118
+ timeoutMs,
119
+ });
120
+ }
121
+ catch (err) {
122
+ // Honor a mid-flight abort: surface a clean AbortError so
123
+ // `llmStage`'s detector marks the stage skipped rather than
124
+ // failed. Other errors are already framework-classified by
125
+ // `requestJson`; re-throw them.
126
+ if (req.signal?.aborted ||
127
+ (err instanceof Error && err.name === "AbortError")) {
128
+ throw abortError();
129
+ }
130
+ const classified = err instanceof Error ? err : new Error(String(err));
131
+ debugLlmFailure({
132
+ stageId: debugStageId,
133
+ model,
134
+ errorName: classified.name,
135
+ errorMessage: classified.message,
136
+ tokenUsage: { input: 0, output: 0 },
137
+ });
138
+ throw classified;
139
+ }
140
+ const tokenUsage = {
141
+ input: response.usage?.prompt_tokens ?? 0,
142
+ output: response.usage?.completion_tokens ?? 0,
143
+ };
144
+ const text = response.choices?.[0]?.message?.content;
145
+ if (text === undefined || text === "") {
146
+ // Empty structured output is a schema-shaped failure — a re-roll
147
+ // can produce conforming output, so classify it (transient-
148
+ // tagged) `SchemaValidationLlmError`, not a generic transient.
149
+ debugLlmFailure({
150
+ stageId: debugStageId,
151
+ model,
152
+ errorName: "SchemaValidationLlmError",
153
+ errorMessage: "no assistant content",
154
+ tokenUsage,
155
+ });
156
+ throw new SchemaValidationLlmError({
157
+ message: "The chat-completions endpoint returned no assistant content.",
158
+ });
159
+ }
160
+ let parsed;
161
+ try {
162
+ parsed = JSON.parse(text);
163
+ }
164
+ catch (err) {
165
+ debugLlmFailure({
166
+ stageId: debugStageId,
167
+ model,
168
+ errorName: "SchemaValidationLlmError",
169
+ errorMessage: err instanceof Error ? err.message : String(err),
170
+ rawText: text,
171
+ tokenUsage,
172
+ });
173
+ throw new SchemaValidationLlmError({
174
+ message: `The chat-completions endpoint returned malformed JSON in structured-output content: ${err instanceof Error ? err.message : String(err)}`,
175
+ });
176
+ }
177
+ debugLlmResponse({
178
+ stageId: debugStageId,
179
+ outputTextLen: text.length,
180
+ tokenUsage,
181
+ });
182
+ return {
183
+ output: parsed,
184
+ tokenUsage,
185
+ // A chat-completions response carries no durable response id we
186
+ // surface; `rawResponseId` is optional, so leave it undefined.
187
+ rawResponseId: undefined,
188
+ };
189
+ };
190
+ return { respond };
191
+ }
192
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/extensions/chat-completions/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { TSchema } from "typebox";
2
+ /**
3
+ * The output shape is intentionally typed as a plain object literal
4
+ * (not a full JSON-Schema TS type). The endpoint's `json_schema`
5
+ * `schema` slot accepts this shape and we round-trip it through the
6
+ * request body. Keeping the return type loose avoids dragging a
7
+ * JSON-Schema dependency into the converter.
8
+ */
9
+ export type TChatCompletionsJsonSchema = Record<string, unknown>;
10
+ /**
11
+ * Convert a TypeBox schema into a standard JSON Schema document
12
+ * suitable for an OpenAI-compatible `json_schema` response format.
13
+ *
14
+ * Throws `UnsupportedSchemaError` when the source schema contains a
15
+ * TypeBox primitive outside the supported subset.
16
+ */
17
+ export declare function typeboxToJsonSchema(schema: TSchema): TChatCompletionsJsonSchema;
18
+ //# sourceMappingURL=structured-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../../src/extensions/chat-completions/structured-output.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AA6BhE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,OAAO,GAChB,0BAA0B,CA0B5B"}
@@ -1,9 +1,12 @@
1
- // TypeBox → standard JSON Schema converter for the Ollama provider.
1
+ // TypeBox → standard JSON Schema converter for the chat-completions
2
+ // provider.
2
3
  //
3
- // Ollama's `format` parameter accepts a *standard* JSON Schema (the
4
- // same shape `zodToJsonSchema` would emit). This converter deliberately
5
- // does NOT apply the OpenAI Responses-API strict-mode folds that
6
- // `typeboxToOpenAiSchema` (`../openai/structured-output.ts`) applies:
4
+ // An OpenAI-compatible `/v1/chat/completions` endpoint with a
5
+ // `response_format: { type: "json_schema", json_schema: { schema } }`
6
+ // accepts a *standard* JSON Schema (the same shape `zodToJsonSchema`
7
+ // would emit). This converter deliberately does NOT apply the OpenAI
8
+ // Responses-API strict-mode folds that `typeboxToOpenAiSchema`
9
+ // (`../openai/structured-output.ts`) applies:
7
10
  //
8
11
  // * No forced `additionalProperties: false` on objects.
9
12
  // * `Type.Optional(T)` → the key is simply OMITTED from `required`
@@ -11,8 +14,9 @@
11
14
  // `{ anyOf: [T, { type: "null" }] }` and kept in `required`.
12
15
  //
13
16
  // Those strict folds are correct for OpenAI strict mode and harmful for
14
- // a standard `format` consumer, so the Ollama provider gets its own
15
- // converter rather than reusing/renaming the OpenAI one.
17
+ // a standard `json_schema` consumer (a local llama-server compiling the
18
+ // schema to a GBNF grammar, the HF router, etc.), so this provider gets
19
+ // its own converter rather than reusing/renaming the OpenAI one.
16
20
  //
17
21
  // Supported TypeBox subset (same primitives the OpenAI converter
18
22
  // covers): Object, Array, String, Number, Integer, Boolean, Literal,
@@ -25,7 +29,7 @@
25
29
  // on inner types — only structural fields are projected.
26
30
  class UnsupportedSchemaError extends Error {
27
31
  constructor(kind) {
28
- super(`TypeBox primitive "${kind}" is not supported by the Ollama structured-output converter. ` +
32
+ super(`TypeBox primitive "${kind}" is not supported by the chat-completions structured-output converter. ` +
29
33
  `Supported subset: Object, Array, String, Number, Integer, Boolean, Literal, Union, Optional, Record, Null.`);
30
34
  this.name = "UnsupportedSchemaError";
31
35
  }
@@ -39,7 +43,7 @@ function isOptional(schema) {
39
43
  }
40
44
  /**
41
45
  * Convert a TypeBox schema into a standard JSON Schema document
42
- * suitable for Ollama's `format` parameter.
46
+ * suitable for an OpenAI-compatible `json_schema` response format.
43
47
  *
44
48
  * Throws `UnsupportedSchemaError` when the source schema contains a
45
49
  * TypeBox primitive outside the supported subset.
@@ -134,7 +138,7 @@ function convertObject(schema) {
134
138
  // property is converted as its inner `T` and simply OMITTED
135
139
  // from `required`. No null-widening, no forced
136
140
  // `additionalProperties: false` — that is the OpenAI-strict
137
- // fold the Ollama `format` consumer does not want.
141
+ // fold a standard `json_schema` consumer does not want.
138
142
  properties[key] = typeboxToJsonSchema(propSchema);
139
143
  if (!isOptional(propSchema)) {
140
144
  required.push(key);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../../../src/extensions/chat-completions/structured-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import type { TChatCompletionsJsonSchema } from "./structured-output.js";
2
+ export declare const DEFAULT_BASE_URL = "http://127.0.0.1:46373/v1";
3
+ export declare const DEFAULT_MODEL = "local-coder";
4
+ export declare const DEFAULT_API_KEY = "local-llm-no-key";
5
+ export declare const DEFAULT_REQUEST_TIMEOUT_MS = 1200000;
6
+ export type TChatCompletionsFetch = (url: string, init: RequestInit) => Promise<Response>;
7
+ export type TChatCompletionsMessage = {
8
+ role: "system" | "user" | "assistant";
9
+ content: string;
10
+ };
11
+ export type TChatCompletionsResponseFormat = {
12
+ type: "json_schema";
13
+ json_schema: {
14
+ name: string;
15
+ schema: TChatCompletionsJsonSchema;
16
+ };
17
+ };
18
+ export type TChatCompletionsRequestBody = {
19
+ model: string;
20
+ messages: TChatCompletionsMessage[];
21
+ response_format: TChatCompletionsResponseFormat;
22
+ temperature?: number;
23
+ max_tokens?: number;
24
+ };
25
+ export type TChatCompletionsChoice = {
26
+ message?: {
27
+ role?: string;
28
+ content?: string;
29
+ };
30
+ finish_reason?: string;
31
+ };
32
+ export type TChatCompletionsResponse = {
33
+ id?: string;
34
+ choices?: TChatCompletionsChoice[];
35
+ usage?: {
36
+ prompt_tokens?: number;
37
+ completion_tokens?: number;
38
+ };
39
+ error?: {
40
+ message?: string;
41
+ code?: string;
42
+ };
43
+ };
44
+ export type TChatCompletionsProviderConfig = {
45
+ /** Endpoint base URL (including any `/v1` prefix). Defaults to `http://127.0.0.1:46373/v1`. */
46
+ baseUrl?: string;
47
+ /** Model identifier. Defaults to `local-coder`. */
48
+ model?: string;
49
+ /** Bearer token. Defaults to a throwaway (local servers ignore it). */
50
+ apiKey?: string;
51
+ /**
52
+ * Per-request HTTP timeout in milliseconds, enforced via
53
+ * `AbortSignal.timeout`. Defaults to **1_200_000 (20 min)** — local
54
+ * generations on a large reasoning model legitimately take minutes
55
+ * per structured-output stage. Set `0` to disable the timeout.
56
+ */
57
+ requestTimeoutMs?: number;
58
+ /**
59
+ * Injectable `fetch`. Defaults to `globalThis.fetch`. Tests inject
60
+ * mocks; runtimes without a global `fetch` (older Node) inject a
61
+ * polyfill.
62
+ */
63
+ fetch?: TChatCompletionsFetch;
64
+ };
65
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extensions/chat-completions/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAOxE,eAAO,MAAM,gBAAgB,8BAA8B,CAAA;AAC3D,eAAO,MAAM,aAAa,gBAAgB,CAAA;AAC1C,eAAO,MAAM,eAAe,qBAAqB,CAAA;AAIjD,eAAO,MAAM,0BAA0B,UAAY,CAAA;AAEnD,MAAM,MAAM,qBAAqB,GAAG,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,KAChB,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IACzC,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,EAAE;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,0BAA0B,CAAA;KACrC,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,uBAAuB,EAAE,CAAA;IACnC,eAAe,EAAE,8BAA8B,CAAA;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACnC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClC,KAAK,CAAC,EAAE;QACJ,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAC7B,CAAA;IACD,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C,CAAA;AAGD,MAAM,MAAM,8BAA8B,GAAG;IACzC,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,qBAAqB,CAAA;CAChC,CAAA"}
@@ -0,0 +1,19 @@
1
+ // Extension-internal wire-format + config types for an OpenAI-compatible
2
+ // `/v1/chat/completions` endpoint (a local llama-server, the HF router,
3
+ // or any OpenAI-compatible chat backend). Field names on the request /
4
+ // response shapes are *wire* names (snake_case); the in-repo brain-style
5
+ // camelCase rule does not apply to external wire formats.
6
+ /* eslint-disable @typescript-eslint/naming-convention */
7
+ // Default local llama-server chat endpoint + model alias. The base URL
8
+ // already includes the `/v1` prefix; the provider appends
9
+ // `/chat/completions`. The apiKey is a throwaway — a local server
10
+ // ignores `Authorization`, but the OpenAI wire shape expects a bearer
11
+ // token, so we always send one.
12
+ export const DEFAULT_BASE_URL = "http://127.0.0.1:46373/v1";
13
+ export const DEFAULT_MODEL = "local-coder";
14
+ export const DEFAULT_API_KEY = "local-llm-no-key";
15
+ // Generous per-request timeout. Local generations on a large reasoning
16
+ // model legitimately take minutes per structured-output stage; enforced
17
+ // via `AbortSignal.timeout` with no extra HTTP-stack dependency.
18
+ export const DEFAULT_REQUEST_TIMEOUT_MS = 1_200_000;
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/extensions/chat-completions/types.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,yEAAyE;AACzE,0DAA0D;AAC1D,yDAAyD;AAIzD,uEAAuE;AACvE,0DAA0D;AAC1D,kEAAkE;AAClE,sEAAsE;AACtE,gCAAgC;AAChC,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAA;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAA;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAA;AACjD,uEAAuE;AACvE,wEAAwE;AACxE,iEAAiE;AACjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAA"}
@@ -188,7 +188,7 @@ export function classifyHttpError(status, message, providerErrorCode) {
188
188
  // case specifically) point at the override knob that fixes it.
189
189
  export function formatIncompleteMessage(reason) {
190
190
  if (reason === "max_output_tokens") {
191
- return `OpenAI Responses API returned status: "incomplete" (reason: max_output_tokens). The model's output exceeded the per-call \`max_output_tokens\` cap (either an explicit value on the request or the model's default). Pass a larger \`maxOutputTokens\` to TLlmRequest, or set the stage-level \`maxOutputTokens\` on the llmStage factory (e.g., the \`createIngestionV2Pipeline({ llm: { overrides: { ... } } })\` surface).`;
191
+ return `OpenAI Responses API returned status: "incomplete" (reason: max_output_tokens). The model's output exceeded the per-call \`max_output_tokens\` cap (either an explicit value on the request or the model's default). Pass a larger \`maxOutputTokens\` to TLlmRequest, or set the stage-level \`maxOutputTokens\` on the llmStage factory (e.g., the \`createScholarPipeline({ llm: { overrides: { ... } } })\` surface).`;
192
192
  }
193
193
  if (reason === "content_filter") {
194
194
  return `OpenAI Responses API returned status: "incomplete" (reason: content_filter). OpenAI's content policy refused to complete this output; the input or generated content was flagged. Retrying will not succeed — review the input text or the stage's prompt and re-request.`;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/extensions/openai/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/extensions/openai/errors.ts"],"names":[],"mappings":"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"}
@@ -20,8 +20,8 @@ export type TCreateOpenAiResponsesProviderOptions = {
20
20
  /**
21
21
  * Stream the foreground response over SSE and accumulate to the
22
22
  * terminal envelope inside the provider. Defaults to **`true`** —
23
- * gives connection-drop resilience and parity with the Ollama
24
- * provider. No data-retention implications (unlike `backgroundMode`).
23
+ * gives connection-drop resilience. No data-retention implications
24
+ * (unlike `backgroundMode`).
25
25
  * Set `false` to restore the blocking `response.json()` path.
26
26
  */
27
27
  stream?: boolean;
@@ -3,7 +3,7 @@ import type { TIngestionExtension } from "./types.js";
3
3
  * Default ingestion extension composing the `basics` per-entity
4
4
  * fields. Matches what the CLI's `parse` command and the server's
5
5
  * argument-ingestion endpoint use today. Hand to
6
- * `createIngestionV1Pipeline(basicsExtension)` for a drop-in pipeline.
6
+ * `createScholarPipeline(basicsExtension)` for a drop-in pipeline.
7
7
  */
8
8
  export declare const basicsExtension: TIngestionExtension;
9
9
  //# sourceMappingURL=basics-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basics-extension.d.ts","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/basics-extension.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,mBAM7B,CAAA"}
@@ -5,15 +5,16 @@
5
5
  // `BasicsParsingSchema` and the per-entity slots in this descriptor
6
6
  // stay structurally identical without manual duplication.
7
7
  //
8
- // A multi-stage pipeline can consume the per-entity slots to wire
9
- // decomposed stage outputs; for v1 only `responseSchema` is consumed
10
- // by the factory.
8
+ // The multi-stage pipelines consume the per-entity slots to wire their
9
+ // decomposed stage outputs (e.g. canonicalization builds its output
10
+ // schema from `claimSchema`); `responseSchema` is the advertised
11
+ // pipeline output schema.
11
12
  import { BasicsArgumentExtension, BasicsClaimExtension, BasicsParsingSchema, BasicsPremiseExtension, BasicsVariableExtension, } from "../../basics/schemata.js";
12
13
  /**
13
14
  * Default ingestion extension composing the `basics` per-entity
14
15
  * fields. Matches what the CLI's `parse` command and the server's
15
16
  * argument-ingestion endpoint use today. Hand to
16
- * `createIngestionV1Pipeline(basicsExtension)` for a drop-in pipeline.
17
+ * `createScholarPipeline(basicsExtension)` for a drop-in pipeline.
17
18
  */
18
19
  export const basicsExtension = {
19
20
  responseSchema: BasicsParsingSchema,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basics-extension.js","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/basics-extension.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,mEAAmE;AACnE,qDAAqD;AACrD,gEAAgE;AAChE,oEAAoE;AACpE,0DAA0D;AAC1D,EAAE;AACF,uEAAuE;AACvE,oEAAoE;AACpE,iEAAiE;AACjE,0BAA0B;AAE1B,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,0BAA0B,CAAA;AAGjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAwB;IAChD,cAAc,EAAE,mBAAmB;IACnC,WAAW,EAAE,oBAAoB;IACjC,cAAc,EAAE,uBAAuB;IACvC,aAAa,EAAE,sBAAsB;IACrC,cAAc,EAAE,uBAAuB;CAC1C,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalize-response-v2.d.ts","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/finalize-response-v2.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAapE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,eAAO,MAAM,yBAAyB;;;CAG5B,CAAA;AAsMV,MAAM,MAAM,wBAAwB,GAAG;IACnC,GAAG,EAAE,aAAa,CAAA;IAClB,SAAS,EAAE,mBAAmB,CAAA;CACjC,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,wBAAwB,GAChC,uBAAuB,CAuIzB"}
@@ -29,7 +29,7 @@
29
29
  // object is a forward-compat hook; the framework doesn't have a clean
30
30
  // way for `finalize.run` to consult the executor's accumulated failure
31
31
  // list (which would require widening `TStageContext`).
32
- import { STAGE_IDS, } from "../stages/schemas.js";
32
+ import { STAGE_IDS, } from "./stages/schemas.js";
33
33
  export const FINALIZE_V2_FAILURE_TEXTS = {
34
34
  noClaims: "No claims could be extracted from the input.",
35
35
  noConclusion: "No single conclusion could be selected.",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalize-response-v2.js","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/finalize-response-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { finalizeResponseV2, FINALIZE_V2_FAILURE_TEXTS, } from "./finalize-response-v2.js";
2
+ export type { TFinalizeResponseV2Input } from "./finalize-response-v2.js";
3
+ export { resolveLlmStageOptions } from "./resolve-llm-stage-options.js";
4
+ export { basicsExtension } from "./basics-extension.js";
5
+ export type { TIngestionExtension, TIngestionInput, TIngestionLlmOptions, TLlmStageOptionsOverride, } from "./types.js";
6
+ export { deriveRoles } from "./role-derivation.js";
7
+ export type { TClaimRole, TDeriveRolesInput } from "./role-derivation.js";
8
+ export * from "./stages/index.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/index.ts"],"names":[],"mappings":"AAUA,OAAO,EACH,kBAAkB,EAClB,yBAAyB,GAC5B,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,YAAY,EACR,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,GAC3B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGzE,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,17 @@
1
+ // Barrel for the shared one-shot ingestion task contract + helpers.
2
+ // Subpath: @proposit/proposit-core/pipelines/base
3
+ //
4
+ // Holds the schemas + helpers every ingestion pipeline shares: the
5
+ // finalize assembler, the extension descriptor + LLM-options types, the
6
+ // default `basicsExtension`, role derivation, and the full stage set
7
+ // (factories, STAGE_IDS, schemas, *_DEFAULTS) — including the
8
+ // per-extension canonicalization schema builders and the
9
+ // fallback-conclusion helper alternate pipelines reuse.
10
+ export { finalizeResponseV2, FINALIZE_V2_FAILURE_TEXTS, } from "./finalize-response-v2.js";
11
+ export { resolveLlmStageOptions } from "./resolve-llm-stage-options.js";
12
+ export { basicsExtension } from "./basics-extension.js";
13
+ export { deriveRoles } from "./role-derivation.js";
14
+ // Stage factories, STAGE_IDS, schemas, *_DEFAULTS, the newly-exported
15
+ // per-extension schema builders, and the fallback-conclusion helper.
16
+ export * from "./stages/index.js";
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,kDAAkD;AAClD,EAAE;AACF,mEAAmE;AACnE,wEAAwE;AACxE,qEAAqE;AACrE,8DAA8D;AAC9D,yDAAyD;AACzD,wDAAwD;AAExD,OAAO,EACH,kBAAkB,EAClB,yBAAyB,GAC5B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAOvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,sEAAsE;AACtE,qEAAqE;AACrE,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-llm-stage-options.d.ts","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/resolve-llm-stage-options.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAEhF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,wBAAwB,EACzC,OAAO,CAAC,EAAE,oBAAoB,GAC/B,wBAAwB,CAkC1B"}
@@ -1,7 +1,7 @@
1
1
  // Shared resolver for per-stage LLM-knob options.
2
2
  //
3
- // The ingestion pipelines (`createIngestionV1Pipeline`,
4
- // `createIngestionV2Pipeline`) expose a `TIngestionLlmOptions`
3
+ // The ingestion pipelines (`createScholarPipeline`,
4
+ // `createScribePipeline`) expose a `TIngestionLlmOptions`
5
5
  // surface with pipeline-level `defaults` + per-stage `overrides`.
6
6
  // Each LLM stage in turn carries its own *internal default* — the
7
7
  // model + effort + token cap the stage author picked for typical
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-llm-stage-options.js","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/resolve-llm-stage-options.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,oDAAoD;AACpD,0DAA0D;AAC1D,kEAAkE;AAClE,kEAAkE;AAClE,iEAAiE;AACjE,kEAAkE;AAClE,wDAAwD;AAIxD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAClC,OAAe,EACf,eAAyC,EACzC,OAA8B;IAE9B,MAAM,eAAe,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAA;IAC/C,MAAM,QAAQ,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IACpD,MAAM,QAAQ,GAA6B,EAAE,GAAG,eAAe,EAAE,CAAA;IACjE,IAAI,eAAe,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAA;IAC9D,CAAC;IACD,IAAI,eAAe,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAA;IAC9D,CAAC;IACD,IAAI,eAAe,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAA;IAC1C,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAA;IACvD,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAA;IACvD,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;IACnC,CAAC;IACD,oEAAoE;IACpE,+DAA+D;IAC/D,+DAA+D;IAC/D,8DAA8D;IAC9D,gBAAgB;IAChB,IAAI,eAAe,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAA;IAC1C,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;IACnC,CAAC;IACD,OAAO,QAAQ,CAAA;AACnB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-derivation.d.ts","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/role-derivation.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEjE,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,CAAA;AAElE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACvB,KAAK,EAAE,iBAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAM5B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-derivation.js","sourceRoot":"","sources":["../../../../src/extensions/pipelines/base/role-derivation.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,8DAA8D;AAC9D,uEAAuE;AACvE,EAAE;AACF,8DAA8D;AAC9D,mEAAmE;AACnE,kEAAkE;AAClE,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,mEAAmE;AACnE,sEAAsE;AACtE,4DAA4D;AAC5D,0CAA0C;AAU1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CACvB,KAAwB;IAExB,MAAM,GAAG,GAA+B,EAAE,CAAA;IAC1C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type TAxiomIndicatorDetectionOutput } from "./schemas.js";
2
- import type { TStage } from "../../../lib/pipelines/types.js";
3
- import type { TLlmStageOptionsOverride } from "../shared/types.js";
2
+ import type { TStage } from "../../../../lib/pipelines/types.js";
3
+ import type { TLlmStageOptionsOverride } from "../types.js";
4
4
  export declare const AXIOM_INDICATOR_DETECTION_MODEL = "gpt-5.4-mini";
5
5
  export declare const AXIOM_INDICATOR_DETECTION_SYSTEM_PROMPT = "You scan the segments of an argument for axiom indicators \u2014 explicit signals that the author is invoking a self-evident truth as bottom-level support.\n\nRecognized indicator patterns include (non-exhaustive):\n- \"by definition\"\n- \"tautologically\", \"necessarily true\"\n- \"by convention\"\n- \"is true a priori\"\n- \"as a matter of (logic | mathematics | definition)\"\n- \"trivially\"\n\nReturn an object with a single key `axioms` whose value is the array of detected indicators. For each detected indicator emit:\n- a fresh \"axiomId\" (ax1, ax2, ...)\n- the list of \"segmentIds\" the indicator occurs in (usually one; sometimes two when the indicator straddles a clause)\n- the \"indicator\" \u2014 the verbatim trigger phrase\n- the character \"spans\" \u2014 one span object (\"start\" inclusive, \"end\" exclusive) per occurrence, relative to the SEGMENT'S TEXT\n\nHedging phrases (\"clearly\", \"obviously\", \"of course\") are NOT axiom indicators on their own \u2014 they are stylistic emphasis. Return `{ \"axioms\": [] }` when no indicators are present.";
6
6
  /** Internal default knobs for the axiom-indicator-detection stage. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axiom-indicator-detection.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/pipelines/base/stages/axiom-indicator-detection.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,8BAA8B,EAEtC,MAAM,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,oCAAoC,CAAA;AAC/E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAE3D,eAAO,MAAM,+BAA+B,iBAAiB,CAAA;AAE7D,eAAO,MAAM,uCAAuC,4jCAgBmI,CAAA;AAavL,sEAAsE;AACtE,eAAO,MAAM,wCAAwC,EAAE,wBAGlD,CAAA;AAEL,gFAAgF;AAChF,wBAAgB,kCAAkC,CAC9C,OAAO,CAAC,EAAE,wBAAwB,GACnC,MAAM,CAAC,8BAA8B,CAAC,CAWxC;AAED,iDAAiD;AACjD,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,8BAA8B,CACxC,CAAA"}
@@ -3,7 +3,7 @@
3
3
  // some claim. Phrases like "by definition", "by convention",
4
4
  // "as a matter of logic", "is necessarily true" mark the spots.
5
5
  import { STAGE_IDS, AxiomIndicatorDetectionOutputSchema, } from "./schemas.js";
6
- import { llmStage } from "../../../lib/pipelines/stage-helpers.js";
6
+ import { llmStage } from "../../../../lib/pipelines/stage-helpers.js";
7
7
  export const AXIOM_INDICATOR_DETECTION_MODEL = "gpt-5.4-mini";
8
8
  export const AXIOM_INDICATOR_DETECTION_SYSTEM_PROMPT = `You scan the segments of an argument for axiom indicators — explicit signals that the author is invoking a self-evident truth as bottom-level support.
9
9
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axiom-indicator-detection.js","sourceRoot":"","sources":["../../../../../src/extensions/pipelines/base/stages/axiom-indicator-detection.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,sEAAsE;AACtE,6DAA6D;AAC7D,gEAAgE;AAEhE,OAAO,EACH,SAAS,EACT,mCAAmC,GAGtC,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAA;AAIrE,MAAM,CAAC,MAAM,+BAA+B,GAAG,cAAc,CAAA;AAE7D,MAAM,CAAC,MAAM,uCAAuC,GAAG;;;;;;;;;;;;;;;;uLAgBgI,CAAA;AAEvL,SAAS,WAAW,CAAC,GAAkB;IACnC,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAsB,SAAS,CAAC,YAAY,CAAC,CAAA;IACzE,MAAM,QAAQ,GAAG,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAA;IAC7C,MAAM,gBAAgB,GAAG,QAAQ;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC,CAAA;IACf,MAAM,YAAY,GAAG,kBAAkB,SAAS,CAAC,uBAAuB,SAAS,uCAAuC,EAAE,CAAA;IAC1H,MAAM,IAAI,GAAG,gBAAgB,gBAAgB,mCAAmC,CAAA;IAChF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;AACzC,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,wCAAwC,GACjD;IACI,KAAK,EAAE,+BAA+B;CACzC,CAAA;AAEL,gFAAgF;AAChF,MAAM,UAAU,kCAAkC,CAC9C,OAAkC;IAElC,OAAO,QAAQ,CAAiC;QAC5C,EAAE,EAAE,SAAS,CAAC,uBAAuB;QACrC,SAAS,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC;QACnC,YAAY,EAAE,mCAAmC;QACjD,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,+BAA+B;QACxD,eAAe,EAAE,OAAO,EAAE,eAAe;QACzC,eAAe,EAAE,OAAO,EAAE,eAAe;QACzC,KAAK,EAAE,OAAO,EAAE,KAAK;QACrB,WAAW;KACd,CAAC,CAAA;AACN,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,MAAM,4BAA4B,GACrC,kCAAkC,EAAE,CAAA"}