@x12i/memorix-service 3.1.0 → 3.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 (90) hide show
  1. package/dist/ai-services/associate-prep.d.ts +37 -0
  2. package/dist/ai-services/associate-prep.d.ts.map +1 -0
  3. package/dist/ai-services/associate-prep.js +208 -0
  4. package/dist/ai-services/associate-prep.js.map +1 -0
  5. package/dist/ai-services/chunk-markdown.d.ts +22 -0
  6. package/dist/ai-services/chunk-markdown.d.ts.map +1 -0
  7. package/dist/ai-services/chunk-markdown.js +159 -0
  8. package/dist/ai-services/chunk-markdown.js.map +1 -0
  9. package/dist/ai-services/client.d.ts +1 -1
  10. package/dist/ai-services/client.d.ts.map +1 -1
  11. package/dist/ai-services/client.js +2 -2
  12. package/dist/ai-services/client.js.map +1 -1
  13. package/dist/ai-services/normalize-output.d.ts +7 -1
  14. package/dist/ai-services/normalize-output.d.ts.map +1 -1
  15. package/dist/ai-services/normalize-output.js +340 -60
  16. package/dist/ai-services/normalize-output.js.map +1 -1
  17. package/dist/ai-services/skill-execution.d.ts +3 -2
  18. package/dist/ai-services/skill-execution.d.ts.map +1 -1
  19. package/dist/ai-services/skill-execution.js +24 -4
  20. package/dist/ai-services/skill-execution.js.map +1 -1
  21. package/dist/app.d.ts.map +1 -1
  22. package/dist/app.js +4 -0
  23. package/dist/app.js.map +1 -1
  24. package/dist/connector-catalog.d.ts +68 -0
  25. package/dist/connector-catalog.d.ts.map +1 -0
  26. package/dist/connector-catalog.js +258 -0
  27. package/dist/connector-catalog.js.map +1 -0
  28. package/dist/connector-role.d.ts +22 -0
  29. package/dist/connector-role.d.ts.map +1 -0
  30. package/dist/connector-role.js +71 -0
  31. package/dist/connector-role.js.map +1 -0
  32. package/dist/destination-runtime.d.ts +8 -0
  33. package/dist/destination-runtime.d.ts.map +1 -0
  34. package/dist/destination-runtime.js +11 -0
  35. package/dist/destination-runtime.js.map +1 -0
  36. package/dist/execution-target.d.ts +141 -0
  37. package/dist/execution-target.d.ts.map +1 -0
  38. package/dist/execution-target.js +853 -0
  39. package/dist/execution-target.js.map +1 -0
  40. package/dist/generic-connectors.d.ts +41 -0
  41. package/dist/generic-connectors.d.ts.map +1 -0
  42. package/dist/generic-connectors.js +158 -0
  43. package/dist/generic-connectors.js.map +1 -0
  44. package/dist/jobs-scope.d.ts +21 -0
  45. package/dist/jobs-scope.d.ts.map +1 -0
  46. package/dist/jobs-scope.js +83 -0
  47. package/dist/jobs-scope.js.map +1 -0
  48. package/dist/live.d.ts +11 -0
  49. package/dist/live.d.ts.map +1 -1
  50. package/dist/live.js +700 -73
  51. package/dist/live.js.map +1 -1
  52. package/dist/openapi/openapi.json +3445 -791
  53. package/dist/pipeline-compile.d.ts +35 -1
  54. package/dist/pipeline-compile.d.ts.map +1 -1
  55. package/dist/pipeline-compile.js +408 -87
  56. package/dist/pipeline-compile.js.map +1 -1
  57. package/dist/pipeline-invoke.d.ts +63 -0
  58. package/dist/pipeline-invoke.d.ts.map +1 -0
  59. package/dist/pipeline-invoke.js +114 -0
  60. package/dist/pipeline-invoke.js.map +1 -0
  61. package/dist/pipeline-ports.d.ts +13 -0
  62. package/dist/pipeline-ports.d.ts.map +1 -0
  63. package/dist/pipeline-ports.js +104 -0
  64. package/dist/pipeline-ports.js.map +1 -0
  65. package/dist/platform.d.ts +30 -1
  66. package/dist/platform.d.ts.map +1 -1
  67. package/dist/platform.js +228 -6
  68. package/dist/platform.js.map +1 -1
  69. package/dist/routes/connector-invocations.d.ts.map +1 -1
  70. package/dist/routes/connector-invocations.js +18 -21
  71. package/dist/routes/connector-invocations.js.map +1 -1
  72. package/dist/routes/jobs.d.ts +4 -0
  73. package/dist/routes/jobs.d.ts.map +1 -0
  74. package/dist/routes/jobs.js +888 -0
  75. package/dist/routes/jobs.js.map +1 -0
  76. package/dist/routes/memory.d.ts.map +1 -1
  77. package/dist/routes/memory.js +143 -79
  78. package/dist/routes/memory.js.map +1 -1
  79. package/dist/routes/pipelines.d.ts.map +1 -1
  80. package/dist/routes/pipelines.js +98 -22
  81. package/dist/routes/pipelines.js.map +1 -1
  82. package/dist/routes/relationships.d.ts.map +1 -1
  83. package/dist/routes/relationships.js +80 -2
  84. package/dist/routes/relationships.js.map +1 -1
  85. package/dist/runx/client.d.ts +18 -0
  86. package/dist/runx/client.d.ts.map +1 -0
  87. package/dist/runx/client.js +59 -0
  88. package/dist/runx/client.js.map +1 -0
  89. package/openapi/openapi.json +3445 -791
  90. package/package.json +10 -8
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Shared KnowX associate input prep — slim catalog, cap size, chunk drafts,
3
+ * merge classification / relationshipPlans across chunk invokes.
4
+ *
5
+ * Keep env knobs aligned with memorix-knowx-pack/src/associate-ai.ts:
6
+ * KNOWX_AI_ASSOC_EXISTING_CAP (default 48)
7
+ * KNOWX_AI_ASSOC_DRAFT_CHUNK (default 4)
8
+ * KNOWX_AI_ASSOC_SUMMARY_CHARS (default 120)
9
+ *
10
+ * Large fat catalogs (full refs/provenance + long summaries) have caused the
11
+ * ai-skills companion to return ok:true with empty rawText after burning the
12
+ * full completion budget — keep prompts tight.
13
+ */
14
+ export declare function associateExistingCap(): number;
15
+ export declare function associateDraftChunkSize(): number;
16
+ export declare function associateSummaryChars(): number;
17
+ /** Slim a knowx API / draft record for the associate prompt. */
18
+ export declare function slimKnowxForAssociate(raw: unknown, opts?: {
19
+ keepRefs?: boolean;
20
+ }): Record<string, unknown> | null;
21
+ export declare function draftKey(raw: unknown): string | null;
22
+ /**
23
+ * Slim + exclude current drafts + cap existing catalog for associate prompt.
24
+ */
25
+ export declare function prepareExistingKnowxForAssociate(input: {
26
+ existing: unknown[];
27
+ draftKeys?: Set<string>;
28
+ cap?: number;
29
+ }): Record<string, unknown>[];
30
+ export declare function slimDraftsForAssociate(drafts: unknown[]): Record<string, unknown>[];
31
+ export declare function chunkArray<T>(items: T[], size: number): T[][];
32
+ /**
33
+ * Merge chunked associate outputs; synthesize knowx-contradicts from
34
+ * classification.contradicts when plans omit them.
35
+ */
36
+ export declare function mergeAssociateOutputs(chunks: Array<Record<string, unknown>>): Record<string, unknown>;
37
+ //# sourceMappingURL=associate-prep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"associate-prep.d.ts","sourceRoot":"","sources":["../../src/ai-services/associate-prep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AASD,gEAAgE;AAChE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAyBhC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOpD;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAe5B;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAYnF;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAO7D;AAqBD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2EzB"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Shared KnowX associate input prep — slim catalog, cap size, chunk drafts,
3
+ * merge classification / relationshipPlans across chunk invokes.
4
+ *
5
+ * Keep env knobs aligned with memorix-knowx-pack/src/associate-ai.ts:
6
+ * KNOWX_AI_ASSOC_EXISTING_CAP (default 48)
7
+ * KNOWX_AI_ASSOC_DRAFT_CHUNK (default 4)
8
+ * KNOWX_AI_ASSOC_SUMMARY_CHARS (default 120)
9
+ *
10
+ * Large fat catalogs (full refs/provenance + long summaries) have caused the
11
+ * ai-skills companion to return ok:true with empty rawText after burning the
12
+ * full completion budget — keep prompts tight.
13
+ */
14
+ function asRecord(v) {
15
+ return v && typeof v === "object" && !Array.isArray(v)
16
+ ? v
17
+ : null;
18
+ }
19
+ function envInt(name, fallback) {
20
+ const raw = process.env[name]?.trim();
21
+ if (!raw)
22
+ return fallback;
23
+ const n = Number(raw);
24
+ return Number.isFinite(n) && n > 0 ? Math.floor(n) : fallback;
25
+ }
26
+ export function associateExistingCap() {
27
+ return envInt("KNOWX_AI_ASSOC_EXISTING_CAP", 48);
28
+ }
29
+ export function associateDraftChunkSize() {
30
+ return envInt("KNOWX_AI_ASSOC_DRAFT_CHUNK", 4);
31
+ }
32
+ export function associateSummaryChars() {
33
+ return envInt("KNOWX_AI_ASSOC_SUMMARY_CHARS", 120);
34
+ }
35
+ function clipSummary(value, maxChars) {
36
+ if (typeof value !== "string")
37
+ return undefined;
38
+ const t = value.trim();
39
+ if (!t)
40
+ return undefined;
41
+ return t.length <= maxChars ? t : `${t.slice(0, maxChars - 1)}…`;
42
+ }
43
+ /** Slim a knowx API / draft record for the associate prompt. */
44
+ export function slimKnowxForAssociate(raw, opts) {
45
+ const rec = asRecord(raw);
46
+ if (!rec)
47
+ return null;
48
+ const recordId = String(rec.recordId ?? "").trim();
49
+ if (!recordId)
50
+ return null;
51
+ const data = asRecord(rec.data) ?? {};
52
+ const objectType = String(rec.objectType ?? "content").trim() || "content";
53
+ const identity = asRecord(data.identity);
54
+ const dataOut = {
55
+ kind: data.kind,
56
+ label: data.label,
57
+ summary: clipSummary(data.summary, associateSummaryChars()),
58
+ };
59
+ if (identity?.category != null) {
60
+ dataOut.identity = { category: identity.category };
61
+ }
62
+ // Refs only on drafts when needed — catalog refs bloat prompts hard.
63
+ if (opts?.keepRefs && data.refs != null) {
64
+ dataOut.refs = data.refs;
65
+ }
66
+ return {
67
+ objectType,
68
+ recordId,
69
+ data: dataOut,
70
+ };
71
+ }
72
+ export function draftKey(raw) {
73
+ const rec = asRecord(raw);
74
+ if (!rec)
75
+ return null;
76
+ const recordId = String(rec.recordId ?? "").trim();
77
+ if (!recordId)
78
+ return null;
79
+ const objectType = String(rec.objectType ?? "content").trim() || "content";
80
+ return `${objectType}::${recordId}`;
81
+ }
82
+ /**
83
+ * Slim + exclude current drafts + cap existing catalog for associate prompt.
84
+ */
85
+ export function prepareExistingKnowxForAssociate(input) {
86
+ const cap = input.cap ?? associateExistingCap();
87
+ const out = [];
88
+ const seen = new Set();
89
+ for (const raw of input.existing) {
90
+ const slim = slimKnowxForAssociate(raw, { keepRefs: false });
91
+ if (!slim)
92
+ continue;
93
+ const key = draftKey(slim);
94
+ if (!key || seen.has(key))
95
+ continue;
96
+ if (input.draftKeys?.has(key))
97
+ continue;
98
+ seen.add(key);
99
+ out.push(slim);
100
+ if (out.length >= cap)
101
+ break;
102
+ }
103
+ return out;
104
+ }
105
+ export function slimDraftsForAssociate(drafts) {
106
+ const out = [];
107
+ const seen = new Set();
108
+ for (const raw of drafts) {
109
+ const slim = slimKnowxForAssociate(raw, { keepRefs: true });
110
+ if (!slim)
111
+ continue;
112
+ const key = draftKey(slim);
113
+ if (!key || seen.has(key))
114
+ continue;
115
+ seen.add(key);
116
+ out.push(slim);
117
+ }
118
+ return out;
119
+ }
120
+ export function chunkArray(items, size) {
121
+ const n = size > 0 ? size : 8;
122
+ const chunks = [];
123
+ for (let i = 0; i < items.length; i += n) {
124
+ chunks.push(items.slice(i, i + n));
125
+ }
126
+ return chunks.length ? chunks : [[]];
127
+ }
128
+ function planKey(p) {
129
+ return `${p.definitionId}|${p.from?.objectType}::${p.from?.recordId}|${p.to?.objectType}::${p.to?.recordId}`;
130
+ }
131
+ /**
132
+ * Merge chunked associate outputs; synthesize knowx-contradicts from
133
+ * classification.contradicts when plans omit them.
134
+ */
135
+ export function mergeAssociateOutputs(chunks) {
136
+ const known = [];
137
+ const novel = [];
138
+ const contradicts = [];
139
+ const plans = [];
140
+ const seenPlans = new Set();
141
+ const pushPlan = (p) => {
142
+ const key = planKey(p);
143
+ if (!p.definitionId || !p.from?.recordId || !p.to?.recordId)
144
+ return;
145
+ if (seenPlans.has(key))
146
+ return;
147
+ seenPlans.add(key);
148
+ plans.push(p);
149
+ };
150
+ for (const chunk of chunks) {
151
+ const classification = asRecord(chunk.classification);
152
+ if (classification) {
153
+ if (Array.isArray(classification.known)) {
154
+ known.push(...classification.known);
155
+ }
156
+ if (Array.isArray(classification.novel)) {
157
+ novel.push(...classification.novel);
158
+ }
159
+ if (Array.isArray(classification.contradicts)) {
160
+ contradicts.push(...classification.contradicts);
161
+ }
162
+ }
163
+ if (Array.isArray(chunk.relationshipPlans)) {
164
+ for (const p of chunk.relationshipPlans) {
165
+ pushPlan(p);
166
+ }
167
+ }
168
+ }
169
+ for (const c of contradicts) {
170
+ if (!c.matchedRecordId || !c.draftRecordId)
171
+ continue;
172
+ pushPlan({
173
+ definitionId: "knowx-contradicts",
174
+ from: {
175
+ objectType: c.objectType || "content",
176
+ recordId: c.draftRecordId,
177
+ },
178
+ to: {
179
+ objectType: c.matchedObjectType || c.objectType || "content",
180
+ recordId: c.matchedRecordId,
181
+ },
182
+ reason: c.reason || "classification.contradicts",
183
+ });
184
+ }
185
+ for (const k of known) {
186
+ if (!k.matchedRecordId || !k.draftRecordId)
187
+ continue;
188
+ pushPlan({
189
+ definitionId: "knowx-same-as",
190
+ from: {
191
+ objectType: k.objectType || "content",
192
+ recordId: k.draftRecordId,
193
+ },
194
+ to: {
195
+ objectType: k.matchedObjectType || k.objectType || "content",
196
+ recordId: k.matchedRecordId,
197
+ },
198
+ reason: k.reason || "classification.known",
199
+ });
200
+ }
201
+ return {
202
+ classification: { known, novel, contradicts },
203
+ relationshipPlans: plans,
204
+ kind: "ai-services",
205
+ live: true,
206
+ };
207
+ }
208
+ //# sourceMappingURL=associate-prep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"associate-prep.js","sourceRoot":"","sources":["../../src/ai-services/associate-prep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Token-bounded markdown chunking for KnowX AI extract fan-out.
3
+ * Mirrors @x12i/memorix-knowx-pack content/chunk (keep in sync).
4
+ */
5
+ /** ~1k tokens keeps OpenRouter cheap/default under its ~120s provider timeout. */
6
+ export declare const DEFAULT_CHUNK_TARGET_TOKENS = 1000;
7
+ export declare const DEFAULT_CHUNK_OVERLAP_RATIO = 0.1;
8
+ export type MarkdownChunk = {
9
+ index: number;
10
+ count: number;
11
+ text: string;
12
+ pageStart?: number;
13
+ pageEnd?: number;
14
+ approxTokens: number;
15
+ };
16
+ export type ChunkMarkdownOptions = {
17
+ targetTokens?: number;
18
+ overlapRatio?: number;
19
+ };
20
+ export declare function chunkMarkdown(markdown: string, opts?: ChunkMarkdownOptions): MarkdownChunk[];
21
+ export declare function markdownApproxTokens(markdown: string): number;
22
+ //# sourceMappingURL=chunk-markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-markdown.d.ts","sourceRoot":"","sources":["../../src/ai-services/chunk-markdown.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kFAAkF;AAClF,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AA0CF,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,aAAa,EAAE,CAoHjB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Token-bounded markdown chunking for KnowX AI extract fan-out.
3
+ * Mirrors @x12i/memorix-knowx-pack content/chunk (keep in sync).
4
+ */
5
+ /** ~1k tokens keeps OpenRouter cheap/default under its ~120s provider timeout. */
6
+ export const DEFAULT_CHUNK_TARGET_TOKENS = 1000;
7
+ export const DEFAULT_CHUNK_OVERLAP_RATIO = 0.1;
8
+ const PAGE_RE = /<!--\s*page:(\d+)\s*-->/i;
9
+ const HEADING_RE = /^#{1,6}\s+\S/;
10
+ function approxTokenCount(text) {
11
+ const n = text.length;
12
+ if (n <= 0)
13
+ return 0;
14
+ return Math.ceil(n / 4);
15
+ }
16
+ function splitIntoSegments(markdown) {
17
+ const lines = markdown.replace(/\r\n/g, "\n").replace(/\r/g, "\n").split("\n");
18
+ const segments = [];
19
+ let buf = [];
20
+ let page;
21
+ const flush = () => {
22
+ const text = buf.join("\n").trim();
23
+ if (text)
24
+ segments.push({ text, page });
25
+ buf = [];
26
+ };
27
+ for (const line of lines) {
28
+ const pageMatch = PAGE_RE.exec(line);
29
+ if (pageMatch) {
30
+ flush();
31
+ page = Number(pageMatch[1]);
32
+ buf.push(line);
33
+ continue;
34
+ }
35
+ if (HEADING_RE.test(line) && buf.length > 0) {
36
+ flush();
37
+ }
38
+ buf.push(line);
39
+ }
40
+ flush();
41
+ return segments.length ? segments : [{ text: markdown.trim() }];
42
+ }
43
+ export function chunkMarkdown(markdown, opts) {
44
+ const target = Math.max(200, opts?.targetTokens ?? DEFAULT_CHUNK_TARGET_TOKENS);
45
+ const overlapRatio = Math.min(0.5, Math.max(0, opts?.overlapRatio ?? DEFAULT_CHUNK_OVERLAP_RATIO));
46
+ const overlapTokens = Math.floor(target * overlapRatio);
47
+ const trimmed = markdown.trim();
48
+ if (!trimmed)
49
+ return [];
50
+ const segments = splitIntoSegments(trimmed);
51
+ const pieces = [];
52
+ let cur = [];
53
+ let curTokens = 0;
54
+ let pageStart;
55
+ let pageEnd;
56
+ const pushPiece = () => {
57
+ if (!cur.length)
58
+ return;
59
+ const text = cur.join("\n\n").trim();
60
+ if (!text) {
61
+ cur = [];
62
+ curTokens = 0;
63
+ pageStart = undefined;
64
+ pageEnd = undefined;
65
+ return;
66
+ }
67
+ pieces.push({ text, pageStart, pageEnd });
68
+ if (overlapTokens > 0 && text.length) {
69
+ const overlapChars = Math.max(80, overlapTokens * 4);
70
+ const tail = text.slice(Math.max(0, text.length - overlapChars));
71
+ cur = [tail];
72
+ curTokens = approxTokenCount(tail);
73
+ pageStart = pageEnd;
74
+ }
75
+ else {
76
+ cur = [];
77
+ curTokens = 0;
78
+ pageStart = undefined;
79
+ pageEnd = undefined;
80
+ }
81
+ };
82
+ for (const seg of segments) {
83
+ const segTokens = approxTokenCount(seg.text);
84
+ if (cur.length === 0) {
85
+ pageStart = seg.page;
86
+ pageEnd = seg.page;
87
+ }
88
+ else if (seg.page != null) {
89
+ pageEnd = seg.page;
90
+ if (pageStart == null)
91
+ pageStart = seg.page;
92
+ }
93
+ if (curTokens > 0 && curTokens + segTokens > target) {
94
+ pushPiece();
95
+ if (cur.length === 0) {
96
+ pageStart = seg.page ?? pageStart;
97
+ pageEnd = seg.page ?? pageEnd;
98
+ }
99
+ else if (seg.page != null) {
100
+ pageEnd = seg.page;
101
+ }
102
+ }
103
+ if (segTokens > target && cur.length === 0) {
104
+ const parts = seg.text.split(/\n{2,}/);
105
+ let hard = [];
106
+ let hardTokens = 0;
107
+ for (const part of parts) {
108
+ const t = approxTokenCount(part);
109
+ if (hardTokens > 0 && hardTokens + t > target) {
110
+ pieces.push({
111
+ text: hard.join("\n\n").trim(),
112
+ pageStart: seg.page,
113
+ pageEnd: seg.page,
114
+ });
115
+ hard = [];
116
+ hardTokens = 0;
117
+ }
118
+ hard.push(part);
119
+ hardTokens += t;
120
+ }
121
+ if (hard.length) {
122
+ cur = hard;
123
+ curTokens = hardTokens;
124
+ pageStart = seg.page;
125
+ pageEnd = seg.page;
126
+ }
127
+ continue;
128
+ }
129
+ cur.push(seg.text);
130
+ curTokens += segTokens;
131
+ }
132
+ if (cur.length) {
133
+ const text = cur.join("\n\n").trim();
134
+ if (text)
135
+ pieces.push({ text, pageStart, pageEnd });
136
+ }
137
+ const cleaned = [];
138
+ for (const p of pieces) {
139
+ if (!p.text)
140
+ continue;
141
+ const prev = cleaned[cleaned.length - 1];
142
+ if (prev && prev.text === p.text)
143
+ continue;
144
+ cleaned.push(p);
145
+ }
146
+ const count = cleaned.length;
147
+ return cleaned.map((p, index) => ({
148
+ index,
149
+ count,
150
+ text: p.text,
151
+ pageStart: p.pageStart,
152
+ pageEnd: p.pageEnd,
153
+ approxTokens: approxTokenCount(p.text),
154
+ }));
155
+ }
156
+ export function markdownApproxTokens(markdown) {
157
+ return approxTokenCount(markdown);
158
+ }
159
+ //# sourceMappingURL=chunk-markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-markdown.js","sourceRoot":"","sources":["../../src/ai-services/chunk-markdown.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare function createAiServicesClient(opts?: AiServicesClientOptions):
17
17
  cursor?: string;
