@multiplayer-app/sandbox 0.0.21 → 0.0.23

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 (153) hide show
  1. package/dist/agents/blocknote.agent.d.ts +6 -0
  2. package/dist/agents/blocknote.agent.d.ts.map +1 -0
  3. package/dist/agents/blocknote.agent.js +18 -0
  4. package/dist/agents/blocknote.agent.js.map +1 -0
  5. package/dist/agents/filingramp-fetch.agent.d.ts +4 -0
  6. package/dist/agents/filingramp-fetch.agent.d.ts.map +1 -0
  7. package/dist/agents/filingramp-fetch.agent.js +195 -0
  8. package/dist/agents/filingramp-fetch.agent.js.map +1 -0
  9. package/dist/agents/html-generator.agent.d.ts +1 -3
  10. package/dist/agents/html-generator.agent.d.ts.map +1 -1
  11. package/dist/agents/html-generator.agent.js +4 -90
  12. package/dist/agents/html-generator.agent.js.map +1 -1
  13. package/dist/agents/knowledge/filingramp-endpoints.d.ts +23 -0
  14. package/dist/agents/knowledge/filingramp-endpoints.d.ts.map +1 -0
  15. package/dist/agents/knowledge/filingramp-endpoints.js +116 -0
  16. package/dist/agents/knowledge/filingramp-endpoints.js.map +1 -0
  17. package/dist/agents/markdown-generator.agent.d.ts.map +1 -1
  18. package/dist/agents/markdown-generator.agent.js +10 -5
  19. package/dist/agents/markdown-generator.agent.js.map +1 -1
  20. package/dist/agents/shared/blocknote-system-prompt.d.ts +2 -0
  21. package/dist/agents/shared/blocknote-system-prompt.d.ts.map +1 -0
  22. package/dist/agents/shared/blocknote-system-prompt.js +40 -0
  23. package/dist/agents/shared/blocknote-system-prompt.js.map +1 -0
  24. package/dist/agents/shared/get-latest-session-artifact.tool.d.ts +7 -0
  25. package/dist/agents/shared/get-latest-session-artifact.tool.d.ts.map +1 -0
  26. package/dist/agents/shared/get-latest-session-artifact.tool.js +43 -0
  27. package/dist/agents/shared/get-latest-session-artifact.tool.js.map +1 -0
  28. package/dist/agents/shared/get-session-artifact-content.tool.d.ts +7 -0
  29. package/dist/agents/shared/get-session-artifact-content.tool.d.ts.map +1 -0
  30. package/dist/agents/shared/get-session-artifact-content.tool.js +44 -0
  31. package/dist/agents/shared/get-session-artifact-content.tool.js.map +1 -0
  32. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts +5 -0
  33. package/dist/agents/shared/list-session-artifact-paths.tool.d.ts.map +1 -0
  34. package/dist/agents/shared/list-session-artifact-paths.tool.js +37 -0
  35. package/dist/agents/shared/list-session-artifact-paths.tool.js.map +1 -0
  36. package/dist/agents/shared/notebook-agent-system-prompt.d.ts +1 -1
  37. package/dist/agents/shared/notebook-agent-system-prompt.d.ts.map +1 -1
  38. package/dist/agents/shared/notebook-agent-system-prompt.js +3 -1
  39. package/dist/agents/shared/notebook-agent-system-prompt.js.map +1 -1
  40. package/dist/agents/shared/notebook-tools.d.ts.map +1 -1
  41. package/dist/agents/shared/notebook-tools.js +35 -8
  42. package/dist/agents/shared/notebook-tools.js.map +1 -1
  43. package/dist/context.d.ts +2 -0
  44. package/dist/context.d.ts.map +1 -1
  45. package/dist/context.js.map +1 -1
  46. package/dist/create-builder-api.d.ts +2 -0
  47. package/dist/create-builder-api.d.ts.map +1 -1
  48. package/dist/create-builder-api.js +1 -0
  49. package/dist/create-builder-api.js.map +1 -1
  50. package/dist/index.d.ts +2 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +3 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/lib/account-dbs/account-db-repository.d.ts +10 -0
  55. package/dist/lib/account-dbs/account-db-repository.d.ts.map +1 -0
  56. package/dist/lib/account-dbs/account-db-repository.js +3 -0
  57. package/dist/lib/account-dbs/account-db-repository.js.map +1 -0
  58. package/dist/lib/account-dbs/account-db.d.ts +59 -0
  59. package/dist/lib/account-dbs/account-db.d.ts.map +1 -0
  60. package/dist/lib/account-dbs/account-db.js +7 -0
  61. package/dist/lib/account-dbs/account-db.js.map +1 -0
  62. package/dist/lib/ai/agent-ai-service.d.ts +3 -0
  63. package/dist/lib/ai/agent-ai-service.d.ts.map +1 -0
  64. package/dist/lib/ai/agent-ai-service.js +15 -0
  65. package/dist/lib/ai/agent-ai-service.js.map +1 -0
  66. package/dist/lib/ai/ai-error-details.d.ts +13 -0
  67. package/dist/lib/ai/ai-error-details.d.ts.map +1 -0
  68. package/dist/lib/ai/ai-error-details.js +84 -0
  69. package/dist/lib/ai/ai-error-details.js.map +1 -0
  70. package/dist/lib/ai/generate-ai-text.d.ts +12 -0
  71. package/dist/lib/ai/generate-ai-text.d.ts.map +1 -0
  72. package/dist/lib/ai/generate-ai-text.js +105 -0
  73. package/dist/lib/ai/generate-ai-text.js.map +1 -0
  74. package/dist/lib/ai/run-explicit-agent.d.ts +15 -0
  75. package/dist/lib/ai/run-explicit-agent.d.ts.map +1 -0
  76. package/dist/lib/ai/run-explicit-agent.js +30 -0
  77. package/dist/lib/ai/run-explicit-agent.js.map +1 -0
  78. package/dist/lib/notebooks/notebook-assistant-prompts.d.ts.map +1 -1
  79. package/dist/lib/notebooks/notebook-assistant-prompts.js +4 -1
  80. package/dist/lib/notebooks/notebook-assistant-prompts.js.map +1 -1
  81. package/dist/lib/notebooks/notebook-assistant.d.ts.map +1 -1
  82. package/dist/lib/notebooks/notebook-assistant.js +24 -8
  83. package/dist/lib/notebooks/notebook-assistant.js.map +1 -1
  84. package/dist/lib/notebooks/notebook-sql-client.d.ts +5 -0
  85. package/dist/lib/notebooks/notebook-sql-client.d.ts.map +1 -0
  86. package/dist/lib/notebooks/notebook-sql-client.js +37 -0
  87. package/dist/lib/notebooks/notebook-sql-client.js.map +1 -0
  88. package/dist/lib/notebooks/notebook-sql-schema.d.ts +16 -0
  89. package/dist/lib/notebooks/notebook-sql-schema.d.ts.map +1 -0
  90. package/dist/lib/notebooks/notebook-sql-schema.js +117 -0
  91. package/dist/lib/notebooks/notebook-sql-schema.js.map +1 -0
  92. package/dist/lib/notebooks/notebook-sql.d.ts +9 -0
  93. package/dist/lib/notebooks/notebook-sql.d.ts.map +1 -0
  94. package/dist/lib/notebooks/notebook-sql.js +36 -0
  95. package/dist/lib/notebooks/notebook-sql.js.map +1 -0
  96. package/dist/lib/notebooks/sql-block-attrs.d.ts +5 -0
  97. package/dist/lib/notebooks/sql-block-attrs.d.ts.map +1 -0
  98. package/dist/lib/notebooks/sql-block-attrs.js +70 -0
  99. package/dist/lib/notebooks/sql-block-attrs.js.map +1 -0
  100. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts +3 -0
  101. package/dist/lib/session-artifacts/apply-hashline-edits.d.ts.map +1 -0
  102. package/dist/lib/session-artifacts/apply-hashline-edits.js +25 -0
  103. package/dist/lib/session-artifacts/apply-hashline-edits.js.map +1 -0
  104. package/dist/lib/session-artifacts/artifact-text-edit.d.ts +8 -0
  105. package/dist/lib/session-artifacts/artifact-text-edit.d.ts.map +1 -0
  106. package/dist/lib/session-artifacts/artifact-text-edit.js +23 -0
  107. package/dist/lib/session-artifacts/artifact-text-edit.js.map +1 -0
  108. package/dist/lib/session-artifacts/hashline-tag.d.ts +33 -0
  109. package/dist/lib/session-artifacts/hashline-tag.d.ts.map +1 -0
  110. package/dist/lib/session-artifacts/hashline-tag.js +80 -0
  111. package/dist/lib/session-artifacts/hashline-tag.js.map +1 -0
  112. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts +3 -0
  113. package/dist/lib/session-pages/inject-preview-error-reporter.d.ts.map +1 -0
  114. package/dist/lib/session-pages/inject-preview-error-reporter.js +30 -0
  115. package/dist/lib/session-pages/inject-preview-error-reporter.js.map +1 -0
  116. package/dist/lib/session-pages/read-session-artifact.d.ts +7 -0
  117. package/dist/lib/session-pages/read-session-artifact.d.ts.map +1 -0
  118. package/dist/lib/session-pages/read-session-artifact.js +60 -0
  119. package/dist/lib/session-pages/read-session-artifact.js.map +1 -0
  120. package/dist/lib/session-pages/session-pico-css.d.ts +5 -0
  121. package/dist/lib/session-pages/session-pico-css.d.ts.map +1 -0
  122. package/dist/lib/session-pages/session-pico-css.js +11 -0
  123. package/dist/lib/session-pages/session-pico-css.js.map +1 -0
  124. package/dist/lib/sql-schema.d.ts +3 -2
  125. package/dist/lib/sql-schema.d.ts.map +1 -1
  126. package/dist/realtime/realtime-auth.d.ts +12 -0
  127. package/dist/realtime/realtime-auth.d.ts.map +1 -0
  128. package/dist/realtime/realtime-auth.js +25 -0
  129. package/dist/realtime/realtime-auth.js.map +1 -0
  130. package/dist/realtime/yjs-account-namespace.d.ts +5 -0
  131. package/dist/realtime/yjs-account-namespace.d.ts.map +1 -0
  132. package/dist/realtime/yjs-account-namespace.js +21 -0
  133. package/dist/realtime/yjs-account-namespace.js.map +1 -0
  134. package/dist/routes/account-dbs/errors.d.ts +3 -0
  135. package/dist/routes/account-dbs/errors.d.ts.map +1 -0
  136. package/dist/routes/account-dbs/errors.js +24 -0
  137. package/dist/routes/account-dbs/errors.js.map +1 -0
  138. package/dist/routes/account-dbs.d.ts +2 -0
  139. package/dist/routes/account-dbs.d.ts.map +1 -0
  140. package/dist/routes/account-dbs.js +138 -0
  141. package/dist/routes/account-dbs.js.map +1 -0
  142. package/dist/routes/notebooks/sql-execute.d.ts +3 -0
  143. package/dist/routes/notebooks/sql-execute.d.ts.map +1 -0
  144. package/dist/routes/notebooks/sql-execute.js +45 -0
  145. package/dist/routes/notebooks/sql-execute.js.map +1 -0
  146. package/dist/routes/sql.d.ts +2 -0
  147. package/dist/routes/sql.d.ts.map +1 -0
  148. package/dist/routes/sql.js +50 -0
  149. package/dist/routes/sql.js.map +1 -0
  150. package/dist/server.d.ts.map +1 -1
  151. package/dist/server.js +2 -0
  152. package/dist/server.js.map +1 -1
  153. package/package.json +7 -7
