dotdo 0.0.2 → 0.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 (313) hide show
  1. package/cli/README.md +238 -0
  2. package/cli/agent.ts +72 -0
  3. package/cli/bin.js +44 -0
  4. package/cli/bin.ts +38 -0
  5. package/cli/build.ts +157 -0
  6. package/cli/commands/auth/login.ts +14 -0
  7. package/cli/commands/auth/logout.ts +6 -0
  8. package/cli/commands/auth/whoami.ts +16 -0
  9. package/cli/commands/deploy-multi.ts +245 -0
  10. package/cli/commands/dev/deploy.ts +100 -0
  11. package/cli/commands/dev/dev.ts +95 -0
  12. package/cli/commands/dev/logs.ts +91 -0
  13. package/cli/commands/dev-local.ts +88 -0
  14. package/cli/commands/do-ops.ts +314 -0
  15. package/cli/commands/index.ts +100 -0
  16. package/cli/commands/init.ts +247 -0
  17. package/cli/commands/introspect/emitter.ts +315 -0
  18. package/cli/commands/introspect/index.ts +193 -0
  19. package/cli/commands/link.ts +598 -0
  20. package/cli/commands/snippets.ts +415 -0
  21. package/cli/commands/tunnel.ts +239 -0
  22. package/cli/device-auth.ts +289 -0
  23. package/cli/fallback.ts +12 -0
  24. package/cli/index.ts +121 -0
  25. package/cli/main.ts +246 -0
  26. package/cli/mcp-stdio.ts +790 -0
  27. package/cli/package.json +62 -0
  28. package/cli/runtime/do-registry.ts +193 -0
  29. package/cli/runtime/embedded-db.ts +344 -0
  30. package/cli/runtime/index.ts +9 -0
  31. package/cli/runtime/miniflare-adapter.ts +162 -0
  32. package/cli/sandbox.ts +82 -0
  33. package/cli/src/args.ts +174 -0
  34. package/cli/src/auth.ts +55 -0
  35. package/cli/src/commands/call.ts +84 -0
  36. package/cli/src/commands/charge.ts +96 -0
  37. package/cli/src/commands/config.ts +115 -0
  38. package/cli/src/commands/email.ts +112 -0
  39. package/cli/src/commands/llm.ts +115 -0
  40. package/cli/src/commands/queue.ts +134 -0
  41. package/cli/src/commands/text.ts +86 -0
  42. package/cli/src/config.ts +185 -0
  43. package/cli/src/output.ts +246 -0
  44. package/cli/src/rpc.ts +192 -0
  45. package/cli/utils/config.ts +282 -0
  46. package/cli/utils/detect.ts +73 -0
  47. package/cli/utils/index.ts +15 -0
  48. package/cli/utils/logger.ts +232 -0
  49. package/dist/ai/template-literals.js +2 -2
  50. package/dist/ai/template-literals.js.map +1 -1
  51. package/dist/api/middleware/auth.js +3 -2
  52. package/dist/api/middleware/auth.js.map +1 -1
  53. package/dist/db/iceberg/inverted-index.js +1 -1
  54. package/dist/db/iceberg/inverted-index.js.map +1 -1
  55. package/dist/db/iceberg/puffin.js.map +1 -1
  56. package/dist/db/json-indexes.js.map +1 -1
  57. package/dist/db/objects.js.map +1 -1
  58. package/dist/db/primitives/dag-scheduler/index.js +1 -1
  59. package/dist/db/primitives/dag-scheduler/index.js.map +1 -1
  60. package/dist/db/primitives/observability.js.map +1 -1
  61. package/dist/db/primitives/schema-evolution.js.map +1 -1
  62. package/dist/db/primitives/temporal-store.js.map +1 -1
  63. package/dist/db/primitives/typed-column-store.js.map +1 -1
  64. package/dist/db/primitives/utils/duration.js.map +1 -1
  65. package/dist/db/primitives/utils/murmur3.js +12 -14
  66. package/dist/db/primitives/utils/murmur3.js.map +1 -1
  67. package/dist/db/primitives/window-manager.js.map +1 -1
  68. package/dist/db/stores.js.map +1 -1
  69. package/dist/db/things.js.map +1 -1
  70. package/dist/lib/DODispatcher.js +2 -2
  71. package/dist/lib/DODispatcher.js.map +1 -1
  72. package/dist/lib/auto-wiring.js.map +1 -1
  73. package/dist/lib/channels/email.js +1 -1
  74. package/dist/lib/channels/email.js.map +1 -1
  75. package/dist/lib/channels/slack-blockkit.js.map +1 -1
  76. package/dist/lib/cloudflare/ai.js +1 -1
  77. package/dist/lib/cloudflare/ai.js.map +1 -1
  78. package/dist/lib/cloudflare/kv.js +1 -1
  79. package/dist/lib/cloudflare/kv.js.map +1 -1
  80. package/dist/lib/cloudflare/r2.js +3 -3
  81. package/dist/lib/cloudflare/r2.js.map +1 -1
  82. package/dist/lib/cloudflare/vectorize.js.map +1 -1
  83. package/dist/lib/cloudflare/workflows.js.map +1 -1
  84. package/dist/lib/executors/AgenticFunctionExecutor.js.map +1 -1
  85. package/dist/lib/executors/CodeFunctionExecutor.js.map +1 -1
  86. package/dist/lib/executors/GenerativeFunctionExecutor.js.map +1 -1
  87. package/dist/lib/executors/HumanFunctionExecutor.js +1 -1
  88. package/dist/lib/executors/HumanFunctionExecutor.js.map +1 -1
  89. package/dist/lib/executors/ParallelStepExecutor.js.map +1 -1
  90. package/dist/lib/experiments.js.map +1 -1
  91. package/dist/lib/flags/store.js.map +1 -1
  92. package/dist/lib/functions/FunctionComposition.js.map +1 -1
  93. package/dist/lib/functions/FunctionMiddleware.js.map +1 -1
  94. package/dist/lib/functions/FunctionRegistry.js.map +1 -1
  95. package/dist/lib/humans/templates.js.map +1 -1
  96. package/dist/lib/identity.js +2 -2
  97. package/dist/lib/identity.js.map +1 -1
  98. package/dist/lib/logging/index.js.map +1 -1
  99. package/dist/lib/mixins/bash.js +1 -73
  100. package/dist/lib/mixins/bash.js.map +1 -1
  101. package/dist/lib/mixins/git.js +0 -5
  102. package/dist/lib/mixins/git.js.map +1 -1
  103. package/dist/lib/mixins/npm.js.map +1 -1
  104. package/dist/lib/noun-id.js.map +1 -1
  105. package/dist/lib/rate-limit/sliding-window.js.map +1 -1
  106. package/dist/lib/rpc/bindings.js.map +1 -1
  107. package/dist/lib/safe-stringify.js.map +1 -1
  108. package/dist/lib/sandbox/miniflare-sandbox.js.map +1 -1
  109. package/dist/lib/sqids.js.map +1 -1
  110. package/dist/lib/sql/adapters/node-sql-parser.js.map +1 -1
  111. package/dist/lib/sql/adapters/pgsql-parser.js +19 -18
  112. package/dist/lib/sql/adapters/pgsql-parser.js.map +1 -1
  113. package/dist/metrics/hunch.js.map +1 -1
  114. package/dist/objects/API.js +1 -1
  115. package/dist/objects/API.js.map +1 -1
  116. package/dist/objects/Agent.js.map +1 -1
  117. package/dist/objects/Browser.js.map +1 -1
  118. package/dist/objects/CLI.js.map +1 -1
  119. package/dist/objects/DOBase.js.map +1 -1
  120. package/dist/objects/DOCache.js +153 -0
  121. package/dist/objects/DOCache.js.map +1 -0
  122. package/dist/objects/DOFull.js.map +1 -1
  123. package/dist/objects/Entity.js.map +1 -1
  124. package/dist/objects/Human.js.map +1 -1
  125. package/dist/objects/IcebergMetadataDO.js.map +1 -1
  126. package/dist/objects/IntegrationsDO.js.map +1 -1
  127. package/dist/objects/ObservabilityBroadcaster.js.map +1 -1
  128. package/dist/objects/Package.js.map +1 -1
  129. package/dist/objects/Product.js +1 -1
  130. package/dist/objects/Product.js.map +1 -1
  131. package/dist/objects/SaaS.js.map +1 -1
  132. package/dist/objects/SandboxDO.js.map +1 -1
  133. package/dist/objects/Service.js.map +1 -1
  134. package/dist/objects/VectorShardDO.js +9 -7
  135. package/dist/objects/VectorShardDO.js.map +1 -1
  136. package/dist/objects/Workflow.js.map +1 -1
  137. package/dist/objects/WorkflowFactory.js.map +1 -1
  138. package/dist/objects/WorkflowRuntime.js.map +1 -1
  139. package/dist/objects/lifecycle/Branch.js.map +1 -1
  140. package/dist/objects/lifecycle/Clone.js +1 -1
  141. package/dist/objects/lifecycle/Clone.js.map +1 -1
  142. package/dist/objects/lifecycle/Compact.js.map +1 -1
  143. package/dist/objects/lifecycle/Shard.js.map +1 -1
  144. package/dist/objects/persistence/checkpoint-manager.js.map +1 -1
  145. package/dist/objects/persistence/migration-runner.js.map +1 -1
  146. package/dist/objects/persistence/replication-manager.js +2 -2
  147. package/dist/objects/persistence/replication-manager.js.map +1 -1
  148. package/dist/objects/persistence/tiered-storage-manager.js.map +1 -1
  149. package/dist/objects/persistence/wal-manager.js.map +1 -1
  150. package/dist/objects/transport/auth-layer.js.map +1 -1
  151. package/dist/objects/transport/chain.js.map +1 -1
  152. package/dist/objects/transport/mcp-server.js +7 -6
  153. package/dist/objects/transport/mcp-server.js.map +1 -1
  154. package/dist/objects/transport/rest-autowire.js +3 -2
  155. package/dist/objects/transport/rest-autowire.js.map +1 -1
  156. package/dist/objects/transport/rest-router.js.map +1 -1
  157. package/dist/objects/transport/rpc-server.js +18 -15
  158. package/dist/objects/transport/rpc-server.js.map +1 -1
  159. package/dist/objects/transport/shared.js +2 -1
  160. package/dist/objects/transport/shared.js.map +1 -1
  161. package/dist/snippets/artifacts-ingest.js.map +1 -1
  162. package/dist/snippets/artifacts-serve.js.map +1 -1
  163. package/dist/snippets/search.js.map +1 -1
  164. package/dist/workflows/ScheduleManager.js.map +1 -1
  165. package/dist/workflows/StepResultStorage.js.map +1 -1
  166. package/dist/workflows/WaitForEventManager.js.map +1 -1
  167. package/dist/workflows/compat/backends/cloudflare-workflows.js.map +1 -1
  168. package/dist/workflows/compat/inngest/index.js.map +1 -1
  169. package/dist/workflows/compat/qstash/index.js.map +1 -1
  170. package/dist/workflows/compat/temporal/client.js.map +1 -1
  171. package/dist/workflows/compat/temporal/index.js.map +1 -1
  172. package/dist/workflows/compat/trigger/index.js.map +1 -1
  173. package/dist/workflows/compat/utils/index.js.map +1 -1
  174. package/dist/workflows/context/correlation.js +2 -2
  175. package/dist/workflows/context/correlation.js.map +1 -1
  176. package/dist/workflows/context/experiment.js +1 -1
  177. package/dist/workflows/context/experiment.js.map +1 -1
  178. package/dist/workflows/context/flag.js +1 -1
  179. package/dist/workflows/context/flag.js.map +1 -1
  180. package/dist/workflows/context/measure.js +1 -1
  181. package/dist/workflows/context/measure.js.map +1 -1
  182. package/dist/workflows/context/rate-limit.js.map +1 -1
  183. package/dist/workflows/data/entity-events/entity-events.js.map +1 -1
  184. package/dist/workflows/data/experiment/index.js.map +1 -1
  185. package/dist/workflows/data/goal/context.js +1 -1
  186. package/dist/workflows/data/goal/context.js.map +1 -1
  187. package/dist/workflows/data/measure/index.js +1 -1
  188. package/dist/workflows/data/measure/index.js.map +1 -1
  189. package/dist/workflows/data/stream/index.js +10 -76
  190. package/dist/workflows/data/stream/index.js.map +1 -1
  191. package/dist/workflows/data/track/context.js.map +1 -1
  192. package/dist/workflows/data/view/context.js.map +1 -1
  193. package/dist/workflows/domain.js.map +1 -1
  194. package/dist/workflows/flags.js +1 -1
  195. package/dist/workflows/flags.js.map +1 -1
  196. package/dist/workflows/hash.js.map +1 -1
  197. package/dist/workflows/on.js +1 -1
  198. package/dist/workflows/on.js.map +1 -1
  199. package/dist/workflows/schedule-builder.js.map +1 -1
  200. package/dist/workflows/visibility/index.js +0 -2
  201. package/dist/workflows/visibility/index.js.map +1 -1
  202. package/dist/workflows/visibility/query-parser.js.map +1 -1
  203. package/package.json +18 -3
  204. package/dist/api/analytics/router.js +0 -601
  205. package/dist/api/analytics/router.js.map +0 -1
  206. package/dist/api/index.js +0 -158
  207. package/dist/api/index.js.map +0 -1
  208. package/dist/api/middleware/error-handling.js +0 -176
  209. package/dist/api/middleware/error-handling.js.map +0 -1
  210. package/dist/api/middleware/request-id.js +0 -21
  211. package/dist/api/middleware/request-id.js.map +0 -1
  212. package/dist/api/pages.js +0 -1180
  213. package/dist/api/pages.js.map +0 -1
  214. package/dist/api/routes/api.js +0 -612
  215. package/dist/api/routes/api.js.map +0 -1
  216. package/dist/api/routes/browsers.js +0 -471
  217. package/dist/api/routes/browsers.js.map +0 -1
  218. package/dist/api/routes/do.js +0 -188
  219. package/dist/api/routes/do.js.map +0 -1
  220. package/dist/api/routes/mcp.js +0 -459
  221. package/dist/api/routes/mcp.js.map +0 -1
  222. package/dist/api/routes/obs.js +0 -445
  223. package/dist/api/routes/obs.js.map +0 -1
  224. package/dist/api/routes/openapi.js +0 -794
  225. package/dist/api/routes/openapi.js.map +0 -1
  226. package/dist/api/routes/rpc.js +0 -1103
  227. package/dist/api/routes/rpc.js.map +0 -1
  228. package/dist/api/routes/sandboxes.js +0 -389
  229. package/dist/api/routes/sandboxes.js.map +0 -1
  230. package/dist/api/test-do.js +0 -38
  231. package/dist/api/test-do.js.map +0 -1
  232. package/dist/api/types.js +0 -11
  233. package/dist/api/types.js.map +0 -1
  234. package/dist/cli/bin.js +0 -2
  235. package/dist/cli/main.js +0 -52342
  236. package/dist/do/bash.js +0 -35
  237. package/dist/do/bash.js.map +0 -1
  238. package/dist/do/fs.js +0 -25
  239. package/dist/do/fs.js.map +0 -1
  240. package/dist/do/full.js +0 -61
  241. package/dist/do/full.js.map +0 -1
  242. package/dist/do/git.js +0 -28
  243. package/dist/do/git.js.map +0 -1
  244. package/dist/do/index.js +0 -52
  245. package/dist/do/index.js.map +0 -1
  246. package/dist/lib/agent/tools/bash.js +0 -336
  247. package/dist/lib/agent/tools/bash.js.map +0 -1
  248. package/dist/lib/agent/tools/edit.js +0 -157
  249. package/dist/lib/agent/tools/edit.js.map +0 -1
  250. package/dist/lib/agent/tools/glob.js +0 -137
  251. package/dist/lib/agent/tools/glob.js.map +0 -1
  252. package/dist/lib/agent/tools/grep.js +0 -315
  253. package/dist/lib/agent/tools/grep.js.map +0 -1
  254. package/dist/lib/agent/tools/index.js +0 -71
  255. package/dist/lib/agent/tools/index.js.map +0 -1
  256. package/dist/lib/agent/tools/read.js +0 -212
  257. package/dist/lib/agent/tools/read.js.map +0 -1
  258. package/dist/lib/agent/tools/types.js +0 -197
  259. package/dist/lib/agent/tools/types.js.map +0 -1
  260. package/dist/lib/agent/tools/write.js +0 -159
  261. package/dist/lib/agent/tools/write.js.map +0 -1
  262. package/dist/lib/mixins/index.js +0 -29
  263. package/dist/lib/mixins/index.js.map +0 -1
  264. package/dist/primitives/bashx/src/ast/analyze.js +0 -1472
  265. package/dist/primitives/bashx/src/ast/analyze.js.map +0 -1
  266. package/dist/primitives/bashx/src/ast/parser.js +0 -1488
  267. package/dist/primitives/bashx/src/ast/parser.js.map +0 -1
  268. package/dist/primitives/bashx/src/do/commands/crypto.js +0 -1954
  269. package/dist/primitives/bashx/src/do/commands/crypto.js.map +0 -1
  270. package/dist/primitives/bashx/src/do/commands/data-processing.js +0 -1812
  271. package/dist/primitives/bashx/src/do/commands/data-processing.js.map +0 -1
  272. package/dist/primitives/bashx/src/do/commands/extended-utils.js +0 -804
  273. package/dist/primitives/bashx/src/do/commands/extended-utils.js.map +0 -1
  274. package/dist/primitives/bashx/src/do/commands/math-control.js +0 -1122
  275. package/dist/primitives/bashx/src/do/commands/math-control.js.map +0 -1
  276. package/dist/primitives/bashx/src/do/commands/posix-utils.js +0 -1015
  277. package/dist/primitives/bashx/src/do/commands/posix-utils.js.map +0 -1
  278. package/dist/primitives/bashx/src/do/commands/system-utils.js +0 -687
  279. package/dist/primitives/bashx/src/do/commands/system-utils.js.map +0 -1
  280. package/dist/primitives/bashx/src/do/commands/test-command.js +0 -523
  281. package/dist/primitives/bashx/src/do/commands/test-command.js.map +0 -1
  282. package/dist/primitives/bashx/src/do/commands/text-processing.js +0 -1550
  283. package/dist/primitives/bashx/src/do/commands/text-processing.js.map +0 -1
  284. package/dist/primitives/bashx/src/do/container-executor.js +0 -429
  285. package/dist/primitives/bashx/src/do/container-executor.js.map +0 -1
  286. package/dist/primitives/bashx/src/do/index.js +0 -668
  287. package/dist/primitives/bashx/src/do/index.js.map +0 -1
  288. package/dist/primitives/bashx/src/do/tiered-executor.js +0 -2647
  289. package/dist/primitives/bashx/src/do/tiered-executor.js.map +0 -1
  290. package/dist/primitives/bashx/src/do/worker.js +0 -352
  291. package/dist/primitives/bashx/src/do/worker.js.map +0 -1
  292. package/dist/primitives/bashx/src/types.js +0 -10
  293. package/dist/primitives/bashx/src/types.js.map +0 -1
  294. package/dist/primitives/fsx/core/backend.js +0 -480
  295. package/dist/primitives/fsx/core/backend.js.map +0 -1
  296. package/dist/primitives/fsx/core/constants.js +0 -140
  297. package/dist/primitives/fsx/core/constants.js.map +0 -1
  298. package/dist/primitives/fsx/core/fsx.js +0 -1184
  299. package/dist/primitives/fsx/core/fsx.js.map +0 -1
  300. package/dist/primitives/fsx/core/glob/glob.js +0 -438
  301. package/dist/primitives/fsx/core/glob/glob.js.map +0 -1
  302. package/dist/primitives/fsx/core/glob/index.js +0 -8
  303. package/dist/primitives/fsx/core/glob/index.js.map +0 -1
  304. package/dist/primitives/fsx/core/glob/match.js +0 -392
  305. package/dist/primitives/fsx/core/glob/match.js.map +0 -1
  306. package/dist/primitives/fsx/core/types.js +0 -307
  307. package/dist/primitives/fsx/core/types.js.map +0 -1
  308. package/dist/sdk/capnweb-compat.js +0 -42
  309. package/dist/sdk/capnweb-compat.js.map +0 -1
  310. package/dist/sdk/client.js +0 -20
  311. package/dist/sdk/client.js.map +0 -1
  312. package/dist/sdk/index.js +0 -17
  313. package/dist/sdk/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../api/routes/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,445 +0,0 @@
