@koda-sl/baker-bridge 0.49.0-dev.ea15b0199 → 0.50.0-dev.36aef87f5

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 (78) hide show
  1. package/README.md +11 -24
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.js +1 -1
  4. package/dist/hono/agent-session.d.ts +2 -2
  5. package/dist/hono/agent-session.d.ts.map +1 -1
  6. package/dist/hono/agent-session.js +2 -2
  7. package/dist/hono/agent-session.js.map +1 -1
  8. package/dist/hono/agent.d.ts +5 -4
  9. package/dist/hono/agent.d.ts.map +1 -1
  10. package/dist/hono/agent.js +30 -13
  11. package/dist/hono/agent.js.map +1 -1
  12. package/dist/hono/agent.test.js +21 -123
  13. package/dist/hono/agent.test.js.map +1 -1
  14. package/dist/hono/bridge-job.d.ts +13 -7
  15. package/dist/hono/bridge-job.d.ts.map +1 -1
  16. package/dist/hono/bridge-job.js +63 -36
  17. package/dist/hono/bridge-job.js.map +1 -1
  18. package/dist/hono/bridge-job.test.js +45 -72
  19. package/dist/hono/bridge-job.test.js.map +1 -1
  20. package/dist/hono/callback.d.ts.map +1 -1
  21. package/dist/hono/callback.js +2 -2
  22. package/dist/hono/callback.js.map +1 -1
  23. package/dist/hono/convex.d.ts +2 -3
  24. package/dist/hono/convex.d.ts.map +1 -1
  25. package/dist/hono/convex.js +3 -4
  26. package/dist/hono/convex.js.map +1 -1
  27. package/dist/hono/convex.test.js +4 -6
  28. package/dist/hono/convex.test.js.map +1 -1
  29. package/dist/hono/prompt-context.d.ts +3 -0
  30. package/dist/hono/prompt-context.d.ts.map +1 -0
  31. package/dist/hono/prompt-context.js +13 -0
  32. package/dist/hono/prompt-context.js.map +1 -0
  33. package/dist/hono/prompt-context.test.d.ts +2 -0
  34. package/dist/hono/prompt-context.test.d.ts.map +1 -0
  35. package/dist/hono/prompt-context.test.js +39 -0
  36. package/dist/hono/prompt-context.test.js.map +1 -0
  37. package/dist/hono/relay.d.ts +1 -3
  38. package/dist/hono/relay.d.ts.map +1 -1
  39. package/dist/hono/relay.js +1 -3
  40. package/dist/hono/relay.js.map +1 -1
  41. package/dist/hono/server.js +5 -5
  42. package/dist/hono/server.js.map +1 -1
  43. package/dist/hono/session-continuity.d.ts +1 -1
  44. package/dist/hono/session-continuity.d.ts.map +1 -1
  45. package/dist/hono/session-continuity.js.map +1 -1
  46. package/dist/hono/tag-input.d.ts +35 -7
  47. package/dist/hono/tag-input.d.ts.map +1 -1
  48. package/dist/hono/tag-input.js +78 -43
  49. package/dist/hono/tag-input.js.map +1 -1
  50. package/dist/hono/tag-input.test.js +72 -42
  51. package/dist/hono/tag-input.test.js.map +1 -1
  52. package/dist/hono/types.d.ts +1 -3
  53. package/dist/hono/types.d.ts.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/hono/chat-change.d.ts +0 -102
  56. package/dist/hono/chat-change.d.ts.map +0 -1
  57. package/dist/hono/chat-change.js +0 -50
  58. package/dist/hono/chat-change.js.map +0 -1
  59. package/dist/hono/guards/__tests__/google-ads-rsa.test.d.ts +0 -2
  60. package/dist/hono/guards/__tests__/google-ads-rsa.test.d.ts.map +0 -1
  61. package/dist/hono/guards/__tests__/google-ads-rsa.test.js +0 -65
  62. package/dist/hono/guards/__tests__/google-ads-rsa.test.js.map +0 -1
  63. package/dist/hono/guards/google-ads-rsa.d.ts +0 -3
  64. package/dist/hono/guards/google-ads-rsa.d.ts.map +0 -1
  65. package/dist/hono/guards/google-ads-rsa.js +0 -32
  66. package/dist/hono/guards/google-ads-rsa.js.map +0 -1
  67. package/dist/hono/guards.d.ts +0 -3
  68. package/dist/hono/guards.d.ts.map +0 -1
  69. package/dist/hono/guards.js +0 -9
  70. package/dist/hono/guards.js.map +0 -1
  71. package/dist/hono/turn-result.d.ts +0 -36
  72. package/dist/hono/turn-result.d.ts.map +0 -1
  73. package/dist/hono/turn-result.js +0 -207
  74. package/dist/hono/turn-result.js.map +0 -1
  75. package/dist/hono/turn-result.test.d.ts +0 -2
  76. package/dist/hono/turn-result.test.d.ts.map +0 -1
  77. package/dist/hono/turn-result.test.js +0 -63
  78. package/dist/hono/turn-result.test.js.map +0 -1
