@pikku/core 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/dist/crypto-utils.d.ts +2 -0
- package/dist/crypto-utils.js +78 -0
- package/dist/errors/error-handler.js +3 -3
- package/dist/errors/errors.d.ts +8 -0
- package/dist/errors/errors.js +16 -0
- package/dist/errors/index.d.ts +0 -1
- package/dist/errors/index.js +0 -1
- package/dist/function/function-runner.d.ts +10 -3
- package/dist/function/function-runner.js +136 -31
- package/dist/function/functions.types.d.ts +35 -12
- package/dist/function/functions.types.js +16 -6
- package/dist/function/index.d.ts +2 -2
- package/dist/function/index.js +1 -2
- package/dist/handle-error.js +1 -10
- package/dist/index.d.ts +30 -24
- package/dist/index.js +19 -27
- package/dist/middleware/auth-apikey.d.ts +1 -1
- package/dist/middleware/auth-apikey.js +3 -3
- package/dist/middleware/auth-bearer.d.ts +1 -1
- package/dist/middleware/auth-bearer.js +3 -6
- package/dist/middleware/auth-cookie.d.ts +1 -1
- package/dist/middleware/auth-cookie.js +6 -8
- package/dist/middleware/cors.d.ts +46 -0
- package/dist/middleware/cors.js +73 -0
- package/dist/middleware/index.d.ts +5 -3
- package/dist/middleware/index.js +5 -3
- package/dist/middleware/remote-auth.d.ts +5 -0
- package/dist/middleware/remote-auth.js +55 -0
- package/dist/middleware/timeout.d.ts +1 -1
- package/dist/middleware-runner.d.ts +3 -14
- package/dist/middleware-runner.js +14 -16
- package/dist/permissions.d.ts +3 -86
- package/dist/permissions.js +20 -80
- package/dist/pikku-state.d.ts +33 -104
- package/dist/pikku-state.js +150 -66
- package/dist/schema.d.ts +8 -6
- package/dist/schema.js +31 -18
- package/dist/services/ai-agent-runner-service.d.ts +24 -0
- package/dist/services/ai-agent-runner-service.js +1 -0
- package/dist/services/ai-run-state-service.d.ts +13 -0
- package/dist/services/ai-run-state-service.js +1 -0
- package/dist/services/ai-storage-service.d.ts +18 -0
- package/dist/services/ai-storage-service.js +1 -0
- package/dist/services/deployment-service.d.ts +19 -0
- package/dist/services/deployment-service.js +1 -0
- package/dist/services/gopass-secrets.d.ts +47 -0
- package/dist/services/gopass-secrets.js +94 -0
- package/dist/services/in-memory-trigger-service.d.ts +23 -0
- package/dist/services/in-memory-trigger-service.js +50 -0
- package/dist/services/in-memory-workflow-service.d.ts +59 -0
- package/dist/services/in-memory-workflow-service.js +287 -0
- package/dist/services/index.d.ts +25 -11
- package/dist/services/index.js +10 -13
- package/dist/services/local-secrets.d.ts +23 -0
- package/dist/services/local-secrets.js +45 -0
- package/dist/services/local-variables.d.ts +5 -0
- package/dist/services/local-variables.js +18 -0
- package/dist/services/scheduler-service.d.ts +21 -1
- package/dist/services/scheduler-service.js +14 -0
- package/dist/services/schema-service.d.ts +6 -0
- package/dist/services/scoped-secret-service.d.ts +16 -0
- package/dist/services/scoped-secret-service.js +35 -0
- package/dist/services/secret-service.d.ts +25 -4
- package/dist/services/trigger-service.d.ts +23 -0
- package/dist/services/trigger-service.js +1 -0
- package/dist/services/typed-secret-service.d.ts +30 -0
- package/dist/services/typed-secret-service.js +40 -0
- package/dist/services/typed-variables-service.d.ts +27 -0
- package/dist/services/typed-variables-service.js +46 -0
- package/dist/services/user-session-service.d.ts +13 -0
- package/dist/services/user-session-service.js +17 -0
- package/dist/services/variables-service.d.ts +5 -0
- package/dist/services/workflow-service.d.ts +43 -0
- package/dist/services/workflow-service.js +1 -0
- package/dist/types/core.types.d.ts +54 -10
- package/dist/types/core.types.js +7 -0
- package/dist/types/state.types.d.ts +127 -0
- package/dist/types/state.types.js +1 -0
- package/dist/utils.d.ts +10 -1
- package/dist/utils.js +60 -3
- package/dist/version.d.ts +6 -0
- package/dist/version.js +19 -0
- package/dist/wirings/ai-agent/ai-agent-memory.d.ts +29 -0
- package/dist/wirings/ai-agent/ai-agent-memory.js +199 -0
- package/dist/wirings/ai-agent/ai-agent-model-config.d.ts +9 -0
- package/dist/wirings/ai-agent/ai-agent-model-config.js +36 -0
- package/dist/wirings/ai-agent/ai-agent-prepare.d.ts +60 -0
- package/dist/wirings/ai-agent/ai-agent-prepare.js +312 -0
- package/dist/wirings/ai-agent/ai-agent-registry.d.ts +15 -0
- package/dist/wirings/ai-agent/ai-agent-registry.js +47 -0
- package/dist/wirings/ai-agent/ai-agent-runner.d.ts +3 -0
- package/dist/wirings/ai-agent/ai-agent-runner.js +96 -0
- package/dist/wirings/ai-agent/ai-agent-stream.d.ts +11 -0
- package/dist/wirings/ai-agent/ai-agent-stream.js +503 -0
- package/dist/wirings/ai-agent/ai-agent.types.d.ts +254 -0
- package/dist/wirings/ai-agent/ai-agent.types.js +1 -0
- package/dist/wirings/ai-agent/index.d.ts +5 -0
- package/dist/wirings/ai-agent/index.js +4 -0
- package/dist/wirings/channel/channel-common.d.ts +7 -4
- package/dist/wirings/channel/channel-common.js +15 -8
- package/dist/wirings/channel/channel-handler.js +13 -4
- package/dist/wirings/channel/channel-middleware-runner.d.ts +9 -0
- package/dist/wirings/channel/channel-middleware-runner.js +73 -0
- package/dist/wirings/channel/channel-runner.js +12 -12
- package/dist/wirings/channel/channel.types.d.ts +5 -1
- package/dist/wirings/channel/define-channel-routes.d.ts +21 -0
- package/dist/wirings/channel/define-channel-routes.js +23 -0
- package/dist/wirings/channel/index.d.ts +10 -8
- package/dist/wirings/channel/index.js +7 -8
- package/dist/wirings/channel/local/index.d.ts +3 -3
- package/dist/wirings/channel/local/index.js +3 -3
- package/dist/wirings/channel/local/local-channel-runner.js +18 -6
- package/dist/wirings/channel/log-channels.js +1 -1
- package/dist/wirings/channel/serverless/index.d.ts +1 -1
- package/dist/wirings/channel/serverless/index.js +1 -1
- package/dist/wirings/channel/serverless/serverless-channel-runner.js +17 -6
- package/dist/wirings/cli/channel/cli-channel-runner.js +3 -2
- package/dist/wirings/cli/channel/index.d.ts +1 -1
- package/dist/wirings/cli/channel/index.js +1 -1
- package/dist/wirings/cli/cli-runner.d.ts +1 -1
- package/dist/wirings/cli/cli-runner.js +22 -18
- package/dist/wirings/cli/cli.types.d.ts +7 -6
- package/dist/wirings/cli/define-cli-commands.d.ts +19 -0
- package/dist/wirings/cli/define-cli-commands.js +20 -0
- package/dist/wirings/cli/index.d.ts +2 -3
- package/dist/wirings/cli/index.js +1 -3
- package/dist/wirings/http/http-routes.d.ts +69 -0
- package/dist/wirings/http/http-routes.js +139 -0
- package/dist/wirings/http/http-runner.d.ts +2 -2
- package/dist/wirings/http/http-runner.js +62 -27
- package/dist/wirings/http/http.types.d.ts +77 -24
- package/dist/wirings/http/index.d.ts +5 -4
- package/dist/wirings/http/index.js +4 -3
- package/dist/wirings/http/log-http-routes.js +1 -1
- package/dist/wirings/http/routers/path-to-regex.js +2 -2
- package/dist/wirings/mcp/index.d.ts +4 -3
- package/dist/wirings/mcp/index.js +3 -3
- package/dist/wirings/mcp/mcp-runner.d.ts +1 -3
- package/dist/wirings/mcp/mcp-runner.js +42 -56
- package/dist/wirings/mcp/mcp.types.d.ts +3 -3
- package/dist/wirings/node/index.d.ts +2 -0
- package/dist/wirings/node/index.js +1 -0
- package/dist/wirings/node/node.types.d.ts +20 -0
- package/dist/wirings/node/node.types.js +1 -0
- package/dist/wirings/oauth2/index.d.ts +3 -0
- package/dist/wirings/oauth2/index.js +2 -0
- package/dist/wirings/oauth2/oauth2-client.d.ts +47 -0
- package/dist/wirings/oauth2/oauth2-client.js +267 -0
- package/dist/wirings/oauth2/oauth2.types.d.ts +65 -0
- package/dist/wirings/oauth2/oauth2.types.js +4 -0
- package/dist/wirings/oauth2/wire-oauth2-credential.d.ts +20 -0
- package/dist/wirings/oauth2/wire-oauth2-credential.js +21 -0
- package/dist/wirings/queue/index.d.ts +2 -2
- package/dist/wirings/queue/index.js +1 -1
- package/dist/wirings/queue/queue-runner.d.ts +7 -0
- package/dist/wirings/queue/queue-runner.js +23 -12
- package/dist/wirings/queue/queue.types.d.ts +8 -2
- package/dist/wirings/rpc/index.d.ts +1 -1
- package/dist/wirings/rpc/index.js +1 -1
- package/dist/wirings/rpc/rpc-runner.d.ts +40 -13
- package/dist/wirings/rpc/rpc-runner.js +191 -25
- package/dist/wirings/rpc/rpc-types.d.ts +15 -4
- package/dist/wirings/scheduler/index.d.ts +3 -3
- package/dist/wirings/scheduler/index.js +2 -3
- package/dist/wirings/scheduler/log-schedulers.js +1 -1
- package/dist/wirings/scheduler/scheduler-runner.d.ts +5 -0
- package/dist/wirings/scheduler/scheduler-runner.js +28 -10
- package/dist/wirings/secret/index.d.ts +3 -0
- package/dist/wirings/secret/index.js +2 -0
- package/dist/wirings/secret/secret.types.d.ts +27 -0
- package/dist/wirings/secret/secret.types.js +1 -0
- package/dist/wirings/secret/validate-secret-definitions.d.ts +6 -0
- package/dist/wirings/secret/validate-secret-definitions.js +55 -0
- package/dist/wirings/trigger/index.d.ts +3 -0
- package/dist/wirings/trigger/index.js +2 -0
- package/dist/wirings/trigger/pikku-trigger-service.d.ts +26 -0
- package/dist/wirings/trigger/pikku-trigger-service.js +75 -0
- package/dist/wirings/trigger/trigger-runner.d.ts +42 -0
- package/dist/wirings/trigger/trigger-runner.js +85 -0
- package/dist/wirings/trigger/trigger.types.d.ts +130 -0
- package/dist/wirings/trigger/trigger.types.js +40 -0
- package/dist/wirings/variable/index.d.ts +3 -0
- package/dist/wirings/variable/index.js +2 -0
- package/dist/wirings/variable/validate-variable-definitions.d.ts +6 -0
- package/dist/wirings/variable/validate-variable-definitions.js +45 -0
- package/dist/wirings/variable/variable.types.d.ts +18 -0
- package/dist/wirings/variable/variable.types.js +1 -0
- package/dist/wirings/workflow/dsl/index.d.ts +5 -0
- package/dist/wirings/workflow/dsl/index.js +4 -0
- package/dist/wirings/workflow/dsl/workflow-dsl.types.d.ts +292 -0
- package/dist/wirings/workflow/dsl/workflow-dsl.types.js +5 -0
- package/dist/wirings/workflow/dsl/workflow-runner.d.ts +5 -0
- package/dist/wirings/workflow/dsl/workflow-runner.js +23 -0
- package/dist/wirings/workflow/graph/graph-node.d.ts +117 -0
- package/dist/wirings/workflow/graph/graph-node.js +58 -0
- package/dist/wirings/workflow/graph/graph-runner.d.ts +9 -0
- package/dist/wirings/workflow/graph/graph-runner.js +540 -0
- package/dist/wirings/workflow/graph/index.d.ts +4 -0
- package/dist/wirings/workflow/graph/index.js +3 -0
- package/dist/wirings/workflow/graph/template.d.ts +15 -0
- package/dist/wirings/workflow/graph/template.js +27 -0
- package/dist/wirings/workflow/graph/wire-workflow-graph.d.ts +15 -0
- package/dist/wirings/workflow/graph/wire-workflow-graph.js +8 -0
- package/dist/wirings/workflow/graph/workflow-graph.types.d.ts +82 -0
- package/dist/wirings/workflow/graph/workflow-graph.types.js +15 -0
- package/dist/wirings/workflow/index.d.ts +7 -12
- package/dist/wirings/workflow/index.js +8 -11
- package/dist/wirings/workflow/pikku-workflow-service.d.ts +114 -10
- package/dist/wirings/workflow/pikku-workflow-service.js +386 -115
- package/dist/wirings/workflow/workflow-helpers.d.ts +36 -0
- package/dist/wirings/workflow/workflow-helpers.js +38 -0
- package/dist/wirings/workflow/workflow-utils.d.ts +1 -0
- package/dist/wirings/workflow/workflow-utils.js +1 -0
- package/dist/wirings/workflow/workflow.types.d.ts +83 -214
- package/package.json +13 -6
- package/run-tests.sh +4 -1
- package/src/crypto-utils.ts +99 -0
- package/src/errors/error-handler.ts +3 -3
- package/src/errors/errors.ts +17 -0
- package/src/errors/index.ts +0 -1
- package/src/factory-functions.test.ts +42 -2
- package/src/function/function-runner.test.ts +5 -12
- package/src/function/function-runner.ts +195 -40
- package/src/function/functions.types.ts +66 -14
- package/src/function/index.ts +5 -2
- package/src/handle-error.ts +2 -10
- package/src/index.ts +106 -27
- package/src/middleware/auth-apikey.test.ts +15 -12
- package/src/middleware/auth-apikey.ts +3 -3
- package/src/middleware/auth-bearer.test.ts +17 -14
- package/src/middleware/auth-bearer.ts +25 -27
- package/src/middleware/auth-cookie.test.ts +16 -13
- package/src/middleware/auth-cookie.ts +6 -8
- package/src/middleware/cors.ts +96 -0
- package/src/middleware/index.ts +5 -3
- package/src/middleware/remote-auth.ts +68 -0
- package/src/middleware-runner.test.ts +122 -0
- package/src/middleware-runner.ts +24 -17
- package/src/permissions.test.ts +102 -86
- package/src/permissions.ts +32 -93
- package/src/pikku-state.ts +168 -201
- package/src/run-tests-script.test.ts +49 -0
- package/src/schema.ts +50 -18
- package/src/services/ai-agent-runner-service.ts +29 -0
- package/src/services/ai-run-state-service.ts +20 -0
- package/src/services/ai-storage-service.ts +39 -0
- package/src/services/deployment-service.ts +22 -0
- package/src/services/gopass-secrets.ts +95 -0
- package/src/services/in-memory-trigger-service.ts +68 -0
- package/src/services/in-memory-workflow-service.ts +395 -0
- package/src/services/index.ts +49 -14
- package/src/services/local-secrets.ts +51 -0
- package/src/services/local-variables.ts +22 -0
- package/src/services/scheduler-service.ts +29 -1
- package/src/services/schema-service.ts +7 -0
- package/src/services/scoped-secret-service.ts +41 -0
- package/src/services/secret-service.ts +25 -4
- package/src/services/trigger-service.ts +38 -0
- package/src/services/typed-secret-service.ts +70 -0
- package/src/services/typed-variables-service.ts +81 -0
- package/src/services/user-session-service.ts +23 -0
- package/src/services/variables-service.ts +5 -0
- package/src/services/workflow-service.ts +94 -0
- package/src/types/core.types.ts +82 -8
- package/src/types/state.types.ts +169 -0
- package/src/utils.ts +74 -5
- package/src/version.test.ts +80 -0
- package/src/version.ts +25 -0
- package/src/wirings/ai-agent/ai-agent-memory.ts +300 -0
- package/src/wirings/ai-agent/ai-agent-model-config.ts +43 -0
- package/src/wirings/ai-agent/ai-agent-prepare.ts +470 -0
- package/src/wirings/ai-agent/ai-agent-registry.test.ts +37 -0
- package/src/wirings/ai-agent/ai-agent-registry.ts +82 -0
- package/src/wirings/ai-agent/ai-agent-runner.test.ts +75 -0
- package/src/wirings/ai-agent/ai-agent-runner.ts +137 -0
- package/src/wirings/ai-agent/ai-agent-stream.test.ts +246 -0
- package/src/wirings/ai-agent/ai-agent-stream.ts +774 -0
- package/src/wirings/ai-agent/ai-agent.types.ts +273 -0
- package/src/wirings/ai-agent/index.ts +28 -0
- package/src/wirings/channel/channel-common.ts +32 -19
- package/src/wirings/channel/channel-handler.ts +18 -5
- package/src/wirings/channel/channel-middleware-runner.ts +119 -0
- package/src/wirings/channel/channel-runner.ts +14 -15
- package/src/wirings/channel/channel.types.ts +17 -1
- package/src/wirings/channel/define-channel-routes.ts +25 -0
- package/src/wirings/channel/index.ts +23 -8
- package/src/wirings/channel/local/index.ts +3 -3
- package/src/wirings/channel/local/local-channel-runner.test.ts +47 -2
- package/src/wirings/channel/local/local-channel-runner.ts +22 -6
- package/src/wirings/channel/log-channels.ts +1 -1
- package/src/wirings/channel/serverless/index.ts +5 -1
- package/src/wirings/channel/serverless/serverless-channel-runner.ts +22 -6
- package/src/wirings/cli/channel/cli-channel-runner.ts +4 -3
- package/src/wirings/cli/channel/index.ts +1 -1
- package/src/wirings/cli/cli-runner.test.ts +28 -28
- package/src/wirings/cli/cli-runner.ts +27 -19
- package/src/wirings/cli/cli.types.ts +12 -11
- package/src/wirings/cli/command-parser.test.ts +8 -8
- package/src/wirings/cli/define-cli-commands.ts +24 -0
- package/src/wirings/cli/index.ts +10 -4
- package/src/wirings/http/http-routes.test.ts +322 -0
- package/src/wirings/http/http-routes.ts +198 -0
- package/src/wirings/http/http-runner.test.ts +5 -5
- package/src/wirings/http/http-runner.ts +80 -29
- package/src/wirings/http/http.types.ts +121 -23
- package/src/wirings/http/index.ts +16 -4
- package/src/wirings/http/log-http-routes.ts +1 -1
- package/src/wirings/http/routers/path-to-regex.test.ts +30 -19
- package/src/wirings/http/routers/path-to-regex.ts +2 -2
- package/src/wirings/mcp/index.ts +27 -3
- package/src/wirings/mcp/mcp-endpoint-registry.test.ts +3 -3
- package/src/wirings/mcp/mcp-runner.ts +56 -67
- package/src/wirings/mcp/mcp.types.ts +3 -3
- package/src/wirings/node/index.ts +2 -0
- package/src/wirings/node/node.types.ts +23 -0
- package/src/wirings/oauth2/index.ts +3 -0
- package/src/wirings/oauth2/oauth2-client.test.ts +929 -0
- package/src/wirings/oauth2/oauth2-client.ts +335 -0
- package/src/wirings/oauth2/oauth2.types.ts +69 -0
- package/src/wirings/oauth2/wire-oauth2-credential.ts +23 -0
- package/src/wirings/queue/index.ts +14 -2
- package/src/wirings/queue/queue-runner.test.ts +115 -73
- package/src/wirings/queue/queue-runner.ts +39 -13
- package/src/wirings/queue/queue.types.ts +12 -2
- package/src/wirings/rpc/index.ts +1 -1
- package/src/wirings/rpc/rpc-runner.ts +270 -34
- package/src/wirings/rpc/rpc-types.ts +21 -4
- package/src/wirings/scheduler/index.ts +7 -4
- package/src/wirings/scheduler/log-schedulers.ts +1 -1
- package/src/wirings/scheduler/scheduler-runner.test.ts +97 -53
- package/src/wirings/scheduler/scheduler-runner.ts +50 -10
- package/src/wirings/secret/index.ts +9 -0
- package/src/wirings/secret/secret.types.ts +32 -0
- package/src/wirings/secret/validate-secret-definitions.ts +82 -0
- package/src/wirings/trigger/index.ts +10 -0
- package/src/wirings/trigger/pikku-trigger-service.ts +134 -0
- package/src/wirings/trigger/trigger-runner.ts +138 -0
- package/src/wirings/trigger/trigger.types.ts +178 -0
- package/src/wirings/variable/index.ts +8 -0
- package/src/wirings/variable/validate-variable-definitions.ts +69 -0
- package/src/wirings/variable/variable.types.ts +22 -0
- package/src/wirings/workflow/dsl/index.ts +31 -0
- package/src/wirings/workflow/dsl/workflow-dsl.types.ts +320 -0
- package/src/wirings/workflow/dsl/workflow-runner.ts +28 -0
- package/src/wirings/workflow/graph/graph-node.ts +222 -0
- package/src/wirings/workflow/graph/graph-runner.test.ts +495 -0
- package/src/wirings/workflow/graph/graph-runner.ts +816 -0
- package/src/wirings/workflow/graph/index.ts +14 -0
- package/src/wirings/workflow/graph/template.ts +42 -0
- package/src/wirings/workflow/graph/wire-workflow-graph.ts +29 -0
- package/src/wirings/workflow/graph/workflow-graph.types.ts +104 -0
- package/src/wirings/workflow/index.ts +64 -26
- package/src/wirings/workflow/pikku-workflow-service.test.ts +212 -0
- package/src/wirings/workflow/pikku-workflow-service.ts +571 -136
- package/src/wirings/workflow/workflow-helpers.ts +79 -0
- package/src/wirings/workflow/workflow-utils.ts +0 -0
- package/src/wirings/workflow/workflow.types.ts +123 -279
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/wirings/workflow/workflow-runner.d.ts +0 -34
- package/dist/wirings/workflow/workflow-runner.js +0 -65
- package/src/function/function-runner.ts.bak +0 -188
- package/src/wirings/workflow/workflow-runner.ts +0 -72
|
@@ -1,17 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Interface for retrieving secrets.
|
|
2
|
+
* Interface for retrieving and managing secrets.
|
|
3
3
|
*/
|
|
4
4
|
export interface SecretService {
|
|
5
5
|
/**
|
|
6
|
-
* Retrieves a secret by key.
|
|
6
|
+
* Retrieves a secret by key and parses it as JSON.
|
|
7
7
|
* @param key - The key of the secret to retrieve.
|
|
8
|
-
* @returns A promise that resolves to the secret value.
|
|
8
|
+
* @returns A promise that resolves to the parsed secret value.
|
|
9
|
+
* @throws If the secret is not found.
|
|
9
10
|
*/
|
|
10
11
|
getSecretJSON<Return = {}>(key: string): Promise<Return>
|
|
11
12
|
/**
|
|
12
|
-
* Retrieves a secret by key.
|
|
13
|
+
* Retrieves a secret by key as a string.
|
|
13
14
|
* @param key - The key of the secret to retrieve.
|
|
14
15
|
* @returns A promise that resolves to the secret value.
|
|
16
|
+
* @throws If the secret is not found.
|
|
15
17
|
*/
|
|
16
18
|
getSecret(key: string): Promise<string>
|
|
19
|
+
/**
|
|
20
|
+
* Checks if a secret exists without throwing.
|
|
21
|
+
* @param key - The key of the secret to check.
|
|
22
|
+
* @returns A promise that resolves to true if the secret exists, false otherwise.
|
|
23
|
+
*/
|
|
24
|
+
hasSecret(key: string): Promise<boolean>
|
|
25
|
+
/**
|
|
26
|
+
* Stores a JSON value as a secret.
|
|
27
|
+
* @param key - The key to store the secret under.
|
|
28
|
+
* @param value - The JSON value to store.
|
|
29
|
+
* @returns A promise that resolves when the secret is stored.
|
|
30
|
+
*/
|
|
31
|
+
setSecretJSON(key: string, value: unknown): Promise<void>
|
|
32
|
+
/**
|
|
33
|
+
* Deletes a secret by key.
|
|
34
|
+
* @param key - The key of the secret to delete.
|
|
35
|
+
* @returns A promise that resolves when the secret is deleted.
|
|
36
|
+
*/
|
|
37
|
+
deleteSecret(key: string): Promise<void>
|
|
17
38
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CoreSingletonServices,
|
|
3
|
+
CreateWireServices,
|
|
4
|
+
CoreServices,
|
|
5
|
+
CoreUserSession,
|
|
6
|
+
} from '../types/core.types.js'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Abstract TriggerService interface.
|
|
10
|
+
*
|
|
11
|
+
* Implementations manage trigger subscriptions — listening to external events
|
|
12
|
+
* and dispatching to RPC targets or workflow starts.
|
|
13
|
+
*/
|
|
14
|
+
export interface TriggerService {
|
|
15
|
+
/**
|
|
16
|
+
* Set services needed for processing triggers.
|
|
17
|
+
* Called after construction since the trigger service is created before
|
|
18
|
+
* singletonServices are fully assembled.
|
|
19
|
+
*/
|
|
20
|
+
setServices(
|
|
21
|
+
_singletonServices: CoreSingletonServices,
|
|
22
|
+
_createWireServices?: CreateWireServices<
|
|
23
|
+
CoreSingletonServices,
|
|
24
|
+
CoreServices,
|
|
25
|
+
CoreUserSession
|
|
26
|
+
>
|
|
27
|
+
): void
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Start all triggers
|
|
31
|
+
*/
|
|
32
|
+
start(): Promise<void>
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Stop all triggers
|
|
36
|
+
*/
|
|
37
|
+
stop(): Promise<void>
|
|
38
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { SecretService } from './secret-service.js'
|
|
2
|
+
|
|
3
|
+
export interface CredentialStatus {
|
|
4
|
+
secretId: string
|
|
5
|
+
name: string
|
|
6
|
+
displayName: string
|
|
7
|
+
isConfigured: boolean
|
|
8
|
+
oauth2?: { tokenSecretId: string }
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type CredentialMeta = {
|
|
12
|
+
name: string
|
|
13
|
+
displayName: string
|
|
14
|
+
oauth2?: { tokenSecretId: string }
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class TypedSecretService<TMap = Record<string, unknown>>
|
|
18
|
+
implements SecretService
|
|
19
|
+
{
|
|
20
|
+
constructor(
|
|
21
|
+
private secrets: SecretService,
|
|
22
|
+
private credentialsMeta: Record<string, CredentialMeta>
|
|
23
|
+
) {}
|
|
24
|
+
|
|
25
|
+
async getSecretJSON<K extends keyof TMap & string>(key: K): Promise<TMap[K]>
|
|
26
|
+
async getSecretJSON<T = unknown>(key: string): Promise<T>
|
|
27
|
+
async getSecretJSON(key: string): Promise<unknown> {
|
|
28
|
+
return this.secrets.getSecretJSON(key)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async getSecret(key: string): Promise<string> {
|
|
32
|
+
return this.secrets.getSecret(key)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async hasSecret(key: string): Promise<boolean> {
|
|
36
|
+
return this.secrets.hasSecret(key)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async setSecretJSON<K extends string>(
|
|
40
|
+
key: K,
|
|
41
|
+
value: K extends keyof TMap ? TMap[K] : unknown
|
|
42
|
+
): Promise<void> {
|
|
43
|
+
return this.secrets.setSecretJSON(key, value)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async deleteSecret(key: string): Promise<void> {
|
|
47
|
+
return this.secrets.deleteSecret(key)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async getAllStatus(): Promise<CredentialStatus[]> {
|
|
51
|
+
const results: CredentialStatus[] = []
|
|
52
|
+
|
|
53
|
+
for (const [secretId, meta] of Object.entries(this.credentialsMeta)) {
|
|
54
|
+
results.push({
|
|
55
|
+
secretId,
|
|
56
|
+
name: meta.name,
|
|
57
|
+
displayName: meta.displayName,
|
|
58
|
+
isConfigured: await this.secrets.hasSecret(secretId),
|
|
59
|
+
oauth2: meta.oauth2,
|
|
60
|
+
})
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return results
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async getMissing(): Promise<CredentialStatus[]> {
|
|
67
|
+
const all = await this.getAllStatus()
|
|
68
|
+
return all.filter((c) => !c.isConfigured)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { VariablesService } from './variables-service.js'
|
|
2
|
+
|
|
3
|
+
export interface VariableStatus {
|
|
4
|
+
variableId: string
|
|
5
|
+
name: string
|
|
6
|
+
displayName: string
|
|
7
|
+
isConfigured: boolean
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type VariableMeta = {
|
|
11
|
+
name: string
|
|
12
|
+
displayName: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export class TypedVariablesService<TMap = Record<string, unknown>>
|
|
16
|
+
implements VariablesService
|
|
17
|
+
{
|
|
18
|
+
constructor(
|
|
19
|
+
private variables: VariablesService,
|
|
20
|
+
private variablesMeta: Record<string, VariableMeta>
|
|
21
|
+
) {}
|
|
22
|
+
|
|
23
|
+
get(
|
|
24
|
+
name: keyof TMap & string
|
|
25
|
+
): Promise<string | undefined> | string | undefined
|
|
26
|
+
get(name: string): Promise<string | undefined> | string | undefined
|
|
27
|
+
get(name: string): Promise<string | undefined> | string | undefined {
|
|
28
|
+
return this.variables.get(name)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getJSON<K extends keyof TMap & string>(
|
|
32
|
+
name: K
|
|
33
|
+
): Promise<TMap[K] | undefined> | TMap[K] | undefined
|
|
34
|
+
getJSON<T = unknown>(name: string): Promise<T | undefined> | T | undefined
|
|
35
|
+
getJSON(name: string): Promise<unknown> | unknown {
|
|
36
|
+
return this.variables.getJSON(name)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
getAll():
|
|
40
|
+
| Promise<Record<string, string | undefined>>
|
|
41
|
+
| Record<string, string | undefined> {
|
|
42
|
+
return this.variables.getAll()
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
set(name: string, value: string): Promise<void> | void {
|
|
46
|
+
return this.variables.set(name, value)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
setJSON(name: string, value: unknown): Promise<void> | void {
|
|
50
|
+
return this.variables.setJSON(name, value)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
has(name: string): Promise<boolean> | boolean {
|
|
54
|
+
return this.variables.has(name)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
delete(name: string): Promise<void> | void {
|
|
58
|
+
return this.variables.delete(name)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async getAllStatus(): Promise<VariableStatus[]> {
|
|
62
|
+
const results: VariableStatus[] = []
|
|
63
|
+
const all = await this.variables.getAll()
|
|
64
|
+
|
|
65
|
+
for (const [variableId, meta] of Object.entries(this.variablesMeta)) {
|
|
66
|
+
results.push({
|
|
67
|
+
variableId,
|
|
68
|
+
name: meta.name,
|
|
69
|
+
displayName: meta.displayName,
|
|
70
|
+
isConfigured: all[variableId] !== undefined,
|
|
71
|
+
})
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return results
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
async getMissing(): Promise<VariableStatus[]> {
|
|
78
|
+
const all = await this.getAllStatus()
|
|
79
|
+
return all.filter((v) => !v.isConfigured)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -61,3 +61,26 @@ export class PikkuSessionService<UserSession extends CoreUserSession>
|
|
|
61
61
|
return this.session
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
+
|
|
65
|
+
export function createMiddlewareSessionWireProps<
|
|
66
|
+
UserSession extends CoreUserSession,
|
|
67
|
+
>(session: SessionService<UserSession>) {
|
|
68
|
+
return {
|
|
69
|
+
session: session.get(),
|
|
70
|
+
setSession: (s: UserSession) => session.setInitial(s),
|
|
71
|
+
getSession: () => session.get(),
|
|
72
|
+
hasSessionChanged: () => session.sessionChanged,
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function createFunctionSessionWireProps<
|
|
77
|
+
UserSession extends CoreUserSession,
|
|
78
|
+
>(session: SessionService<UserSession>) {
|
|
79
|
+
return {
|
|
80
|
+
session: session.freezeInitial(),
|
|
81
|
+
setSession: (s: UserSession) => session.set(s),
|
|
82
|
+
clearSession: () => session.clear(),
|
|
83
|
+
getSession: () => session.get(),
|
|
84
|
+
hasSessionChanged: () => session.sessionChanged,
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export interface VariablesService {
|
|
2
2
|
get: (name: string) => Promise<string | undefined> | string | undefined
|
|
3
|
+
getJSON: <T = unknown>(name: string) => Promise<T | undefined> | T | undefined
|
|
3
4
|
getAll: () =>
|
|
4
5
|
| Promise<Record<string, string | undefined>>
|
|
5
6
|
| Record<string, string | undefined>
|
|
7
|
+
set: (name: string, value: string) => Promise<void> | void
|
|
8
|
+
setJSON: (name: string, value: unknown) => Promise<void> | void
|
|
9
|
+
has: (name: string) => Promise<boolean> | boolean
|
|
10
|
+
delete: (name: string) => Promise<void> | void
|
|
6
11
|
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SerializedError,
|
|
3
|
+
CoreSingletonServices,
|
|
4
|
+
CreateWireServices,
|
|
5
|
+
CoreConfig,
|
|
6
|
+
} from '../types/core.types.js'
|
|
7
|
+
import {
|
|
8
|
+
WorkflowRun,
|
|
9
|
+
WorkflowRunWire,
|
|
10
|
+
StepState,
|
|
11
|
+
WorkflowStatus,
|
|
12
|
+
} from '../wirings/workflow/workflow.types.js'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Interface for workflow orchestration
|
|
16
|
+
* Handles workflow execution, replay, orchestration logic, and run-level state
|
|
17
|
+
*/
|
|
18
|
+
export interface WorkflowService {
|
|
19
|
+
// Run-level state operations
|
|
20
|
+
createRun(
|
|
21
|
+
workflowName: string,
|
|
22
|
+
input: any,
|
|
23
|
+
inline: boolean,
|
|
24
|
+
graphHash: string,
|
|
25
|
+
wire: WorkflowRunWire
|
|
26
|
+
): Promise<string>
|
|
27
|
+
getRun(id: string): Promise<WorkflowRun | null>
|
|
28
|
+
getRunHistory(runId: string): Promise<Array<StepState & { stepName: string }>>
|
|
29
|
+
updateRunStatus(
|
|
30
|
+
id: string,
|
|
31
|
+
status: WorkflowStatus,
|
|
32
|
+
output?: any,
|
|
33
|
+
error?: SerializedError
|
|
34
|
+
): Promise<void>
|
|
35
|
+
withRunLock<T>(id: string, fn: () => Promise<T>): Promise<T>
|
|
36
|
+
close(): Promise<void>
|
|
37
|
+
|
|
38
|
+
// Orchestration operations
|
|
39
|
+
resumeWorkflow(runId: string): Promise<void>
|
|
40
|
+
setServices(
|
|
41
|
+
singletonServices: CoreSingletonServices,
|
|
42
|
+
createWireServices: CreateWireServices | undefined,
|
|
43
|
+
config: CoreConfig
|
|
44
|
+
): void
|
|
45
|
+
startWorkflow<I>(
|
|
46
|
+
name: string,
|
|
47
|
+
input: I,
|
|
48
|
+
wire: WorkflowRunWire,
|
|
49
|
+
rpcService: any,
|
|
50
|
+
options?: { inline?: boolean; startNode?: string }
|
|
51
|
+
): Promise<{ runId: string }>
|
|
52
|
+
runWorkflowJob(runId: string, rpcService: any): Promise<void>
|
|
53
|
+
orchestrateWorkflow(runId: string, rpcService: any): Promise<void>
|
|
54
|
+
executeWorkflowSleepCompleted(runId: string, stepId: string): Promise<void>
|
|
55
|
+
|
|
56
|
+
// Step-level state operations
|
|
57
|
+
insertStepState(
|
|
58
|
+
runId: string,
|
|
59
|
+
stepName: string,
|
|
60
|
+
rpcName: string,
|
|
61
|
+
data: any,
|
|
62
|
+
stepOptions?: { retries?: number; retryDelay?: string | number }
|
|
63
|
+
): Promise<StepState>
|
|
64
|
+
getStepState(runId: string, stepName: string): Promise<StepState>
|
|
65
|
+
setStepRunning(stepId: string): Promise<void>
|
|
66
|
+
setStepScheduled(stepId: string): Promise<void>
|
|
67
|
+
setStepResult(stepId: string, result: any): Promise<void>
|
|
68
|
+
setStepError(stepId: string, error: Error): Promise<void>
|
|
69
|
+
createRetryAttempt(
|
|
70
|
+
stepId: string,
|
|
71
|
+
status: 'pending' | 'running'
|
|
72
|
+
): Promise<StepState>
|
|
73
|
+
|
|
74
|
+
// Step execution
|
|
75
|
+
executeWorkflowStep(
|
|
76
|
+
runId: string,
|
|
77
|
+
stepName: string,
|
|
78
|
+
rpcName: string | null,
|
|
79
|
+
data: any,
|
|
80
|
+
rpcService: any
|
|
81
|
+
): Promise<void>
|
|
82
|
+
|
|
83
|
+
// Version operations
|
|
84
|
+
upsertWorkflowVersion(
|
|
85
|
+
name: string,
|
|
86
|
+
graphHash: string,
|
|
87
|
+
graph: any,
|
|
88
|
+
source: string
|
|
89
|
+
): Promise<void>
|
|
90
|
+
getWorkflowVersion(
|
|
91
|
+
name: string,
|
|
92
|
+
graphHash: string
|
|
93
|
+
): Promise<{ graph: any; source: string } | null>
|
|
94
|
+
}
|
package/src/types/core.types.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { Logger, LogLevel } from '../services/logger.js'
|
|
2
2
|
import { VariablesService } from '../services/variables-service.js'
|
|
3
|
+
import { SecretService } from '../services/secret-service.js'
|
|
3
4
|
import { SchemaService } from '../services/schema-service.js'
|
|
4
5
|
import { JWTService } from '../services/jwt-service.js'
|
|
5
6
|
import { PikkuHTTP } from '../wirings/http/http.types.js'
|
|
6
|
-
import {
|
|
7
|
-
|
|
7
|
+
import {
|
|
8
|
+
PikkuChannel,
|
|
9
|
+
CorePikkuChannelMiddleware,
|
|
10
|
+
CorePikkuChannelMiddlewareFactory,
|
|
11
|
+
} from '../wirings/channel/channel.types.js'
|
|
8
12
|
import { PikkuRPC } from '../wirings/rpc/rpc-types.js'
|
|
9
13
|
import { PikkuMCP } from '../wirings/mcp/mcp.types.js'
|
|
10
14
|
import { PikkuScheduledTask } from '../wirings/scheduler/scheduler.types.js'
|
|
@@ -16,23 +20,38 @@ import {
|
|
|
16
20
|
WorkflowServiceConfig,
|
|
17
21
|
WorkflowStepWire,
|
|
18
22
|
} from '../wirings/workflow/workflow.types.js'
|
|
23
|
+
import type { PikkuGraphWire } from '../wirings/workflow/graph/workflow-graph.types.js'
|
|
24
|
+
import { PikkuTrigger } from '../wirings/trigger/trigger.types.js'
|
|
19
25
|
import { SchedulerService } from '../services/scheduler-service.js'
|
|
26
|
+
import { DeploymentService } from '../services/deployment-service.js'
|
|
27
|
+
import { AIStorageService } from '../services/ai-storage-service.js'
|
|
28
|
+
|
|
29
|
+
import { AIAgentRunnerService } from '../services/ai-agent-runner-service.js'
|
|
30
|
+
import { AIRunStateService } from '../services/ai-run-state-service.js'
|
|
31
|
+
import type { PikkuAIMiddlewareHooks } from '../wirings/ai-agent/ai-agent.types.js'
|
|
20
32
|
|
|
21
33
|
export type PikkuWiringTypes =
|
|
22
34
|
| 'http'
|
|
23
35
|
| 'scheduler'
|
|
36
|
+
| 'trigger'
|
|
24
37
|
| 'channel'
|
|
25
38
|
| 'rpc'
|
|
26
39
|
| 'queue'
|
|
27
40
|
| 'mcp'
|
|
28
41
|
| 'cli'
|
|
29
42
|
| 'workflow'
|
|
43
|
+
| 'agent'
|
|
30
44
|
|
|
31
45
|
export interface FunctionServicesMeta {
|
|
32
46
|
optimized: boolean
|
|
33
47
|
services: string[]
|
|
34
48
|
}
|
|
35
49
|
|
|
50
|
+
export interface FunctionWiresMeta {
|
|
51
|
+
optimized: boolean
|
|
52
|
+
wires: string[]
|
|
53
|
+
}
|
|
54
|
+
|
|
36
55
|
/**
|
|
37
56
|
* Metadata for middleware at any level
|
|
38
57
|
* - type: 'http' = HTTP route middleware group (references httpGroup in pikkuState)
|
|
@@ -76,19 +95,26 @@ export type PermissionMetadata =
|
|
|
76
95
|
}
|
|
77
96
|
|
|
78
97
|
export type FunctionRuntimeMeta = {
|
|
79
|
-
|
|
98
|
+
pikkuFuncId: string
|
|
80
99
|
inputSchemaName: string | null
|
|
81
100
|
outputSchemaName: string | null
|
|
82
101
|
expose?: boolean
|
|
83
|
-
|
|
102
|
+
remote?: boolean
|
|
103
|
+
mcp?: boolean
|
|
104
|
+
sessionless?: boolean
|
|
105
|
+
version?: number
|
|
106
|
+
requiresApproval?: boolean
|
|
107
|
+
contractHash?: string
|
|
84
108
|
}
|
|
85
109
|
|
|
86
110
|
export type FunctionMeta = FunctionRuntimeMeta &
|
|
87
111
|
Partial<
|
|
88
112
|
{
|
|
89
113
|
name: string
|
|
114
|
+
functionType: 'user' | 'inline' | 'helper'
|
|
115
|
+
funcWrapper: string
|
|
90
116
|
services: FunctionServicesMeta
|
|
91
|
-
|
|
117
|
+
wires: FunctionWiresMeta
|
|
92
118
|
inputs: string[] | null
|
|
93
119
|
outputs: string[] | null
|
|
94
120
|
middleware: MiddlewareMetadata[]
|
|
@@ -169,12 +195,23 @@ export interface CoreSingletonServices<Config extends CoreConfig = CoreConfig> {
|
|
|
169
195
|
logger: Logger
|
|
170
196
|
/** The variable service to be used */
|
|
171
197
|
variables: VariablesService
|
|
198
|
+
/** The secrets service to retrieve secrets */
|
|
199
|
+
secrets: SecretService
|
|
172
200
|
/** The workflow orchestrator service */
|
|
173
201
|
workflowService?: WorkflowService
|
|
174
202
|
/** The queue service */
|
|
175
203
|
queueService?: QueueService
|
|
176
204
|
/** The scheduler service */
|
|
177
205
|
schedulerService?: SchedulerService
|
|
206
|
+
/** The deployment service for service discovery */
|
|
207
|
+
deploymentService?: DeploymentService
|
|
208
|
+
/** AI agent storage service (threads, messages, working memory) */
|
|
209
|
+
aiStorage?: AIStorageService
|
|
210
|
+
|
|
211
|
+
/** AI agent runner service (model calls + tool loop) */
|
|
212
|
+
aiAgentRunner?: AIAgentRunnerService
|
|
213
|
+
/** AI run state service (run lifecycle + approval persistence) */
|
|
214
|
+
aiRunState?: AIRunStateService
|
|
178
215
|
}
|
|
179
216
|
|
|
180
217
|
/**
|
|
@@ -189,7 +226,10 @@ export type PikkuWire<
|
|
|
189
226
|
IsChannel extends true | null = null,
|
|
190
227
|
MCPTools extends string | never = never,
|
|
191
228
|
TypedWorkflow extends PikkuWorkflowWire | never = PikkuWorkflowWire,
|
|
229
|
+
TriggerOutput = unknown,
|
|
192
230
|
> = Partial<{
|
|
231
|
+
wireType: PikkuWiringTypes
|
|
232
|
+
wireId: string
|
|
193
233
|
http: PikkuHTTP<In>
|
|
194
234
|
mcp: PikkuMCP<MCPTools>
|
|
195
235
|
rpc: TypedRPC
|
|
@@ -201,10 +241,19 @@ export type PikkuWire<
|
|
|
201
241
|
cli: PikkuCLI
|
|
202
242
|
workflow: TypedWorkflow
|
|
203
243
|
workflowStep: WorkflowStepWire
|
|
204
|
-
|
|
244
|
+
graph: PikkuGraphWire
|
|
245
|
+
trigger: PikkuTrigger<TriggerOutput>
|
|
246
|
+
session: HasInitialSession extends true
|
|
205
247
|
? UserSession
|
|
206
248
|
: UserSession | undefined
|
|
207
|
-
session
|
|
249
|
+
/** Update and persist the current session */
|
|
250
|
+
setSession: (session: CoreUserSession) => Promise<void> | void
|
|
251
|
+
/** Clear and persist the current session */
|
|
252
|
+
clearSession: () => Promise<void> | void
|
|
253
|
+
/** Fetch the latest session (may read from backing store) */
|
|
254
|
+
getSession: () => Promise<UserSession> | UserSession | undefined
|
|
255
|
+
/** Whether the session was modified during this run */
|
|
256
|
+
hasSessionChanged: () => boolean
|
|
208
257
|
}>
|
|
209
258
|
|
|
210
259
|
/**
|
|
@@ -318,6 +367,30 @@ export const pikkuMiddlewareFactory = <In = any>(
|
|
|
318
367
|
return factory
|
|
319
368
|
}
|
|
320
369
|
|
|
370
|
+
export const pikkuChannelMiddleware = <
|
|
371
|
+
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
372
|
+
Event = unknown,
|
|
373
|
+
>(
|
|
374
|
+
middleware: CorePikkuChannelMiddleware<SingletonServices, Event>
|
|
375
|
+
): CorePikkuChannelMiddleware<SingletonServices, Event> => {
|
|
376
|
+
return middleware
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
export const pikkuChannelMiddlewareFactory = <In = any>(
|
|
380
|
+
factory: CorePikkuChannelMiddlewareFactory<In>
|
|
381
|
+
): CorePikkuChannelMiddlewareFactory<In> => {
|
|
382
|
+
return factory
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
export type { PikkuAIMiddlewareHooks } from '../wirings/ai-agent/ai-agent.types.js'
|
|
386
|
+
|
|
387
|
+
export const pikkuAIMiddleware = <
|
|
388
|
+
State extends Record<string, unknown> = Record<string, unknown>,
|
|
389
|
+
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
390
|
+
>(
|
|
391
|
+
hooks: PikkuAIMiddlewareHooks<State, SingletonServices>
|
|
392
|
+
): PikkuAIMiddlewareHooks<State, SingletonServices> => hooks
|
|
393
|
+
|
|
321
394
|
/**
|
|
322
395
|
* Represents the core services used by Pikku, including singleton services.
|
|
323
396
|
*/
|
|
@@ -365,8 +438,9 @@ export type CreateConfig<
|
|
|
365
438
|
* Represents the documentation for a route, including summary, description, tags, and errors.
|
|
366
439
|
*/
|
|
367
440
|
export type CommonWireMeta = {
|
|
368
|
-
|
|
441
|
+
pikkuFuncId: string
|
|
369
442
|
|
|
443
|
+
title?: string
|
|
370
444
|
tags?: string[]
|
|
371
445
|
summary?: string
|
|
372
446
|
description?: string
|