@symbolica/agentica 0.2.11-rc
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/LICENSE +77 -0
- package/README.md +50 -0
- package/bun/agentica.plugin.ts +40 -0
- package/default-configs/agentica-hello-world.ts +12 -0
- package/default-configs/esbuild.config.ts +30 -0
- package/default-configs/next.config.ts +9 -0
- package/default-configs/rollup.config.ts +57 -0
- package/default-configs/vite.config.ts +6 -0
- package/default-configs/webpack.config.ts +5 -0
- package/dist/bin/agentica-setup.d.ts +3 -0
- package/dist/bin/agentica-setup.d.ts.map +1 -0
- package/dist/bin/agentica-setup.js +1407 -0
- package/dist/bin/agentica-setup.js.map +1 -0
- package/dist/src/agentica/agent.d.ts +68 -0
- package/dist/src/agentica/agent.d.ts.map +1 -0
- package/dist/src/agentica/agent.js +171 -0
- package/dist/src/agentica/agent.js.map +1 -0
- package/dist/src/agentica/agentic.d.ts +35 -0
- package/dist/src/agentica/agentic.d.ts.map +1 -0
- package/dist/src/agentica/agentic.js +86 -0
- package/dist/src/agentica/agentic.js.map +1 -0
- package/dist/src/agentica/common.d.ts +89 -0
- package/dist/src/agentica/common.d.ts.map +1 -0
- package/dist/src/agentica/common.js +229 -0
- package/dist/src/agentica/common.js.map +1 -0
- package/dist/src/agentica/index.d.ts +3 -0
- package/dist/src/agentica/index.d.ts.map +1 -0
- package/dist/src/agentica/index.js +3 -0
- package/dist/src/agentica/index.js.map +1 -0
- package/dist/src/agentica/template.d.ts +19 -0
- package/dist/src/agentica/template.d.ts.map +1 -0
- package/dist/src/agentica/template.js +44 -0
- package/dist/src/agentica/template.js.map +1 -0
- package/dist/src/agentica-client/agentica-client.d.ts +14 -0
- package/dist/src/agentica-client/agentica-client.d.ts.map +1 -0
- package/dist/src/agentica-client/agentica-client.js +109 -0
- package/dist/src/agentica-client/agentica-client.js.map +1 -0
- package/dist/src/agentica-client/global-csm.d.ts +6 -0
- package/dist/src/agentica-client/global-csm.d.ts.map +1 -0
- package/dist/src/agentica-client/global-csm.js +33 -0
- package/dist/src/agentica-client/global-csm.js.map +1 -0
- package/dist/src/agentica-client/index.d.ts +3 -0
- package/dist/src/agentica-client/index.d.ts.map +1 -0
- package/dist/src/agentica-client/index.js +3 -0
- package/dist/src/agentica-client/index.js.map +1 -0
- package/dist/src/agentica-client/utils.d.ts +2 -0
- package/dist/src/agentica-client/utils.d.ts.map +1 -0
- package/dist/src/agentica-client/utils.js +4 -0
- package/dist/src/agentica-client/utils.js.map +1 -0
- package/dist/src/agentica-unplugin.d.ts +21 -0
- package/dist/src/agentica-unplugin.d.ts.map +1 -0
- package/dist/src/agentica-unplugin.js +136 -0
- package/dist/src/agentica-unplugin.js.map +1 -0
- package/dist/src/bundlers/bun.d.ts +7 -0
- package/dist/src/bundlers/bun.d.ts.map +1 -0
- package/dist/src/bundlers/bun.js +55 -0
- package/dist/src/bundlers/bun.js.map +1 -0
- package/dist/src/bundlers/esbuild.d.ts +3 -0
- package/dist/src/bundlers/esbuild.d.ts.map +1 -0
- package/dist/src/bundlers/esbuild.js +3 -0
- package/dist/src/bundlers/esbuild.js.map +1 -0
- package/dist/src/bundlers/rollup.d.ts +3 -0
- package/dist/src/bundlers/rollup.d.ts.map +1 -0
- package/dist/src/bundlers/rollup.js +3 -0
- package/dist/src/bundlers/rollup.js.map +1 -0
- package/dist/src/bundlers/utils.d.ts +5 -0
- package/dist/src/bundlers/utils.d.ts.map +1 -0
- package/dist/src/bundlers/utils.js +37 -0
- package/dist/src/bundlers/utils.js.map +1 -0
- package/dist/src/bundlers/vite.d.ts +3 -0
- package/dist/src/bundlers/vite.d.ts.map +1 -0
- package/dist/src/bundlers/vite.js +3 -0
- package/dist/src/bundlers/vite.js.map +1 -0
- package/dist/src/bundlers/webpack.d.ts +3 -0
- package/dist/src/bundlers/webpack.d.ts.map +1 -0
- package/dist/src/bundlers/webpack.js +3 -0
- package/dist/src/bundlers/webpack.js.map +1 -0
- package/dist/src/client-session-manager/at-exit.d.ts +6 -0
- package/dist/src/client-session-manager/at-exit.d.ts.map +1 -0
- package/dist/src/client-session-manager/at-exit.js +120 -0
- package/dist/src/client-session-manager/at-exit.js.map +1 -0
- package/dist/src/client-session-manager/client-session-manager.d.ts +73 -0
- package/dist/src/client-session-manager/client-session-manager.d.ts.map +1 -0
- package/dist/src/client-session-manager/client-session-manager.js +859 -0
- package/dist/src/client-session-manager/client-session-manager.js.map +1 -0
- package/dist/src/client-session-manager/message-utils.d.ts +7 -0
- package/dist/src/client-session-manager/message-utils.d.ts.map +1 -0
- package/dist/src/client-session-manager/message-utils.js +58 -0
- package/dist/src/client-session-manager/message-utils.js.map +1 -0
- package/dist/src/client-session-manager/queue.d.ts +10 -0
- package/dist/src/client-session-manager/queue.d.ts.map +1 -0
- package/dist/src/client-session-manager/queue.js +41 -0
- package/dist/src/client-session-manager/queue.js.map +1 -0
- package/dist/src/client-session-manager/types.d.ts +23 -0
- package/dist/src/client-session-manager/types.d.ts.map +1 -0
- package/dist/src/client-session-manager/types.js +2 -0
- package/dist/src/client-session-manager/types.js.map +1 -0
- package/dist/src/coming-soon.d.ts +45 -0
- package/dist/src/coming-soon.d.ts.map +1 -0
- package/dist/src/coming-soon.js +206 -0
- package/dist/src/coming-soon.js.map +1 -0
- package/dist/src/common.d.ts +3 -0
- package/dist/src/common.d.ts.map +1 -0
- package/dist/src/common.js +14 -0
- package/dist/src/common.js.map +1 -0
- package/dist/src/errors/base.d.ts +16 -0
- package/dist/src/errors/base.d.ts.map +1 -0
- package/dist/src/errors/base.js +45 -0
- package/dist/src/errors/base.js.map +1 -0
- package/dist/src/errors/bugs.d.ts +5 -0
- package/dist/src/errors/bugs.d.ts.map +1 -0
- package/dist/src/errors/bugs.js +15 -0
- package/dist/src/errors/bugs.js.map +1 -0
- package/dist/src/errors/connection.d.ts +17 -0
- package/dist/src/errors/connection.d.ts.map +1 -0
- package/dist/src/errors/connection.js +27 -0
- package/dist/src/errors/connection.js.map +1 -0
- package/dist/src/errors/generation.d.ts +53 -0
- package/dist/src/errors/generation.d.ts.map +1 -0
- package/dist/src/errors/generation.js +73 -0
- package/dist/src/errors/generation.js.map +1 -0
- package/dist/src/errors/index.d.ts +9 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +62 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/errors/invocation.d.ts +8 -0
- package/dist/src/errors/invocation.d.ts.map +1 -0
- package/dist/src/errors/invocation.js +8 -0
- package/dist/src/errors/invocation.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +33 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/logging/composite-logger.d.ts +20 -0
- package/dist/src/logging/composite-logger.d.ts.map +1 -0
- package/dist/src/logging/composite-logger.js +107 -0
- package/dist/src/logging/composite-logger.js.map +1 -0
- package/dist/src/logging/config.d.ts +17 -0
- package/dist/src/logging/config.d.ts.map +1 -0
- package/dist/src/logging/config.js +88 -0
- package/dist/src/logging/config.js.map +1 -0
- package/dist/src/logging/index.d.ts +11 -0
- package/dist/src/logging/index.d.ts.map +1 -0
- package/dist/src/logging/index.js +24 -0
- package/dist/src/logging/index.js.map +1 -0
- package/dist/src/logging/logger.d.ts +30 -0
- package/dist/src/logging/logger.d.ts.map +1 -0
- package/dist/src/logging/logger.js +156 -0
- package/dist/src/logging/logger.js.map +1 -0
- package/dist/src/logging/otel-logger.d.ts +24 -0
- package/dist/src/logging/otel-logger.d.ts.map +1 -0
- package/dist/src/logging/otel-logger.js +114 -0
- package/dist/src/logging/otel-logger.js.map +1 -0
- package/dist/src/logging/span.d.ts +23 -0
- package/dist/src/logging/span.d.ts.map +1 -0
- package/dist/src/logging/span.js +42 -0
- package/dist/src/logging/span.js.map +1 -0
- package/dist/src/logging/types.d.ts +32 -0
- package/dist/src/logging/types.d.ts.map +1 -0
- package/dist/src/logging/types.js +2 -0
- package/dist/src/logging/types.js.map +1 -0
- package/dist/src/nextjs-wrapper.d.ts +6 -0
- package/dist/src/nextjs-wrapper.d.ts.map +1 -0
- package/dist/src/nextjs-wrapper.js +18 -0
- package/dist/src/nextjs-wrapper.js.map +1 -0
- package/dist/src/otel-config.d.ts +18 -0
- package/dist/src/otel-config.d.ts.map +1 -0
- package/dist/src/otel-config.js +116 -0
- package/dist/src/otel-config.js.map +1 -0
- package/dist/src/otel-logging.d.ts +13 -0
- package/dist/src/otel-logging.d.ts.map +1 -0
- package/dist/src/otel-logging.js +63 -0
- package/dist/src/otel-logging.js.map +1 -0
- package/dist/src/transformer/codegen/context-gen.d.ts +31 -0
- package/dist/src/transformer/codegen/context-gen.d.ts.map +1 -0
- package/dist/src/transformer/codegen/context-gen.js +292 -0
- package/dist/src/transformer/codegen/context-gen.js.map +1 -0
- package/dist/src/transformer/processor/class-targets.d.ts +11 -0
- package/dist/src/transformer/processor/class-targets.d.ts.map +1 -0
- package/dist/src/transformer/processor/class-targets.js +35 -0
- package/dist/src/transformer/processor/class-targets.js.map +1 -0
- package/dist/src/transformer/processor/function-targets.d.ts +11 -0
- package/dist/src/transformer/processor/function-targets.d.ts.map +1 -0
- package/dist/src/transformer/processor/function-targets.js +9 -0
- package/dist/src/transformer/processor/function-targets.js.map +1 -0
- package/dist/src/transformer/processor/object-targets.d.ts +11 -0
- package/dist/src/transformer/processor/object-targets.d.ts.map +1 -0
- package/dist/src/transformer/processor/object-targets.js +9 -0
- package/dist/src/transformer/processor/object-targets.js.map +1 -0
- package/dist/src/transformer/processor/processor-utils.d.ts +55 -0
- package/dist/src/transformer/processor/processor-utils.d.ts.map +1 -0
- package/dist/src/transformer/processor/processor-utils.js +491 -0
- package/dist/src/transformer/processor/processor-utils.js.map +1 -0
- package/dist/src/transformer/processor/processor.d.ts +22 -0
- package/dist/src/transformer/processor/processor.d.ts.map +1 -0
- package/dist/src/transformer/processor/processor.js +187 -0
- package/dist/src/transformer/processor/processor.js.map +1 -0
- package/dist/src/transformer/transformer-config.d.ts +9 -0
- package/dist/src/transformer/transformer-config.d.ts.map +1 -0
- package/dist/src/transformer/transformer-config.js +13 -0
- package/dist/src/transformer/transformer-config.js.map +1 -0
- package/dist/src/transformer/transformer-utils.d.ts +29 -0
- package/dist/src/transformer/transformer-utils.d.ts.map +1 -0
- package/dist/src/transformer/transformer-utils.js +349 -0
- package/dist/src/transformer/transformer-utils.js.map +1 -0
- package/dist/src/transformer/transformer.d.ts +4 -0
- package/dist/src/transformer/transformer.d.ts.map +1 -0
- package/dist/src/transformer/transformer.js +96 -0
- package/dist/src/transformer/transformer.js.map +1 -0
- package/dist/src/transformer/traverser/class-traversal.d.ts +9 -0
- package/dist/src/transformer/traverser/class-traversal.d.ts.map +1 -0
- package/dist/src/transformer/traverser/class-traversal.js +292 -0
- package/dist/src/transformer/traverser/class-traversal.js.map +1 -0
- package/dist/src/transformer/traverser/function-traversal.d.ts +7 -0
- package/dist/src/transformer/traverser/function-traversal.d.ts.map +1 -0
- package/dist/src/transformer/traverser/function-traversal.js +29 -0
- package/dist/src/transformer/traverser/function-traversal.js.map +1 -0
- package/dist/src/transformer/traverser/system-traversal.d.ts +9 -0
- package/dist/src/transformer/traverser/system-traversal.d.ts.map +1 -0
- package/dist/src/transformer/traverser/system-traversal.js +309 -0
- package/dist/src/transformer/traverser/system-traversal.js.map +1 -0
- package/dist/src/transformer/traverser/traversal-utils.d.ts +16 -0
- package/dist/src/transformer/traverser/traversal-utils.d.ts.map +1 -0
- package/dist/src/transformer/traverser/traversal-utils.js +132 -0
- package/dist/src/transformer/traverser/traversal-utils.js.map +1 -0
- package/dist/src/transformer/traverser/traverser.d.ts +44 -0
- package/dist/src/transformer/traverser/traverser.d.ts.map +1 -0
- package/dist/src/transformer/traverser/traverser.js +369 -0
- package/dist/src/transformer/traverser/traverser.js.map +1 -0
- package/dist/src/version.d.ts +2 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/src/version.js +2 -0
- package/dist/src/version.js.map +1 -0
- package/dist/src/warpc/frame-context/annotation-ctx.d.ts +15 -0
- package/dist/src/warpc/frame-context/annotation-ctx.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/annotation-ctx.js +33 -0
- package/dist/src/warpc/frame-context/annotation-ctx.js.map +1 -0
- package/dist/src/warpc/frame-context/frame-ctx.d.ts +27 -0
- package/dist/src/warpc/frame-context/frame-ctx.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/frame-ctx.js +49 -0
- package/dist/src/warpc/frame-context/frame-ctx.js.map +1 -0
- package/dist/src/warpc/frame-context/message-conversion/decoder.d.ts +24 -0
- package/dist/src/warpc/frame-context/message-conversion/decoder.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/message-conversion/decoder.js +197 -0
- package/dist/src/warpc/frame-context/message-conversion/decoder.js.map +1 -0
- package/dist/src/warpc/frame-context/message-conversion/encoder.d.ts +21 -0
- package/dist/src/warpc/frame-context/message-conversion/encoder.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/message-conversion/encoder.js +225 -0
- package/dist/src/warpc/frame-context/message-conversion/encoder.js.map +1 -0
- package/dist/src/warpc/frame-context/resource-ctx.d.ts +45 -0
- package/dist/src/warpc/frame-context/resource-ctx.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/resource-ctx.js +112 -0
- package/dist/src/warpc/frame-context/resource-ctx.js.map +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/factory.d.ts +22 -0
- package/dist/src/warpc/frame-context/synthetic-resources/factory.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/factory.js +174 -0
- package/dist/src/warpc/frame-context/synthetic-resources/factory.js.map +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/index.d.ts +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/index.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/index.js +2 -0
- package/dist/src/warpc/frame-context/synthetic-resources/index.js.map +1 -0
- package/dist/src/warpc/frame-context/system-ctx.d.ts +18 -0
- package/dist/src/warpc/frame-context/system-ctx.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/system-ctx.js +132 -0
- package/dist/src/warpc/frame-context/system-ctx.js.map +1 -0
- package/dist/src/warpc/frame-context/uid-gen.d.ts +10 -0
- package/dist/src/warpc/frame-context/uid-gen.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/uid-gen.js +20 -0
- package/dist/src/warpc/frame-context/uid-gen.js.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/default.d.ts +16 -0
- package/dist/src/warpc/frame-context/virtual-resources/default.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/default.js +193 -0
- package/dist/src/warpc/frame-context/virtual-resources/default.js.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/dispatcher.d.ts +17 -0
- package/dist/src/warpc/frame-context/virtual-resources/dispatcher.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/dispatcher.js +257 -0
- package/dist/src/warpc/frame-context/virtual-resources/dispatcher.js.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/virtualizer.d.ts +29 -0
- package/dist/src/warpc/frame-context/virtual-resources/virtualizer.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/virtualizer.js +16 -0
- package/dist/src/warpc/frame-context/virtual-resources/virtualizer.js.map +1 -0
- package/dist/src/warpc/frame.d.ts +45 -0
- package/dist/src/warpc/frame.d.ts.map +1 -0
- package/dist/src/warpc/frame.js +390 -0
- package/dist/src/warpc/frame.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts +64 -0
- package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.js +138 -0
- package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/concept.d.ts +33 -0
- package/dist/src/warpc/msg-protocol/concept/concept.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/concept.js +47 -0
- package/dist/src/warpc/msg-protocol/concept/concept.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.d.ts +42 -0
- package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.js +86 -0
- package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/rehydrate.d.ts +2 -0
- package/dist/src/warpc/msg-protocol/concept/rehydrate.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/rehydrate.js +56 -0
- package/dist/src/warpc/msg-protocol/concept/rehydrate.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/class-msg.d.ts +86 -0
- package/dist/src/warpc/msg-protocol/concept/resource/class-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/class-msg.js +158 -0
- package/dist/src/warpc/msg-protocol/concept/resource/class-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/function-msg.d.ts +30 -0
- package/dist/src/warpc/msg-protocol/concept/resource/function-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/function-msg.js +48 -0
- package/dist/src/warpc/msg-protocol/concept/resource/function-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/object-msg.d.ts +19 -0
- package/dist/src/warpc/msg-protocol/concept/resource/object-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/object-msg.js +23 -0
- package/dist/src/warpc/msg-protocol/concept/resource/object-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.d.ts +27 -0
- package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.js +32 -0
- package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/system-msg.d.ts +48 -0
- package/dist/src/warpc/msg-protocol/concept/resource/system-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/system-msg.js +301 -0
- package/dist/src/warpc/msg-protocol/concept/resource/system-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/atom.d.ts +33 -0
- package/dist/src/warpc/msg-protocol/concept/value/atom.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/atom.js +74 -0
- package/dist/src/warpc/msg-protocol/concept/value/atom.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/container.d.ts +59 -0
- package/dist/src/warpc/msg-protocol/concept/value/container.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/container.js +189 -0
- package/dist/src/warpc/msg-protocol/concept/value/container.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/symbol.d.ts +20 -0
- package/dist/src/warpc/msg-protocol/concept/value/symbol.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/symbol.js +61 -0
- package/dist/src/warpc/msg-protocol/concept/value/symbol.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/value-msg.d.ts +8 -0
- package/dist/src/warpc/msg-protocol/concept/value/value-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/value-msg.js +12 -0
- package/dist/src/warpc/msg-protocol/concept/value/value-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/kinds.d.ts +118 -0
- package/dist/src/warpc/msg-protocol/kinds.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/kinds.js +131 -0
- package/dist/src/warpc/msg-protocol/kinds.js.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/event-msg.d.ts +12 -0
- package/dist/src/warpc/msg-protocol/rpc/event-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/event-msg.js +19 -0
- package/dist/src/warpc/msg-protocol/rpc/event-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/request-msg.d.ts +90 -0
- package/dist/src/warpc/msg-protocol/rpc/request-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/request-msg.js +75 -0
- package/dist/src/warpc/msg-protocol/rpc/request-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/response-msg.d.ts +29 -0
- package/dist/src/warpc/msg-protocol/rpc/response-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/response-msg.js +37 -0
- package/dist/src/warpc/msg-protocol/rpc/response-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/rpc-msg.d.ts +8 -0
- package/dist/src/warpc/msg-protocol/rpc/rpc-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/rpc-msg.js +13 -0
- package/dist/src/warpc/msg-protocol/rpc/rpc-msg.js.map +1 -0
- package/dist/src/warpc/rpc-channel/handler.d.ts +23 -0
- package/dist/src/warpc/rpc-channel/handler.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/handler.js +163 -0
- package/dist/src/warpc/rpc-channel/handler.js.map +1 -0
- package/dist/src/warpc/rpc-channel/mux.d.ts +25 -0
- package/dist/src/warpc/rpc-channel/mux.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/mux.js +95 -0
- package/dist/src/warpc/rpc-channel/mux.js.map +1 -0
- package/dist/src/warpc/rpc-channel/responder.d.ts +18 -0
- package/dist/src/warpc/rpc-channel/responder.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/responder.js +423 -0
- package/dist/src/warpc/rpc-channel/responder.js.map +1 -0
- package/dist/src/warpc/rpc-channel/socket.d.ts +25 -0
- package/dist/src/warpc/rpc-channel/socket.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/socket.js +58 -0
- package/dist/src/warpc/rpc-channel/socket.js.map +1 -0
- package/dist/src/warpc/rpc-channel/utils.d.ts +6 -0
- package/dist/src/warpc/rpc-channel/utils.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/utils.js +15 -0
- package/dist/src/warpc/rpc-channel/utils.js.map +1 -0
- package/dist/src/warpc/runtime.d.ts +36 -0
- package/dist/src/warpc/runtime.d.ts.map +1 -0
- package/dist/src/warpc/runtime.js +153 -0
- package/dist/src/warpc/runtime.js.map +1 -0
- package/dist-transformer/agentica/agent.d.ts +81 -0
- package/dist-transformer/agentica/agent.d.ts.map +1 -0
- package/dist-transformer/agentica/agent.js +185 -0
- package/dist-transformer/agentica/agentic.d.ts +36 -0
- package/dist-transformer/agentica/agentic.d.ts.map +1 -0
- package/dist-transformer/agentica/agentic.js +100 -0
- package/dist-transformer/agentica/common.d.ts +137 -0
- package/dist-transformer/agentica/common.d.ts.map +1 -0
- package/dist-transformer/agentica/common.js +276 -0
- package/dist-transformer/agentica/template.d.ts +19 -0
- package/dist-transformer/agentica/template.d.ts.map +1 -0
- package/dist-transformer/agentica/template.js +47 -0
- package/dist-transformer/agentica-client/agentica-client.d.ts +32 -0
- package/dist-transformer/agentica-client/agentica-client.d.ts.map +1 -0
- package/dist-transformer/agentica-client/agentica-client.js +129 -0
- package/dist-transformer/agentica-client/global-csm.d.ts +20 -0
- package/dist-transformer/agentica-client/global-csm.d.ts.map +1 -0
- package/dist-transformer/agentica-client/global-csm.js +46 -0
- package/dist-transformer/agentica-client/index.d.ts +3 -0
- package/dist-transformer/agentica-client/index.d.ts.map +1 -0
- package/dist-transformer/agentica-client/index.js +2 -0
- package/dist-transformer/agentica-client/utils.d.ts +5 -0
- package/dist-transformer/agentica-client/utils.d.ts.map +1 -0
- package/dist-transformer/agentica-client/utils.js +6 -0
- package/dist-transformer/bundlers/utils.d.ts +18 -0
- package/dist-transformer/bundlers/utils.d.ts.map +1 -0
- package/dist-transformer/bundlers/utils.js +49 -0
- package/dist-transformer/client-session-manager/at-exit.d.ts +19 -0
- package/dist-transformer/client-session-manager/at-exit.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/at-exit.js +140 -0
- package/dist-transformer/client-session-manager/client-session-manager.d.ts +148 -0
- package/dist-transformer/client-session-manager/client-session-manager.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/client-session-manager.js +966 -0
- package/dist-transformer/client-session-manager/message-utils.d.ts +19 -0
- package/dist-transformer/client-session-manager/message-utils.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/message-utils.js +69 -0
- package/dist-transformer/client-session-manager/queue.d.ts +13 -0
- package/dist-transformer/client-session-manager/queue.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/queue.js +45 -0
- package/dist-transformer/client-session-manager/types.d.ts +23 -0
- package/dist-transformer/client-session-manager/types.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/types.js +1 -0
- package/dist-transformer/coming-soon.d.ts +45 -0
- package/dist-transformer/coming-soon.d.ts.map +1 -0
- package/dist-transformer/coming-soon.js +210 -0
- package/dist-transformer/common.d.ts +3 -0
- package/dist-transformer/common.d.ts.map +1 -0
- package/dist-transformer/common.js +13 -0
- package/dist-transformer/errors/base.d.ts +20 -0
- package/dist-transformer/errors/base.d.ts.map +1 -0
- package/dist-transformer/errors/base.js +43 -0
- package/dist-transformer/errors/bugs.d.ts +7 -0
- package/dist-transformer/errors/bugs.d.ts.map +1 -0
- package/dist-transformer/errors/bugs.js +16 -0
- package/dist-transformer/errors/connection.d.ts +22 -0
- package/dist-transformer/errors/connection.d.ts.map +1 -0
- package/dist-transformer/errors/connection.js +31 -0
- package/dist-transformer/errors/generation.d.ts +75 -0
- package/dist-transformer/errors/generation.d.ts.map +1 -0
- package/dist-transformer/errors/generation.js +98 -0
- package/dist-transformer/errors/index.d.ts +9 -0
- package/dist-transformer/errors/index.d.ts.map +1 -0
- package/dist-transformer/errors/index.js +64 -0
- package/dist-transformer/errors/invocation.d.ts +8 -0
- package/dist-transformer/errors/invocation.d.ts.map +1 -0
- package/dist-transformer/errors/invocation.js +7 -0
- package/dist-transformer/index.d.ts +8 -0
- package/dist-transformer/index.d.ts.map +1 -0
- package/dist-transformer/index.js +40 -0
- package/dist-transformer/logging/composite-logger.d.ts +28 -0
- package/dist-transformer/logging/composite-logger.d.ts.map +1 -0
- package/dist-transformer/logging/composite-logger.js +118 -0
- package/dist-transformer/logging/config.d.ts +17 -0
- package/dist-transformer/logging/config.d.ts.map +1 -0
- package/dist-transformer/logging/config.js +86 -0
- package/dist-transformer/logging/index.d.ts +19 -0
- package/dist-transformer/logging/index.d.ts.map +1 -0
- package/dist-transformer/logging/index.js +32 -0
- package/dist-transformer/logging/logger.d.ts +30 -0
- package/dist-transformer/logging/logger.d.ts.map +1 -0
- package/dist-transformer/logging/logger.js +153 -0
- package/dist-transformer/logging/otel-logger.d.ts +33 -0
- package/dist-transformer/logging/otel-logger.d.ts.map +1 -0
- package/dist-transformer/logging/otel-logger.js +121 -0
- package/dist-transformer/logging/span.d.ts +23 -0
- package/dist-transformer/logging/span.d.ts.map +1 -0
- package/dist-transformer/logging/span.js +40 -0
- package/dist-transformer/logging/types.d.ts +32 -0
- package/dist-transformer/logging/types.d.ts.map +1 -0
- package/dist-transformer/logging/types.js +1 -0
- package/dist-transformer/otel-config.d.ts +61 -0
- package/dist-transformer/otel-config.d.ts.map +1 -0
- package/dist-transformer/otel-config.js +175 -0
- package/dist-transformer/otel-logging.d.ts +49 -0
- package/dist-transformer/otel-logging.d.ts.map +1 -0
- package/dist-transformer/otel-logging.js +99 -0
- package/dist-transformer/transformer/codegen/context-gen.d.ts +47 -0
- package/dist-transformer/transformer/codegen/context-gen.d.ts.map +1 -0
- package/dist-transformer/transformer/codegen/context-gen.js +354 -0
- package/dist-transformer/transformer/processor/class-targets.d.ts +11 -0
- package/dist-transformer/transformer/processor/class-targets.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/class-targets.js +37 -0
- package/dist-transformer/transformer/processor/function-targets.d.ts +11 -0
- package/dist-transformer/transformer/processor/function-targets.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/function-targets.js +8 -0
- package/dist-transformer/transformer/processor/object-targets.d.ts +11 -0
- package/dist-transformer/transformer/processor/object-targets.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/object-targets.js +8 -0
- package/dist-transformer/transformer/processor/processor-utils.d.ts +67 -0
- package/dist-transformer/transformer/processor/processor-utils.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/processor-utils.js +533 -0
- package/dist-transformer/transformer/processor/processor.d.ts +22 -0
- package/dist-transformer/transformer/processor/processor.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/processor.js +202 -0
- package/dist-transformer/transformer/transformer-config.d.ts +9 -0
- package/dist-transformer/transformer/transformer-config.d.ts.map +1 -0
- package/dist-transformer/transformer/transformer-config.js +12 -0
- package/dist-transformer/transformer/transformer-utils.d.ts +29 -0
- package/dist-transformer/transformer/transformer-utils.d.ts.map +1 -0
- package/dist-transformer/transformer/transformer-utils.js +364 -0
- package/dist-transformer/transformer/transformer.d.ts +8 -0
- package/dist-transformer/transformer/transformer.d.ts.map +1 -0
- package/dist-transformer/transformer/transformer.js +104 -0
- package/dist-transformer/transformer/traverser/class-traversal.d.ts +9 -0
- package/dist-transformer/transformer/traverser/class-traversal.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/class-traversal.js +336 -0
- package/dist-transformer/transformer/traverser/function-traversal.d.ts +7 -0
- package/dist-transformer/transformer/traverser/function-traversal.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/function-traversal.js +28 -0
- package/dist-transformer/transformer/traverser/system-traversal.d.ts +13 -0
- package/dist-transformer/transformer/traverser/system-traversal.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/system-traversal.js +350 -0
- package/dist-transformer/transformer/traverser/traversal-utils.d.ts +16 -0
- package/dist-transformer/transformer/traverser/traversal-utils.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/traversal-utils.js +132 -0
- package/dist-transformer/transformer/traverser/traverser.d.ts +44 -0
- package/dist-transformer/transformer/traverser/traverser.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/traverser.js +414 -0
- package/dist-transformer/version.d.ts +2 -0
- package/dist-transformer/version.d.ts.map +1 -0
- package/dist-transformer/version.js +3 -0
- package/dist-transformer/warpc/frame-context/annotation-ctx.d.ts +15 -0
- package/dist-transformer/warpc/frame-context/annotation-ctx.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/annotation-ctx.js +30 -0
- package/dist-transformer/warpc/frame-context/frame-ctx.d.ts +27 -0
- package/dist-transformer/warpc/frame-context/frame-ctx.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/frame-ctx.js +42 -0
- package/dist-transformer/warpc/frame-context/message-conversion/decoder.d.ts +24 -0
- package/dist-transformer/warpc/frame-context/message-conversion/decoder.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/message-conversion/decoder.js +204 -0
- package/dist-transformer/warpc/frame-context/message-conversion/encoder.d.ts +22 -0
- package/dist-transformer/warpc/frame-context/message-conversion/encoder.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/message-conversion/encoder.js +246 -0
- package/dist-transformer/warpc/frame-context/resource-ctx.d.ts +45 -0
- package/dist-transformer/warpc/frame-context/resource-ctx.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/resource-ctx.js +103 -0
- package/dist-transformer/warpc/frame-context/synthetic-resources/factory.d.ts +31 -0
- package/dist-transformer/warpc/frame-context/synthetic-resources/factory.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/synthetic-resources/factory.js +196 -0
- package/dist-transformer/warpc/frame-context/system-ctx.d.ts +18 -0
- package/dist-transformer/warpc/frame-context/system-ctx.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/system-ctx.js +135 -0
- package/dist-transformer/warpc/frame-context/uid-gen.d.ts +14 -0
- package/dist-transformer/warpc/frame-context/uid-gen.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/uid-gen.js +22 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/default.d.ts +16 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/default.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/default.js +196 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.d.ts +17 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.js +255 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.d.ts +32 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.js +15 -0
- package/dist-transformer/warpc/frame.d.ts +45 -0
- package/dist-transformer/warpc/frame.d.ts.map +1 -0
- package/dist-transformer/warpc/frame.js +417 -0
- package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts +68 -0
- package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.js +135 -0
- package/dist-transformer/warpc/msg-protocol/concept/concept.d.ts +33 -0
- package/dist-transformer/warpc/msg-protocol/concept/concept.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/concept.js +44 -0
- package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.d.ts +42 -0
- package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.js +74 -0
- package/dist-transformer/warpc/msg-protocol/concept/rehydrate.d.ts +2 -0
- package/dist-transformer/warpc/msg-protocol/concept/rehydrate.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/rehydrate.js +61 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.d.ts +86 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.js +157 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.d.ts +30 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.js +48 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.d.ts +25 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.js +24 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.d.ts +37 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.js +32 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.d.ts +48 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.js +306 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/atom.d.ts +33 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/atom.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/atom.js +69 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/container.d.ts +59 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/container.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/container.js +185 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/symbol.d.ts +20 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/symbol.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/symbol.js +57 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.d.ts +8 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.js +10 -0
- package/dist-transformer/warpc/msg-protocol/kinds.d.ts +118 -0
- package/dist-transformer/warpc/msg-protocol/kinds.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/kinds.js +141 -0
- package/dist-transformer/warpc/msg-protocol/rpc/event-msg.d.ts +12 -0
- package/dist-transformer/warpc/msg-protocol/rpc/event-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/rpc/event-msg.js +15 -0
- package/dist-transformer/warpc/msg-protocol/rpc/request-msg.d.ts +90 -0
- package/dist-transformer/warpc/msg-protocol/rpc/request-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/rpc/request-msg.js +64 -0
- package/dist-transformer/warpc/msg-protocol/rpc/response-msg.d.ts +29 -0
- package/dist-transformer/warpc/msg-protocol/rpc/response-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/rpc/response-msg.js +32 -0
- package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.d.ts +8 -0
- package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.js +9 -0
- package/dist-transformer/warpc/rpc-channel/handler.d.ts +23 -0
- package/dist-transformer/warpc/rpc-channel/handler.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/handler.js +163 -0
- package/dist-transformer/warpc/rpc-channel/mux.d.ts +25 -0
- package/dist-transformer/warpc/rpc-channel/mux.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/mux.js +93 -0
- package/dist-transformer/warpc/rpc-channel/responder.d.ts +27 -0
- package/dist-transformer/warpc/rpc-channel/responder.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/responder.js +463 -0
- package/dist-transformer/warpc/rpc-channel/socket.d.ts +25 -0
- package/dist-transformer/warpc/rpc-channel/socket.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/socket.js +70 -0
- package/dist-transformer/warpc/rpc-channel/utils.d.ts +6 -0
- package/dist-transformer/warpc/rpc-channel/utils.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/utils.js +14 -0
- package/dist-transformer/warpc/runtime.d.ts +36 -0
- package/dist-transformer/warpc/runtime.d.ts.map +1 -0
- package/dist-transformer/warpc/runtime.js +159 -0
- package/package.json +126 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { createConsolaLogger, shortenPath } from '../logging/index.js';
|
|
2
|
+
import * as ts from 'typescript';
|
|
3
|
+
import { AgenticCodeInjector } from './codegen/context-gen.js';
|
|
4
|
+
import { collectAgenticFunSites, generateContextAtAgenticSite } from './processor/processor.js';
|
|
5
|
+
import { AGENTIC_TRANSFORMATION_NAME, CALL_TRANSFORMATION_NAME, SPAWN_TRANSFORMATION_NAME } from './transformer-config.js';
|
|
6
|
+
import { addAgenticTransformationImport, isAgenticFunCall, isCallMethod, isSpawnFunCall, wrapTransformationSite, } from './transformer-utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* Main transformer entry point
|
|
9
|
+
* Note: Transformer runs at build-time, so we use createConsolaLogger (never OTel)
|
|
10
|
+
*/
|
|
11
|
+
function agenticFunTransformer(program) {
|
|
12
|
+
const checker = program.getTypeChecker();
|
|
13
|
+
const logger = createConsolaLogger('transformer');
|
|
14
|
+
const span = logger.startSpan('agenticFunTransformer');
|
|
15
|
+
try {
|
|
16
|
+
// Collect agentic sites
|
|
17
|
+
const agenticSites = collectAgenticFunSites(program);
|
|
18
|
+
logger.debug(`Collected ${agenticSites.length} agentic sites`);
|
|
19
|
+
span.setAttribute('agentic_sites_count', agenticSites.length);
|
|
20
|
+
// Traverse each agentic site to generate context
|
|
21
|
+
const agenticSiteContexts = agenticSites.map((site) => generateContextAtAgenticSite(checker, program, site));
|
|
22
|
+
// Return the transformation factory
|
|
23
|
+
return (ctx) => {
|
|
24
|
+
const factory = ctx.factory;
|
|
25
|
+
const agenticCodeInjector = new AgenticCodeInjector(factory, program);
|
|
26
|
+
return (sourceFile) => {
|
|
27
|
+
const fileLogger = logger.withScope('file');
|
|
28
|
+
const fileName = sourceFile.fileName;
|
|
29
|
+
const sitesInFile = agenticSites.filter((s) => s.sourceFile.fileName === sourceFile.fileName);
|
|
30
|
+
fileLogger.debug(`Processing ${shortenPath(fileName)}: ${sitesInFile.length} agentic site(s)`);
|
|
31
|
+
if (!sitesInFile.length)
|
|
32
|
+
return sourceFile;
|
|
33
|
+
sourceFile = addAgenticTransformationImport(factory, sourceFile);
|
|
34
|
+
const siteCodeByPos = new Map();
|
|
35
|
+
// Codegen per agentic site
|
|
36
|
+
for (const site of sitesInFile) {
|
|
37
|
+
const siteIdx = agenticSites.indexOf(site);
|
|
38
|
+
const siteContext = agenticSiteContexts[siteIdx];
|
|
39
|
+
// Generate context code (spawn may have empty context if no scope provided)
|
|
40
|
+
const agenticCode = agenticCodeInjector.generatePerSiteAgenticCode(sourceFile, '__AGENTIC_CONTEXT__', siteContext.context, false, site.id);
|
|
41
|
+
fileLogger.debug(`Injecting ${agenticCode.contextDecl ? 'context' : 'empty context'}${agenticCode.needsAsync ? ' with dynamic imports' : ''} for site ${site.id}`);
|
|
42
|
+
siteCodeByPos.set(site.call.pos, {
|
|
43
|
+
contextDecl: agenticCode.contextDecl,
|
|
44
|
+
dynamicImports: agenticCode.dynamicImports,
|
|
45
|
+
needsAsync: agenticCode.needsAsync,
|
|
46
|
+
siteId: site.id,
|
|
47
|
+
siteOutputType: siteContext.siteOutputType,
|
|
48
|
+
docString: site.docString,
|
|
49
|
+
promptTemplate: siteContext.promptTemplate,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
if (siteCodeByPos.size === 0)
|
|
53
|
+
return sourceFile;
|
|
54
|
+
let transformedCalls = 0;
|
|
55
|
+
const visitor = (node) => {
|
|
56
|
+
if (isAgenticFunCall(node)) {
|
|
57
|
+
const code = siteCodeByPos.get(node.pos);
|
|
58
|
+
if (code) {
|
|
59
|
+
transformedCalls++;
|
|
60
|
+
return wrapTransformationSite({
|
|
61
|
+
factory,
|
|
62
|
+
call: node,
|
|
63
|
+
code: code,
|
|
64
|
+
functionName: AGENTIC_TRANSFORMATION_NAME,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if (isSpawnFunCall(node)) {
|
|
69
|
+
const code = siteCodeByPos.get(node.pos);
|
|
70
|
+
if (code) {
|
|
71
|
+
transformedCalls++;
|
|
72
|
+
return wrapTransformationSite({
|
|
73
|
+
factory,
|
|
74
|
+
call: node,
|
|
75
|
+
code: code,
|
|
76
|
+
functionName: SPAWN_TRANSFORMATION_NAME,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else if (isCallMethod(node, checker)) {
|
|
81
|
+
const code = siteCodeByPos.get(node.pos);
|
|
82
|
+
if (code) {
|
|
83
|
+
transformedCalls++;
|
|
84
|
+
return wrapTransformationSite({
|
|
85
|
+
factory,
|
|
86
|
+
call: node,
|
|
87
|
+
code: code,
|
|
88
|
+
functionName: CALL_TRANSFORMATION_NAME,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return ts.visitEachChild(node, visitor, ctx);
|
|
93
|
+
};
|
|
94
|
+
const updated = ts.visitEachChild(sourceFile, visitor, ctx);
|
|
95
|
+
fileLogger.debug(`Transformed ${transformedCalls} agentica call(s) in ${shortenPath(fileName)}`);
|
|
96
|
+
return updated;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
span.end();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export default agenticFunTransformer;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InterfaceMsg } from '../../warpc/msg-protocol/concept/annotations/annotation-msg.js';
|
|
2
|
+
import { RefMsg } from '../../warpc/msg-protocol/concept/concept.js';
|
|
3
|
+
import { ClassMsg } from '../../warpc/msg-protocol/concept/resource/class-msg.js';
|
|
4
|
+
import { DefnUID } from '../../warpc/msg-protocol/kinds.js';
|
|
5
|
+
import * as ts from 'typescript';
|
|
6
|
+
import { TraversalCtx } from './traverser.js';
|
|
7
|
+
export declare function getOrCreateMapType(ctx: TraversalCtx, keyUid: DefnUID, valueUid: DefnUID): RefMsg<ClassMsg>;
|
|
8
|
+
export declare function traverseThroughClass(name: string | undefined, ctx: TraversalCtx, t: ts.Type, uid: DefnUID): ClassMsg | InterfaceMsg;
|
|
9
|
+
//# sourceMappingURL=class-traversal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-traversal.d.ts","sourceRoot":"","sources":["../../../src/transformer/traverser/class-traversal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wDAAwD,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAGH,QAAQ,EAGX,MAAM,gDAAgD,CAAC;AAIxD,OAAO,EAAe,OAAO,EAAS,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AASjC,OAAO,EAAE,YAAY,EAAmB,MAAM,aAAa,CAAC;AAE5D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAiD1G;AAED,wBAAgB,oBAAoB,CAChC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,GAAG,EAAE,YAAY,EACjB,CAAC,EAAE,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,OAAO,GACb,QAAQ,GAAG,YAAY,CA2UzB"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { extractDocstringFromSymbol } from '../processor/processor-utils.js';
|
|
2
|
+
import { ClassMsg, } from '../../warpc/msg-protocol/concept/resource/class-msg.js';
|
|
3
|
+
import { FunctionMsg } from '../../warpc/msg-protocol/concept/resource/function-msg.js';
|
|
4
|
+
import { ANONYMOUS_CLASS } from '../../warpc/msg-protocol/concept/resource/resource-msg.js';
|
|
5
|
+
import { CLASS_IDS, SystemContext } from '../../warpc/msg-protocol/concept/resource/system-msg.js';
|
|
6
|
+
import { ConceptKind, World } from '../../warpc/msg-protocol/kinds.js';
|
|
7
|
+
import * as ts from 'typescript';
|
|
8
|
+
import { hasConstructor, isBuiltinConcept, isEnum, parseParameterArgument, } from './traversal-utils.js';
|
|
9
|
+
export function getOrCreateMapType(ctx, keyUid, valueUid) {
|
|
10
|
+
const { records, logger, allocateUid } = ctx;
|
|
11
|
+
/*
|
|
12
|
+
Check if we already have a Map with these exact type arguments
|
|
13
|
+
|
|
14
|
+
Comment: we do this currently by searching messages (not types), and adding messages as needed.
|
|
15
|
+
This circumvents setting the recordsByType of the traverser, which could lead to a duplicate record
|
|
16
|
+
for the intended map type (but that is okay, since we do not materialize Map Types as classes)
|
|
17
|
+
*/
|
|
18
|
+
for (const [uid, record] of records.entries()) {
|
|
19
|
+
if (record.msg.kind === ConceptKind.Resource.Cls) {
|
|
20
|
+
const clsMsg = record.msg;
|
|
21
|
+
const payload = clsMsg.payload;
|
|
22
|
+
if (payload.instance_of_generic?.resource === CLASS_IDS.Map &&
|
|
23
|
+
payload.supplied_type_args &&
|
|
24
|
+
payload.supplied_type_args.length === 2) {
|
|
25
|
+
const [keyArg, valueArg] = payload.supplied_type_args;
|
|
26
|
+
if (keyArg.type.uid.world === keyUid.world &&
|
|
27
|
+
keyArg.type.uid.resource === keyUid.resource &&
|
|
28
|
+
valueArg.type.uid.world === valueUid.world &&
|
|
29
|
+
valueArg.type.uid.resource === valueUid.resource) {
|
|
30
|
+
logger.debug(`Reusing existing Map<${keyUid.resource}, ${valueUid.resource}> with UID ${uid.resource}`);
|
|
31
|
+
return ClassMsg.createClassRefMsg(uid);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// No existing Map<K,V> found, create a new one
|
|
37
|
+
const mapUid = allocateUid();
|
|
38
|
+
const mapMsg = SystemContext.createMapClassMsg(World.Client, mapUid, keyUid, valueUid);
|
|
39
|
+
const mapRecord = {
|
|
40
|
+
uid: mapUid,
|
|
41
|
+
msg: mapMsg,
|
|
42
|
+
};
|
|
43
|
+
records.set(mapUid, mapRecord);
|
|
44
|
+
logger.debug(`Created new Map<${keyUid.resource}, ${valueUid.resource}> with UID ${mapUid.resource}`);
|
|
45
|
+
return ClassMsg.createClassRefMsg(mapUid);
|
|
46
|
+
}
|
|
47
|
+
export function traverseThroughClass(name, ctx, t, uid) {
|
|
48
|
+
const { checker, traverseTSType, records, logger } = ctx;
|
|
49
|
+
// Check for type alias first, then fall back to the underlying type's symbol
|
|
50
|
+
const aliasSym = t.aliasSymbol;
|
|
51
|
+
const sym = aliasSym || t.getSymbol();
|
|
52
|
+
let className = name ?? (sym && sym.getName()) ?? ANONYMOUS_CLASS;
|
|
53
|
+
// Special case: treat globalThis as a plain object to avoid deep traversal
|
|
54
|
+
if (className === 'globalThis') {
|
|
55
|
+
logger.debug('Stopping at globalThis, returning object');
|
|
56
|
+
return SystemContext.getClassMsgByName(World.Client, 'object');
|
|
57
|
+
}
|
|
58
|
+
const isInterface = !hasConstructor(t);
|
|
59
|
+
// Replace __type and __object (TypeScript's names for anonymous inline object types) with a proper anonymous name
|
|
60
|
+
if (className === '__type' || className === '__object') {
|
|
61
|
+
logger.debug(`Replacing ${className} with ${ANONYMOUS_CLASS} for ${isInterface ? 'interface' : 'class'} ${uid.resource}`);
|
|
62
|
+
className = ANONYMOUS_CLASS + '_' + uid.resource.toString();
|
|
63
|
+
}
|
|
64
|
+
const doc = sym ? extractDocstringFromSymbol(sym) : undefined;
|
|
65
|
+
const fields = [];
|
|
66
|
+
const methods = [];
|
|
67
|
+
// Resolve the class declaration and constructor type early
|
|
68
|
+
let classDecl;
|
|
69
|
+
let constructorFunctionType;
|
|
70
|
+
if (sym && (sym.valueDeclaration || (sym.declarations && sym.declarations[0]))) {
|
|
71
|
+
classDecl = (sym.valueDeclaration || sym.declarations[0]);
|
|
72
|
+
constructorFunctionType = checker.getTypeOfSymbolAtLocation(sym, classDecl);
|
|
73
|
+
}
|
|
74
|
+
/*
|
|
75
|
+
** Generic classes logic (e.g. Factory<T, U> -> Factory<string, number>) **
|
|
76
|
+
|
|
77
|
+
Terminology:
|
|
78
|
+
* typeParams: The generic parameters declared on the class itself, e.g. in class Box<T, U> {}, the T and U. read
|
|
79
|
+
these from the declaration via clsDecl.typeParameters.
|
|
80
|
+
* typeArgs: The concrete types supplied at the use site, e.g.Map<string, number>. read these from the ts.
|
|
81
|
+
TypeReference((t as ts.TypeReference).typeArguments).
|
|
82
|
+
*/
|
|
83
|
+
// Build type substitution map from generic class type parameters to concrete type arguments
|
|
84
|
+
let typeSubstitutionMap;
|
|
85
|
+
let supplied_type_args;
|
|
86
|
+
const maybeTypeRef = t;
|
|
87
|
+
const typeArgs = maybeTypeRef.typeArguments;
|
|
88
|
+
if (typeArgs && typeArgs.length && classDecl && ts.isClassLike(classDecl)) {
|
|
89
|
+
const clsDecl = classDecl;
|
|
90
|
+
const typeParams = clsDecl.typeParameters || ts.factory.createNodeArray();
|
|
91
|
+
if (typeParams.length === typeArgs.length) {
|
|
92
|
+
typeSubstitutionMap = {};
|
|
93
|
+
for (let i = 0; i < typeParams.length; i++) {
|
|
94
|
+
const paramName = typeParams[i].name.text;
|
|
95
|
+
typeSubstitutionMap[paramName] = ClassMsg.createClassRefMsg(traverseTSType(typeArgs[i], true).uid);
|
|
96
|
+
}
|
|
97
|
+
supplied_type_args = Object.entries(typeSubstitutionMap).map(([name, type]) => ({ name, type }));
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
throw new Error(`Type ${className} has ${typeParams.length} type parameters but ${typeArgs.length} type arguments. ` +
|
|
101
|
+
`This is currently not supported during type analysis.`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function addClassMember(memberName, memberType, isStatic, memberSymbol) {
|
|
105
|
+
// Attempt to capture the source TypeNode for better ordering of unions/intersections
|
|
106
|
+
const memberDecl = (memberSymbol?.valueDeclaration || memberSymbol?.declarations?.[0]);
|
|
107
|
+
let memberTypeNode = undefined;
|
|
108
|
+
if (memberDecl && (ts.isPropertySignature(memberDecl) || ts.isPropertyDeclaration(memberDecl))) {
|
|
109
|
+
memberTypeNode = memberDecl.type;
|
|
110
|
+
}
|
|
111
|
+
const callSigs = checker.getSignaturesOfType(memberType, ts.SignatureKind.Call);
|
|
112
|
+
if (callSigs.length > 0) {
|
|
113
|
+
// methods
|
|
114
|
+
logger.debug(`METHOD: detected that ${memberName} is a method of ${uid.resource}`);
|
|
115
|
+
// Yields either an existing method record or a new Function Type class message
|
|
116
|
+
const memberTypeRecord = traverseTSType(memberType, false, memberTypeNode, typeSubstitutionMap);
|
|
117
|
+
// Class message case
|
|
118
|
+
if (memberTypeRecord.msg.kind === ConceptKind.Resource.Cls) {
|
|
119
|
+
logger.debugObject(`Method ${memberName} resolved to`, memberTypeRecord.msg);
|
|
120
|
+
const funcMsg = memberTypeRecord.msg.payload.supplied_type_args;
|
|
121
|
+
if (funcMsg === undefined) {
|
|
122
|
+
// throw unsupportedBultinClass(className, 'code');
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
memberTypeRecord.msg = funcMsg; // replace ClassMsg with FunctionMsg in place!
|
|
126
|
+
const methodUuid = memberTypeRecord.uid;
|
|
127
|
+
let isPrivate = false;
|
|
128
|
+
if (memberSymbol) {
|
|
129
|
+
const decl = memberSymbol.valueDeclaration || memberSymbol.declarations?.[0];
|
|
130
|
+
if (decl && ts.isMethodDeclaration(decl)) {
|
|
131
|
+
isPrivate =
|
|
132
|
+
memberName.startsWith('#') ||
|
|
133
|
+
(decl.modifiers?.some((mod) => mod.kind === ts.SyntaxKind.PrivateKeyword) ?? false);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
methods.push({
|
|
137
|
+
name: memberName,
|
|
138
|
+
function: FunctionMsg.createFunctionRefMsg(funcMsg.uid),
|
|
139
|
+
is_static: isStatic,
|
|
140
|
+
is_private: isPrivate,
|
|
141
|
+
});
|
|
142
|
+
const methodRecord = records.get(methodUuid);
|
|
143
|
+
if (methodRecord) {
|
|
144
|
+
// Set accessor path only for runtime classes (not interfaces)
|
|
145
|
+
if (!isInterface) {
|
|
146
|
+
methodRecord.__accessorPath = isStatic
|
|
147
|
+
? [className, memberName]
|
|
148
|
+
: [className, 'prototype', memberName];
|
|
149
|
+
}
|
|
150
|
+
// Convert to MethodSignatureMsg for all methods (classes and interfaces)
|
|
151
|
+
if (methodRecord.msg.kind === 'func') {
|
|
152
|
+
if (typeof methodRecord.msg.toMethodSignature === 'function') {
|
|
153
|
+
methodRecord.msg.payload.name = memberName;
|
|
154
|
+
methodRecord.msg = methodRecord.msg.toMethodSignature({
|
|
155
|
+
uid,
|
|
156
|
+
kind: isStatic ? 'static' : 'instance',
|
|
157
|
+
});
|
|
158
|
+
logger.debug(`Method ${memberName} converted to MethodSignatureMsg`);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
logger.warn(`Method ${memberName} was interpreted by the type traverser as a non-function with the following message:`, methodRecord.msg);
|
|
162
|
+
logger.debugObject(`Method ${memberName} resolved to`, methodRecord.msg);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
// fields
|
|
170
|
+
logger.debug(`FIELD: detected that ${memberName} is a field of ${uid.resource}`);
|
|
171
|
+
const fieldUid = traverseTSType(memberType, true, memberTypeNode, typeSubstitutionMap).uid;
|
|
172
|
+
let isOptional = false;
|
|
173
|
+
let isPrivate = false;
|
|
174
|
+
if (memberSymbol) {
|
|
175
|
+
const decl = memberSymbol.valueDeclaration || memberSymbol.declarations?.[0];
|
|
176
|
+
if (decl && (ts.isPropertySignature(decl) || ts.isPropertyDeclaration(decl))) {
|
|
177
|
+
isOptional = decl.questionToken !== undefined;
|
|
178
|
+
isPrivate =
|
|
179
|
+
memberName.startsWith('#') ||
|
|
180
|
+
(decl.modifiers?.some((mod) => mod.kind === ts.SyntaxKind.PrivateKeyword) ?? false);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
fields.push({
|
|
184
|
+
name: memberName,
|
|
185
|
+
type: ClassMsg.createClassRefMsg(fieldUid),
|
|
186
|
+
is_static: isStatic,
|
|
187
|
+
is_optional: isOptional,
|
|
188
|
+
is_private: isPrivate,
|
|
189
|
+
});
|
|
190
|
+
if (isStatic && !isInterface) {
|
|
191
|
+
const maybeMsg = records.get(fieldUid);
|
|
192
|
+
if (maybeMsg && maybeMsg.msg.kind === 'obj') {
|
|
193
|
+
maybeMsg.__accessorPath = [className, memberName];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Instance members
|
|
199
|
+
// Skip instance members for enums - they duplicate the static members
|
|
200
|
+
if (!isEnum(t)) {
|
|
201
|
+
for (const prop of checker.getPropertiesOfType(t)) {
|
|
202
|
+
const propName = prop.getName();
|
|
203
|
+
// Skip TypeScript internals and global augmentations
|
|
204
|
+
if (isBuiltinConcept(propName)) {
|
|
205
|
+
logger.debug(`Skipping internal/global member: ${propName}`);
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
logger.debug(`Adding instance member ${propName}`);
|
|
209
|
+
const propDecl = prop.valueDeclaration || (prop.declarations && prop.declarations[0]);
|
|
210
|
+
if (!propDecl)
|
|
211
|
+
continue;
|
|
212
|
+
const propType = checker.getTypeOfSymbolAtLocation(prop, propDecl);
|
|
213
|
+
addClassMember(propName, propType, false, prop);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// Static (class) members
|
|
217
|
+
if (classDecl && constructorFunctionType) {
|
|
218
|
+
for (const sprop of checker.getPropertiesOfType(constructorFunctionType)) {
|
|
219
|
+
const sname = sprop.getName();
|
|
220
|
+
if (sname === 'prototype' || sname === 'length' || sname === 'name')
|
|
221
|
+
continue;
|
|
222
|
+
const sdecl = (sprop.valueDeclaration || (sprop.declarations && sprop.declarations[0]));
|
|
223
|
+
if (!sdecl)
|
|
224
|
+
continue;
|
|
225
|
+
const stype = checker.getTypeOfSymbolAtLocation(sprop, sdecl);
|
|
226
|
+
addClassMember(sname, stype, true, sprop);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Base classes and implemented interfaces
|
|
230
|
+
let bases = undefined;
|
|
231
|
+
const allBases = [];
|
|
232
|
+
// Get extended base classes
|
|
233
|
+
const baseTypes = t.getBaseTypes && t.getBaseTypes();
|
|
234
|
+
if (baseTypes) {
|
|
235
|
+
allBases.push(...baseTypes);
|
|
236
|
+
}
|
|
237
|
+
// Get implemented interfaces from heritage clauses
|
|
238
|
+
if (classDecl && ts.isClassDeclaration(classDecl) && classDecl.heritageClauses) {
|
|
239
|
+
for (const heritageClause of classDecl.heritageClauses) {
|
|
240
|
+
if (heritageClause.token === ts.SyntaxKind.ImplementsKeyword) {
|
|
241
|
+
for (const typeExpr of heritageClause.types) {
|
|
242
|
+
const interfaceType = checker.getTypeAtLocation(typeExpr);
|
|
243
|
+
// Only add if not already in baseTypes (avoid duplicates)
|
|
244
|
+
if (!baseTypes?.some((bt) => bt === interfaceType)) {
|
|
245
|
+
allBases.push(interfaceType);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (allBases.length > 0) {
|
|
252
|
+
bases = allBases.map((baseType) => {
|
|
253
|
+
const baseSym = baseType.getSymbol?.();
|
|
254
|
+
const baseName = baseSym?.getName();
|
|
255
|
+
logger.debug(`BASE CLASS: detected that ${baseName} is a base class of ${uid.resource}`);
|
|
256
|
+
// Use compiler signals: instance-side built-ins (e.g., Error) have no constructor declarations
|
|
257
|
+
if (baseName && !hasConstructor(baseType) && SystemContext.isSystemResourceName(baseName)) {
|
|
258
|
+
const sysRef = SystemContext.getClassRefByName(World.Client, baseName);
|
|
259
|
+
if (sysRef)
|
|
260
|
+
return sysRef;
|
|
261
|
+
}
|
|
262
|
+
const baseUuid = traverseTSType(baseType, false).uid;
|
|
263
|
+
return ClassMsg.createClassRefMsg(baseUuid);
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
// Build constructor parameter mapping
|
|
267
|
+
let ctor_args;
|
|
268
|
+
if (constructorFunctionType) {
|
|
269
|
+
const constructSigs = checker.getSignaturesOfType(constructorFunctionType, ts.SignatureKind.Construct);
|
|
270
|
+
const ctorSig = constructSigs && constructSigs[0];
|
|
271
|
+
if (ctorSig) {
|
|
272
|
+
const argMap = [];
|
|
273
|
+
for (const param of ctorSig.getParameters()) {
|
|
274
|
+
const decl = (param.valueDeclaration || param.declarations?.[0]);
|
|
275
|
+
if (!decl)
|
|
276
|
+
continue;
|
|
277
|
+
const paramType = checker.getTypeOfSymbolAtLocation(param, decl);
|
|
278
|
+
argMap.push(parseParameterArgument(param, checker, traverseTSType, paramType, typeSubstitutionMap));
|
|
279
|
+
}
|
|
280
|
+
if (Object.keys(argMap).length > 0)
|
|
281
|
+
ctor_args = argMap;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
// Check for index signatures and record metadata
|
|
285
|
+
// (works for both interfaces and classes)
|
|
286
|
+
const obj = t;
|
|
287
|
+
const infos = obj.indexInfos;
|
|
288
|
+
let indexSignature;
|
|
289
|
+
if (infos && infos.length > 0) {
|
|
290
|
+
if (infos.length > 1) {
|
|
291
|
+
throw new Error(`Type ${className} has multiple index signatures (e.g., both [key: string] and [index: number]). ` +
|
|
292
|
+
`This is currently not supported during type analysis.`);
|
|
293
|
+
}
|
|
294
|
+
const indexInfo = infos[0];
|
|
295
|
+
const keyTypeUid = traverseTSType(indexInfo.keyType, true, undefined, typeSubstitutionMap).uid;
|
|
296
|
+
const valueTypeUid = traverseTSType(indexInfo.type, true, undefined, typeSubstitutionMap).uid;
|
|
297
|
+
logger.debug(`${isInterface ? 'Interface' : 'Class'} has index signature [${indexInfo.keyType.flags}]: ${indexInfo.type.flags} - recording metadata`);
|
|
298
|
+
// Create or reuse Map<K,V> type for this index signature
|
|
299
|
+
const mapTypeRef = getOrCreateMapType(ctx, keyTypeUid, valueTypeUid);
|
|
300
|
+
// Record index signature metadata
|
|
301
|
+
indexSignature = {
|
|
302
|
+
key_type: ClassMsg.createClassRefMsg(keyTypeUid),
|
|
303
|
+
value_type: ClassMsg.createClassRefMsg(valueTypeUid),
|
|
304
|
+
map_type: mapTypeRef,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
// Construct final message
|
|
308
|
+
if (isInterface) {
|
|
309
|
+
const meta = {
|
|
310
|
+
name: className,
|
|
311
|
+
fields: fields.length ? fields : [],
|
|
312
|
+
methods: methods.length ? methods : [],
|
|
313
|
+
module: t.getSymbol()?.declarations?.[0]?.getSourceFile()?.fileName,
|
|
314
|
+
bases: undefined, // NOTE: interfaces don't inherit
|
|
315
|
+
doc: doc || undefined,
|
|
316
|
+
index_signature: indexSignature,
|
|
317
|
+
};
|
|
318
|
+
return ClassMsg.createInterfaceMsg(uid, meta);
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
const payload = {
|
|
322
|
+
name: className,
|
|
323
|
+
fields: fields.length ? fields : [],
|
|
324
|
+
methods: methods.length ? methods : [],
|
|
325
|
+
module: t.getSymbol()?.declarations?.[0]?.getSourceFile()?.fileName,
|
|
326
|
+
bases,
|
|
327
|
+
supplied_type_args,
|
|
328
|
+
ctor_args,
|
|
329
|
+
doc: doc || undefined,
|
|
330
|
+
system_resource: false,
|
|
331
|
+
index_signature: indexSignature,
|
|
332
|
+
};
|
|
333
|
+
const msg = new ClassMsg(uid, payload);
|
|
334
|
+
return msg;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FunctionMsg } from '../../warpc/msg-protocol/concept/resource/function-msg.js';
|
|
2
|
+
import { DefnUID } from '../../warpc/msg-protocol/kinds.js';
|
|
3
|
+
import * as ts from 'typescript';
|
|
4
|
+
import { TypeSubstitutionMap } from './traversal-utils.js';
|
|
5
|
+
import { TraversalCtx } from './traverser.js';
|
|
6
|
+
export declare function traverseThroughFunction(name: string | undefined, ctx: TraversalCtx, t: ts.Type, uid: DefnUID, typeSubstitutionMap?: TypeSubstitutionMap): FunctionMsg;
|
|
7
|
+
//# sourceMappingURL=function-traversal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-traversal.d.ts","sourceRoot":"","sources":["../../../src/transformer/traverser/function-traversal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAmB,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAA8C,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,wBAAgB,uBAAuB,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,GAAG,EAAE,YAAY,EACjB,CAAC,EAAE,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,OAAO,EACZ,mBAAmB,CAAC,EAAE,mBAAmB,GAC1C,WAAW,CA+Bb"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { extractDocstringFromSymbol } from '../processor/processor-utils.js';
|
|
2
|
+
import { ClassMsg } from '../../warpc/msg-protocol/concept/resource/class-msg.js';
|
|
3
|
+
import { FunctionMsg } from '../../warpc/msg-protocol/concept/resource/function-msg.js';
|
|
4
|
+
import * as ts from 'typescript';
|
|
5
|
+
import { deriveFunctionName, parseParameterArgument } from './traversal-utils.js';
|
|
6
|
+
export function traverseThroughFunction(name, ctx, t, uid, typeSubstitutionMap) {
|
|
7
|
+
const { checker, traverseTSType } = ctx;
|
|
8
|
+
const signatures = checker.getSignaturesOfType(t, ts.SignatureKind.Call);
|
|
9
|
+
const sig = signatures[0];
|
|
10
|
+
name = name ?? deriveFunctionName(t, sig);
|
|
11
|
+
const symbol = t.getSymbol();
|
|
12
|
+
const doc = symbol ? extractDocstringFromSymbol(symbol) : undefined;
|
|
13
|
+
const argumentDescriptors = sig
|
|
14
|
+
.getParameters()
|
|
15
|
+
.map((param) => parseParameterArgument(param, checker, traverseTSType, undefined, typeSubstitutionMap));
|
|
16
|
+
const payload = {
|
|
17
|
+
name,
|
|
18
|
+
doc: doc || undefined,
|
|
19
|
+
arguments: argumentDescriptors,
|
|
20
|
+
returnType: ClassMsg.createClassRefMsg(traverseTSType(checker.getReturnTypeOfSignature(sig), true, sig.declaration &&
|
|
21
|
+
(ts.isMethodSignature(sig.declaration) ||
|
|
22
|
+
ts.isMethodDeclaration(sig.declaration) ||
|
|
23
|
+
ts.isFunctionDeclaration(sig.declaration))
|
|
24
|
+
? sig.declaration.type
|
|
25
|
+
: undefined).uid),
|
|
26
|
+
};
|
|
27
|
+
return new FunctionMsg(uid, payload);
|
|
28
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AnnotationMsg } from '../../warpc/msg-protocol/concept/annotations/annotation-msg.js';
|
|
2
|
+
import { ClassMsg } from '../../warpc/msg-protocol/concept/resource/class-msg.js';
|
|
3
|
+
import { DefnUID } from '../../warpc/msg-protocol/kinds.js';
|
|
4
|
+
import * as ts from 'typescript';
|
|
5
|
+
import { TraversalCtx } from './traverser.js';
|
|
6
|
+
export declare function tryPrimitiveType(t: ts.Type, ctx: TraversalCtx): ClassMsg | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Detect direct references to built-in global classes (e.g., String, Number, Boolean, Array, Function, Error, Promise, Map, Set)
|
|
9
|
+
* and return their system ClassMsg. This is an early-path akin to primitives, avoiding creation of new definitions.
|
|
10
|
+
*/
|
|
11
|
+
export declare function tryPlainSystemType(t: ts.Type, ctx: TraversalCtx): ClassMsg | undefined;
|
|
12
|
+
export declare function tryGenericSystemType(ctx: TraversalCtx, t: ts.Type, uid: DefnUID, typeNode?: ts.TypeNode): AnnotationMsg | undefined;
|
|
13
|
+
//# sourceMappingURL=system-traversal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-traversal.d.ts","sourceRoot":"","sources":["../../../src/transformer/traverser/system-traversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,wDAAwD,CAAC;AAClH,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAS,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAIjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CA8BpF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CA2BtF;AAED,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,YAAY,EACjB,CAAC,EAAE,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,GACvB,aAAa,GAAG,SAAS,CA+M3B"}
|