@@ -0,0 +1,6 @@
1
+ import type { AgentConfig } from '@multiplayer-app/ai-agent-types';
2
+ import type { BuilderApiAgentDeps } from '../builder-api-config';
3
+ export declare const BLOCKNOTE_CONTEXT_KEY = "blocknote";
4
+ export declare const BLOCKNOTE_AGENT_NAME = "blocknote-generator";
5
+ export declare function createBlocknoteAgent(deps: BuilderApiAgentDeps): AgentConfig;
6
+ //# sourceMappingURL=blocknote.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocknote.agent.d.ts","sourceRoot":"","sources":["../../src/agents/blocknote.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAGhE,eAAO,MAAM,qBAAqB,cAAc,CAAA;AAChD,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAEzD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAS3E"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BLOCKNOTE_AGENT_NAME = exports.BLOCKNOTE_CONTEXT_KEY = void 0;
4
+ exports.createBlocknoteAgent = createBlocknoteAgent;
5
+ const blocknote_system_prompt_1 = require("./shared/blocknote-system-prompt");
6
+ exports.BLOCKNOTE_CONTEXT_KEY = 'blocknote';
7
+ exports.BLOCKNOTE_AGENT_NAME = 'blocknote-generator';
8
+ function createBlocknoteAgent(deps) {
9
+ return {
10
+ name: exports.BLOCKNOTE_AGENT_NAME,
11
+ description: 'Generates and adjusts BlockNote/TipTap blocks for notebooks',
12
+ defaultModel: deps.defaultModel,
13
+ systemPrompt: blocknote_system_prompt_1.BLOCKNOTE_SYSTEM_PROMPT,
14
+ stopWhen: () => true,
15
+ tools: [],
16
+ };
17
+ }
18
+ //# sourceMappingURL=blocknote.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocknote.agent.js","sourceRoot":"","sources":["../../src/agents/blocknote.agent.ts"],"names":[],"mappings":";;;AAOA,oDASC;AAdD,8EAA0E;AAE7D,QAAA,qBAAqB,GAAG,WAAW,CAAA;AACnC,QAAA,oBAAoB,GAAG,qBAAqB,CAAA;AAEzD,SAAgB,oBAAoB,CAAC,IAAyB;IAC5D,OAAO;QACL,IAAI,EAAE,4BAAoB;QAC1B,WAAW,EAAE,6DAA6D;QAC1E,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,iDAAuB;QACrC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;QACpB,KAAK,EAAE,EAAE;KACV,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AgentConfig } from '@multiplayer-app/ai-agent-types';
2
+ import type { BuilderApiAgentDeps } from '../builder-api-config';
3
+ export declare function createFilingRampFetchAgent(deps: BuilderApiAgentDeps): AgentConfig;
4
+ //# sourceMappingURL=filingramp-fetch.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-fetch.agent.d.ts","sourceRoot":"","sources":["../../src/agents/filingramp-fetch.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAGlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AA0EhE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CA+HjF"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFilingRampFetchAgent = createFilingRampFetchAgent;
4
+ const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
+ const zod_1 = require("zod");
6
+ const filingramp_endpoints_1 = require("./knowledge/filingramp-endpoints");
7
+ const publish_session_artifacts_tool_1 = require("./shared/publish-session-artifacts.tool");
8
+ const searchEndpointsInputSchema = zod_1.z.object({
9
+ query: zod_1.z
10
+ .string()
11
+ .optional()
12
+ .describe('Search path, summary, tags, or parameter names (e.g. filings, dashboard, productId)'),
13
+ service: zod_1.z
14
+ .string()
15
+ .optional()
16
+ .describe('Filter by service section (e.g. ramp-web-api, ramp-library-service)'),
17
+ tag: zod_1.z.string().optional().describe('Filter by OpenAPI tag (e.g. filings, products)'),
18
+ limit: zod_1.z.number().int().min(1).max(50).optional().describe('Max endpoints to return (default 25)'),
19
+ });
20
+ function buildFetchScaffold(baseUrl) {
21
+ return `/**
22
+ * FilingRamp read-only fetch helpers (GET catalog only).
23
+ * Set before running: window.__FILINGRAMP_API_KEY__ = '<api-key>';
24
+ */
25
+ const FILINGRAMP_BASE_URL = ${JSON.stringify(baseUrl.replace(/\/$/, ''))};
26
+
27
+ /**
28
+ * @param {string} path - Absolute path from catalog, e.g. "/v1/products"
29
+ * @param {Record<string, string | number | boolean | undefined>} [query]
30
+ */
31
+ async function filingRampGet(path, query = {}) {
32
+ const url = new URL(path.startsWith('/') ? path : \`/\${path}\`, FILINGRAMP_BASE_URL);
33
+ for (const [key, value] of Object.entries(query)) {
34
+ if (value === undefined || value === null) continue;
35
+ if (Array.isArray(value)) {
36
+ for (const item of value) url.searchParams.append(key, String(item));
37
+ } else {
38
+ url.searchParams.set(key, String(value));
39
+ }
40
+ }
41
+
42
+ const token = globalThis.__FILINGRAMP_API_KEY__ ?? '';
43
+ const headers = { Accept: 'application/json' };
44
+ if (token) headers.Authorization = \`Bearer \${token}\`;
45
+
46
+ const response = await fetch(url.toString(), { headers, method: 'GET' });
47
+ if (!response.ok) {
48
+ const detail = await response.text().catch(() => '');
49
+ throw new Error(\`FilingRamp \${response.status} \${response.statusText}: \${detail}\`.trim());
50
+ }
51
+ const contentType = response.headers.get('content-type') ?? '';
52
+ if (contentType.includes('application/json')) return response.json();
53
+ return response.text();
54
+ }
55
+
56
+ /** Paginate list endpoints that support limit/offset. */
57
+ async function filingRampList(path, query = {}, { pageSize = 50, maxPages = 20 } = {}) {
58
+ const items = [];
59
+ let offset = Number(query.offset ?? 0);
60
+ for (let page = 0; page < maxPages; page += 1) {
61
+ const batch = await filingRampGet(path, { ...query, limit: pageSize, offset });
62
+ const rows = Array.isArray(batch) ? batch : batch?.data ?? batch?.items ?? [];
63
+ if (!Array.isArray(rows) || rows.length === 0) break;
64
+ items.push(...rows);
65
+ if (rows.length < pageSize) break;
66
+ offset += rows.length;
67
+ }
68
+ return items;
69
+ }
70
+ `;
71
+ }
72
+ function createFilingRampFetchAgent(deps) {
73
+ const { baseUrl, apiKey } = deps.filingramp;
74
+ return {
75
+ name: 'filingramp-fetch',
76
+ description: 'Generates JavaScript to fetch read-only data from the FilingRamp API',
77
+ defaultModel: deps.defaultModel,
78
+ systemPrompt: `You write browser-ready JavaScript that loads data from the FilingRamp platform using GET endpoints only.
79
+
80
+ Workflow:
81
+ 1. Call getFilingRampConfig for base URL and auth notes.
82
+ 2. Call getFilingRampEndpoints to find real paths, required query params, and tags — never invent URLs.
83
+ 3. Call getFilingRampFetchScaffold for the standard fetch helper, then extend it with domain functions (e.g. loadProducts, loadFiling).
84
+ 4. Publish script.js (and optional lib/filingramp-client.js, data/*.json) via publishSessionArtifacts.
85
+ 5. Dashboard HTML may be published separately or by the html-generator agent; focus on correct API access here.
86
+
87
+ Rules:
88
+ - Only use endpoints from the catalog (GET / list). No POST, PUT, PATCH, or DELETE.
89
+ - Path params use {id} notation in the catalog — substitute real ids at runtime.
90
+ - Array query params (fields[], productIds[]) must be appended repeatedly in URLSearchParams.
91
+ - Use filingRampGet for single resources and filingRampList when paginating list endpoints.
92
+ - Handle errors with clear messages; do not swallow HTTP failures.
93
+ - Prefer small, composable functions that return JSON ready for charts/tables.`,
94
+ stopWhen: () => false,
95
+ tools: [
96
+ {
97
+ type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
98
+ userConfigurable: true,
99
+ data: {
100
+ title: 'getFilingRampConfig',
101
+ needsApproval: false,
102
+ description: 'Runtime FilingRamp API base URL and auth setup for generated scripts',
103
+ inputSchema: zod_1.z.object({}),
104
+ outputSchema: zod_1.z.object({
105
+ baseUrl: zod_1.z.string(),
106
+ apiKeyConfigured: zod_1.z.boolean(),
107
+ authNotes: zod_1.z.string(),
108
+ }),
109
+ execute: () => ({
110
+ baseUrl,
111
+ apiKeyConfigured: Boolean(apiKey),
112
+ authNotes: 'Browser scripts read window.__FILINGRAMP_API_KEY__. The API server may use FILINGRAMP_API_KEY from env when proxying; set the token in the preview host or inject before running script.js.',
113
+ }),
114
+ },
115
+ },
116
+ {
117
+ type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
118
+ userConfigurable: true,
119
+ data: {
120
+ title: 'getFilingRampEndpoints',
121
+ needsApproval: false,
122
+ description: 'Search the FilingRamp GET endpoint catalog (from knowledge/filingramp-endpoints.md)',
123
+ inputSchema: searchEndpointsInputSchema,
124
+ outputSchema: zod_1.z.object({
125
+ total: zod_1.z.number(),
126
+ endpoints: zod_1.z.array(zod_1.z.object({
127
+ service: zod_1.z.string(),
128
+ method: zod_1.z.literal('GET'),
129
+ path: zod_1.z.string(),
130
+ type: zod_1.z.string(),
131
+ summary: zod_1.z.string().optional(),
132
+ tags: zod_1.z.array(zod_1.z.string()),
133
+ parameters: zod_1.z.array(zod_1.z.string()),
134
+ })),
135
+ catalogSize: zod_1.z.number(),
136
+ }),
137
+ execute: (input) => {
138
+ const result = (0, filingramp_endpoints_1.searchFilingRampEndpoints)(input);
139
+ return {
140
+ ...result,
141
+ catalogSize: (0, filingramp_endpoints_1.getFilingRampEndpointCatalog)().length,
142
+ };
143
+ },
144
+ },
145
+ },
146
+ {
147
+ type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
148
+ userConfigurable: true,
149
+ data: {
150
+ title: 'getFilingRampEndpointsReference',
151
+ needsApproval: false,
152
+ description: 'Return the full markdown endpoint catalog (large; use search tool first)',
153
+ inputSchema: zod_1.z.object({
154
+ confirm: zod_1.z
155
+ .boolean()
156
+ .describe('Must be true — catalog is large (~90 endpoints)'),
157
+ }),
158
+ outputSchema: zod_1.z.object({
159
+ markdown: zod_1.z.string(),
160
+ catalogSize: zod_1.z.number(),
161
+ }),
162
+ execute: (input) => {
163
+ if (!input.confirm) {
164
+ throw new Error('Set confirm: true to load the full catalog');
165
+ }
166
+ return {
167
+ markdown: (0, filingramp_endpoints_1.loadFilingRampEndpointsMarkdown)(),
168
+ catalogSize: (0, filingramp_endpoints_1.getFilingRampEndpointCatalog)().length,
169
+ };
170
+ },
171
+ },
172
+ },
173
+ {
174
+ type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
175
+ userConfigurable: true,
176
+ data: {
177
+ title: 'getFilingRampFetchScaffold',
178
+ needsApproval: false,
179
+ description: 'Starter script.js with filingRampGet and filingRampList helpers',
180
+ inputSchema: zod_1.z.object({}),
181
+ outputSchema: zod_1.z.object({
182
+ baseUrl: zod_1.z.string(),
183
+ script: zod_1.z.string(),
184
+ }),
185
+ execute: () => ({
186
+ baseUrl,
187
+ script: buildFetchScaffold(baseUrl),
188
+ }),
189
+ },
190
+ },
191
+ (0, publish_session_artifacts_tool_1.createPublishSessionArtifactsTool)({ needsApproval: true, validateIndexHtml: false }),
192
+ ],
193
+ };
194
+ }
195
+ //# sourceMappingURL=filingramp-fetch.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-fetch.agent.js","sourceRoot":"","sources":["../../src/agents/filingramp-fetch.agent.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,2 @@
1
- import type { AgentConfig } from '@multiplayer-app/ai-agent-types';
2
- import type { BuilderApiAgentDeps } from '../builder-api-config';
3
- export declare function createHtmlGeneratorAgent(deps: BuilderApiAgentDeps): AgentConfig;
1
+ export { createContentGeneratorAgent, createContentGeneratorAgent as createHtmlGeneratorAgent, } from './content-generator.agent';
4
2
  //# sourceMappingURL=html-generator.agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/html-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAGlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AA0DhE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAwC/E"}