1
- import { Hono } from 'hono';
2
- import { validateObsFilter } from '../../types/observability';
3
- // In-memory event store for testing (would be replaced with actual storage in production)
4
- const eventStore = new Map();
5
- /**
6
- * Generate mock events for a given requestId.
7
- * In production, this would query from Iceberg/R2 storage.
8
- */
9
- function getEventsForRequest(requestId) {
10
- // Check if we have cached events for this requestId
11
- if (eventStore.has(requestId)) {
12
- return eventStore.get(requestId);
13
- }
14
- // For test requests that match 'req-{uuid}' format, generate mock events
15
- // UUID format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
16
- const uuidPattern = /^req-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
17
- if (uuidPattern.test(requestId)) {
18
- const baseTime = Date.now() - 1000;
19
- const events = [
20
- {
21
- id: crypto.randomUUID(),
22
- type: 'log',
23
- level: 'info',
24
- script: 'api-worker',
25
- timestamp: baseTime,
26
- requestId,
27
- message: ['Request started'],
28
- },
29
- {
30
- id: crypto.randomUUID(),
31
- type: 'request',
32
- level: 'info',
33
- script: 'api-worker',
34
- timestamp: baseTime + 100,
35
- requestId,
36
- method: 'GET',
37
- url: '/api/test',
38
- status: 200,
39
- duration: 50,
40
- },
41
- {
42
- id: crypto.randomUUID(),
43
- type: 'do_method',
44
- level: 'debug',
45
- script: 'do-worker',
46
- timestamp: baseTime + 200,
47
- requestId,
48
- doName: 'ThingsDO',
49
- doId: 'things',
50
- doMethod: 'list',
51
- duration: 10,
52
- },
53
- {
54
- id: crypto.randomUUID(),
55
- type: 'exception',
56
- level: 'error',
57
- script: 'api-worker',
58
- timestamp: baseTime + 300,
59
- requestId,
60
- message: ['Something went wrong'],
61
- stack: 'Error: Something went wrong\n at test:1:1',
62
- },
63
- {
64
- id: crypto.randomUUID(),
65
- type: 'log',
66
- level: 'info',
67
- script: 'api-worker',
68
- timestamp: baseTime + 400,
69
- requestId,
70
- message: ['Request completed'],
71
- },
72
- ];
73
- eventStore.set(requestId, events);
74
- return events;
75
- }
76
- // For unknown request IDs, return empty array
77
- return [];
78
- }
79
- /**
80
- * Get all events from the store for the events endpoint.
81
- * In production, this would query from Iceberg/R2 storage with filters.
82
- */
83
- function getAllEvents() {
84
- const allEvents = [];
85
- for (const events of eventStore.values()) {
86
- allEvents.push(...events);
87
- }
88
- return allEvents;
89
- }
90
- /**
91
- * Validate requestId format.
92
- * Returns false for invalid formats that could be injection attempts.
93
- */
94
- function isValidRequestId(requestId) {
95
- // Reject empty or too long requestIds
96
- if (!requestId || requestId.length > 500) {
97
- return false;
98
- }
99
- // Reject requestIds with path traversal attempts
100
- if (requestId.includes('..')) {
101
- return false;
102
- }
103
- // Reject XSS attempts
104
- if (/<script>/i.test(requestId)) {
105
- return false;
106
- }
107
- // Reject whitespace, newlines, carriage returns
108
- if (/[\s\n\r]/.test(requestId)) {
109
- return false;
110
- }
111
- return true;
112
- }
113
- const validEventTypes = ['log', 'exception', 'request', 'do_method'];
114
- export const obsRoutes = new Hono();
115
- // ============================================================================
116
- // GET /events - Query observability events
117
- // ============================================================================
118
- obsRoutes.get('/events', async (c) => {
119
- const query = c.req.query();
120
- // Known valid parameters
121
- const validParams = ['level', 'type', 'script', 'requestId', 'doName', 'from', 'to', 'limit', 'offset'];
122
- // Check for unknown parameters
123
- for (const param of Object.keys(query)) {
124
- if (!validParams.includes(param)) {
125
- return c.json({
126
- error: {
127
- code: 'BAD_REQUEST',
128
- message: 'Unknown query parameter: ' + param,
129
- details: [{ field: param, message: 'Unrecognized parameter' }],
130
- },
131
- }, 400);
132
- }
133
- }
134
- // Parse and validate pagination
135
- let limit = 100;
136
- let offset = 0;
137
- if (query.limit !== undefined) {
138
- const parsedLimit = parseInt(query.limit, 10);
139
- if (isNaN(parsedLimit) || parsedLimit < 0) {
140
- return c.json({
141
- error: {
142
- code: 'BAD_REQUEST',
143
- message: 'Invalid limit parameter',
144
- details: [{ field: 'limit', message: 'Must be a non-negative integer' }],
145
- },
146
- }, 400);
147
- }
148
- // Cap limit at 1000
149
- limit = Math.min(parsedLimit, 1000);
150
- }
151
- if (query.offset !== undefined) {
152
- const parsedOffset = parseInt(query.offset, 10);
153
- if (isNaN(parsedOffset) || parsedOffset < 0) {
154
- return c.json({
155
- error: {
156
- code: 'BAD_REQUEST',
157
- message: 'Invalid offset parameter',
158
- details: [{ field: 'offset', message: 'Must be a non-negative integer' }],
159
- },
160
- }, 400);
161
- }
162
- offset = parsedOffset;
163
- }
164
- // Build filter object (excluding pagination)
165
- const filter = {};
166
- if (query.level)
167
- filter.level = query.level;
168
- if (query.type)
169
- filter.type = query.type;
170
- if (query.script)
171
- filter.script = query.script;
172
- if (query.requestId)
173
- filter.requestId = query.requestId;
174
- if (query.doName)
175
- filter.doName = query.doName;
176
- if (query.from !== undefined) {
177
- const parsedFrom = parseInt(query.from, 10);
178
- if (isNaN(parsedFrom) || parsedFrom < 0) {
179
- return c.json({
180
- error: {
181
- code: 'BAD_REQUEST',
182
- message: 'Invalid from parameter',
183
- details: [{ field: 'from', message: 'Must be a non-negative integer timestamp' }],
184
- },
185
- }, 400);
186
- }
187
- filter.from = parsedFrom;
188
- }
189
- if (query.to !== undefined) {
190
- const parsedTo = parseInt(query.to, 10);
191
- if (isNaN(parsedTo) || parsedTo < 0) {
192
- return c.json({
193
- error: {
194
- code: 'BAD_REQUEST',
195
- message: 'Invalid to parameter',
196
- details: [{ field: 'to', message: 'Must be a non-negative integer timestamp' }],
197
- },
198
- }, 400);
199
- }
200
- filter.to = parsedTo;
201
- }
202
- // Validate the filter using zod schema
203
- const validation = validateObsFilter(filter);
204
- if (!validation.success) {
205
- const errorMessage = validation.errors.map(e => e.field + ' - ' + e.message).join(', ');
206
- return c.json({
207
- error: {
208
- code: 'BAD_REQUEST',
209
- message: 'Invalid filter: ' + errorMessage,
210
- details: validation.errors,
211
- },
212
- }, 400);
213
- }
214
- // Get all events and filter them
215
- let events = getAllEvents();
216
- // Apply filters
217
- const obsFilter = filter;
218
- if (obsFilter.level) {
219
- events = events.filter(e => e.level === obsFilter.level);
220
- }
221
- if (obsFilter.type) {
222
- events = events.filter(e => e.type === obsFilter.type);
223
- }
224
- if (obsFilter.script) {
225
- events = events.filter(e => e.script === obsFilter.script);
226
- }
227
- if (obsFilter.requestId) {
228
- events = events.filter(e => e.requestId === obsFilter.requestId);
229
- }
230
- if (obsFilter.doName) {
231
- events = events.filter(e => e.doName === obsFilter.doName);
232
- }
233
- if (obsFilter.from !== undefined) {
234
- events = events.filter(e => e.timestamp >= obsFilter.from);
235
- }
236
- if (obsFilter.to !== undefined) {
237
- events = events.filter(e => e.timestamp <= obsFilter.to);
238
- }
239
- // Sort by timestamp descending (newest first)
240
- events.sort((a, b) => b.timestamp - a.timestamp);
241
- const total = events.length;
242
- // Apply pagination
243
- events = events.slice(offset, offset + limit);
244
- return c.json({
245
- events,
246
- total,
247
- limit,
248
- offset,
249
- });
250
- });
251
- // Method not allowed for events endpoint
252
- obsRoutes.all('/events', (c) => {
253
- return c.json({
254
- error: {
255
- code: 'METHOD_NOT_ALLOWED',
256
- message: 'Method not allowed. Allowed: GET',
257
- },
258
- }, 405, { Allow: 'GET' });
259
- });
260
- // ============================================================================
261
- // GET /trace/:requestId - Get trace for a specific request
262
- // ============================================================================
263
- obsRoutes.get('/trace/:requestId', async (c) => {
264
- const requestId = c.req.param('requestId');
265
- const query = c.req.query();
266
- // Validate requestId format
267
- if (!isValidRequestId(requestId)) {
268
- return c.json({
269
- error: {
270
- code: 'BAD_REQUEST',
271
- message: 'Invalid requestId format',
272
- },
273
- }, 400, {
274
- 'Cache-Control': 'no-cache',
275
- 'X-Request-Id': c.req.header('X-Request-Id') || crypto.randomUUID(),
276
- });
277
- }
278
- // Validate type filter if provided
279
- const typeFilters = c.req.queries('type') || [];
280
- if (typeFilters.length > 0) {
281
- for (const type of typeFilters) {
282
- if (!validEventTypes.includes(type)) {
283
- return c.json({
284
- error: {
285
- code: 'BAD_REQUEST',
286
- message: 'Invalid type filter: ' + type + '. Valid types are: ' + validEventTypes.join(', '),
287
- },
288
- }, 400, {
289
- 'Cache-Control': 'no-cache',
290
- 'X-Request-Id': c.req.header('X-Request-Id') || crypto.randomUUID(),
291
- });
292
- }
293
- }
294
- }
295
- // Validate limit if provided
296
- let limit;
297
- if (query.limit !== undefined) {
298
- const parsedLimit = parseInt(query.limit, 10);
299
- if (isNaN(parsedLimit) || parsedLimit < 0) {
300
- return c.json({
301
- error: {
302
- code: 'BAD_REQUEST',
303
- message: 'Invalid limit parameter. Must be a non-negative integer.',
304
- },
305
- }, 400, {
306
- 'Cache-Control': 'no-cache',
307
- 'X-Request-Id': c.req.header('X-Request-Id') || crypto.randomUUID(),
308
- });
309
- }
310
- limit = parsedLimit;
311
- }
312
- // Get events for this request
313
- let events = getEventsForRequest(requestId);
314
- // Return 404 if no events found for this requestId
315
- if (events.length === 0) {
316
- return c.json({
317
- error: {
318
- code: 'NOT_FOUND',
319
- message: 'Trace not found for the given requestId',
320
- },
321
- }, 404, {
322
- 'Cache-Control': 'no-cache',
323
- 'X-Request-Id': c.req.header('X-Request-Id') || crypto.randomUUID(),
324
- });
325
- }
326
- // Apply type filter if provided
327
- if (typeFilters.length > 0) {
328
- events = events.filter(e => typeFilters.includes(e.type));
329
- }
330
- // Sort events by timestamp ascending (chronological order - oldest first)
331
- events = [...events].sort((a, b) => a.timestamp - b.timestamp);
332
- // Apply limit if provided
333
- if (limit !== undefined) {
334
- events = events.slice(0, limit);
335
- }
336
- // Calculate trace metadata
337
- let startedAt;
338
- let endedAt;
339
- let duration;
340
- if (events.length > 0) {
341
- startedAt = events[0].timestamp;
342
- endedAt = events[events.length - 1].timestamp;
343
- duration = endedAt - startedAt;
344
- }
345
- // Build response with trace data
346
- const traceResponse = {
347
- requestId,
348
- events: events.map(e => ({
349
- id: e.id,
350
- type: e.type,
351
- timestamp: e.timestamp,
352
- requestId: e.requestId,
353
- data: buildEventData(e),
354
- })),
355
- };
356
- if (events.length > 0) {
357
- traceResponse.startedAt = startedAt;
358
- traceResponse.endedAt = endedAt;
359
- traceResponse.duration = duration;
360
- }
361
- return c.json(traceResponse, 200, {
362
- 'Cache-Control': 'public, max-age=3600',
363
- 'X-Request-Id': c.req.header('X-Request-Id') || crypto.randomUUID(),
364
- });
365
- });
366
- /**
367
- * Build the data object for a trace event based on its type.
368
- */
369
- function buildEventData(event) {
370
- switch (event.type) {
371
- case 'log':
372
- return {
373
- level: event.level,
374
- message: Array.isArray(event.message) ? event.message.join(' ') : event.message || '',
375
- args: [],
376
- };
377
- case 'exception':
378
- return {
379
- name: 'Error',
380
- message: Array.isArray(event.message) ? event.message.join(' ') : event.message || '',
381
- stack: event.stack,
382
- };
383
- case 'request':
384
- return {
385
- method: event.method,
386
- url: event.url,
387
- status: event.status,
388
- duration: event.duration,
389
- };
390
- case 'do_method':
391
- return {
392
- className: event.doName,
393
- instanceId: event.doId,
394
- method: event.doMethod,
395
- duration: event.duration,
396
- success: true,
397
- };
398
- default:
399
- return {};
400
- }
401
- }
402
- // Method not allowed for trace endpoint
403
- obsRoutes.post('/trace/:requestId', (c) => {
404
- return c.json({
405
- error: {
406
- code: 'METHOD_NOT_ALLOWED',
407
- message: 'Method not allowed. Allowed: GET',
408
- },
409
- }, 405, { Allow: 'GET' });
410
- });
411
- obsRoutes.put('/trace/:requestId', (c) => {
412
- return c.json({
413
- error: {
414
- code: 'METHOD_NOT_ALLOWED',
415
- message: 'Method not allowed. Allowed: GET',
416
- },
417
- }, 405, { Allow: 'GET' });
418
- });
419
- obsRoutes.delete('/trace/:requestId', (c) => {
420
- return c.json({
421
- error: {
422
- code: 'METHOD_NOT_ALLOWED',
423
- message: 'Method not allowed. Allowed: GET',
424
- },
425
- }, 405, { Allow: 'GET' });
426
- });
427
- obsRoutes.patch('/trace/:requestId', (c) => {
428
- return c.json({
429
- error: {
430
- code: 'METHOD_NOT_ALLOWED',
431
- message: 'Method not allowed. Allowed: GET',
432
- },
433
- }, 405, { Allow: 'GET' });
434
- });
435
- // Handle unknown obs endpoints - must be last
436
- obsRoutes.all('*', (c) => {
437
- return c.json({
438
- error: {
439
- code: 'NOT_FOUND',
440
- message: 'Not found: ' + c.req.path,
441
- },
442
- }, 404);
443
- });
444
- export default obsRoutes;
445
- //# sourceMappingURL=obs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"obs.js","sourceRoot":"","sources":["../../../api/routes/obs.ts"],"names":[],"mappings":"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"}