@cortexkit/opencode-magic-context 0.49.0 → 0.49.2
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.
- package/dist/{announcement-fp14dw0n.js → announcement-hdbkt8v5.js} +1 -1
- package/dist/auto-search-worker.js +3 -3
- package/dist/config/{mural-model-deprecation.d.ts → deprecated-config.d.ts} +4 -1
- package/dist/config/deprecated-config.d.ts.map +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/project-security.d.ts +2 -2
- package/dist/config/schema/magic-context.d.ts +4 -4
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/{conflict-warning-hook-kzx4dmk1.js → conflict-warning-hook-asnt6hfc.js} +3 -3
- package/dist/{context-nj5f293n.js → context-tfyhtdcs.js} +111 -45
- package/dist/{derive-budgets-qz5rrr08.js → derive-budgets-j4ry8j8n.js} +1 -1
- package/dist/{embedding-backfill-aetxv1vt.js → embedding-backfill-wyc3ykyf.js} +7 -7
- package/dist/embedding-worker-process.js +30 -0
- package/dist/embedding-worker.js +5 -5
- package/dist/features/magic-context/dreamer/task-registry.d.ts +2 -3
- package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-worker-client.d.ts +8 -1
- package/dist/features/magic-context/memory/embedding-worker-client.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-worker-process.d.ts +2 -0
- package/dist/features/magic-context/memory/embedding-worker-process.d.ts.map +1 -0
- package/dist/features/magic-context/memory/onnx-telemetry.d.ts +3 -0
- package/dist/features/magic-context/memory/onnx-telemetry.d.ts.map +1 -0
- package/dist/features/magic-context/overflow-detection.d.ts +1 -2
- package/dist/features/magic-context/overflow-detection.d.ts.map +1 -1
- package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -1
- package/dist/features/magic-context/transform-decision-log.d.ts +1 -1
- package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
- package/dist/features/magic-context/user-memory/storage-user-memory.d.ts +1 -0
- package/dist/features/magic-context/user-memory/storage-user-memory.d.ts.map +1 -1
- package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +1 -0
- package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts +1 -0
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-measured-request.d.ts +3 -1
- package/dist/hooks/magic-context/lkg-measured-request.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-persist.d.ts +8 -14
- package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-recovery-fence.d.ts +62 -0
- package/dist/hooks/magic-context/lkg-recovery-fence.d.ts.map +1 -0
- package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts +38 -0
- package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts.map +1 -0
- package/dist/hooks/magic-context/lkg-replay.d.ts +3 -1
- package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
- package/dist/hooks/magic-context/opaque-thinking.d.ts +12 -0
- package/dist/hooks/magic-context/opaque-thinking.d.ts.map +1 -0
- package/dist/hooks/magic-context/pass-outcome.d.ts +2 -2
- package/dist/hooks/magic-context/pending-materialization.d.ts +8 -0
- package/dist/hooks/magic-context/pending-materialization.d.ts.map +1 -0
- package/dist/hooks/magic-context/read-session-db.d.ts +3 -0
- package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
- package/dist/hooks/magic-context/rust-mode-transform.d.ts +1 -0
- package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/strip-content.d.ts +5 -2
- package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-date-refresh.d.ts +29 -0
- package/dist/hooks/magic-context/system-date-refresh.d.ts.map +1 -0
- package/dist/hooks/magic-context/system-prompt-dates.d.ts +6 -0
- package/dist/hooks/magic-context/system-prompt-dates.d.ts.map +1 -0
- package/dist/hooks/magic-context/system-prompt-delivery.d.ts +47 -0
- package/dist/hooks/magic-context/system-prompt-delivery.d.ts.map +1 -0
- package/dist/hooks/magic-context/system-prompt-hash.d.ts +4 -0
- package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
- package/dist/hooks/magic-context/tag-messages.d.ts +8 -0
- package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +2 -0
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +6 -0
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/{index-9qjqq45k.js → index-0pjvpfkf.js} +21 -1
- package/dist/index-6m7rdv7y.js +733 -0
- package/dist/{index-1r0k9js3.js → index-6tfxmc4n.js} +10 -10
- package/dist/{index-gzcmtmar.js → index-7w18gg78.js} +25 -1
- package/dist/{index-nm6a8xpd.js → index-att4bfan.js} +1 -1
- package/dist/{index-ezmszwbd.js → index-eypn4ba6.js} +7 -4
- package/dist/{index-ha87j7a8.js → index-fdtkt5r1.js} +6 -6
- package/dist/{index-kp5qe690.js → index-fg00p1cg.js} +38 -36
- package/dist/{index-1bc61ans.js → index-fvnzcnww.js} +44 -1
- package/dist/index-gbmqa9x9.js +1170 -0
- package/dist/{index-pxwp2hjk.js → index-gzky5rva.js} +30 -53
- package/dist/{index-kq57tdf0.js → index-k6xvbj2e.js} +255 -1075
- package/dist/{index-0w56v4fm.js → index-mw7c950g.js} +1 -1
- package/dist/{index-1g30axtz.js → index-p0n5ryq8.js} +82 -900
- package/dist/{index-b7mv1jx3.js → index-p1hnwfd8.js} +1 -1
- package/dist/{index-peshmj6h.js → index-r2zcs71c.js} +6 -4
- package/dist/{index-kmpvemph.js → index-rafsaxac.js} +2 -2
- package/dist/{index-stbr4ce6.js → index-s7fc0fkn.js} +1 -1
- package/dist/{index-hj2q50k0.js → index-sfhndpcb.js} +463 -6
- package/dist/index-sv0bb7vg.js +6972 -0
- package/dist/{index-57mrqed8.js → index-w23dh319.js} +17 -258
- package/dist/{index-9rt53q79.js → index-xgrwmj82.js} +1 -1
- package/dist/{index-h2py7207.js → index-xnanvj3w.js} +765 -1255
- package/dist/{index-2jcbj7r1.js → index-zfzdpeq2.js} +2269 -3802
- package/dist/{index-s4j7t92z.js → index-zg8yq4ya.js} +29 -744
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +209 -61
- package/dist/{message-index-bounded-h0mrd4pr.js → message-index-bounded-hqktkhdy.js} +7 -6
- package/dist/migration-worker.js +6 -5
- package/dist/plugin/hooks/create-session-hooks.d.ts +3 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/plugin/messages-transform.d.ts.map +1 -1
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/{project-embedding-registry-rtt0djyb.js → project-embedding-registry-0gv3h6y8.js} +6 -6
- package/dist/raw-ordinal-warmup-worker.js +1 -1
- package/dist/{read-session-chunk-ty89v75e.js → read-session-chunk-5mh0bh8y.js} +5 -4
- package/dist/{recomp-orchestrator-4f1yyd1q.js → recomp-orchestrator-kpkhkjhq.js} +20 -19
- package/dist/{search-pz4f4wge.js → search-p9w39qv4.js} +15 -14
- package/dist/{send-session-notification-38cd5dqt.js → send-session-notification-xffh3bbe.js} +2 -2
- package/dist/shared/models-dev-cache.d.ts.map +1 -1
- package/dist/shared/storage-file-mutex.d.ts +9 -0
- package/dist/shared/storage-file-mutex.d.ts.map +1 -0
- package/dist/shared/storage-permissions.d.ts +6 -0
- package/dist/shared/storage-permissions.d.ts.map +1 -1
- package/dist/shared/window-geometry.d.ts +9 -66
- package/dist/shared/window-geometry.d.ts.map +1 -1
- package/dist/standalone-plugin-marker.d.ts +8 -0
- package/dist/standalone-plugin-marker.d.ts.map +1 -0
- package/dist/tools/ctx-reduce/constants.d.ts +1 -2
- package/dist/tools/ctx-reduce/constants.d.ts.map +1 -1
- package/dist/tools/ctx-reduce/tools.d.ts +1 -1
- package/dist/tools/ctx-reduce/tools.d.ts.map +1 -1
- package/dist/{transform-postprocess-phase-tck4g20s.js → transform-postprocess-phase-481j5a7z.js} +20 -19
- package/dist/v2/auto-search-worker.js +3 -3
- package/dist/v2/{context-crbt6p1y.js → context-gsdtha5v.js} +873 -2122
- package/dist/v2/{derive-budgets-fgej9j46.js → derive-budgets-enckmg7y.js} +2 -2
- package/dist/v2/{embedding-backfill-ph1qfyn3.js → embedding-backfill-dbvjbcmm.js} +8 -9
- package/dist/v2/embedding-worker-process.js +29 -0
- package/dist/v2/embedding-worker.js +3 -4
- package/dist/v2/hooks/context.d.ts.map +1 -1
- package/dist/v2/hooks/copied-tag-notation.d.ts +19 -0
- package/dist/v2/hooks/copied-tag-notation.d.ts.map +1 -0
- package/dist/v2/hooks/payload.d.ts.map +1 -1
- package/dist/v2/hooks/system-prompt-response.d.ts +5 -0
- package/dist/v2/hooks/system-prompt-response.d.ts.map +1 -0
- package/dist/v2/{message-index-bounded-xwqdywxg.js → message-index-bounded-p6v0n8qh.js} +8 -7
- package/dist/v2/migration-worker.js +6 -5
- package/dist/v2/{project-embedding-registry-d6m7tyxr.js → project-embedding-registry-nyq7z8y6.js} +7 -8
- package/dist/v2/raw-ordinal-warmup-worker.js +2 -2
- package/dist/v2/{read-session-chunk-8p5mdryx.js → read-session-chunk-fhyfe4qa.js} +6 -5
- package/dist/v2/{recomp-orchestrator-ckfgt6wq.js → recomp-orchestrator-5xy7w136.js} +22 -22
- package/dist/v2/{search-ym8rehhz.js → search-j7bakcwa.js} +17 -17
- package/dist/v2/{send-session-notification-5m0yapqx.js → send-session-notification-f6v698r5.js} +2 -2
- package/dist/v2/{server-jvxzm1jy.js → server-1fszbabv.js} +28 -28
- package/dist/v2/{server-3j4d00kf.js → server-2htmbqbv.js} +25 -1
- package/dist/v2/{server-c5rrgrcd.js → server-4c7jt8gq.js} +25 -1
- package/dist/v2/{server-ycw9qqcy.js → server-4enr7s6x.js} +1 -1
- package/dist/v2/{server-v4mewb78.js → server-6tcrjfw8.js} +1 -1
- package/dist/v2/{server-x4hscabv.js → server-7spkq1y6.js} +2257 -3746
- package/dist/v2/{server-sa8jvrfc.js → server-7vkj6zhb.js} +29 -744
- package/dist/v2/{server-xwz4dqh9.js → server-8xmq9h3f.js} +30 -53
- package/dist/v2/{server-1tk82krw.js → server-bgzy0phk.js} +463 -6
- package/dist/v2/server-c7n2ftng.js +6860 -0
- package/dist/v2/server-cvgn49tr.js +733 -0
- package/dist/v2/{server-zm570tr2.js → server-cw6521wn.js} +232 -7
- package/dist/v2/{server-pj4pjv02.js → server-czb2rkpk.js} +21 -1
- package/dist/v2/{server-19zjmn02.js → server-d6g4whc2.js} +20 -14
- package/dist/v2/{server-1bc61ans.js → server-fvnzcnww.js} +44 -1
- package/dist/v2/{server-w32kmdez.js → server-kh958yj8.js} +3 -3
- package/dist/v2/{server-q4ph9bwn.js → server-mqvtz7wz.js} +7 -7
- package/dist/v2/{server-2s6ayq3t.js → server-ras2sxnc.js} +133 -13
- package/dist/v2/{server-ss95ky04.js → server-s2st631p.js} +1 -1
- package/dist/v2/{server-2s9qz6n7.js → server-t528t8qm.js} +1 -1
- package/dist/v2/{server-8k2agx29.js → server-vb7pbd9p.js} +17 -258
- package/dist/v2/{server-zp53y8js.js → server-zbxjj2mz.js} +2 -2
- package/dist/v2/server.d.ts.map +1 -1
- package/dist/v2/server.js +149 -5
- package/dist/v2/{storage-tags-8vw924zn.js → storage-tags-5yxrvkaf.js} +1 -1
- package/dist/v2/{wrapup-orchestrator-a7efxaax.js → wrapup-orchestrator-yem5422s.js} +28 -28
- package/dist/{wrapup-orchestrator-barbc6h9.js → wrapup-orchestrator-xvrr27ws.js} +21 -20
- package/package.json +4 -4
- package/src/config/{mural-model-deprecation.ts → deprecated-config.ts} +19 -0
- package/src/config/index.test.ts +15 -37
- package/src/config/index.ts +2 -3
- package/src/config/project-security.ts +3 -3
- package/src/config/schema/magic-context.ts +11 -7
- package/src/features/magic-context/dreamer/task-registry.ts +2 -3
- package/src/shared/models-dev-cache.ts +1 -7
- package/src/shared/sqlite-640-review.test.ts +5 -1
- package/src/shared/storage-file-mutex-review.test.ts +162 -0
- package/src/shared/storage-file-mutex.ts +130 -0
- package/src/shared/storage-permissions.ts +46 -0
- package/src/shared/window-geometry.test.ts +102 -236
- package/src/shared/window-geometry.ts +23 -413
- package/dist/config/mural-model-deprecation.d.ts.map +0 -1
- package/dist/index-2jgwttpt.js +0 -3269
- package/dist/index-mfkzp7qj.js +0 -229
- package/dist/v2/server-4ez8mntn.js +0 -3213
- package/dist/v2/server-mfkzp7qj.js +0 -229
- package/src/shared/__fixtures__/window-overlay.v1.json +0 -337
- /package/dist/{index-2pp04pmg.js → index-69vas84q.js} +0 -0
- /package/dist/v2/{index-2pp04pmg.js → index-69vas84q.js} +0 -0
package/dist/index-mfkzp7qj.js
DELETED
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
// src/shared/historian-tool-template.ts
|
|
2
|
-
class Parser {
|
|
3
|
-
source;
|
|
4
|
-
pos = 0;
|
|
5
|
-
constructor(source) {
|
|
6
|
-
this.source = source;
|
|
7
|
-
}
|
|
8
|
-
error() {
|
|
9
|
-
throw new Error(`Invalid tool expansion template at character ${this.pos + 1}`);
|
|
10
|
-
}
|
|
11
|
-
take(value) {
|
|
12
|
-
if (!this.source.startsWith(value, this.pos))
|
|
13
|
-
return false;
|
|
14
|
-
this.pos += value.length;
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
field() {
|
|
18
|
-
const match = /^[A-Za-z_][A-Za-z0-9_-]*/.exec(this.source.slice(this.pos));
|
|
19
|
-
if (!match)
|
|
20
|
-
return this.error();
|
|
21
|
-
this.pos += match[0].length;
|
|
22
|
-
return match[0];
|
|
23
|
-
}
|
|
24
|
-
quoted() {
|
|
25
|
-
const start = this.pos;
|
|
26
|
-
if (!this.take('"'))
|
|
27
|
-
return this.error();
|
|
28
|
-
while (this.pos < this.source.length) {
|
|
29
|
-
if (this.take("\\")) {
|
|
30
|
-
this.pos++;
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
if (this.take('"')) {
|
|
34
|
-
try {
|
|
35
|
-
return JSON.parse(this.source.slice(start, this.pos));
|
|
36
|
-
} catch {
|
|
37
|
-
return this.error();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
this.pos++;
|
|
41
|
-
}
|
|
42
|
-
return this.error();
|
|
43
|
-
}
|
|
44
|
-
integer() {
|
|
45
|
-
const match = /^\d+/.exec(this.source.slice(this.pos));
|
|
46
|
-
if (!match)
|
|
47
|
-
return this.error();
|
|
48
|
-
this.pos += match[0].length;
|
|
49
|
-
const n = Number(match[0]);
|
|
50
|
-
if (!Number.isSafeInteger(n))
|
|
51
|
-
return this.error();
|
|
52
|
-
return n;
|
|
53
|
-
}
|
|
54
|
-
expression(relative) {
|
|
55
|
-
const steps = [];
|
|
56
|
-
if (!(relative && this.take("."))) {
|
|
57
|
-
const root = this.field();
|
|
58
|
-
if (!relative && root !== "input" && root !== "output")
|
|
59
|
-
return this.error();
|
|
60
|
-
steps.push({ field: root });
|
|
61
|
-
}
|
|
62
|
-
while (true) {
|
|
63
|
-
if (this.take("[")) {
|
|
64
|
-
if (this.take("*]."))
|
|
65
|
-
steps.push({ project: this.field() });
|
|
66
|
-
else {
|
|
67
|
-
const index = this.integer();
|
|
68
|
-
if (!this.take("]"))
|
|
69
|
-
return this.error();
|
|
70
|
-
steps.push({ index });
|
|
71
|
-
}
|
|
72
|
-
} else if (this.source[this.pos] === "." && !/^\.(each\(|join\(|count(?:\.|\})|truncate\()/.test(this.source.slice(this.pos))) {
|
|
73
|
-
this.pos++;
|
|
74
|
-
steps.push({ field: this.field() });
|
|
75
|
-
if (this.source[this.pos] === "(")
|
|
76
|
-
return this.error();
|
|
77
|
-
} else
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
const expression = { steps };
|
|
81
|
-
if (this.take(".each(")) {
|
|
82
|
-
if (relative)
|
|
83
|
-
return this.error();
|
|
84
|
-
expression.each = parseTemplate(this.quoted(), true);
|
|
85
|
-
if (!this.take(")"))
|
|
86
|
-
return this.error();
|
|
87
|
-
}
|
|
88
|
-
if (this.take(".join(")) {
|
|
89
|
-
expression.join = this.quoted();
|
|
90
|
-
if (!this.take(")"))
|
|
91
|
-
return this.error();
|
|
92
|
-
}
|
|
93
|
-
if (this.take(".count")) {
|
|
94
|
-
if (expression.each || expression.join !== undefined)
|
|
95
|
-
return this.error();
|
|
96
|
-
expression.count = true;
|
|
97
|
-
}
|
|
98
|
-
if (this.take(".truncate(")) {
|
|
99
|
-
expression.cap = this.integer();
|
|
100
|
-
if (!this.take(")"))
|
|
101
|
-
return this.error();
|
|
102
|
-
}
|
|
103
|
-
if (!this.take("}"))
|
|
104
|
-
return this.error();
|
|
105
|
-
return expression;
|
|
106
|
-
}
|
|
107
|
-
template(relative) {
|
|
108
|
-
const nodes = [];
|
|
109
|
-
while (this.pos < this.source.length) {
|
|
110
|
-
const next = this.source.indexOf("${", this.pos);
|
|
111
|
-
if (next < 0) {
|
|
112
|
-
nodes.push(this.source.slice(this.pos));
|
|
113
|
-
break;
|
|
114
|
-
}
|
|
115
|
-
nodes.push(this.source.slice(this.pos, next));
|
|
116
|
-
this.pos = next + 2;
|
|
117
|
-
nodes.push(this.expression(relative));
|
|
118
|
-
}
|
|
119
|
-
return nodes;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
function parseTemplate(source, relative = false) {
|
|
123
|
-
return new Parser(source).template(relative);
|
|
124
|
-
}
|
|
125
|
-
function toolTemplateError(source) {
|
|
126
|
-
try {
|
|
127
|
-
parseTemplate(source);
|
|
128
|
-
return;
|
|
129
|
-
} catch (error) {
|
|
130
|
-
return error.message;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
var templates = new Map;
|
|
134
|
-
function compiled(source) {
|
|
135
|
-
if (!templates.has(source)) {
|
|
136
|
-
try {
|
|
137
|
-
templates.set(source, parseTemplate(source));
|
|
138
|
-
} catch {
|
|
139
|
-
templates.set(source, null);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return templates.get(source) ?? null;
|
|
143
|
-
}
|
|
144
|
-
function oneLine(value) {
|
|
145
|
-
return value.replace(/[\r\n\u2028\u2029]+/g, " ");
|
|
146
|
-
}
|
|
147
|
-
function truncate(value, cap, legacyPreview = false) {
|
|
148
|
-
const chars = Array.from(oneLine(value));
|
|
149
|
-
if (cap === undefined || chars.length <= cap)
|
|
150
|
-
return chars.join("");
|
|
151
|
-
if (legacyPreview)
|
|
152
|
-
return `${chars.slice(0, cap).join("")}…`;
|
|
153
|
-
let end = 0;
|
|
154
|
-
for (let i = 0;i < Math.min(cap, chars.length); i++) {
|
|
155
|
-
if (!".!?。!?".includes(chars[i]))
|
|
156
|
-
continue;
|
|
157
|
-
let next = i + 1;
|
|
158
|
-
while (next < chars.length && `"'”’)]`.includes(chars[next]))
|
|
159
|
-
next++;
|
|
160
|
-
if (next <= cap && ("。!?".includes(chars[i]) || next === chars.length || /[ \t]/.test(chars[next])))
|
|
161
|
-
end = next;
|
|
162
|
-
}
|
|
163
|
-
return `${end ? `${chars.slice(0, end).join("")} ` : ""}[… ${chars.length - end} more characters]`;
|
|
164
|
-
}
|
|
165
|
-
function scalar(value) {
|
|
166
|
-
if (value === undefined)
|
|
167
|
-
return "";
|
|
168
|
-
return typeof value === "string" ? value : compactJson(value);
|
|
169
|
-
}
|
|
170
|
-
function compactJson(value) {
|
|
171
|
-
if (Array.isArray(value))
|
|
172
|
-
return `[${value.map((v) => compactJson(v)).join(",")}]`;
|
|
173
|
-
if (value !== null && typeof value === "object")
|
|
174
|
-
return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${compactJson(value[key])}`).join(",")}}`;
|
|
175
|
-
return JSON.stringify(value) ?? "null";
|
|
176
|
-
}
|
|
177
|
-
function field(value, key) {
|
|
178
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.hasOwn(value, key) ? value[key] : undefined;
|
|
179
|
-
}
|
|
180
|
-
function render(nodes, root, legacyPreview) {
|
|
181
|
-
return nodes.map((node) => {
|
|
182
|
-
if (typeof node === "string")
|
|
183
|
-
return node;
|
|
184
|
-
const cap = node.cap ?? (legacyPreview ? 300 : undefined);
|
|
185
|
-
let value = root;
|
|
186
|
-
let list = false;
|
|
187
|
-
for (const step of node.steps) {
|
|
188
|
-
if ("field" in step)
|
|
189
|
-
value = list && Array.isArray(value) ? value.map((item) => field(item, step.field)) : field(value, step.field);
|
|
190
|
-
else if ("index" in step)
|
|
191
|
-
value = Array.isArray(value) ? value[step.index] : undefined;
|
|
192
|
-
else {
|
|
193
|
-
value = Array.isArray(value) ? value.map((item) => field(item, step.project)) : undefined;
|
|
194
|
-
list = true;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if (node.count)
|
|
198
|
-
return truncate(Array.isArray(value) ? String(value.length) : "", cap, legacyPreview);
|
|
199
|
-
if (node.each || list || node.join !== undefined) {
|
|
200
|
-
if (!Array.isArray(value))
|
|
201
|
-
return "";
|
|
202
|
-
const elements = value.slice(0, legacyPreview ? 10 : undefined).map((item) => truncate(node.each ? render(node.each, item, legacyPreview) : scalar(item), legacyPreview ? 300 : undefined, legacyPreview));
|
|
203
|
-
if (legacyPreview && value.length > 10)
|
|
204
|
-
elements.push(`… +${value.length - 10} more`);
|
|
205
|
-
return truncate(elements.join(node.join ?? (node.each ? "; " : ", ")), cap, legacyPreview);
|
|
206
|
-
}
|
|
207
|
-
return truncate(scalar(value), cap, legacyPreview);
|
|
208
|
-
}).join("");
|
|
209
|
-
}
|
|
210
|
-
function renderToolTemplate(source, input, output, legacyPreview = false) {
|
|
211
|
-
const nodes = compiled(source);
|
|
212
|
-
if (!nodes)
|
|
213
|
-
return null;
|
|
214
|
-
const text = typeof output === "string" ? output : output === undefined ? "" : compactJson(output);
|
|
215
|
-
let structured = output;
|
|
216
|
-
if (typeof output === "string") {
|
|
217
|
-
try {
|
|
218
|
-
const parsed = JSON.parse(output);
|
|
219
|
-
structured = parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : undefined;
|
|
220
|
-
} catch {
|
|
221
|
-
structured = undefined;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
const root = { input, output: structured };
|
|
225
|
-
const bareOutputNodes = nodes.map((node) => typeof node !== "string" && node.steps.length === 1 && ("field" in node.steps[0]) && node.steps[0].field === "output" && !node.each && !node.count && node.join === undefined ? truncate(text ?? "", node.cap ?? (legacyPreview ? 300 : undefined), legacyPreview) : node);
|
|
226
|
-
return truncate(render(bareOutputNodes, root, legacyPreview), legacyPreview ? 1000 : undefined, legacyPreview);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
export { toolTemplateError, renderToolTemplate };
|