@@ -1,207 +0,0 @@
1
- import { CHANGE_ACTIONS, CHANGE_TYPES, chatChangeJsonSchema, DOCUMENT_FORMATS, REPORT_STATUSES, } from "./chat-change.js";
2
- function turnResultOutputFormat() {
3
- return {
4
- type: "json_schema",
5
- schema: {
6
- type: "object",
7
- additionalProperties: false,
8
- required: ["changes"],
9
- properties: {
10
- changes: {
11
- type: "array",
12
- description: "Full accumulated Chat Changes snapshot after this turn. Include only satisfied artifact changes. Return [] only when no satisfied artifact changes remain.",
13
- items: chatChangeJsonSchema,
14
- },
15
- summary: { type: "string" },
16
- notes: {
17
- type: "array",
18
- items: {
19
- type: "object",
20
- additionalProperties: false,
21
- required: ["kind", "message"],
22
- properties: {
23
- kind: { enum: ["info", "warning", "next_step"] },
24
- message: { type: "string" },
25
- },
26
- },
27
- },
28
- outputGuards: {
29
- type: "object",
30
- additionalProperties: false,
31
- properties: {
32
- googleAdsRsa: {
33
- type: "object",
34
- additionalProperties: false,
35
- required: ["assets"],
36
- properties: {
37
- assets: {
38
- type: "object",
39
- additionalProperties: false,
40
- properties: {
41
- headlines: { type: "array", items: { type: "string" } },
42
- descriptions: { type: "array", items: { type: "string" } },
43
- },
44
- },
45
- },
46
- },
47
- },
48
- },
49
- },
50
- },
51
- };
52
- }
53
- function isRecord(value) {
54
- return Boolean(value && typeof value === "object" && !Array.isArray(value));
55
- }
56
- function isChangeType(value) {
57
- return typeof value === "string" && CHANGE_TYPES.includes(value);
58
- }
59
- function isChangeAction(value) {
60
- return typeof value === "string" && CHANGE_ACTIONS.includes(value);
61
- }
62
- function isReportStatus(value) {
63
- return typeof value === "string" && REPORT_STATUSES.includes(value);
64
- }
65
- function isDocumentFormat(value) {
66
- return typeof value === "string" && DOCUMENT_FORMATS.includes(value);
67
- }
68
- function optionalString(source, key) {
69
- const value = source[key];
70
- return typeof value === "string" ? value : undefined;
71
- }
72
- function optionalNumber(source, key) {
73
- const value = source[key];
74
- return typeof value === "number" && Number.isFinite(value) ? value : undefined;
75
- }
76
- function optionalStringArray(source, key) {
77
- const value = source[key];
78
- if (value === undefined) {
79
- return [];
80
- }
81
- if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
82
- return null;
83
- }
84
- return value;
85
- }
86
- function normalizeOutputGuards(input) {
87
- if (input === undefined) {
88
- return undefined;
89
- }
90
- if (!isRecord(input)) {
91
- return null;
92
- }
93
- if (input.googleAdsRsa === undefined) {
94
- return {};
95
- }
96
- if (!isRecord(input.googleAdsRsa)) {
97
- return null;
98
- }
99
- const assets = input.googleAdsRsa.assets;
100
- if (!isRecord(assets)) {
101
- return null;
102
- }
103
- const headlines = optionalStringArray(assets, "headlines");
104
- const descriptions = optionalStringArray(assets, "descriptions");
105
- if (!headlines || !descriptions) {
106
- return null;
107
- }
108
- return { googleAdsRsa: { assets: { headlines, descriptions } } };
109
- }
110
- function normalizeChange(input) {
111
- if (!isRecord(input)) {
112
- return null;
113
- }
114
- const type = input.type;
115
- const action = input.action;
116
- const slug = typeof input.slug === "string" ? input.slug.trim() : "";
117
- if (!isChangeType(type) || !isChangeAction(action) || !slug) {
118
- return null;
119
- }
120
- const change = { type, slug, action };
121
- const contentVersion = optionalNumber(input, "contentVersion");
122
- if (contentVersion !== undefined)
123
- change.contentVersion = contentVersion;
124
- if (change.type === "document" && isDocumentFormat(input.format)) {
125
- change.format = input.format;
126
- }
127
- if (change.type !== "report") {
128
- return change;
129
- }
130
- const status = input.status;
131
- if (isReportStatus(status)) {
132
- change.status = status;
133
- }
134
- for (const key of ["title", "description", "intent", "sourcePath", "errorMessage"]) {
135
- const value = optionalString(input, key);
136
- if (value !== undefined)
137
- change[key] = value;
138
- }
139
- for (const key of ["definitionContentVersion", "dashboardContentVersion", "endpointContentVersion"]) {
140
- const value = optionalNumber(input, key);
141
- if (value !== undefined)
142
- change[key] = value;
143
- }
144
- return change;
145
- }
146
- function normalizeTurnResult(input) {
147
- if (!isRecord(input) || !Array.isArray(input.changes)) {
148
- return null;
149
- }
150
- const byArtifact = new Map();
151
- for (const item of input.changes) {
152
- const change = normalizeChange(item);
153
- if (!change) {
154
- return null;
155
- }
156
- byArtifact.set(`${change.type}:${change.slug}`, change);
157
- }
158
- const outputGuards = normalizeOutputGuards(input.outputGuards);
159
- if (outputGuards === null) {
160
- return null;
161
- }
162
- return {
163
- changes: [...byArtifact.values()].sort((left, right) => {
164
- const typeOrder = left.type.localeCompare(right.type);
165
- return typeOrder === 0 ? left.slug.localeCompare(right.slug) : typeOrder;
166
- }),
167
- ...(outputGuards && { outputGuards }),
168
- };
169
- }
170
- function structuredOutputFromSdkMessage(message) {
171
- return message.structured_output;
172
- }
173
- function callbackPayload(turnResult, isError) {
174
- if (!turnResult || isError) {
175
- return {};
176
- }
177
- return { turnResult: { changes: turnResult.changes } };
178
- }
179
- function appendCurrentChangesContext(prompt, currentChanges) {
180
- if (!currentChanges) {
181
- return prompt;
182
- }
183
- return `${prompt}\n\nCurrent Chat Changes snapshot:\n${JSON.stringify(currentChanges, null, 2)}`;
184
- }
185
- function appendCurrentReferenceContext(prompt, currentReference) {
186
- if (!currentReference) {
187
- return prompt;
188
- }
189
- // Values come from Baker's own reference system, but strip newlines and cap
190
- // length so a crafted title can't inject extra instructions into the prompt.
191
- const sanitize = (value, max) => value.replace(/[\r\n]+/g, " ").slice(0, max);
192
- const type = sanitize(currentReference.type, 64);
193
- const title = sanitize(currentReference.title, 200);
194
- const slug = sanitize(currentReference.slug, 200);
195
- return `${prompt}\n\nThe user is currently viewing this output in the preview pane: ${type} "${title}" (slug: ${slug}). When the user refers to "this", "it", or the output without naming one, assume they mean this unless the message clearly indicates otherwise.`;
196
- }
197
- export const TurnResultIntake = {
198
- outputFormat: turnResultOutputFormat,
199
- appendCurrentChangesContext,
200
- appendCurrentReferenceContext,
201
- fromStructuredOutput: normalizeTurnResult,
202
- fromSdkMessage(message) {
203
- return normalizeTurnResult(structuredOutputFromSdkMessage(message));
204
- },
205
- callbackPayload,
206
- };
207
- //# sourceMappingURL=turn-result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"turn-result.js","sourceRoot":"","sources":["../../src/hono/turn-result.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=turn-result.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"turn-result.test.d.ts","sourceRoot":"","sources":["../../src/hono/turn-result.test.ts"],"names":[],"mappings":""}
@@ -1,63 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { TurnResultIntake } from "./turn-result.js";
3
- describe("TurnResultIntake", () => {
4
- it("describes document format metadata in the structured output schema", () => {
5
- const outputFormat = TurnResultIntake.outputFormat();
6
- const schema = outputFormat.schema;
7
- const documentSchema = schema.properties.changes.items.oneOf.find((item) => item.properties.type.const === "document");
8
- expect(documentSchema?.properties.format).toEqual({ enum: ["pdf", "pptx", "docx", "xlsx", "csv", "json"] });
9
- });
10
- it("normalizes a valid Turn Result snapshot behind the intake interface", () => {
11
- expect(TurnResultIntake.fromStructuredOutput({
12
- changes: [
13
- { type: "report", slug: "ads-pacing", action: "created", title: "Ads pacing", status: "active" },
14
- { type: "landing", slug: "home", action: "created" },
15
- { type: "landing", slug: "home", action: "updated", contentVersion: 2 },
16
- ],
17
- })).toEqual({
18
- changes: [
19
- { type: "landing", slug: "home", action: "updated", contentVersion: 2 },
20
- { type: "report", slug: "ads-pacing", action: "created", title: "Ads pacing", status: "active" },
21
- ],
22
- });
23
- });
24
- it("preserves valid document format metadata on document changes", () => {
25
- expect(TurnResultIntake.fromStructuredOutput({
26
- changes: [
27
- { type: "document", slug: "quarterly-model", action: "updated", format: "xlsx" },
28
- { type: "document", slug: "customer-export", action: "created", format: "csv" },
29
- { type: "document", slug: "tracking-config", action: "created", format: "json" },
30
- ],
31
- })).toEqual({
32
- changes: [
33
- { type: "document", slug: "customer-export", action: "created", format: "csv" },
34
- { type: "document", slug: "quarterly-model", action: "updated", format: "xlsx" },
35
- { type: "document", slug: "tracking-config", action: "created", format: "json" },
36
- ],
37
- });
38
- });
39
- it("ignores document format metadata on non-document changes", () => {
40
- expect(TurnResultIntake.fromStructuredOutput({
41
- changes: [{ type: "landing", slug: "home", action: "updated", format: "xlsx" }],
42
- })).toEqual({ changes: [{ type: "landing", slug: "home", action: "updated" }] });
43
- });
44
- it("treats omitted, invalid, and empty snapshots with completion-safe semantics", () => {
45
- expect(TurnResultIntake.fromStructuredOutput(undefined)).toBeNull();
46
- expect(TurnResultIntake.fromStructuredOutput({ changes: [{ type: "landing", slug: "", action: "updated" }] })).toBeNull();
47
- expect(TurnResultIntake.fromStructuredOutput({ changes: [] })).toEqual({ changes: [] });
48
- });
49
- it("builds the Convex callback payload only for valid successful snapshots", () => {
50
- const emptySnapshot = TurnResultIntake.fromStructuredOutput({ changes: [] });
51
- const validSnapshot = TurnResultIntake.fromStructuredOutput({
52
- changes: [{ type: "landing", slug: "home", action: "updated" }],
53
- outputGuards: { googleAdsRsa: { assets: { headlines: ["Short"], descriptions: ["Short description"] } } },
54
- });
55
- expect(TurnResultIntake.callbackPayload(emptySnapshot, false)).toEqual({ turnResult: { changes: [] } });
56
- expect(TurnResultIntake.callbackPayload(validSnapshot, false)).toEqual({
57
- turnResult: { changes: [{ type: "landing", slug: "home", action: "updated" }] },
58
- });
59
- expect(TurnResultIntake.callbackPayload(validSnapshot, true)).toEqual({});
60
- expect(TurnResultIntake.callbackPayload(null, false)).toEqual({});
61
- });
62
- });
63
- //# sourceMappingURL=turn-result.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"turn-result.test.js","sourceRoot":"","sources":["../../src/hono/turn-result.test.ts"],"names":[],"mappings":"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"}