1
+ {"version":3,"file":"html-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/html-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,IAAI,wBAAwB,GACxD,MAAM,2BAA2B,CAAA"}
@@ -1,93 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createHtmlGeneratorAgent = createHtmlGeneratorAgent;
4
- const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
- const zod_1 = require("zod");
6
- const publish_session_artifacts_tool_1 = require("./shared/publish-session-artifacts.tool");
7
- const validateHtmlInputSchema = zod_1.z.object({
8
- html: zod_1.z.string().min(1).describe('HTML to validate'),
9
- });
10
- function basicHtmlValidation(html) {
11
- const errors = [];
12
- const warnings = [];
13
- if (!html.trim()) {
14
- errors.push('HTML is empty');
15
- }
16
- const openTags = [...html.matchAll(/<([a-z][a-z0-9]*)\b[^>]*(?<!\/)>/gi)];
17
- const closeTags = [...html.matchAll(/<\/([a-z][a-z0-9]*)\s*>/gi)];
18
- const stack = [];
19
- for (const match of openTags) {
20
- const tag = match[1].toLowerCase();
21
- if (![
22
- 'area',
23
- 'base',
24
- 'br',
25
- 'col',
26
- 'embed',
27
- 'hr',
28
- 'img',
29
- 'input',
30
- 'link',
31
- 'meta',
32
- 'param',
33
- 'source',
34
- 'track',
35
- 'wbr',
36
- ].includes(tag)) {
37
- stack.push(tag);
38
- }
39
- }
40
- for (const match of closeTags) {
41
- const tag = match[1].toLowerCase();
42
- const last = stack.pop();
43
- if (last !== tag) {
44
- warnings.push(`Possible mismatched closing tag </${tag}>`);
45
- }
46
- }
47
- if (stack.length > 0) {
48
- warnings.push(`Unclosed elements: ${stack.join(', ')}`);
49
- }
50
- return { valid: errors.length === 0, warnings, errors };
51
- }
52
- function createHtmlGeneratorAgent(deps) {
53
- return {
54
- name: 'html-generator',
55
- description: 'Builds session previews: HTML dashboards, CSS, JavaScript, and data files',
56
- defaultModel: deps.defaultModel,
57
- systemPrompt: `You build data dashboards and previews for user data. Every response that produces or updates UI MUST end with publishSessionArtifacts — nothing is saved until you publish.
58
-
59
- Workflow:
60
- 1. Generate artifacts — typically index.html, styles.css, script.js, and optional JSON under data/.
61
- 2. Keep paths relative (no leading slash). Link assets from HTML with relative URLs (./styles.css, ./script.js, ./data/metrics.json).
62
- 3. Put layout/styling in styles.css and data fetching or rendering in script.js.
63
- 4. For dashboards: use a shell with sidebar + main, KPI cards (.metrics article), and tables (.data-table).
64
- 5. Call validateHtml on index.html when markup is non-trivial.
65
- 6. Always call publishSessionArtifacts in the same turn. Include only files you created or modified in this turn — omit unchanged files; they remain on disk.
66
- 7. Tell the user the previewUrl from the publish result so they can open App Preview.
67
-
68
- Base styles are merged into styles.css automatically unless includeBaseStyles is false.`,
69
- stopWhen: () => false,
70
- tools: [
71
- { type: ai_agent_types_1.AgentToolType.WEB_SEARCH, userConfigurable: true },
72
- { type: ai_agent_types_1.AgentToolType.REQUEST_CLARIFICATION, userConfigurable: true },
73
- {
74
- type: ai_agent_types_1.AgentToolType.LOCAL_FUNCTION,
75
- userConfigurable: true,
76
- data: {
77
- title: 'validateHtml',
78
- needsApproval: false,
79
- description: 'Run basic structural checks on HTML before publishing',
80
- inputSchema: validateHtmlInputSchema,
81
- outputSchema: zod_1.z.object({
82
- valid: zod_1.z.boolean(),
83
- warnings: zod_1.z.array(zod_1.z.string()),
84
- errors: zod_1.z.array(zod_1.z.string()),
85
- }),
86
- execute: (input) => basicHtmlValidation(input.html),
87
- },
88
- },
89
- (0, publish_session_artifacts_tool_1.createPublishSessionArtifactsTool)({ needsApproval: false, validateIndexHtml: true }),
90
- ],
91
- };
92
- }
3
+ exports.createHtmlGeneratorAgent = exports.createContentGeneratorAgent = void 0;
4
+ var content_generator_agent_1 = require("./content-generator.agent");
5
+ Object.defineProperty(exports, "createContentGeneratorAgent", { enumerable: true, get: function () { return content_generator_agent_1.createContentGeneratorAgent; } });
6
+ Object.defineProperty(exports, "createHtmlGeneratorAgent", { enumerable: true, get: function () { return content_generator_agent_1.createContentGeneratorAgent; } });
93
7
  //# sourceMappingURL=html-generator.agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-generator.agent.js","sourceRoot":"","sources":["../../src/agents/html-generator.agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-generator.agent.js","sourceRoot":"","sources":["../../src/agents/html-generator.agent.ts"],"names":[],"mappings":";;;AAAA,qEAGkC;AAFhC,sIAAA,2BAA2B,OAAA;AAC3B,mIAAA,2BAA2B,OAA4B"}