18
18
  }): Promise<AiServiceItemSummary[]>;
19
19
  getItem(baseUrl: string, id: string): Promise<AiServiceItemDetail>;
20
- invoke(baseUrl: string, request: AiServiceInvokeRequest, correlationId?: string): Promise<{
20
+ invoke(baseUrl: string, request: AiServiceInvokeRequest, correlationId?: string, timeoutMs?: number): Promise<{
21
21
  status: number;
22
22
  body: AiServiceInvokeResponse;
23
23
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ai-services/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAgCF,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,uBAA4B;uBAE5C,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;2BAS5D,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;uBAavD,MAAM,UACP;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACpE,OAAO,CAAC,oBAAoB,EAAE,CAAC;qBAmBX,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;oBAa7D,MAAM,WACN,sBAAsB,kBACf,MAAM,GACrB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,uBAAuB,CAAA;KAAE,CAAC;IAmB7D,wEAAwE;qBAE7D,MAAM,UACP,MAAM,QACR,MAAM,SACL,OAAO,kBACE,MAAM,cACV,MAAM,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;EAchD;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ai-services/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAgCF,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,uBAA4B;uBAE5C,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;2BAS5D,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;uBAavD,MAAM,UACP;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACpE,OAAO,CAAC,oBAAoB,EAAE,CAAC;qBAmBX,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;oBAa7D,MAAM,WACN,sBAAsB,kBACf,MAAM,cACV,MAAM,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,uBAAuB,CAAA;KAAE,CAAC;IAmB7D,wEAAwE;qBAE7D,MAAM,UACP,MAAM,QACR,MAAM,SACL,OAAO,kBACE,MAAM,cACV,MAAM,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;EAchD;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -70,13 +70,13 @@ export function createAiServicesClient(opts = {}) {
70
70
  }
71
71
  return body;
72
72
  },
73
- async invoke(baseUrl, request, correlationId) {
73
+ async invoke(baseUrl, request, correlationId, timeoutMs) {
74
74
  const cid = correlationId ?? request.correlationId;
75
75
  const { status, body } = await fetchJson(joinUrl(baseUrl, "/ai-services/v1/invoke"), {
76
76
  method: "POST",
77
77
  headers: jsonHeaders(cid),
78
78
  body: JSON.stringify(request),
79
- }, { ...opts, timeoutMs: opts.timeoutMs ?? 120_000 });
79
+ }, { ...opts, timeoutMs: timeoutMs ?? opts.timeoutMs ?? 120_000 });
80
80
  return {
81
81
  status,
82
82
  body: (body && typeof body === "object"
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ai-services/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ai-services/client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  /**
2
2
  * Unwrap AI-services/v1 invoke envelopes into KnowX / pipeline step bags.
3
- * Skills return RunSkillResponse under body.output; prefer parsed, then FlexMD payloads.
3
+ *
4
+ * B2: HTTP envelope is JSON; LLM body is Markdown / FlexMD. Structured fields live on
5
+ * output.parsed / output.flexMd.payloads after MD extraction when outputContract is used.
6
+ * Do not treat a model-emitted root JSON blob in rawText as the primary contract.
7
+ *
8
+ * Live companions may lowercase heading keys (`knowxdrafts`) and leave `@payload:` wrappers
9
+ * as strings — coalesce those into camelCase domain bags.
4
10
  */
5
11
  /** Extract structured domain object from a skill/function invoke response body. */
6
12
  export declare function extractAiServiceDomainOutput(invokeBody: unknown): Record<string, unknown> | null;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-output.d.ts","sourceRoot":"","sources":["../../src/ai-services/normalize-output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH,mFAAmF;AACnF,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAmEhG;AAED,MAAM,MAAM,8BAA8B,GACtC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,8BAA8B,CAsDhC"}
1
+ {"version":3,"file":"normalize-output.d.ts","sourceRoot":"","sources":["../../src/ai-services/normalize-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA+HH,mFAAmF;AACnF,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAkEhG;AAmID,MAAM,MAAM,8BAA8B,GACtC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,8BAA8B,CA8FhC"}