@dxos/functions 0.8.4-main.84f28bd → 0.8.4-main.b97322e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{chunk-54U464M4.mjs → chunk-3NGCSUEW.mjs} +74 -106
- package/dist/lib/browser/chunk-3NGCSUEW.mjs.map +7 -0
- package/dist/lib/browser/edge/index.mjs.map +1 -1
- package/dist/lib/browser/index.mjs +23 -12
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +19 -7
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/{chunk-XDSX35BS.mjs → chunk-FJ2MU7TL.mjs} +74 -106
- package/dist/lib/node-esm/chunk-FJ2MU7TL.mjs.map +7 -0
- package/dist/lib/node-esm/edge/index.mjs.map +1 -1
- package/dist/lib/node-esm/index.mjs +23 -12
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +19 -7
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/types/src/edge/functions.d.ts +1 -1
- package/dist/types/src/edge/functions.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +68 -0
- package/dist/types/src/errors.d.ts.map +1 -0
- package/dist/types/src/handler.d.ts +7 -6
- package/dist/types/src/handler.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/schema.d.ts +1 -1
- package/dist/types/src/services/credentials.d.ts +2 -1
- package/dist/types/src/services/credentials.d.ts.map +1 -1
- package/dist/types/src/services/database.d.ts +17 -3
- package/dist/types/src/services/database.d.ts.map +1 -1
- package/dist/types/src/services/index.d.ts +0 -2
- package/dist/types/src/services/index.d.ts.map +1 -1
- package/dist/types/src/services/queues.d.ts +13 -1
- package/dist/types/src/services/queues.d.ts.map +1 -1
- package/dist/types/src/services/service-container.d.ts +26 -16
- package/dist/types/src/services/service-container.d.ts.map +1 -1
- package/dist/types/src/services/service-registry.d.ts +29 -0
- package/dist/types/src/services/service-registry.d.ts.map +1 -0
- package/dist/types/src/services/service-registry.test.d.ts +2 -0
- package/dist/types/src/services/service-registry.test.d.ts.map +1 -0
- package/dist/types/src/services/tracing.d.ts +11 -1
- package/dist/types/src/services/tracing.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/layer.d.ts +10 -0
- package/dist/types/src/testing/layer.d.ts.map +1 -0
- package/dist/types/src/testing/services.d.ts +3 -4
- package/dist/types/src/testing/services.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +8 -8
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +25 -23
- package/src/edge/functions.ts +1 -1
- package/src/errors.ts +13 -0
- package/src/handler.ts +23 -16
- package/src/index.ts +1 -0
- package/src/services/credentials.ts +8 -2
- package/src/services/database.ts +27 -7
- package/src/services/index.ts +0 -2
- package/src/services/queues.ts +15 -2
- package/src/services/service-container.ts +37 -51
- package/src/services/service-registry.test.ts +42 -0
- package/src/services/service-registry.ts +56 -0
- package/src/services/tracing.ts +16 -1
- package/src/testing/index.ts +1 -0
- package/src/testing/layer.ts +31 -0
- package/src/testing/services.ts +2 -8
- package/dist/lib/browser/chunk-54U464M4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XDSX35BS.mjs.map +0 -7
- package/dist/types/src/services/ai.d.ts +0 -12
- package/dist/types/src/services/ai.d.ts.map +0 -1
- package/dist/types/src/services/tool-resolver.d.ts +0 -14
- package/dist/types/src/services/tool-resolver.d.ts.map +0 -1
- package/src/services/ai.ts +0 -32
- package/src/services/tool-resolver.ts +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/bundler/bundler.ts":{"bytes":32934,"imports":[{"path":"@effect/platform","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"esbuild-wasm","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/bundler/index.ts":{"bytes":457,"imports":[{"path":"src/bundler/bundler.ts","kind":"import-statement","original":"./bundler"}],"format":"esm"},"src/edge/functions.ts":{"bytes":6596,"imports":[{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/edge/index.ts":{"bytes":864,"imports":[{"path":"src/edge/functions.ts","kind":"import-statement","original":"./functions"}],"format":"esm"},"src/handler.ts":{"bytes":6273,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/schema.ts":{"bytes":5364,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/types.ts":{"bytes":21469,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"src/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/trace.ts":{"bytes":16911,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/url.ts":{"bytes":5989,"imports":[],"format":"esm"},"src/services/ai.ts":{"bytes":2422,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/database.ts":{"bytes":4341,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/queues.ts":{"bytes":2801,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/credentials.ts":{"bytes":4253,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/event-logger.ts":{"bytes":6497,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/services/function-call-service.ts":{"bytes":7067,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/tool-resolver.ts":{"bytes":2065,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/tracing.ts":{"bytes":1881,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/service-container.ts":{"bytes":12392,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"src/services/ai.ts","kind":"import-statement","original":"./ai"},{"path":"src/services/credentials.ts","kind":"import-statement","original":"./credentials"},{"path":"src/services/database.ts","kind":"import-statement","original":"./database"},{"path":"src/services/event-logger.ts","kind":"import-statement","original":"./event-logger"},{"path":"src/services/function-call-service.ts","kind":"import-statement","original":"./function-call-service"},{"path":"src/services/queues.ts","kind":"import-statement","original":"./queues"},{"path":"src/services/tool-resolver.ts","kind":"import-statement","original":"./tool-resolver"},{"path":"src/services/tracing.ts","kind":"import-statement","original":"./tracing"}],"format":"esm"},"src/services/index.ts":{"bytes":1236,"imports":[{"path":"src/services/ai.ts","kind":"import-statement","original":"./ai"},{"path":"src/services/database.ts","kind":"import-statement","original":"./database"},{"path":"src/services/queues.ts","kind":"import-statement","original":"./queues"},{"path":"src/services/service-container.ts","kind":"import-statement","original":"./service-container"},{"path":"src/services/credentials.ts","kind":"import-statement","original":"./credentials"},{"path":"src/services/tracing.ts","kind":"import-statement","original":"./tracing"},{"path":"src/services/event-logger.ts","kind":"import-statement","original":"./event-logger"},{"path":"src/services/function-call-service.ts","kind":"import-statement","original":"./function-call-service"},{"path":"src/services/tool-resolver.ts","kind":"import-statement","original":"./tool-resolver"}],"format":"esm"},"src/executor/executor.ts":{"bytes":5494,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true}],"format":"esm"},"src/executor/index.ts":{"bytes":459,"imports":[{"path":"src/executor/executor.ts","kind":"import-statement","original":"./executor"}],"format":"esm"},"src/index.ts":{"bytes":1009,"imports":[{"path":"src/handler.ts","kind":"import-statement","original":"./handler"},{"path":"src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"src/trace.ts","kind":"import-statement","original":"./trace"},{"path":"src/types.ts","kind":"import-statement","original":"./types"},{"path":"src/url.ts","kind":"import-statement","original":"./url"},{"path":"src/services/index.ts","kind":"import-statement","original":"./services"},{"path":"src/executor/index.ts","kind":"import-statement","original":"./executor"}],"format":"esm"},"src/testing/logger.ts":{"bytes":1607,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/services/index.ts","kind":"import-statement","original":"../services"}],"format":"esm"},"src/testing/services.ts":{"bytes":11700,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/ai/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/testing/logger.ts","kind":"import-statement","original":"./logger"},{"path":"src/services/index.ts","kind":"import-statement","original":"../services"}],"format":"esm"},"src/testing/index.ts":{"bytes":458,"imports":[{"path":"src/testing/services.ts","kind":"import-statement","original":"./services"}],"format":"esm"}},"outputs":{"dist/lib/browser/bundler/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16045},"dist/lib/browser/bundler/index.mjs":{"imports":[{"path":"@effect/platform","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"esbuild-wasm","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["Bundler","initializeBundler"],"entryPoint":"src/bundler/index.ts","inputs":{"src/bundler/bundler.ts":{"bytesInOutput":7755},"src/bundler/index.ts":{"bytesInOutput":0}},"bytes":7859},"dist/lib/browser/edge/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3361},"dist/lib/browser/edge/index.mjs":{"imports":[{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["incrementSemverPatch","publicKeyToDid","uploadWorkerFunction"],"entryPoint":"src/edge/index.ts","inputs":{"src/edge/functions.ts":{"bytesInOutput":1679},"src/edge/index.ts":{"bytesInOutput":0}},"bytes":1816},"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32419},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-54U464M4.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true}],"exports":["AiService","ConfiguredCredentialsService","CredentialsService","DatabaseService","EmailTriggerOutput","EventLogger","FUNCTIONS_PRESET_META_KEY","FUNCTION_TYPES","FunctionCallService","FunctionExecutor","FunctionManifestSchema","FunctionTrigger","FunctionTriggerSchema","FunctionType","InvocationOutcome","InvocationTraceEndEvent","InvocationTraceEventType","InvocationTraceStartEvent","QueueService","QueueTriggerOutput","SERVICE_TAGS","ScriptType","ServiceContainer","SubscriptionTriggerOutput","TimerTriggerOutput","ToolResolverService","TraceEvent","TraceEventException","TraceEventLog","TracingService","TriggerKind","TriggerSchema","WebhookTriggerOutput","createDefectLogger","createEventLogger","createInvocationSpans","defineFunction","getInvocationUrl","getUserFunctionUrlInMetadata","logCustomEvent","makeFunctionUrl","setUserFunctionUrlInMetadata"],"entryPoint":"src/index.ts","inputs":{"src/handler.ts":{"bytesInOutput":453},"src/index.ts":{"bytesInOutput":0},"src/schema.ts":{"bytesInOutput":1255},"src/trace.ts":{"bytesInOutput":4266},"src/types.ts":{"bytesInOutput":4732},"src/url.ts":{"bytesInOutput":1189},"src/executor/executor.ts":{"bytesInOutput":1104},"src/executor/index.ts":{"bytesInOutput":0}},"bytes":14395},"dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7518},"dist/lib/browser/testing/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-54U464M4.mjs","kind":"import-statement"},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/ai/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["createTestServices"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/services.ts":{"bytesInOutput":2001},"src/testing/logger.ts":{"bytesInOutput":201},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":2536},"dist/lib/browser/chunk-54U464M4.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23039},"dist/lib/browser/chunk-54U464M4.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true}],"exports":["AiService","ConfiguredCredentialsService","CredentialsService","DatabaseService","EventLogger","FunctionCallService","QueueService","SERVICE_TAGS","ServiceContainer","ToolResolverService","TracingService","createDefectLogger","createEventLogger","logCustomEvent"],"inputs":{"src/services/ai.ts":{"bytesInOutput":504},"src/services/database.ts":{"bytesInOutput":960},"src/services/queues.ts":{"bytesInOutput":565},"src/services/credentials.ts":{"bytesInOutput":737},"src/services/event-logger.ts":{"bytesInOutput":1425},"src/services/function-call-service.ts":{"bytesInOutput":1522},"src/services/tool-resolver.ts":{"bytesInOutput":411},"src/services/tracing.ts":{"bytesInOutput":293},"src/services/service-container.ts":{"bytesInOutput":2641},"src/services/index.ts":{"bytesInOutput":0}},"bytes":9677}}}
|
|
1
|
+
{"inputs":{"src/bundler/bundler.ts":{"bytes":32934,"imports":[{"path":"@effect/platform","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"esbuild-wasm","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/bundler/index.ts":{"bytes":457,"imports":[{"path":"src/bundler/bundler.ts","kind":"import-statement","original":"./bundler"}],"format":"esm"},"src/edge/functions.ts":{"bytes":6596,"imports":[{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/edge/index.ts":{"bytes":864,"imports":[{"path":"src/edge/functions.ts","kind":"import-statement","original":"./functions"}],"format":"esm"},"src/handler.ts":{"bytes":6202,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/schema.ts":{"bytes":5364,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/types.ts":{"bytes":21469,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"src/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/trace.ts":{"bytes":16911,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/url.ts":{"bytes":5989,"imports":[],"format":"esm"},"src/services/database.ts":{"bytes":6586,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/queues.ts":{"bytes":3431,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/credentials.ts":{"bytes":5097,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/event-logger.ts":{"bytes":6497,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/services/function-call-service.ts":{"bytes":7067,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/services/tracing.ts":{"bytes":3480,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/services/service-container.ts":{"bytes":11855,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/services/credentials.ts","kind":"import-statement","original":"./credentials"},{"path":"src/services/database.ts","kind":"import-statement","original":"./database"},{"path":"src/services/event-logger.ts","kind":"import-statement","original":"./event-logger"},{"path":"src/services/function-call-service.ts","kind":"import-statement","original":"./function-call-service"},{"path":"src/services/queues.ts","kind":"import-statement","original":"./queues"},{"path":"src/services/tracing.ts","kind":"import-statement","original":"./tracing"}],"format":"esm"},"src/services/index.ts":{"bytes":1061,"imports":[{"path":"src/services/database.ts","kind":"import-statement","original":"./database"},{"path":"src/services/queues.ts","kind":"import-statement","original":"./queues"},{"path":"src/services/service-container.ts","kind":"import-statement","original":"./service-container"},{"path":"src/services/credentials.ts","kind":"import-statement","original":"./credentials"},{"path":"src/services/tracing.ts","kind":"import-statement","original":"./tracing"},{"path":"src/services/event-logger.ts","kind":"import-statement","original":"./event-logger"},{"path":"src/services/function-call-service.ts","kind":"import-statement","original":"./function-call-service"}],"format":"esm"},"src/executor/executor.ts":{"bytes":5494,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true}],"format":"esm"},"src/executor/index.ts":{"bytes":459,"imports":[{"path":"src/executor/executor.ts","kind":"import-statement","original":"./executor"}],"format":"esm"},"src/errors.ts":{"bytes":1431,"imports":[{"path":"@dxos/errors","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":1091,"imports":[{"path":"src/handler.ts","kind":"import-statement","original":"./handler"},{"path":"src/schema.ts","kind":"import-statement","original":"./schema"},{"path":"src/trace.ts","kind":"import-statement","original":"./trace"},{"path":"src/types.ts","kind":"import-statement","original":"./types"},{"path":"src/url.ts","kind":"import-statement","original":"./url"},{"path":"src/services/index.ts","kind":"import-statement","original":"./services"},{"path":"src/executor/index.ts","kind":"import-statement","original":"./executor"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"src/testing/logger.ts":{"bytes":1607,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/services/index.ts","kind":"import-statement","original":"../services"}],"format":"esm"},"src/testing/services.ts":{"bytes":11101,"imports":[{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/ai/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/testing/logger.ts","kind":"import-statement","original":"./logger"},{"path":"src/services/index.ts","kind":"import-statement","original":"../services"}],"format":"esm"},"src/testing/layer.ts":{"bytes":3597,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db/testing","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"src/services/index.ts","kind":"import-statement","original":"../services"}],"format":"esm"},"src/testing/index.ts":{"bytes":539,"imports":[{"path":"src/testing/services.ts","kind":"import-statement","original":"./services"},{"path":"src/testing/layer.ts","kind":"import-statement","original":"./layer"}],"format":"esm"}},"outputs":{"dist/lib/browser/bundler/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16045},"dist/lib/browser/bundler/index.mjs":{"imports":[{"path":"@effect/platform","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"esbuild-wasm","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["Bundler","initializeBundler"],"entryPoint":"src/bundler/index.ts","inputs":{"src/bundler/bundler.ts":{"bytesInOutput":7755},"src/bundler/index.ts":{"bytesInOutput":0}},"bytes":7859},"dist/lib/browser/edge/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3361},"dist/lib/browser/edge/index.mjs":{"imports":[{"path":"@dxos/client/edge","kind":"import-statement","external":true},{"path":"@dxos/edge-client","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["incrementSemverPatch","publicKeyToDid","uploadWorkerFunction"],"entryPoint":"src/edge/index.ts","inputs":{"src/edge/functions.ts":{"bytesInOutput":1679},"src/edge/index.ts":{"bytesInOutput":0}},"bytes":1816},"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33046},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-3NGCSUEW.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true}],"exports":["ConfiguredCredentialsService","ContextQueueService","CredentialsService","DatabaseService","EmailTriggerOutput","EventLogger","FUNCTIONS_PRESET_META_KEY","FUNCTION_TYPES","FunctionCallService","FunctionError","FunctionExecutor","FunctionManifestSchema","FunctionTrigger","FunctionTriggerSchema","FunctionType","InvocationOutcome","InvocationTraceEndEvent","InvocationTraceEventType","InvocationTraceStartEvent","QueueService","QueueTriggerOutput","SERVICE_TAGS","ScriptType","ServiceContainer","ServiceNotAvailableError","SubscriptionTriggerOutput","TimerTriggerOutput","TraceEvent","TraceEventException","TraceEventLog","TracingService","TriggerKind","TriggerSchema","WebhookTriggerOutput","createDefectLogger","createEventLogger","createInvocationSpans","defineFunction","getInvocationUrl","getUserFunctionUrlInMetadata","logCustomEvent","makeFunctionUrl","setUserFunctionUrlInMetadata"],"entryPoint":"src/index.ts","inputs":{"src/handler.ts":{"bytesInOutput":422},"src/index.ts":{"bytesInOutput":0},"src/schema.ts":{"bytesInOutput":1255},"src/trace.ts":{"bytesInOutput":4266},"src/types.ts":{"bytesInOutput":4732},"src/url.ts":{"bytesInOutput":1189},"src/executor/executor.ts":{"bytesInOutput":1104},"src/executor/index.ts":{"bytesInOutput":0},"src/errors.ts":{"bytesInOutput":293}},"bytes":14694},"dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9124},"dist/lib/browser/testing/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-3NGCSUEW.mjs","kind":"import-statement"},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/ai/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-db/testing","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true}],"exports":["TestDatabaseLayer","createTestServices"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/services.ts":{"bytesInOutput":1902},"src/testing/logger.ts":{"bytesInOutput":201},"src/testing/index.ts":{"bytesInOutput":0},"src/testing/layer.ts":{"bytesInOutput":644}},"bytes":3091},"dist/lib/browser/chunk-3NGCSUEW.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23515},"dist/lib/browser/chunk-3NGCSUEW.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/ai","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["ConfiguredCredentialsService","ContextQueueService","CredentialsService","DatabaseService","EventLogger","FunctionCallService","QueueService","SERVICE_TAGS","ServiceContainer","TracingService","createDefectLogger","createEventLogger","logCustomEvent"],"inputs":{"src/services/database.ts":{"bytesInOutput":1363},"src/services/queues.ts":{"bytesInOutput":648},"src/services/credentials.ts":{"bytesInOutput":993},"src/services/event-logger.ts":{"bytesInOutput":1425},"src/services/function-call-service.ts":{"bytesInOutput":1522},"src/services/tracing.ts":{"bytesInOutput":652},"src/services/service-container.ts":{"bytesInOutput":2435},"src/services/index.ts":{"bytesInOutput":0}},"bytes":9587}}}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AiService,
|
|
3
2
|
ConfiguredCredentialsService,
|
|
4
3
|
DatabaseService,
|
|
5
4
|
QueueService,
|
|
6
5
|
ServiceContainer,
|
|
7
|
-
ToolResolverService,
|
|
8
6
|
createEventLogger
|
|
9
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-3NGCSUEW.mjs";
|
|
10
8
|
|
|
11
9
|
// src/testing/services.ts
|
|
12
|
-
import {
|
|
10
|
+
import { AiService, EdgeAiServiceClient } from "@dxos/ai";
|
|
13
11
|
import { AI_SERVICE_ENDPOINT, createTestAiServiceClient } from "@dxos/ai/testing";
|
|
14
12
|
import { assertArgument } from "@dxos/invariant";
|
|
15
13
|
|
|
@@ -23,7 +21,7 @@ var noopLogger = {
|
|
|
23
21
|
var consoleLogger = createEventLogger(LogLevel.INFO);
|
|
24
22
|
|
|
25
23
|
// src/testing/services.ts
|
|
26
|
-
var createTestServices = ({ ai, credentials, db, logging, queues, space, tracing
|
|
24
|
+
var createTestServices = ({ ai, credentials, db, logging, queues, space, tracing } = {}) => {
|
|
27
25
|
assertArgument(!(!!space && (!!db || !!queues)), "space can be provided only if db and queues are not");
|
|
28
26
|
return new ServiceContainer().setServices({
|
|
29
27
|
ai: createAiService(ai),
|
|
@@ -31,8 +29,7 @@ var createTestServices = ({ ai, credentials, db, logging, queues, space, tracing
|
|
|
31
29
|
database: space || db ? DatabaseService.make(space?.db || db) : void 0,
|
|
32
30
|
eventLogger: logging?.logger ?? logging?.enabled ? consoleLogger : noopLogger,
|
|
33
31
|
queues: space || queues ? QueueService.make(space?.queues || queues, void 0) : void 0,
|
|
34
|
-
tracing: tracing?.service
|
|
35
|
-
toolResolver: toolResolver ?? ToolResolverService.make(new ToolRegistry([]))
|
|
32
|
+
tracing: tracing?.service
|
|
36
33
|
});
|
|
37
34
|
};
|
|
38
35
|
var createAiService = (ai) => {
|
|
@@ -73,7 +70,22 @@ var createCredentialsService = (credentials) => {
|
|
|
73
70
|
return credentials.service;
|
|
74
71
|
}
|
|
75
72
|
};
|
|
73
|
+
|
|
74
|
+
// src/testing/layer.ts
|
|
75
|
+
import { Context, Effect as Effect2, Layer } from "effect";
|
|
76
|
+
import { EchoTestBuilder } from "@dxos/echo-db/testing";
|
|
77
|
+
import { accuireReleaseResource } from "@dxos/effect";
|
|
78
|
+
var testBuilder = accuireReleaseResource(() => new EchoTestBuilder());
|
|
79
|
+
var TestDatabaseLayer = ({ indexing, types } = {}) => Layer.scopedContext(Effect2.gen(function* () {
|
|
80
|
+
const builder = yield* testBuilder;
|
|
81
|
+
const { db, queues } = yield* Effect2.promise(() => builder.createDatabase({
|
|
82
|
+
indexing,
|
|
83
|
+
types
|
|
84
|
+
}));
|
|
85
|
+
return Context.mergeAll(Context.make(DatabaseService, DatabaseService.make(db)), Context.make(QueueService, QueueService.make(queues, void 0)));
|
|
86
|
+
}));
|
|
76
87
|
export {
|
|
88
|
+
TestDatabaseLayer,
|
|
77
89
|
createTestServices
|
|
78
90
|
};
|
|
79
91
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/testing/services.ts", "../../../../src/testing/logger.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Context } from 'effect';\n\nimport { type
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../../src/testing/services.ts", "../../../../src/testing/logger.ts", "../../../../src/testing/layer.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Context } from 'effect';\n\nimport { AiService, type AiServiceClient, type AiServiceEdgeClientOptions, EdgeAiServiceClient } from '@dxos/ai';\nimport { AI_SERVICE_ENDPOINT, createTestAiServiceClient } from '@dxos/ai/testing';\nimport type { Space } from '@dxos/client/echo';\nimport type { EchoDatabase, QueueFactory } from '@dxos/echo-db';\nimport { assertArgument } from '@dxos/invariant';\n\nimport { consoleLogger, noopLogger } from './logger';\nimport {\n ConfiguredCredentialsService,\n type CredentialsService,\n DatabaseService,\n type EventLogger,\n QueueService,\n ServiceContainer,\n type ServiceCredential,\n type TracingService,\n} from '../services';\n\n// TODO(burdon): Factor out.\nexport type OneOf<T> = {\n [K in keyof T]: { [P in K]: T[P] } & { [P in Exclude<keyof T, K>]?: never };\n}[keyof T];\n\nexport type AiServiceProvider = 'dev' | 'edge' | 'ollama' | 'lmstudio';\n\nexport type TestServiceOptions = {\n /**\n * AI service configuration.\n */\n ai?: OneOf<{\n /**\n * Custom AI service client.\n */\n client?: AiServiceClient;\n\n /**\n * Edge AI service at specified endpoint.\n */\n endpoint?: AiServiceEdgeClientOptions['endpoint'];\n\n /**\n * Predefined AI service configuration.\n */\n // TODO(burdon): 'dev' and 'edge' are redundant with providing an endpoint.\n provider?: AiServiceProvider;\n }>;\n\n /**\n * Credentials service configuration.\n */\n credentials?: OneOf<{\n /**\n * Predefined credentials list.\n */\n services?: ServiceCredential[];\n\n /**\n * Custom credentials service.\n */\n service?: Context.Tag.Service<CredentialsService>;\n }>;\n\n /**\n * Database configuration.\n */\n db?: EchoDatabase;\n\n /**\n * Gets database and queue services from the space.\n * Exclusive with: `db`, `queues`\n */\n space?: Space;\n\n /**\n * Logging configuration.\n */\n logging?: {\n enabled?: boolean;\n logger?: Context.Tag.Service<EventLogger>;\n };\n\n /**\n * Queue service configuration.\n */\n queues?: QueueFactory;\n\n tracing?: {\n service?: Context.Tag.Service<TracingService>;\n };\n};\n\nexport const createTestServices = ({\n ai,\n credentials,\n db,\n logging,\n queues,\n space,\n tracing,\n}: TestServiceOptions = {}): ServiceContainer => {\n assertArgument(!(!!space && (!!db || !!queues)), 'space can be provided only if db and queues are not');\n\n return new ServiceContainer().setServices({\n ai: createAiService(ai),\n credentials: createCredentialsService(credentials),\n database: space || db ? DatabaseService.make(space?.db || db!) : undefined,\n eventLogger: (logging?.logger ?? logging?.enabled) ? consoleLogger : noopLogger,\n queues: space || queues ? QueueService.make(space?.queues || queues!, undefined) : undefined,\n tracing: tracing?.service,\n });\n};\n\n// TODO(burdon): Enable model configuration.\nconst createAiService = (ai: TestServiceOptions['ai']): Context.Tag.Service<AiService> | undefined => {\n if (ai?.client != null) {\n return AiService.make(ai.client);\n }\n\n if (ai?.endpoint != null) {\n return AiService.make(new EdgeAiServiceClient({ endpoint: ai.endpoint }));\n }\n\n switch (ai?.provider) {\n case 'dev':\n return AiService.make(\n new EdgeAiServiceClient({\n endpoint: AI_SERVICE_ENDPOINT.LOCAL,\n defaultGenerationOptions: {\n model: '@anthropic/claude-3-5-sonnet-20241022',\n },\n }),\n );\n\n case 'edge':\n return AiService.make(\n new EdgeAiServiceClient({\n endpoint: AI_SERVICE_ENDPOINT.REMOTE,\n defaultGenerationOptions: {\n model: '@anthropic/claude-3-5-sonnet-20241022',\n },\n }),\n );\n\n case 'ollama':\n return AiService.make(createTestAiServiceClient());\n\n case 'lmstudio':\n throw new Error('LMStudio is not supported');\n }\n};\n\nconst createCredentialsService = (\n credentials: TestServiceOptions['credentials'] | undefined,\n): Context.Tag.Service<CredentialsService> | undefined => {\n if (credentials?.services) {\n return new ConfiguredCredentialsService(credentials.services);\n }\n\n if (credentials?.service) {\n return credentials.service;\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Effect, type Context } from 'effect';\n\nimport { LogLevel } from '@dxos/log';\n\nimport { type EventLogger, createEventLogger } from '../services';\n\nexport const noopLogger: Context.Tag.Service<EventLogger> = {\n log: () => Effect.succeed(undefined),\n nodeId: undefined,\n};\n\nexport const consoleLogger: Context.Tag.Service<EventLogger> = createEventLogger(LogLevel.INFO);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Context, Effect, Layer } from 'effect';\nimport type { Schema } from 'effect';\n\nimport { EchoTestBuilder } from '@dxos/echo-db/testing';\nimport type { EchoHostIndexingConfig } from '@dxos/echo-pipeline';\nimport { accuireReleaseResource } from '@dxos/effect';\n\nimport { DatabaseService, QueueService } from '../services';\n\nconst testBuilder = accuireReleaseResource(() => new EchoTestBuilder());\n\nexport type TestDatabaseOptions = {\n indexing?: Partial<EchoHostIndexingConfig>;\n types?: Schema.Schema.AnyNoContext[];\n};\n\nexport const TestDatabaseLayer = ({ indexing, types }: TestDatabaseOptions = {}) =>\n Layer.scopedContext(\n Effect.gen(function* () {\n const builder = yield* testBuilder;\n const { db, queues } = yield* Effect.promise(() => builder.createDatabase({ indexing, types }));\n return Context.mergeAll(\n Context.make(DatabaseService, DatabaseService.make(db)),\n Context.make(QueueService, QueueService.make(queues, undefined)),\n );\n }),\n );\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAMA,SAASA,WAAkEC,2BAA2B;AACtG,SAASC,qBAAqBC,iCAAiC;AAG/D,SAASC,sBAAsB;;;ACN/B,SAASC,cAA4B;AAErC,SAASC,gBAAgB;AAIlB,IAAMC,aAA+C;EAC1DC,KAAK,MAAMC,OAAOC,QAAQC,MAAAA;EAC1BC,QAAQD;AACV;AAEO,IAAME,gBAAkDC,kBAAkBC,SAASC,IAAI;;;ADkFvF,IAAMC,qBAAqB,CAAC,EACjCC,IACAC,aACAC,IACAC,SACAC,QACAC,OACAC,QAAO,IACe,CAAC,MAAC;AACxBC,iBAAe,EAAE,CAAC,CAACF,UAAU,CAAC,CAACH,MAAM,CAAC,CAACE,UAAU,qDAAA;AAEjD,SAAO,IAAII,iBAAAA,EAAmBC,YAAY;IACxCT,IAAIU,gBAAgBV,EAAAA;IACpBC,aAAaU,yBAAyBV,WAAAA;IACtCW,UAAUP,SAASH,KAAKW,gBAAgBC,KAAKT,OAAOH,MAAMA,EAAAA,IAAOa;IACjEC,aAAcb,SAASc,UAAUd,SAASe,UAAWC,gBAAgBC;IACrEhB,QAAQC,SAASD,SAASiB,aAAaP,KAAKT,OAAOD,UAAUA,QAASW,MAAAA,IAAaA;IACnFT,SAASA,SAASgB;EACpB,CAAA;AACF;AAGA,IAAMZ,kBAAkB,CAACV,OAAAA;AACvB,MAAIA,IAAIuB,UAAU,MAAM;AACtB,WAAOC,UAAUV,KAAKd,GAAGuB,MAAM;EACjC;AAEA,MAAIvB,IAAIyB,YAAY,MAAM;AACxB,WAAOD,UAAUV,KAAK,IAAIY,oBAAoB;MAAED,UAAUzB,GAAGyB;IAAS,CAAA,CAAA;EACxE;AAEA,UAAQzB,IAAI2B,UAAAA;IACV,KAAK;AACH,aAAOH,UAAUV,KACf,IAAIY,oBAAoB;QACtBD,UAAUG,oBAAoBC;QAC9BC,0BAA0B;UACxBC,OAAO;QACT;MACF,CAAA,CAAA;IAGJ,KAAK;AACH,aAAOP,UAAUV,KACf,IAAIY,oBAAoB;QACtBD,UAAUG,oBAAoBI;QAC9BF,0BAA0B;UACxBC,OAAO;QACT;MACF,CAAA,CAAA;IAGJ,KAAK;AACH,aAAOP,UAAUV,KAAKmB,0BAAAA,CAAAA;IAExB,KAAK;AACH,YAAM,IAAIC,MAAM,2BAAA;EACpB;AACF;AAEA,IAAMvB,2BAA2B,CAC/BV,gBAAAA;AAEA,MAAIA,aAAakC,UAAU;AACzB,WAAO,IAAIC,6BAA6BnC,YAAYkC,QAAQ;EAC9D;AAEA,MAAIlC,aAAaqB,SAAS;AACxB,WAAOrB,YAAYqB;EACrB;AACF;;;AEnKA,SAASe,SAASC,UAAAA,SAAQC,aAAa;AAGvC,SAASC,uBAAuB;AAEhC,SAASC,8BAA8B;AAIvC,IAAMC,cAAcC,uBAAuB,MAAM,IAAIC,gBAAAA,CAAAA;AAO9C,IAAMC,oBAAoB,CAAC,EAAEC,UAAUC,MAAK,IAA0B,CAAC,MAC5EC,MAAMC,cACJC,QAAOC,IAAI,aAAA;AACT,QAAMC,UAAU,OAAOV;AACvB,QAAM,EAAEW,IAAIC,OAAM,IAAK,OAAOJ,QAAOK,QAAQ,MAAMH,QAAQI,eAAe;IAAEV;IAAUC;EAAM,CAAA,CAAA;AAC5F,SAAOU,QAAQC,SACbD,QAAQE,KAAKC,iBAAiBA,gBAAgBD,KAAKN,EAAAA,CAAAA,GACnDI,QAAQE,KAAKE,cAAcA,aAAaF,KAAKL,QAAQQ,MAAAA,CAAAA,CAAAA;AAEzD,CAAA,CAAA;",
|
|
6
|
+
"names": ["AiService", "EdgeAiServiceClient", "AI_SERVICE_ENDPOINT", "createTestAiServiceClient", "assertArgument", "Effect", "LogLevel", "noopLogger", "log", "Effect", "succeed", "undefined", "nodeId", "consoleLogger", "createEventLogger", "LogLevel", "INFO", "createTestServices", "ai", "credentials", "db", "logging", "queues", "space", "tracing", "assertArgument", "ServiceContainer", "setServices", "createAiService", "createCredentialsService", "database", "DatabaseService", "make", "undefined", "eventLogger", "logger", "enabled", "consoleLogger", "noopLogger", "QueueService", "service", "client", "AiService", "endpoint", "EdgeAiServiceClient", "provider", "AI_SERVICE_ENDPOINT", "LOCAL", "defaultGenerationOptions", "model", "REMOTE", "createTestAiServiceClient", "Error", "services", "ConfiguredCredentialsService", "Context", "Effect", "Layer", "EchoTestBuilder", "accuireReleaseResource", "testBuilder", "accuireReleaseResource", "EchoTestBuilder", "TestDatabaseLayer", "indexing", "types", "Layer", "scopedContext", "Effect", "gen", "builder", "db", "queues", "promise", "createDatabase", "Context", "mergeAll", "make", "DatabaseService", "QueueService", "undefined"]
|
|
7
7
|
}
|
|
@@ -1,34 +1,10 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
|
-
// src/services/ai.ts
|
|
4
|
-
import { Context, Layer } from "effect";
|
|
5
|
-
var AiService = class _AiService extends Context.Tag("AiService")() {
|
|
6
|
-
static {
|
|
7
|
-
this.make = (client) => {
|
|
8
|
-
return {
|
|
9
|
-
get client() {
|
|
10
|
-
return client;
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
static {
|
|
16
|
-
this.makeLayer = (client) => Layer.succeed(_AiService, _AiService.make(client));
|
|
17
|
-
}
|
|
18
|
-
static {
|
|
19
|
-
this.notAvailable = Layer.succeed(_AiService, {
|
|
20
|
-
get client() {
|
|
21
|
-
throw new Error("AiService not available");
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
|
|
27
3
|
// src/services/database.ts
|
|
28
|
-
import { Context
|
|
29
|
-
var DatabaseService = class _DatabaseService extends
|
|
4
|
+
import { Context, Effect, Layer } from "effect";
|
|
5
|
+
var DatabaseService = class _DatabaseService extends Context.Tag("DatabaseService")() {
|
|
30
6
|
static {
|
|
31
|
-
this.notAvailable =
|
|
7
|
+
this.notAvailable = Layer.succeed(_DatabaseService, {
|
|
32
8
|
get db() {
|
|
33
9
|
throw new Error("Database not available");
|
|
34
10
|
}
|
|
@@ -58,19 +34,28 @@ var DatabaseService = class _DatabaseService extends Context2.Tag("DatabaseServi
|
|
|
58
34
|
}
|
|
59
35
|
static {
|
|
60
36
|
this.loadRef = Effect.fn(function* (ref) {
|
|
61
|
-
return yield* Effect.
|
|
62
|
-
try: () => ref.load(),
|
|
63
|
-
catch: (error) => error
|
|
64
|
-
});
|
|
37
|
+
return yield* Effect.promise(() => ref.load());
|
|
65
38
|
});
|
|
66
39
|
}
|
|
40
|
+
static {
|
|
41
|
+
/**
|
|
42
|
+
* Creates a `QueryResult` object that can be subscribed to.
|
|
43
|
+
*/
|
|
44
|
+
this.query = (queryOrFilter) => _DatabaseService.pipe(Effect.map(({ db }) => db.query(queryOrFilter)), Effect.withSpan("DatabaseService.query"));
|
|
45
|
+
}
|
|
46
|
+
static {
|
|
47
|
+
/**
|
|
48
|
+
* Executes the query once and returns the results.
|
|
49
|
+
*/
|
|
50
|
+
this.runQuery = (queryOrFilter) => _DatabaseService.query(queryOrFilter).pipe(Effect.flatMap((queryResult) => Effect.promise(() => queryResult.run())));
|
|
51
|
+
}
|
|
67
52
|
};
|
|
68
53
|
|
|
69
54
|
// src/services/queues.ts
|
|
70
|
-
import { Context as
|
|
71
|
-
var QueueService = class _QueueService extends
|
|
55
|
+
import { Context as Context2, Layer as Layer2 } from "effect";
|
|
56
|
+
var QueueService = class _QueueService extends Context2.Tag("QueueService")() {
|
|
72
57
|
static {
|
|
73
|
-
this.notAvailable =
|
|
58
|
+
this.notAvailable = Layer2.succeed(_QueueService, {
|
|
74
59
|
queues: {
|
|
75
60
|
get(dxn) {
|
|
76
61
|
throw new Error("Queues not available");
|
|
@@ -91,10 +76,18 @@ var QueueService = class _QueueService extends Context3.Tag("QueueService")() {
|
|
|
91
76
|
};
|
|
92
77
|
}
|
|
93
78
|
};
|
|
79
|
+
var ContextQueueService = class extends Context2.Tag("ContextQueueService")() {
|
|
80
|
+
};
|
|
94
81
|
|
|
95
82
|
// src/services/credentials.ts
|
|
96
|
-
import { Context as
|
|
97
|
-
var CredentialsService = class extends
|
|
83
|
+
import { Context as Context3, Effect as Effect2 } from "effect";
|
|
84
|
+
var CredentialsService = class _CredentialsService extends Context3.Tag("CredentialsService")() {
|
|
85
|
+
static {
|
|
86
|
+
this.getCredential = (query) => Effect2.gen(function* () {
|
|
87
|
+
const credentials = yield* _CredentialsService;
|
|
88
|
+
return yield* Effect2.promise(() => credentials.getCredential(query));
|
|
89
|
+
});
|
|
90
|
+
}
|
|
98
91
|
};
|
|
99
92
|
var ConfiguredCredentialsService = class {
|
|
100
93
|
constructor(credentials = []) {
|
|
@@ -117,11 +110,11 @@ var ConfiguredCredentialsService = class {
|
|
|
117
110
|
};
|
|
118
111
|
|
|
119
112
|
// src/services/event-logger.ts
|
|
120
|
-
import { Effect as
|
|
113
|
+
import { Effect as Effect3, Context as Context4 } from "effect";
|
|
121
114
|
import { invariant } from "@dxos/invariant";
|
|
122
115
|
import { log, LogLevel } from "@dxos/log";
|
|
123
116
|
var __dxlog_file = "/__w/dxos/dxos/packages/core/functions/src/services/event-logger.ts";
|
|
124
|
-
var EventLogger = class extends
|
|
117
|
+
var EventLogger = class extends Context4.Tag("EventLogger")() {
|
|
125
118
|
static {
|
|
126
119
|
this.noop = {
|
|
127
120
|
log: () => {
|
|
@@ -130,7 +123,7 @@ var EventLogger = class extends Context5.Tag("EventLogger")() {
|
|
|
130
123
|
};
|
|
131
124
|
}
|
|
132
125
|
};
|
|
133
|
-
var logCustomEvent = (data) =>
|
|
126
|
+
var logCustomEvent = (data) => Effect3.gen(function* () {
|
|
134
127
|
const logger = yield* EventLogger;
|
|
135
128
|
if (!logger.nodeId) {
|
|
136
129
|
throw new Error("logCustomEvent must be called within a node compute function");
|
|
@@ -141,7 +134,7 @@ var logCustomEvent = (data) => Effect2.gen(function* () {
|
|
|
141
134
|
event: data
|
|
142
135
|
});
|
|
143
136
|
});
|
|
144
|
-
var createDefectLogger = () =>
|
|
137
|
+
var createDefectLogger = () => Effect3.catchAll((error) => Effect3.gen(function* () {
|
|
145
138
|
log.error("unhandled effect error", {
|
|
146
139
|
error
|
|
147
140
|
}, {
|
|
@@ -178,8 +171,8 @@ var createEventLogger = (level, message = "event") => {
|
|
|
178
171
|
};
|
|
179
172
|
|
|
180
173
|
// src/services/function-call-service.ts
|
|
181
|
-
import { Context as
|
|
182
|
-
var FunctionCallService = class extends
|
|
174
|
+
import { Context as Context5 } from "effect";
|
|
175
|
+
var FunctionCallService = class extends Context5.Tag("FunctionCallService")() {
|
|
183
176
|
static fromClient(baseUrl, spaceId) {
|
|
184
177
|
return {
|
|
185
178
|
callFunction: async (deployedFunctionId, input) => {
|
|
@@ -225,30 +218,11 @@ var isSecure = (protocol) => {
|
|
|
225
218
|
return protocol === "https:" || protocol === "wss:";
|
|
226
219
|
};
|
|
227
220
|
|
|
228
|
-
// src/services/tool-resolver.ts
|
|
229
|
-
import { Context as Context7 } from "effect";
|
|
230
|
-
var ToolResolverService = class extends Context7.Tag("ToolResolverService")() {
|
|
231
|
-
static {
|
|
232
|
-
this.notAvailable = {
|
|
233
|
-
toolResolver: {
|
|
234
|
-
resolve: async (id) => {
|
|
235
|
-
throw new Error("Tool resolver not available");
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
static {
|
|
241
|
-
this.make = (toolResolver) => {
|
|
242
|
-
return {
|
|
243
|
-
toolResolver
|
|
244
|
-
};
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
|
|
249
221
|
// src/services/tracing.ts
|
|
250
|
-
import { Context as
|
|
251
|
-
|
|
222
|
+
import { Context as Context6, Effect as Effect4 } from "effect";
|
|
223
|
+
import { AgentStatus } from "@dxos/ai";
|
|
224
|
+
import { Obj } from "@dxos/echo";
|
|
225
|
+
var TracingService = class _TracingService extends Context6.Tag("TracingService")() {
|
|
252
226
|
static {
|
|
253
227
|
this.noop = {
|
|
254
228
|
write: () => {
|
|
@@ -262,29 +236,35 @@ var TracingService = class extends Context8.Tag("TracingService")() {
|
|
|
262
236
|
}
|
|
263
237
|
};
|
|
264
238
|
}
|
|
239
|
+
static {
|
|
240
|
+
/**
|
|
241
|
+
* Emit the current human-readable execution status.
|
|
242
|
+
*/
|
|
243
|
+
this.emitStatus = Effect4.fnUntraced(function* (data) {
|
|
244
|
+
const tracing = yield* _TracingService;
|
|
245
|
+
tracing.write(Obj.make(AgentStatus, data));
|
|
246
|
+
});
|
|
247
|
+
}
|
|
265
248
|
};
|
|
266
249
|
|
|
267
250
|
// src/services/service-container.ts
|
|
268
|
-
import { Layer as
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
251
|
+
import { Layer as Layer3 } from "effect";
|
|
252
|
+
import { AiService } from "@dxos/ai";
|
|
253
|
+
import { entries } from "@dxos/util";
|
|
254
|
+
var SERVICES = {
|
|
255
|
+
ai: AiService,
|
|
256
|
+
credentials: CredentialsService,
|
|
257
|
+
database: DatabaseService,
|
|
258
|
+
eventLogger: EventLogger,
|
|
259
|
+
functionCallService: FunctionCallService,
|
|
260
|
+
queues: QueueService,
|
|
261
|
+
tracing: TracingService
|
|
278
262
|
};
|
|
279
|
-
var
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
FunctionCallService,
|
|
285
|
-
TracingService,
|
|
286
|
-
QueueService
|
|
287
|
-
];
|
|
263
|
+
var SERVICE_MAPPING = Object.fromEntries(entries(SERVICES).map(([name, tag]) => [
|
|
264
|
+
tag.key,
|
|
265
|
+
name
|
|
266
|
+
]));
|
|
267
|
+
var SERVICE_TAGS = Object.values(SERVICES);
|
|
288
268
|
var DEFAULT_SERVICES = {
|
|
289
269
|
tracing: TracingService.noop
|
|
290
270
|
};
|
|
@@ -321,32 +301,21 @@ var ServiceContainer = class _ServiceContainer {
|
|
|
321
301
|
}
|
|
322
302
|
// TODO(dmaretskyi): `getService` is designed to error at runtime if the service is not available, but layer forces us to provide all services and makes stubs for the ones that are not available.
|
|
323
303
|
createLayer() {
|
|
324
|
-
const ai = this._services.ai != null ?
|
|
325
|
-
const credentials =
|
|
326
|
-
const database = this._services.database != null ?
|
|
327
|
-
const queues = this._services.queues != null ?
|
|
328
|
-
const tracing =
|
|
329
|
-
const eventLogger =
|
|
330
|
-
const functionCallService =
|
|
331
|
-
|
|
332
|
-
return Layer4.mergeAll(
|
|
333
|
-
//
|
|
334
|
-
ai,
|
|
335
|
-
credentials,
|
|
336
|
-
database,
|
|
337
|
-
queues,
|
|
338
|
-
tracing,
|
|
339
|
-
eventLogger,
|
|
340
|
-
functionCallService,
|
|
341
|
-
toolResolver
|
|
342
|
-
);
|
|
304
|
+
const ai = this._services.ai != null ? Layer3.succeed(AiService, this._services.ai) : AiService.notAvailable;
|
|
305
|
+
const credentials = Layer3.succeed(CredentialsService, this._services.credentials ?? new ConfiguredCredentialsService());
|
|
306
|
+
const database = this._services.database != null ? Layer3.succeed(DatabaseService, this._services.database) : DatabaseService.notAvailable;
|
|
307
|
+
const queues = this._services.queues != null ? Layer3.succeed(QueueService, this._services.queues) : QueueService.notAvailable;
|
|
308
|
+
const tracing = Layer3.succeed(TracingService, this._services.tracing ?? TracingService.noop);
|
|
309
|
+
const eventLogger = Layer3.succeed(EventLogger, this._services.eventLogger ?? EventLogger.noop);
|
|
310
|
+
const functionCallService = Layer3.succeed(FunctionCallService, this._services.functionCallService ?? FunctionCallService.mock());
|
|
311
|
+
return Layer3.mergeAll(ai, credentials, database, queues, tracing, eventLogger, functionCallService);
|
|
343
312
|
}
|
|
344
313
|
};
|
|
345
314
|
|
|
346
315
|
export {
|
|
347
|
-
AiService,
|
|
348
316
|
DatabaseService,
|
|
349
317
|
QueueService,
|
|
318
|
+
ContextQueueService,
|
|
350
319
|
CredentialsService,
|
|
351
320
|
ConfiguredCredentialsService,
|
|
352
321
|
EventLogger,
|
|
@@ -354,9 +323,8 @@ export {
|
|
|
354
323
|
createDefectLogger,
|
|
355
324
|
createEventLogger,
|
|
356
325
|
FunctionCallService,
|
|
357
|
-
ToolResolverService,
|
|
358
326
|
TracingService,
|
|
359
327
|
SERVICE_TAGS,
|
|
360
328
|
ServiceContainer
|
|
361
329
|
};
|
|
362
|
-
//# sourceMappingURL=chunk-
|
|
330
|
+
//# sourceMappingURL=chunk-FJ2MU7TL.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/database.ts", "../../../src/services/queues.ts", "../../../src/services/credentials.ts", "../../../src/services/event-logger.ts", "../../../src/services/function-call-service.ts", "../../../src/services/tracing.ts", "../../../src/services/service-container.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Context, Effect, Layer } from 'effect';\n\nimport type { Filter, Live, Obj, Query, Ref, Relation } from '@dxos/echo';\nimport type { EchoDatabase, OneShotQueryResult, QueryResult } from '@dxos/echo-db';\nimport type { DXN } from '@dxos/keys';\n\nexport class DatabaseService extends Context.Tag('DatabaseService')<\n DatabaseService,\n {\n readonly db: EchoDatabase;\n }\n>() {\n static notAvailable = Layer.succeed(DatabaseService, {\n get db(): EchoDatabase {\n throw new Error('Database not available');\n },\n });\n\n static make = (db: EchoDatabase): Context.Tag.Service<DatabaseService> => {\n return {\n get db() {\n return db;\n },\n };\n };\n\n static resolve: (dxn: DXN) => Effect.Effect<Obj.Any | Relation.Any, Error, DatabaseService> = Effect.fn(\n function* (dxn) {\n const { db } = yield* DatabaseService;\n return yield* Effect.tryPromise({\n try: () =>\n db.graph.createRefResolver({ context: { space: db.spaceId } }).resolve(dxn) as Promise<\n Obj.Any | Relation.Any\n >,\n catch: (error) => error as Error,\n });\n },\n );\n\n static loadRef: <T>(ref: Ref.Ref<T>) => Effect.Effect<T, never, never> = Effect.fn(function* (ref) {\n return yield* Effect.promise(() => ref.load());\n });\n\n /**\n * Creates a `QueryResult` object that can be subscribed to.\n */\n static query: {\n <Q extends Query.Any>(query: Q): Effect.Effect<QueryResult<Live<Query.Type<Q>>>, never, DatabaseService>;\n <F extends Filter.Any>(filter: F): Effect.Effect<QueryResult<Live<Filter.Type<F>>>, never, DatabaseService>;\n } = (queryOrFilter: Query.Any | Filter.Any) =>\n DatabaseService.pipe(\n Effect.map(({ db }) => db.query(queryOrFilter as any)),\n Effect.withSpan('DatabaseService.query'),\n );\n\n /**\n * Executes the query once and returns the results.\n */\n static runQuery: {\n <Q extends Query.Any>(query: Q): Effect.Effect<OneShotQueryResult<Live<Query.Type<Q>>>, never, DatabaseService>;\n <F extends Filter.Any>(filter: F): Effect.Effect<OneShotQueryResult<Live<Filter.Type<F>>>, never, DatabaseService>;\n } = (queryOrFilter: Query.Any | Filter.Any) =>\n DatabaseService.query(queryOrFilter as any).pipe(\n Effect.flatMap((queryResult) => Effect.promise(() => queryResult.run())),\n );\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Context, Layer } from 'effect';\n\nimport type { Queue, QueueAPI, QueueFactory } from '@dxos/echo-db';\n\n/**\n * Gives access to all queues.\n */\nexport class QueueService extends Context.Tag('QueueService')<\n QueueService,\n {\n /**\n * API to access the queues.\n */\n readonly queues: QueueAPI;\n\n /**\n * The queue that is used to store the context of the current research.\n * @deprecated Use `ContextQueueService` instead.\n */\n readonly contextQueue: Queue | undefined;\n }\n>() {\n static notAvailable = Layer.succeed(QueueService, {\n queues: {\n get(dxn) {\n throw new Error('Queues not available');\n },\n create() {\n throw new Error('Queues not available');\n },\n },\n contextQueue: undefined,\n });\n\n static make = (queues: QueueFactory, contextQueue?: Queue): Context.Tag.Service<QueueService> => {\n return {\n queues,\n contextQueue,\n };\n };\n}\n\n/**\n * Gives access to a specific queue passed as a context.\n */\nexport class ContextQueueService extends Context.Tag('ContextQueueService')<\n ContextQueueService,\n {\n readonly contextQueue: Queue;\n }\n>() {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Context, Effect } from 'effect';\n\ntype CredentialQuery = {\n service?: string;\n};\n\n// TODO(dmaretskyi): Unify with other apis.\n// packages/sdk/schema/src/common/access-token.ts\nexport type ServiceCredential = {\n service: string;\n\n // TODO(dmaretskyi): Build out.\n apiKey?: string;\n};\n\nexport class CredentialsService extends Context.Tag('CredentialsService')<\n CredentialsService,\n {\n /**\n * Query all.\n */\n queryCredentials: (query: CredentialQuery) => Promise<ServiceCredential[]>;\n\n /**\n * Get a single credential.\n * @throws {Error} If no credential is found.\n */\n getCredential: (query: CredentialQuery) => Promise<ServiceCredential>;\n }\n>() {\n static getCredential = (query: CredentialQuery): Effect.Effect<ServiceCredential, never, CredentialsService> =>\n Effect.gen(function* () {\n const credentials = yield* CredentialsService;\n return yield* Effect.promise(() => credentials.getCredential(query));\n });\n}\n\nexport class ConfiguredCredentialsService implements Context.Tag.Service<CredentialsService> {\n constructor(private readonly credentials: ServiceCredential[] = []) {}\n\n addCredentials(credentials: ServiceCredential[]): ConfiguredCredentialsService {\n this.credentials.push(...credentials);\n return this;\n }\n\n async queryCredentials(query: CredentialQuery): Promise<ServiceCredential[]> {\n return this.credentials.filter((credential) => credential.service === query.service);\n }\n\n async getCredential(query: CredentialQuery): Promise<ServiceCredential> {\n const credential = this.credentials.find((credential) => credential.service === query.service);\n if (!credential) {\n throw new Error(`Credential not found for service: ${query.service}`);\n }\n return credential;\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Effect, Context } from 'effect';\n\nimport { invariant } from '@dxos/invariant';\nimport { log, LogLevel } from '@dxos/log';\n\nexport type ComputeEvent =\n | {\n type: 'begin-compute';\n nodeId: string;\n inputs: Record<string, any>;\n }\n | {\n type: 'end-compute';\n nodeId: string;\n outputs: Record<string, any>;\n }\n | {\n type: 'compute-input';\n nodeId: string;\n property: string;\n value: any;\n }\n | {\n type: 'compute-output';\n nodeId: string;\n property: string;\n value: any;\n }\n | {\n type: 'custom';\n nodeId: string;\n event: any;\n };\n\nexport class EventLogger extends Context.Tag('EventLogger')<\n EventLogger,\n { readonly log: (event: ComputeEvent) => void; readonly nodeId: string | undefined }\n>() {\n static noop: Context.Tag.Service<EventLogger> = {\n log: () => {},\n nodeId: undefined,\n };\n}\n\nexport const logCustomEvent = (data: any) =>\n Effect.gen(function* () {\n const logger = yield* EventLogger;\n if (!logger.nodeId) {\n throw new Error('logCustomEvent must be called within a node compute function');\n }\n logger.log({\n type: 'custom',\n nodeId: logger.nodeId,\n event: data,\n });\n });\n\nexport const createDefectLogger = <A, E, R>(): ((self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>) =>\n Effect.catchAll((error) =>\n Effect.gen(function* () {\n log.error('unhandled effect error', { error });\n throw error;\n }),\n );\n\nexport const createEventLogger = (level: LogLevel, message: string = 'event'): Context.Tag.Service<EventLogger> => {\n const logFunction = (\n {\n [LogLevel.WARN]: log.warn,\n [LogLevel.VERBOSE]: log.verbose,\n [LogLevel.DEBUG]: log.debug,\n [LogLevel.INFO]: log.info,\n [LogLevel.ERROR]: log.error,\n } as any\n )[level];\n invariant(logFunction);\n return {\n log: (event: ComputeEvent) => {\n logFunction(message, event);\n },\n nodeId: undefined,\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Context } from 'effect';\n\nimport type { SpaceId } from '@dxos/keys';\n\n/**\n * Allows calling into other functions.\n */\nexport class FunctionCallService extends Context.Tag('FunctionCallService')<\n FunctionCallService,\n {\n callFunction(deployedFunctionId: string, input: any, spaceId?: SpaceId): Promise<any>;\n }\n>() {\n static fromClient(baseUrl: string, spaceId: SpaceId): Context.Tag.Service<FunctionCallService> {\n return {\n callFunction: async (deployedFunctionId: string, input: any) => {\n const url = getInvocationUrl(deployedFunctionId, baseUrl, { spaceId });\n const result = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(input),\n });\n if (result.status >= 300 || result.status < 200) {\n throw new Error('Failed to invoke function', { cause: new Error(`HTTP error: ${await result.text()}`) });\n }\n return await result.json();\n },\n };\n }\n\n static mock = () => {\n return {\n callFunction: async (deployedFunctionId: string, input: any) => {\n return input;\n },\n };\n };\n}\n\n// TODO(dmaretskyi): Reconcile with `getInvocationUrl` in `@dxos/functions/edge`.\nconst getInvocationUrl = (functionUrl: string, edgeUrl: string, options: InvocationOptions = {}) => {\n const baseUrl = new URL('functions/', edgeUrl);\n\n // Leading slashes cause the URL to be treated as an absolute path.\n const relativeUrl = functionUrl.replace(/^\\//, '');\n const url = new URL(`./${relativeUrl}`, baseUrl.toString());\n options.spaceId && url.searchParams.set('spaceId', options.spaceId);\n options.subjectId && url.searchParams.set('subjectId', options.subjectId);\n url.protocol = isSecure(url.protocol) ? 'https' : 'http';\n return url.toString();\n};\n\nconst isSecure = (protocol: string) => {\n return protocol === 'https:' || protocol === 'wss:';\n};\n\ntype InvocationOptions = {\n spaceId?: SpaceId;\n subjectId?: string;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Context, Effect } from 'effect';\n\nimport { AgentStatus } from '@dxos/ai';\nimport { Obj } from '@dxos/echo';\nimport type { AnyEchoObject } from '@dxos/echo-schema';\n\n/**\n * Provides a way for compute primitives (functions, workflows, tools)\n * to emit an execution trace as a series of structured ECHO objects.\n */\nexport class TracingService extends Context.Tag('TracingService')<\n TracingService,\n {\n /**\n * Write an event to the tracing queue.\n * @param event - The event to write. Must be an a typed object.\n */\n write(event: AnyEchoObject): void;\n }\n>() {\n static noop: Context.Tag.Service<TracingService> = { write: () => {} };\n\n static console: Context.Tag.Service<TracingService> = {\n write: (event) => {\n // eslint-disable-next-line no-console\n console.log(event);\n },\n };\n\n /**\n * Emit the current human-readable execution status.\n */\n static emitStatus: (data: Obj.MakeProps<typeof AgentStatus>) => Effect.Effect<unknown, never, void> =\n Effect.fnUntraced(function* (data) {\n const tracing = yield* TracingService;\n tracing.write(Obj.make(AgentStatus, data));\n });\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Context, Layer } from 'effect';\n\nimport { AiService } from '@dxos/ai';\nimport { entries } from '@dxos/util';\n\nimport { ConfiguredCredentialsService, CredentialsService } from './credentials';\nimport { DatabaseService } from './database';\nimport { EventLogger } from './event-logger';\nimport { FunctionCallService } from './function-call-service';\nimport { QueueService } from './queues';\nimport { TracingService } from './tracing';\n\n// TODO(dmaretskyi): Refactor this module to only rely on tags and not the human-assigned names.\n\n/**\n * List of all services.\n */\nconst SERVICES = {\n ai: AiService,\n credentials: CredentialsService,\n database: DatabaseService,\n eventLogger: EventLogger,\n functionCallService: FunctionCallService,\n queues: QueueService,\n tracing: TracingService,\n} as const satisfies Record<string, Context.TagClass<any, string, any>>;\n\n/**\n * Mapping of service names to their tags.\n */\nexport type ServiceTagRecord = {\n [K in keyof typeof SERVICES]: (typeof SERVICES)[K] extends { new (_: never): infer T } ? T : never;\n};\n\n/**\n * Mapping of service names to their runtime types.\n */\nexport type ServiceRecord = {\n [K in keyof ServiceTagRecord]: Context.Tag.Service<ServiceTagRecord[K]>;\n};\n\n/**\n * Union of all services tags.\n */\nexport type Services = ServiceTagRecord[keyof ServiceTagRecord];\n\nconst SERVICE_MAPPING: Record<string, keyof ServiceRecord> = Object.fromEntries(\n entries(SERVICES).map(([name, tag]) => [tag.key, name]),\n);\n\nexport const SERVICE_TAGS: Context.Tag<any, any>[] = Object.values(SERVICES);\n\nconst DEFAULT_SERVICES: Partial<ServiceRecord> = {\n tracing: TracingService.noop,\n};\n\n/**\n * @deprecated\n */\nexport class ServiceContainer {\n private _services: Partial<ServiceRecord> = { ...DEFAULT_SERVICES };\n\n /**\n * Set services.\n * @param services - Services to set.\n * @returns The container instance.\n */\n setServices(services: Partial<ServiceRecord>): this {\n this._services = { ...this._services, ...services };\n return this;\n }\n\n getService<Id, T>(tag: Context.Tag<Id, T>): T {\n const serviceKey = SERVICE_MAPPING[tag.key];\n const service = serviceKey != null ? this._services[serviceKey] : undefined;\n if (!service) {\n throw new Error(`Service not available: ${tag.key}`);\n }\n\n return service as T;\n }\n\n clone(): ServiceContainer {\n return new ServiceContainer().setServices({ ...this._services });\n }\n\n // TODO(dmaretskyi): `getService` is designed to error at runtime if the service is not available, but layer forces us to provide all services and makes stubs for the ones that are not available.\n createLayer(): Layer.Layer<Services> {\n const ai = this._services.ai != null ? Layer.succeed(AiService, this._services.ai) : AiService.notAvailable;\n const credentials = Layer.succeed(\n CredentialsService,\n this._services.credentials ?? new ConfiguredCredentialsService(),\n );\n const database =\n this._services.database != null\n ? Layer.succeed(DatabaseService, this._services.database)\n : DatabaseService.notAvailable;\n const queues =\n this._services.queues != null ? Layer.succeed(QueueService, this._services.queues) : QueueService.notAvailable;\n const tracing = Layer.succeed(TracingService, this._services.tracing ?? TracingService.noop);\n const eventLogger = Layer.succeed(EventLogger, this._services.eventLogger ?? EventLogger.noop);\n const functionCallService = Layer.succeed(\n FunctionCallService,\n this._services.functionCallService ?? FunctionCallService.mock(),\n );\n\n return Layer.mergeAll(ai, credentials, database, queues, tracing, eventLogger, functionCallService);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Context", "Effect", "Layer", "DatabaseService", "Context", "Tag", "notAvailable", "Layer", "succeed", "db", "Error", "make", "resolve", "Effect", "fn", "dxn", "tryPromise", "try", "graph", "createRefResolver", "context", "space", "spaceId", "catch", "error", "loadRef", "ref", "promise", "load", "query", "queryOrFilter", "pipe", "map", "withSpan", "runQuery", "flatMap", "queryResult", "run", "Context", "Layer", "QueueService", "Context", "Tag", "notAvailable", "Layer", "succeed", "queues", "get", "dxn", "Error", "create", "contextQueue", "undefined", "make", "ContextQueueService", "Context", "Effect", "CredentialsService", "Context", "Tag", "getCredential", "query", "Effect", "gen", "credentials", "promise", "ConfiguredCredentialsService", "addCredentials", "push", "queryCredentials", "filter", "credential", "service", "find", "Error", "Effect", "Context", "invariant", "log", "LogLevel", "EventLogger", "Tag", "noop", "nodeId", "undefined", "logCustomEvent", "data", "gen", "logger", "Error", "type", "event", "createDefectLogger", "catchAll", "error", "createEventLogger", "level", "message", "logFunction", "WARN", "warn", "VERBOSE", "verbose", "DEBUG", "debug", "INFO", "info", "ERROR", "Context", "FunctionCallService", "Context", "Tag", "fromClient", "baseUrl", "spaceId", "callFunction", "deployedFunctionId", "input", "url", "getInvocationUrl", "result", "fetch", "method", "headers", "body", "JSON", "stringify", "status", "Error", "cause", "text", "json", "mock", "functionUrl", "edgeUrl", "options", "URL", "relativeUrl", "replace", "toString", "searchParams", "set", "subjectId", "protocol", "isSecure", "Context", "Effect", "AgentStatus", "Obj", "TracingService", "Context", "Tag", "noop", "write", "console", "event", "log", "emitStatus", "Effect", "fnUntraced", "data", "tracing", "Obj", "make", "AgentStatus", "Layer", "AiService", "entries", "SERVICES", "ai", "AiService", "credentials", "CredentialsService", "database", "DatabaseService", "eventLogger", "EventLogger", "functionCallService", "FunctionCallService", "queues", "QueueService", "tracing", "TracingService", "SERVICE_MAPPING", "Object", "fromEntries", "entries", "map", "name", "tag", "key", "SERVICE_TAGS", "values", "DEFAULT_SERVICES", "noop", "ServiceContainer", "_services", "setServices", "services", "getService", "serviceKey", "service", "undefined", "Error", "clone", "createLayer", "Layer", "succeed", "notAvailable", "ConfiguredCredentialsService", "mock", "mergeAll"]
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/edge/functions.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\n\nimport { type Client } from '@dxos/client';\nimport { createEdgeIdentity } from '@dxos/client/edge';\nimport { EdgeHttpClient } from '@dxos/edge-client';\nimport { invariant } from '@dxos/invariant';\nimport type
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type DID } from 'iso-did/types';\n\nimport { type Client } from '@dxos/client';\nimport { createEdgeIdentity } from '@dxos/client/edge';\nimport { EdgeHttpClient } from '@dxos/edge-client';\nimport { invariant } from '@dxos/invariant';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type UploadFunctionResponseBody } from '@dxos/protocols';\n\nexport type UploadWorkerArgs = {\n client: Client;\n source: string;\n version: string;\n name?: string;\n functionId?: string;\n ownerPublicKey: PublicKey;\n};\n\nexport const uploadWorkerFunction = async ({\n client,\n version,\n source,\n name,\n functionId,\n ownerPublicKey,\n}: UploadWorkerArgs): Promise<UploadFunctionResponseBody> => {\n const edgeUrl = client.config.values.runtime?.services?.edge?.url;\n invariant(edgeUrl, 'Edge is not configured.');\n const edgeClient = new EdgeHttpClient(edgeUrl);\n const edgeIdentity = createEdgeIdentity(client);\n edgeClient.setIdentity(edgeIdentity);\n const response = await edgeClient.uploadFunction(\n { functionId },\n { name, version, script: source, ownerPublicKey: ownerPublicKey.toHex() },\n );\n\n // TODO(burdon): Edge service log.\n log.info('Uploaded', {\n identityKey: edgeIdentity.identityKey,\n functionId,\n name,\n source: source.length,\n response,\n });\n\n return response;\n};\n\nexport const incrementSemverPatch = (version: string): string => {\n const [major, minor, patch] = version.split('.');\n const patchNum = Number(patch);\n invariant(!Number.isNaN(patchNum), `Unexpected function version format: ${version}`);\n return [major, minor, String(patchNum + 1)].join('.');\n};\n\n// TODO(burdon): Factor out.\nexport const publicKeyToDid = (key: PublicKey): DID => {\n return `did:key:${key.toHex()}`;\n};\n"],
|
|
5
5
|
"mappings": ";;;AAOA,SAASA,0BAA0B;AACnC,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAE1B,SAASC,WAAW;;AAYb,IAAMC,uBAAuB,OAAO,EACzCC,QACAC,SACAC,QACAC,MACAC,YACAC,eAAc,MACG;AACjB,QAAMC,UAAUN,OAAOO,OAAOC,OAAOC,SAASC,UAAUC,MAAMC;AAC9Df,YAAUS,SAAS,2BAAA;;;;;;;;;AACnB,QAAMO,aAAa,IAAIjB,eAAeU,OAAAA;AACtC,QAAMQ,eAAenB,mBAAmBK,MAAAA;AACxCa,aAAWE,YAAYD,YAAAA;AACvB,QAAME,WAAW,MAAMH,WAAWI,eAChC;IAAEb;EAAW,GACb;IAAED;IAAMF;IAASiB,QAAQhB;IAAQG,gBAAgBA,eAAec,MAAK;EAAG,CAAA;AAI1ErB,MAAIsB,KAAK,YAAY;IACnBC,aAAaP,aAAaO;IAC1BjB;IACAD;IACAD,QAAQA,OAAOoB;IACfN;EACF,GAAA;;;;;;AAEA,SAAOA;AACT;AAEO,IAAMO,uBAAuB,CAACtB,YAAAA;AACnC,QAAM,CAACuB,OAAOC,OAAOC,KAAAA,IAASzB,QAAQ0B,MAAM,GAAA;AAC5C,QAAMC,WAAWC,OAAOH,KAAAA;AACxB7B,YAAU,CAACgC,OAAOC,MAAMF,QAAAA,GAAW,uCAAuC3B,OAAAA,IAAS;;;;;;;;;AACnF,SAAO;IAACuB;IAAOC;IAAOM,OAAOH,WAAW,CAAA;IAAII,KAAK,GAAA;AACnD;AAGO,IAAMC,iBAAiB,CAACC,QAAAA;AAC7B,SAAO,WAAWA,IAAIf,MAAK,CAAA;AAC7B;",
|
|
6
6
|
"names": ["createEdgeIdentity", "EdgeHttpClient", "invariant", "log", "uploadWorkerFunction", "client", "version", "source", "name", "functionId", "ownerPublicKey", "edgeUrl", "config", "values", "runtime", "services", "edge", "url", "edgeClient", "edgeIdentity", "setIdentity", "response", "uploadFunction", "script", "toHex", "info", "identityKey", "length", "incrementSemverPatch", "major", "minor", "patch", "split", "patchNum", "Number", "isNaN", "String", "join", "publicKeyToDid", "key"]
|
|
7
7
|
}
|