@@ -0,0 +1,23 @@
1
+ export interface FilingRampEndpoint {
2
+ service: string;
3
+ method: 'GET';
4
+ path: string;
5
+ type: 'list' | 'get' | string;
6
+ summary?: string;
7
+ tags: string[];
8
+ parameters: string[];
9
+ }
10
+ export declare function loadFilingRampEndpointsMarkdown(): string;
11
+ export declare function parseFilingRampEndpoints(markdown: string): FilingRampEndpoint[];
12
+ export declare function getFilingRampEndpointCatalog(): FilingRampEndpoint[];
13
+ export interface SearchFilingRampEndpointsInput {
14
+ query?: string;
15
+ service?: string;
16
+ tag?: string;
17
+ limit?: number;
18
+ }
19
+ export declare function searchFilingRampEndpoints(input?: SearchFilingRampEndpointsInput): {
20
+ total: number;
21
+ endpoints: FilingRampEndpoint[];
22
+ };
23
+ //# sourceMappingURL=filingramp-endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-endpoints.d.ts","sourceRoot":"","sources":["../../../src/agents/knowledge/filingramp-endpoints.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAqBD,wBAAgB,+BAA+B,IAAI,MAAM,CAIxD;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE,CA2D/E;AAED,wBAAgB,4BAA4B,IAAI,kBAAkB,EAAE,CAKnE;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,yBAAyB,CAAC,KAAK,GAAE,8BAAmC,GAAG;IACrF,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,kBAAkB,EAAE,CAAA;CAChC,CA6BA"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadFilingRampEndpointsMarkdown = loadFilingRampEndpointsMarkdown;
7
+ exports.parseFilingRampEndpoints = parseFilingRampEndpoints;
8
+ exports.getFilingRampEndpointCatalog = getFilingRampEndpointCatalog;
9
+ exports.searchFilingRampEndpoints = searchFilingRampEndpoints;
10
+ const node_fs_1 = __importDefault(require("node:fs"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ let cachedCatalog = null;
13
+ let cachedRawMarkdown = null;
14
+ function resolveEndpointsFilePath() {
15
+ const candidates = [
16
+ node_path_1.default.join(process.cwd(), 'knowledge', 'filingramp-endpoints.md'),
17
+ node_path_1.default.join(__dirname, '../../../knowledge/filingramp-endpoints.md'),
18
+ node_path_1.default.join(__dirname, '../../../../knowledge/filingramp-endpoints.md'),
19
+ ];
20
+ for (const candidate of candidates) {
21
+ if (node_fs_1.default.existsSync(candidate))
22
+ return candidate;
23
+ }
24
+ throw new Error('FilingRamp endpoints catalog not found. Expected knowledge/filingramp-endpoints.md next to the app or @multiplayer-builder/builder-api package.');
25
+ }
26
+ function loadFilingRampEndpointsMarkdown() {
27
+ if (cachedRawMarkdown)
28
+ return cachedRawMarkdown;
29
+ cachedRawMarkdown = node_fs_1.default.readFileSync(resolveEndpointsFilePath(), 'utf8');
30
+ return cachedRawMarkdown;
31
+ }
32
+ function parseFilingRampEndpoints(markdown) {
33
+ const endpoints = [];
34
+ let currentService = 'unknown';
35
+ const lines = markdown.split('\n');
36
+ for (let i = 0; i < lines.length; i++) {
37
+ const line = lines[i];
38
+ const serviceHeading = line.match(/^## (.+)$/);
39
+ if (serviceHeading) {
40
+ currentService = serviceHeading[1].trim();
41
+ continue;
42
+ }
43
+ const endpointHeading = line.match(/^### `GET (.+)`$/);
44
+ if (!endpointHeading)
45
+ continue;
46
+ const endpointPath = endpointHeading[1].trim();
47
+ let type = 'list';
48
+ let summary;
49
+ const tags = [];
50
+ const parameters = [];
51
+ for (let j = i + 1; j < lines.length && !lines[j].startsWith('###'); j++) {
52
+ const detail = lines[j].trim();
53
+ const typeMatch = detail.match(/^- \*\*Type:\*\* (.+)$/);
54
+ if (typeMatch)
55
+ type = typeMatch[1].trim();
56
+ const summaryMatch = detail.match(/^- \*\*Summary:\*\* (.+)$/);
57
+ if (summaryMatch)
58
+ summary = summaryMatch[1].trim();
59
+ const tagsMatch = detail.match(/^- \*\*Tags:\*\* (.+)$/);
60
+ if (tagsMatch) {
61
+ tags.push(...tagsMatch[1].split(',').map((t) => t.trim()).filter(Boolean));
62
+ }
63
+ const paramsMatch = detail.match(/^- \*\*Parameters:\*\* (.+)$/);
64
+ if (paramsMatch) {
65
+ parameters.push(...paramsMatch[1]
66
+ .split(',')
67
+ .map((p) => p.trim())
68
+ .filter(Boolean));
69
+ }
70
+ }
71
+ endpoints.push({
72
+ service: currentService,
73
+ method: 'GET',
74
+ path: endpointPath,
75
+ type,
76
+ summary,
77
+ tags,
78
+ parameters,
79
+ });
80
+ }
81
+ return endpoints;
82
+ }
83
+ function getFilingRampEndpointCatalog() {
84
+ if (!cachedCatalog) {
85
+ cachedCatalog = parseFilingRampEndpoints(loadFilingRampEndpointsMarkdown());
86
+ }
87
+ return cachedCatalog;
88
+ }
89
+ function searchFilingRampEndpoints(input = {}) {
90
+ var _a, _b, _c, _d;
91
+ const limit = (_a = input.limit) !== null && _a !== void 0 ? _a : 25;
92
+ const q = (_b = input.query) === null || _b === void 0 ? void 0 : _b.toLowerCase().trim();
93
+ const service = (_c = input.service) === null || _c === void 0 ? void 0 : _c.toLowerCase().trim();
94
+ const tag = (_d = input.tag) === null || _d === void 0 ? void 0 : _d.toLowerCase().trim();
95
+ let results = getFilingRampEndpointCatalog();
96
+ if (service) {
97
+ results = results.filter((e) => e.service.toLowerCase().includes(service));
98
+ }
99
+ if (tag) {
100
+ results = results.filter((e) => e.tags.some((t) => t.toLowerCase().includes(tag)));
101
+ }
102
+ if (q) {
103
+ results = results.filter((e) => {
104
+ var _a;
105
+ const haystack = [e.path, (_a = e.summary) !== null && _a !== void 0 ? _a : '', e.service, ...e.tags, ...e.parameters]
106
+ .join(' ')
107
+ .toLowerCase();
108
+ return haystack.includes(q);
109
+ });
110
+ }
111
+ return {
112
+ total: results.length,
113
+ endpoints: results.slice(0, limit),
114
+ };
115
+ }
116
+ //# sourceMappingURL=filingramp-endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-endpoints.js","sourceRoot":"","sources":["../../../src/agents/knowledge/filingramp-endpoints.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/markdown-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAGlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AA8DhE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CA8CnF"}
1
+ {"version":3,"file":"markdown-generator.agent.d.ts","sourceRoot":"","sources":["../../src/agents/markdown-generator.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAGlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAgEhE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAiDnF"}
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMarkdownGeneratorAgent = createMarkdownGeneratorAgent;
4
4
  const ai_agent_types_1 = require("@multiplayer-app/ai-agent-types");
5
5
  const zod_1 = require("zod");
6
+ const list_session_artifact_paths_tool_1 = require("./shared/list-session-artifact-paths.tool");
6
7
  const publish_session_artifacts_tool_1 = require("./shared/publish-session-artifacts.tool");
8
+ const update_session_artifacts_tool_1 = require("./shared/update-session-artifacts.tool");
7
9
  const validateMarkdownInputSchema = zod_1.z.object({
8
10
  markdown: zod_1.z.string().min(1).describe('Markdown source to validate'),
9
11
  path: zod_1.z
@@ -57,16 +59,17 @@ function createMarkdownGeneratorAgent(deps) {
57
59
  name: 'markdown-generator',
58
60
  description: 'Writes and updates Markdown documentation in the session artifact store',
59
61
  defaultModel: deps.defaultModel,
60
- systemPrompt: `You create and refine Markdown (.md) documents for the active session. Every response that produces or updates docs MUST end with publishSessionArtifacts nothing is saved until you publish.
62
+ systemPrompt: `You create and refine Markdown (.md) documents for the active session. New files use publishSessionArtifacts; changes to existing files use updateSessionArtifact.
61
63
 
62
64
  Workflow:
63
65
  1. Clarify purpose (README, design doc, runbook, release notes, API summary, etc.).
64
66
  2. Write valid GitHub-Flavored Markdown (GFM): headings, lists, tables, fenced code blocks with language tags, links, blockquotes.
65
67
  3. Use session-relative paths without a leading slash, e.g. README.md, docs/architecture.md, notes/todo.md.
66
68
  4. Call validateMarkdown on substantial content before publishing.
67
- 5. Call publishSessionArtifacts in the same turn. Include only files you created or modified — omit unchanged files; they remain on disk.
68
- 6. Set previewPath to your primary doc (e.g. README.md) when publishing markdown-only artifacts.
69
- 7. Summarize what was published and where the user can read it (Code tab / file explorer).
69
+ 5. New paths: call publishSessionArtifacts with sessionId and only files that do not exist yet.
70
+ 6. Existing paths: call updateSessionArtifact with sessionId, path, and a clear instruction.
71
+ 7. Set previewPath to your primary doc (e.g. README.md) when publishing markdown-only artifacts.
72
+ 8. Summarize what was published or which path was updated (Code tab / file explorer).
70
73
 
71
74
  Style:
72
75
  - Prefer one H1 per document; use ## / ### for structure.
@@ -94,7 +97,9 @@ Style:
94
97
  execute: (input) => basicMarkdownValidation(input.markdown, input.path),
95
98
  },
96
99
  },
97
- (0, publish_session_artifacts_tool_1.createPublishSessionArtifactsTool)({ needsApproval: false, validateIndexHtml: false }),
100
+ (0, list_session_artifact_paths_tool_1.getListSessionArtifactPathsTool)(),
101
+ publish_session_artifacts_tool_1.publishSessionArtifactsSubagentTool,
102
+ update_session_artifacts_tool_1.updateSessionArtifactsSubagentTool,
98
103
  ],
99
104
  };
100
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-generator.agent.js","sourceRoot":"","sources":["../../src/agents/markdown-generator.agent.ts"],"names":[],"mappings":";;AAiEA,oEA8CC;AA9GD,oEAA+D;AAC/D,6BAAuB;AAEvB,4FAA2F;AAE3F,MAAM,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACnE,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC;CAC3E,CAAC,CAAA;AAEF,SAAS,uBAAuB,CAC9B,QAAgB,EAChB,IAAa;IAEb,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAChC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC3C,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,CAAC,OAAO,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,OAAO;YAAE,SAAQ;QAErB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAC/C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC/C,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5C,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;IACjF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;AACzD,CAAC;AAED,SAAgB,4BAA4B,CAAC,IAAyB;IACpE,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,yEAAyE;QACtF,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE;;;;;;;;;;;;;;;;0GAgBwF;QACtG,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,8BAAa,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,8BAAa,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,IAAI,EAAE;YACrE;gBACE,IAAI,EAAE,8BAAa,CAAC,cAAc;gBAClC,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE;oBACJ,KAAK,EAAE,kBAAkB;oBACzB,aAAa,EAAE,KAAK;oBACpB,WAAW,EAAE,2DAA2D;oBACxE,WAAW,EAAE,2BAA2B;oBACxC,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;wBACrB,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE;wBAClB,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;wBAC7B,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;qBAC5B,CAAC;oBACF,OAAO,EAAE,CAAC,KAAkD,EAAE,EAAE,CAC9D,uBAAuB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC;iBACtD;aACF;YACD,IAAA,kEAAiC,EAAC,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;SACtF;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"markdown-generator.agent.js","sourceRoot":"","sources":["../../src/agents/markdown-generator.agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const BLOCKNOTE_SYSTEM_PROMPT = "You generate and adjust BlockNote/TipTap blocks for collaborative notebooks.\n\nYou must return valid JSON only\u2014no markdown fences, commentary, or extra text unless a task explicitly asks for plain text.\n\nSupported block categories:\n- Generic TipTap blocks: paragraph, heading, bulletList, orderedList, listItem, blockquote, codeBlock, table, taskList, taskItem, horizontalRule, and related inline formatting inside content nodes.\n- runnableCodeBlock: executable code blocks with attrs { _globalName, content, language }.\n- chartBlock: sandboxed UI blocks with attrs { _globalName, html, javascript, css }.\n- sqlBlock: PostgreSQL query blocks with attrs { _globalName, query }.\n\nWhen generating runnableCodeBlock attrs, return:\n{\n \"_globalName\": \"<short identifier>\",\n \"content\": \"<complete executable code>\",\n \"language\": \"javascript\"\n}\n\nWhen generating chartBlock attrs, return:\n{\n \"_globalName\": \"<short identifier>\",\n \"html\": \"<self-contained HTML, include CDN script tags for libraries>\",\n \"javascript\": \"<script logic>\",\n \"css\": \"<styles>\"\n}\n\nWhen generating sqlBlock attrs, return:\n{\n \"_globalName\": \"<short identifier>\",\n \"query\": \"<valid PostgreSQL SELECT statement>\"\n}\n\nsqlBlock queries must be read-only SELECT statements. Do not generate INSERT, UPDATE, DELETE, DDL, or multiple statements.\n\nWhen generating generic TipTap blocks, return a single node object with type, attrs when needed, and nested content arrays that follow TipTap JSON structure.\n\nWhen adjusting an existing block, preserve unrelated attrs and update only what the adjustment requires.";
2
+ //# sourceMappingURL=blocknote-system-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocknote-system-prompt.d.ts","sourceRoot":"","sources":["../../../src/agents/shared/blocknote-system-prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,unDAmCqE,CAAA"}