@jterrats/open-orchestra 1.0.17 → 1.1.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 (235) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/CLAUDE.md +1 -0
  3. package/dist/active-runtime-store.d.ts +18 -0
  4. package/dist/active-runtime-store.js +75 -0
  5. package/dist/active-runtime-store.js.map +1 -0
  6. package/dist/chat-api-errors.d.ts +7 -0
  7. package/dist/chat-api-errors.js +15 -0
  8. package/dist/chat-api-errors.js.map +1 -0
  9. package/dist/chat-api-message-persistence.d.ts +12 -0
  10. package/dist/chat-api-message-persistence.js +125 -0
  11. package/dist/chat-api-message-persistence.js.map +1 -0
  12. package/dist/chat-api-records.d.ts +35 -0
  13. package/dist/chat-api-records.js +94 -0
  14. package/dist/chat-api-records.js.map +1 -0
  15. package/dist/chat-api-service.d.ts +32 -0
  16. package/dist/chat-api-service.js +120 -0
  17. package/dist/chat-api-service.js.map +1 -0
  18. package/dist/chat-api-storage.d.ts +1 -0
  19. package/dist/chat-api-storage.js +14 -0
  20. package/dist/chat-api-storage.js.map +1 -0
  21. package/dist/chat-api-types.d.ts +81 -0
  22. package/dist/chat-api-types.js +2 -0
  23. package/dist/chat-api-types.js.map +1 -0
  24. package/dist/chat-compliance-service.d.ts +60 -0
  25. package/dist/chat-compliance-service.js +241 -0
  26. package/dist/chat-compliance-service.js.map +1 -0
  27. package/dist/chat-event-stream.d.ts +13 -0
  28. package/dist/chat-event-stream.js +124 -0
  29. package/dist/chat-event-stream.js.map +1 -0
  30. package/dist/chat-pagination.d.ts +6 -0
  31. package/dist/chat-pagination.js +64 -0
  32. package/dist/chat-pagination.js.map +1 -0
  33. package/dist/chat-storage-actor-validation.d.ts +4 -0
  34. package/dist/chat-storage-actor-validation.js +65 -0
  35. package/dist/chat-storage-actor-validation.js.map +1 -0
  36. package/dist/chat-storage-content-policy.d.ts +6 -0
  37. package/dist/chat-storage-content-policy.js +84 -0
  38. package/dist/chat-storage-content-policy.js.map +1 -0
  39. package/dist/chat-storage-errors.d.ts +20 -0
  40. package/dist/chat-storage-errors.js +17 -0
  41. package/dist/chat-storage-errors.js.map +1 -0
  42. package/dist/chat-storage-local-files.d.ts +17 -0
  43. package/dist/chat-storage-local-files.js +78 -0
  44. package/dist/chat-storage-local-files.js.map +1 -0
  45. package/dist/chat-storage-local-paths.d.ts +6 -0
  46. package/dist/chat-storage-local-paths.js +124 -0
  47. package/dist/chat-storage-local-paths.js.map +1 -0
  48. package/dist/chat-storage-local-projection.d.ts +10 -0
  49. package/dist/chat-storage-local-projection.js +55 -0
  50. package/dist/chat-storage-local-projection.js.map +1 -0
  51. package/dist/chat-storage-local-records.d.ts +13 -0
  52. package/dist/chat-storage-local-records.js +56 -0
  53. package/dist/chat-storage-local-records.js.map +1 -0
  54. package/dist/chat-storage-local.d.ts +6 -0
  55. package/dist/chat-storage-local.js +114 -0
  56. package/dist/chat-storage-local.js.map +1 -0
  57. package/dist/chat-storage-validation.d.ts +10 -0
  58. package/dist/chat-storage-validation.js +100 -0
  59. package/dist/chat-storage-validation.js.map +1 -0
  60. package/dist/chat-storage.d.ts +16 -0
  61. package/dist/chat-storage.js +4 -0
  62. package/dist/chat-storage.js.map +1 -0
  63. package/dist/chat-workflow-timeline.d.ts +17 -0
  64. package/dist/chat-workflow-timeline.js +210 -0
  65. package/dist/chat-workflow-timeline.js.map +1 -0
  66. package/dist/{workspace-claude-settings.d.ts → claude-settings.d.ts} +22 -3
  67. package/dist/{workspace-claude-settings.js → claude-settings.js} +28 -9
  68. package/dist/claude-settings.js.map +1 -0
  69. package/dist/command-init.d.ts +2 -0
  70. package/dist/command-init.js +150 -0
  71. package/dist/command-init.js.map +1 -0
  72. package/dist/command-manifest.js +1 -1
  73. package/dist/command-manifest.js.map +1 -1
  74. package/dist/commands.d.ts +1 -1
  75. package/dist/commands.js +1 -140
  76. package/dist/commands.js.map +1 -1
  77. package/dist/constants.d.ts +1 -0
  78. package/dist/constants.js +1 -0
  79. package/dist/constants.js.map +1 -1
  80. package/dist/context-runtime-preprocessor.d.ts +41 -0
  81. package/dist/context-runtime-preprocessor.js +199 -0
  82. package/dist/context-runtime-preprocessor.js.map +1 -0
  83. package/dist/cursor-settings.d.ts +25 -0
  84. package/dist/cursor-settings.js +72 -0
  85. package/dist/cursor-settings.js.map +1 -0
  86. package/dist/health-commands.js +43 -3
  87. package/dist/health-commands.js.map +1 -1
  88. package/dist/model-aliases.d.ts +5 -0
  89. package/dist/model-aliases.js +37 -0
  90. package/dist/model-aliases.js.map +1 -0
  91. package/dist/ollama-provider.js +25 -0
  92. package/dist/ollama-provider.js.map +1 -1
  93. package/dist/phase-playbooks.js +11 -0
  94. package/dist/phase-playbooks.js.map +1 -1
  95. package/dist/provider-agent-wrapper.js +14 -0
  96. package/dist/provider-agent-wrapper.js.map +1 -1
  97. package/dist/qa-e2e-artifacts.js +71 -3
  98. package/dist/qa-e2e-artifacts.js.map +1 -1
  99. package/dist/runtime-adapters.js +56 -0
  100. package/dist/runtime-adapters.js.map +1 -1
  101. package/dist/runtime-bootstrap.js +32 -22
  102. package/dist/runtime-bootstrap.js.map +1 -1
  103. package/dist/runtime-child-prompt.js +8 -0
  104. package/dist/runtime-child-prompt.js.map +1 -1
  105. package/dist/runtime-context-manifest.d.ts +4 -1
  106. package/dist/runtime-context-manifest.js +59 -3
  107. package/dist/runtime-context-manifest.js.map +1 -1
  108. package/dist/runtime-execution-adapters.js +19 -0
  109. package/dist/runtime-execution-adapters.js.map +1 -1
  110. package/dist/runtime-execution-renderer.js +4 -0
  111. package/dist/runtime-execution-renderer.js.map +1 -1
  112. package/dist/runtime-execution.js +13 -82
  113. package/dist/runtime-execution.js.map +1 -1
  114. package/dist/runtime-hooks.d.ts +46 -0
  115. package/dist/runtime-hooks.js +95 -0
  116. package/dist/runtime-hooks.js.map +1 -0
  117. package/dist/runtime-parent-actions.js +5 -0
  118. package/dist/runtime-parent-actions.js.map +1 -1
  119. package/dist/runtime-spawn-bridge.js +1 -0
  120. package/dist/runtime-spawn-bridge.js.map +1 -1
  121. package/dist/runtime-spawn-guidance.js +15 -61
  122. package/dist/runtime-spawn-guidance.js.map +1 -1
  123. package/dist/security/chat-guardrail-policy.d.ts +7 -0
  124. package/dist/security/chat-guardrail-policy.js +61 -0
  125. package/dist/security/chat-guardrail-policy.js.map +1 -0
  126. package/dist/security/chat-guardrail-types.d.ts +65 -0
  127. package/dist/security/chat-guardrail-types.js +2 -0
  128. package/dist/security/chat-guardrail-types.js.map +1 -0
  129. package/dist/security/chat-guardrail-validation.d.ts +9 -0
  130. package/dist/security/chat-guardrail-validation.js +64 -0
  131. package/dist/security/chat-guardrail-validation.js.map +1 -0
  132. package/dist/security/chat-guardrails.d.ts +3 -0
  133. package/dist/security/chat-guardrails.js +136 -0
  134. package/dist/security/chat-guardrails.js.map +1 -0
  135. package/dist/security/content-classifier.js +33 -1
  136. package/dist/security/content-classifier.js.map +1 -1
  137. package/dist/security/payment-card-detection.d.ts +3 -0
  138. package/dist/security/payment-card-detection.js +48 -0
  139. package/dist/security/payment-card-detection.js.map +1 -0
  140. package/dist/security/policy-types.d.ts +1 -1
  141. package/dist/security/provider-egress-policy.d.ts +27 -0
  142. package/dist/security/provider-egress-policy.js +72 -0
  143. package/dist/security/provider-egress-policy.js.map +1 -0
  144. package/dist/security/public-api-auth.d.ts +20 -0
  145. package/dist/security/public-api-auth.js +55 -0
  146. package/dist/security/public-api-auth.js.map +1 -0
  147. package/dist/security/public-api-policy.d.ts +8 -0
  148. package/dist/security/public-api-policy.js +40 -0
  149. package/dist/security/public-api-policy.js.map +1 -0
  150. package/dist/security/redaction.js +44 -13
  151. package/dist/security/redaction.js.map +1 -1
  152. package/dist/security/restricted-content-quarantine.d.ts +17 -0
  153. package/dist/security/restricted-content-quarantine.js +50 -0
  154. package/dist/security/restricted-content-quarantine.js.map +1 -0
  155. package/dist/security/restricted-data-classifier.d.ts +9 -0
  156. package/dist/security/restricted-data-classifier.js +358 -0
  157. package/dist/security/restricted-data-classifier.js.map +1 -0
  158. package/dist/skills-render.js +7 -14
  159. package/dist/skills-render.js.map +1 -1
  160. package/dist/telemetry-redaction.d.ts +2 -0
  161. package/dist/telemetry-redaction.js +25 -2
  162. package/dist/telemetry-redaction.js.map +1 -1
  163. package/dist/types/chat.d.ts +203 -0
  164. package/dist/types/chat.js +10 -0
  165. package/dist/types/chat.js.map +1 -0
  166. package/dist/types/model-config.d.ts +4 -0
  167. package/dist/types/public-api.d.ts +75 -0
  168. package/dist/types/public-api.js +2 -0
  169. package/dist/types/public-api.js.map +1 -0
  170. package/dist/types/restricted-data.d.ts +69 -0
  171. package/dist/types/restricted-data.js +8 -0
  172. package/dist/types/restricted-data.js.map +1 -0
  173. package/dist/types/restricted-fragment.d.ts +82 -0
  174. package/dist/types/restricted-fragment.js +14 -0
  175. package/dist/types/restricted-fragment.js.map +1 -0
  176. package/dist/types/runtime.d.ts +12 -0
  177. package/dist/types.d.ts +6 -0
  178. package/dist/types.js.map +1 -1
  179. package/dist/web-api.js +24 -0
  180. package/dist/web-api.js.map +1 -1
  181. package/dist/web-artifact-parsers.d.ts +6 -0
  182. package/dist/web-artifact-parsers.js +266 -0
  183. package/dist/web-artifact-parsers.js.map +1 -0
  184. package/dist/web-artifact-types.d.ts +76 -0
  185. package/dist/web-artifact-types.js +2 -0
  186. package/dist/web-artifact-types.js.map +1 -0
  187. package/dist/web-artifacts.d.ts +2 -43
  188. package/dist/web-artifacts.js +106 -57
  189. package/dist/web-artifacts.js.map +1 -1
  190. package/dist/web-chat-route-inputs.d.ts +11 -0
  191. package/dist/web-chat-route-inputs.js +156 -0
  192. package/dist/web-chat-route-inputs.js.map +1 -0
  193. package/dist/web-chat-routes.d.ts +7 -0
  194. package/dist/web-chat-routes.js +213 -0
  195. package/dist/web-chat-routes.js.map +1 -0
  196. package/dist/web-console/assets/index-CJup1cIA.css +1 -0
  197. package/dist/web-console/assets/index-CVDOfipu.js +11 -0
  198. package/dist/web-console/index.html +2 -2
  199. package/dist/web-evidence.d.ts +1 -1
  200. package/dist/web-evidence.js +9 -2
  201. package/dist/web-evidence.js.map +1 -1
  202. package/dist/web-public-route-inputs.d.ts +14 -0
  203. package/dist/web-public-route-inputs.js +136 -0
  204. package/dist/web-public-route-inputs.js.map +1 -0
  205. package/dist/web-public-routes.d.ts +6 -0
  206. package/dist/web-public-routes.js +194 -0
  207. package/dist/web-public-routes.js.map +1 -0
  208. package/dist/web-public-service.d.ts +16 -0
  209. package/dist/web-public-service.js +154 -0
  210. package/dist/web-public-service.js.map +1 -0
  211. package/dist/workflow-services.js +5 -0
  212. package/dist/workflow-services.js.map +1 -1
  213. package/dist/workspace-runtime-bootstrap.js +15 -4
  214. package/dist/workspace-runtime-bootstrap.js.map +1 -1
  215. package/docs/chat-audit-retention.md +76 -0
  216. package/docs/chat-provider-provenance-ledger.md +75 -0
  217. package/docs/context-runtime-preprocessing.md +37 -0
  218. package/docs/orchestra-mvp.md +8 -2
  219. package/docs/public-api-contract.md +43 -0
  220. package/docs/release-test-matrix.md +14 -14
  221. package/docs/restricted-fragment-storage-contract.md +147 -0
  222. package/docs/runtime-adapters.md +40 -7
  223. package/docs/site-manifest.json +128 -30
  224. package/package.json +5 -2
  225. package/site/dist/_headers +9 -0
  226. package/site/dist/_redirects +2 -0
  227. package/site/dist/architecture.mmd +61 -0
  228. package/site/dist/assets/index-Bi8l6tCE.js +10 -0
  229. package/site/dist/assets/index-BsCLqY__.css +1 -0
  230. package/site/dist/favicon.svg +19 -0
  231. package/site/dist/index.html +28 -0
  232. package/site/package.json +19 -0
  233. package/dist/web-console/assets/index-BHs7OIv8.css +0 -1
  234. package/dist/web-console/assets/index-BJuVTqfQ.js +0 -11
  235. package/dist/workspace-claude-settings.js.map +0 -1
@@ -4,10 +4,11 @@ import { exists } from "./fs-utils.js";
4
4
  import { removeUndefined } from "./command-utils.js";
5
5
  import { addEvidence } from "./workflow-services.js";
6
6
  import { resolveWorkspaceLocalPath } from "./web-evidence.js";
7
+ import { parseJsonErd, parseMarkdownErd, parseMermaidErd, parseTsxCanvasContract, validateMermaidSource, } from "./web-artifact-parsers.js";
7
8
  const ARTIFACT_ROOTS = [".agent-workflow", "docs", "reports", "e2e"];
8
9
  const TEXT_LIMIT_BYTES = 128 * 1024;
9
10
  const MAX_ARTIFACTS = 300;
10
- const SUPPORTED_EXTENSIONS = new Set([
11
+ const DISCOVERABLE_EXTENSIONS = new Set([
11
12
  ".md",
12
13
  ".mmd",
13
14
  ".mermaid",
@@ -17,6 +18,12 @@ const SUPPORTED_EXTENSIONS = new Set([
17
18
  ".txt",
18
19
  ".log",
19
20
  ".tsx",
21
+ ".drawio",
22
+ ".xml",
23
+ ".pdf",
24
+ ".zip",
25
+ ".bin",
26
+ ".csv",
20
27
  ]);
21
28
  const EVIDENCE_TYPES = new Set([
22
29
  "command",
@@ -48,10 +55,13 @@ export async function previewWebArtifact(root, artifactPath) {
48
55
  if (!details.isFile()) {
49
56
  throw new Error(`artifact is not a file: ${artifactPath}`);
50
57
  }
51
- const summary = summarizeArtifact(artifactPath, details);
58
+ const summary = summarizeArtifact(root, artifactPath, details);
52
59
  if (summary.type === "png") {
53
60
  return summary;
54
61
  }
62
+ if (summary.type === "unsupported") {
63
+ return summary;
64
+ }
55
65
  if (details.size > TEXT_LIMIT_BYTES) {
56
66
  return {
57
67
  ...summary,
@@ -65,20 +75,43 @@ export async function previewWebArtifact(root, artifactPath) {
65
75
  ? { ...summary, type: "tsx-canvas", content, canvas, renderable: true }
66
76
  : { ...summary, content };
67
77
  }
78
+ if (summary.type === "drawio") {
79
+ return {
80
+ ...summary,
81
+ content,
82
+ unsupportedReason: "draw.io source is available, but interactive draw.io rendering is not supported in the safe web console viewer yet.",
83
+ };
84
+ }
68
85
  if (summary.type === "mermaid") {
69
86
  const parseError = validateMermaidSource(content);
70
- return parseError
71
- ? { ...summary, content, parseError }
87
+ const erd = parseMermaidErd(content);
88
+ if (parseError) {
89
+ return erd
90
+ ? { ...summary, content, parseError, erd }
91
+ : { ...summary, content, parseError };
92
+ }
93
+ return erd
94
+ ? { ...summary, type: "erd", content, erd }
72
95
  : { ...summary, content };
73
96
  }
74
- if (summary.type === "json") {
97
+ if (summary.type === "json" || summary.type === "erd") {
75
98
  try {
76
- JSON.parse(content);
99
+ const parsed = JSON.parse(content);
100
+ const erd = parseJsonErd(parsed);
101
+ return erd
102
+ ? { ...summary, type: "erd", content, erd, renderable: true }
103
+ : { ...summary, content };
77
104
  }
78
105
  catch (error) {
79
106
  return { ...summary, content, parseError: errorMessage(error) };
80
107
  }
81
108
  }
109
+ if (summary.type === "markdown") {
110
+ const erd = parseMarkdownErd(content);
111
+ return erd
112
+ ? { ...summary, type: "erd", content, erd, renderable: true }
113
+ : { ...summary, content };
114
+ }
82
115
  return { ...summary, content };
83
116
  }
84
117
  export async function attachArtifactEvidence(root, input) {
@@ -122,25 +155,39 @@ async function collectArtifacts(root, directory, artifacts) {
122
155
  continue;
123
156
  }
124
157
  if (!entry.isFile() ||
125
- !SUPPORTED_EXTENSIONS.has(path.extname(entry.name))) {
158
+ !DISCOVERABLE_EXTENSIONS.has(path.extname(entry.name).toLowerCase())) {
126
159
  continue;
127
160
  }
128
161
  const details = await stat(absolutePath);
129
- artifacts.push(summarizeArtifact(relativePath(root, absolutePath), details));
162
+ artifacts.push(summarizeArtifact(root, relativePath(root, absolutePath), details));
130
163
  }
131
164
  }
132
- function summarizeArtifact(artifactPath, details) {
165
+ function summarizeArtifact(root, artifactPath, details) {
133
166
  const type = artifactType(artifactPath);
134
- return {
167
+ const metadata = artifactMetadata(artifactPath);
168
+ const workspace = path.basename(path.resolve(root)) || "workspace";
169
+ const group = {
170
+ workspace,
171
+ taskId: metadata.taskId ?? "unassigned",
172
+ runId: metadata.runId ?? "no-run",
173
+ type,
174
+ };
175
+ return removeUndefined({
135
176
  path: artifactPath,
136
177
  type,
137
- ...artifactMetadata(artifactPath),
178
+ workspace,
179
+ group,
180
+ ...metadata,
138
181
  sizeBytes: details.size,
139
182
  updatedAt: details.mtime.toISOString(),
140
- renderable: type !== "tsx-source",
183
+ renderable: type !== "tsx-source" && type !== "drawio" && type !== "unsupported",
141
184
  safePreview: true,
185
+ sourceAvailable: true,
186
+ unsupportedReason: type === "unsupported"
187
+ ? "This file type is tracked for download but is not safe for inline preview."
188
+ : undefined,
142
189
  url: `/api/artifacts?path=${encodeURIComponent(artifactPath)}`,
143
- };
190
+ });
144
191
  }
145
192
  function artifactType(artifactPath) {
146
193
  const extension = path.extname(artifactPath).toLowerCase();
@@ -152,11 +199,20 @@ function artifactType(artifactPath) {
152
199
  return "svg";
153
200
  if (extension === ".png")
154
201
  return "png";
202
+ if (/(^|[-_.])erd([-_.]|$)/i.test(path.basename(artifactPath))) {
203
+ return "erd";
204
+ }
155
205
  if (extension === ".json")
156
206
  return "json";
207
+ if (extension === ".log")
208
+ return "log";
209
+ if (extension === ".drawio" || extension === ".xml")
210
+ return "drawio";
157
211
  if (extension === ".tsx")
158
212
  return "tsx-source";
159
- return "text";
213
+ if (extension === ".txt" || extension === ".csv")
214
+ return "text";
215
+ return "unsupported";
160
216
  }
161
217
  function artifactMetadata(artifactPath) {
162
218
  const parts = artifactPath.split("/");
@@ -169,51 +225,44 @@ function artifactMetadata(artifactPath) {
169
225
  });
170
226
  }
171
227
  const fileName = path.basename(artifactPath);
172
- const taskMatch = fileName.match(/^(GH-\d+|[A-Z][A-Z0-9_-]+)/);
173
- return taskMatch ? removeUndefined({ taskId: taskMatch[1] }) : {};
174
- }
175
- function parseTsxCanvasContract(content) {
176
- const canvasMarker = "orchestra-canvas";
177
- const markerIndex = content.indexOf(canvasMarker);
178
- if (markerIndex === -1)
179
- return undefined;
180
- const commentStart = content.lastIndexOf("/*", markerIndex);
181
- const commentEnd = content.indexOf("*/", markerIndex);
182
- if (commentStart === -1 || commentEnd === -1)
183
- return undefined;
184
- try {
185
- const parsed = JSON.parse(content.slice(markerIndex + canvasMarker.length, commentEnd).trim());
186
- validateCanvasContract(parsed);
187
- return parsed;
188
- }
189
- catch {
190
- return undefined;
191
- }
192
- }
193
- function validateCanvasContract(contract) {
194
- if (contract.version !== 1)
195
- throw new Error("unsupported canvas version");
196
- if (!Number.isFinite(contract.width) || !Number.isFinite(contract.height)) {
197
- throw new Error("canvas width and height are required");
198
- }
199
- if (!Array.isArray(contract.nodes))
200
- throw new Error("canvas nodes are required");
201
- for (const node of contract.nodes) {
202
- if (!node.id || !node.label)
203
- throw new Error("canvas nodes require id and label");
204
- if (!Number.isFinite(node.x) || !Number.isFinite(node.y)) {
205
- throw new Error("canvas nodes require x and y");
206
- }
207
- }
228
+ const taskId = taskIdFromArtifactFileName(fileName);
229
+ return taskId ? { taskId } : {};
208
230
  }
209
- function validateMermaidSource(content) {
210
- const trimmed = content.trim();
211
- if (trimmed.length === 0)
212
- return "diagram is empty";
213
- if (!/^(flowchart|graph|sequenceDiagram|classDiagram|stateDiagram|erDiagram|journey|gantt|pie|mindmap|timeline)\b/.test(trimmed)) {
214
- return "line 1: unsupported or missing Mermaid diagram declaration";
231
+ function taskIdFromArtifactFileName(fileName) {
232
+ if (fileName.startsWith("GH-")) {
233
+ const issueDigits = leadingDigits(fileName.slice(3));
234
+ return issueDigits ? `GH-${issueDigits}` : undefined;
215
235
  }
216
- return undefined;
236
+ const candidate = takeWhile(fileName, (char, index) => index === 0 ? isUppercaseAscii(char) : isTaskIdChar(char));
237
+ const normalizedCandidate = trimTrailingTaskIdSeparators(candidate);
238
+ return normalizedCandidate.length > 0 ? normalizedCandidate : undefined;
239
+ }
240
+ function leadingDigits(value) {
241
+ return takeWhile(value, isDigit);
242
+ }
243
+ function takeWhile(value, predicate) {
244
+ let end = 0;
245
+ while (end < value.length && predicate(value[end], end))
246
+ end += 1;
247
+ return value.slice(0, end);
248
+ }
249
+ function isTaskIdChar(value) {
250
+ return (isUppercaseAscii(value) || isDigit(value) || value === "_" || value === "-");
251
+ }
252
+ function trimTrailingTaskIdSeparators(value) {
253
+ let end = value.length;
254
+ while (end > 0 && isTaskIdSeparator(value[end - 1]))
255
+ end -= 1;
256
+ return value.slice(0, end);
257
+ }
258
+ function isTaskIdSeparator(value) {
259
+ return value === "_" || value === "-";
260
+ }
261
+ function isUppercaseAscii(value) {
262
+ return value >= "A" && value <= "Z";
263
+ }
264
+ function isDigit(value) {
265
+ return value >= "0" && value <= "9";
217
266
  }
218
267
  function relativePath(root, absolutePath) {
219
268
  return path
@@ -1 +1 @@
1
- {"version":3,"file":"web-artifacts.js","sourceRoot":"","sources":["../src/web-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-artifacts.js","sourceRoot":"","sources":["../src/web-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type http from "node:http";
2
+ import { ChatApiError } from "./chat-api-errors.js";
3
+ import type { ChatMessagesInput, ChatSendInput, ChatThreadInput, CreateChatThreadInput, ListChatInput } from "./chat-api-types.js";
4
+ export declare function listInput(url: URL): ListChatInput;
5
+ export declare function threadInput(url: URL, threadId: string): ChatThreadInput;
6
+ export declare function messagesInput(url: URL, threadId: string): ChatMessagesInput;
7
+ export declare function createThreadInput(body: unknown, requestIdValue: string): CreateChatThreadInput;
8
+ export declare function messageInput(body: unknown, headerKey: string | string[] | undefined, threadId: string, requestIdValue: string): ChatSendInput;
9
+ export declare function safeJsonBody(request: http.IncomingMessage): Promise<unknown>;
10
+ export declare function requestId(url: URL): string;
11
+ export declare function apiError(code: string, message: string, status: number): ChatApiError;
@@ -0,0 +1,156 @@
1
+ import { ChatApiError } from "./chat-api-errors.js";
2
+ export function listInput(url) {
3
+ return {
4
+ requestId: requestId(url),
5
+ scope: scopeFromQuery(url),
6
+ ...optionalPaging(url),
7
+ };
8
+ }
9
+ export function threadInput(url, threadId) {
10
+ return { requestId: requestId(url), scope: scopeFromQuery(url), threadId };
11
+ }
12
+ export function messagesInput(url, threadId) {
13
+ return {
14
+ ...threadInput(url, threadId),
15
+ ...optionalPaging(url),
16
+ };
17
+ }
18
+ export function createThreadInput(body, requestIdValue) {
19
+ const input = objectBody(body, requestIdValue);
20
+ return {
21
+ requestId: requestIdValue,
22
+ scope: scopeFromBody(input, requestIdValue),
23
+ title: stringField(input, "title", requestIdValue),
24
+ actor: actorFromBody(input, requestIdValue),
25
+ };
26
+ }
27
+ export function messageInput(body, headerKey, threadId, requestIdValue) {
28
+ const input = objectBody(body, requestIdValue);
29
+ const idempotencyKey = headerString(headerKey) ?? stringValue(input.idempotencyKey);
30
+ return {
31
+ requestId: requestIdValue,
32
+ scope: scopeFromBody(input, requestIdValue),
33
+ threadId,
34
+ ...(idempotencyKey ? { idempotencyKey } : {}),
35
+ actor: actorFromBody(input, requestIdValue),
36
+ text: stringField(input, "text", requestIdValue),
37
+ format: stringValue(input.format) === "markdown" ? "markdown" : "plain_text",
38
+ };
39
+ }
40
+ export async function safeJsonBody(request) {
41
+ const chunks = [];
42
+ let size = 0;
43
+ try {
44
+ for await (const chunk of request) {
45
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
46
+ size += buffer.length;
47
+ if (size > CHAT_JSON_BODY_LIMIT_BYTES) {
48
+ throw apiError("payload_too_large", "chat payload is too large", 413);
49
+ }
50
+ chunks.push(buffer);
51
+ }
52
+ const content = Buffer.concat(chunks).toString("utf8");
53
+ return content.trim() === "" ? {} : JSON.parse(content);
54
+ }
55
+ catch (error) {
56
+ if (error instanceof ChatApiError)
57
+ throw error;
58
+ throw apiError("invalid_json", "request body must be valid JSON", 400);
59
+ }
60
+ }
61
+ const CHAT_JSON_BODY_LIMIT_BYTES = 64 * 1024;
62
+ export function requestId(url) {
63
+ return stringParam(url, "requestId") ?? "chat-request";
64
+ }
65
+ export function apiError(code, message, status) {
66
+ return new ChatApiError(code, message, status, "chat-request");
67
+ }
68
+ function scopeFromQuery(url) {
69
+ return {
70
+ tenantId: requiredQuery(url, "tenantId"),
71
+ workspaceId: requiredQuery(url, "workspaceId"),
72
+ taskId: requiredQuery(url, "taskId"),
73
+ runId: requiredQuery(url, "runId"),
74
+ phase: requiredQuery(url, "phase"),
75
+ sessionId: requiredQuery(url, "sessionId"),
76
+ };
77
+ }
78
+ function scopeFromBody(body, requestIdValue) {
79
+ const scope = objectValue(body.scope);
80
+ if (!scope) {
81
+ throw new ChatApiError("invalid_request", "scope is required", 400, requestIdValue);
82
+ }
83
+ return {
84
+ tenantId: stringField(scope, "tenantId", requestIdValue),
85
+ workspaceId: stringField(scope, "workspaceId", requestIdValue),
86
+ taskId: stringField(scope, "taskId", requestIdValue),
87
+ runId: stringField(scope, "runId", requestIdValue),
88
+ phase: stringField(scope, "phase", requestIdValue),
89
+ sessionId: stringField(scope, "sessionId", requestIdValue),
90
+ };
91
+ }
92
+ function actorFromBody(body, requestIdValue) {
93
+ const actor = objectValue(body.actor);
94
+ if (!actor) {
95
+ throw new ChatApiError("invalid_request", "actor is required", 400, requestIdValue);
96
+ }
97
+ if (stringField(actor, "kind", requestIdValue) !== "human") {
98
+ throw new ChatApiError("invalid_request", "only human chat actors are supported by this API slice", 400, requestIdValue);
99
+ }
100
+ return {
101
+ kind: "human",
102
+ actorId: stringField(actor, "actorId", requestIdValue),
103
+ displayName: stringField(actor, "displayName", requestIdValue),
104
+ source: "web_console",
105
+ sessionId: stringField(actor, "sessionId", requestIdValue),
106
+ };
107
+ }
108
+ function objectBody(body, requestIdValue) {
109
+ const value = objectValue(body);
110
+ if (!value) {
111
+ throw new ChatApiError("invalid_request", "JSON object body is required", 400, requestIdValue);
112
+ }
113
+ return value;
114
+ }
115
+ function objectValue(value) {
116
+ return typeof value === "object" && value !== null && !Array.isArray(value)
117
+ ? value
118
+ : undefined;
119
+ }
120
+ function stringField(source, field, requestIdValue) {
121
+ const value = stringValue(source[field]);
122
+ if (!value) {
123
+ throw new ChatApiError("invalid_request", `${field} is required`, 400, requestIdValue);
124
+ }
125
+ return value;
126
+ }
127
+ function stringValue(value) {
128
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
129
+ }
130
+ function requiredQuery(url, field) {
131
+ const value = url.searchParams.get(field)?.trim();
132
+ if (!value)
133
+ throw apiError("invalid_request", `${field} is required`, 400);
134
+ return value;
135
+ }
136
+ function stringParam(url, field) {
137
+ return url.searchParams.get(field)?.trim() || undefined;
138
+ }
139
+ function numberParam(url, field) {
140
+ const value = url.searchParams.get(field);
141
+ return value ? Number(value) : undefined;
142
+ }
143
+ function optionalPaging(url) {
144
+ const limit = numberParam(url, "limit");
145
+ const cursor = stringParam(url, "cursor");
146
+ return {
147
+ ...(limit !== undefined ? { limit } : {}),
148
+ ...(cursor !== undefined ? { cursor } : {}),
149
+ };
150
+ }
151
+ function headerString(value) {
152
+ if (Array.isArray(value))
153
+ return value[0]?.trim();
154
+ return value?.trim();
155
+ }
156
+ //# sourceMappingURL=web-chat-route-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-chat-route-inputs.js","sourceRoot":"","sources":["../src/web-chat-route-inputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type http from "node:http";
2
+ export interface WebChatRouteResult {
3
+ status: number;
4
+ body: unknown;
5
+ contentType: "application/json" | "text/event-stream";
6
+ }
7
+ export declare function handleWebChatRoute(request: http.IncomingMessage, root: string, url: URL): Promise<WebChatRouteResult | null>;