@pikku/addon-console 0.12.36 → 0.12.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +2 -2
- package/dist/.pikku/addon/pikku-addon-types.gen.js +2 -2
- package/dist/.pikku/addon/pikku-package.gen.js +4 -3
- package/dist/.pikku/addon/pikku-package.gen.js.map +1 -1
- package/dist/.pikku/agent/pikku-agent-map.gen.d.ts +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +6 -2
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts.map +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.js +3 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.js.map +1 -1
- package/dist/.pikku/agent/pikku-model-aliases.gen.d.ts +2 -0
- package/dist/.pikku/agent/pikku-model-aliases.gen.d.ts.map +1 -0
- package/dist/.pikku/agent/pikku-model-aliases.gen.js +6 -0
- package/dist/.pikku/agent/pikku-model-aliases.gen.js.map +1 -0
- package/dist/.pikku/agent/pikku-scorer-names.gen.d.ts +8 -0
- package/dist/.pikku/auth/auth.types.d.ts +1 -1
- package/dist/.pikku/auth/auth.types.js +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +20 -24
- package/dist/.pikku/function/pikku-function-types.gen.d.ts.map +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.js +2 -2
- package/dist/.pikku/function/pikku-function-types.gen.js.map +1 -1
- package/dist/.pikku/function/pikku-functions-meta-verbose.gen.json +276 -24
- package/dist/.pikku/function/pikku-functions-meta.gen.js +2 -2
- package/dist/.pikku/function/pikku-functions-meta.gen.js.map +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +212 -21
- package/dist/.pikku/function/pikku-functions.gen.js +15 -1
- package/dist/.pikku/function/pikku-functions.gen.js.map +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +2 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts.map +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +2 -1
- package/dist/.pikku/pikku-bootstrap.gen.js.map +1 -1
- package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +8 -6
- package/dist/.pikku/pikku-services.gen.d.ts.map +1 -1
- package/dist/.pikku/pikku-services.gen.js +6 -4
- package/dist/.pikku/pikku-services.gen.js.map +1 -1
- package/dist/.pikku/pikku-types.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +29 -14
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +29 -14
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts +20 -14
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +2 -2
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js.map +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +7 -0
- package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +2 -2
- package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js.map +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +2 -2
- package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js.map +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +25 -1
- package/dist/.pikku/schemas/register.gen.js.map +1 -1
- package/dist/.pikku/schemas/schemas/AddonMetaPage.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/AddonPackageInfo.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/AllMeta.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/GetAgentRunScoresInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetAgentRunScoresOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetAuditFiltersOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetAuditsInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetAuditsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetFunctionsMetaOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/GetScorersOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GetWorkflowMetaByIdOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/KnowledgeBundle.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/SecretGetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SecretGetOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SecretHasInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SecretHasOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SecretSetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SecretSetOutput.schema.json +1 -0
- package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scopes-meta.gen.json +8 -0
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +2 -2
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts.map +1 -1
- package/dist/.pikku/scopes/pikku-scopes.gen.js.map +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-personas.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-scenario-step-map.gen.d.ts +2 -2
- package/dist/.pikku/workflow/pikku-workflow-map.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +23 -15
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts.map +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js.map +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +2 -2
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js.map +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/src/functions/agent-credential-check.function.d.ts +1 -1
- package/dist/src/functions/agent-credential-check.function.d.ts.map +1 -1
- package/dist/src/functions/agent-credential-check.function.js +1 -1
- package/dist/src/functions/agent-credential-check.function.js.map +1 -1
- package/dist/src/functions/credential-delete.function.d.ts +1 -1
- package/dist/src/functions/credential-delete.function.d.ts.map +1 -1
- package/dist/src/functions/credential-get.function.d.ts +1 -1
- package/dist/src/functions/credential-get.function.d.ts.map +1 -1
- package/dist/src/functions/credential-list-users.function.d.ts +1 -1
- package/dist/src/functions/credential-list-users.function.d.ts.map +1 -1
- package/dist/src/functions/credential-set.function.d.ts +1 -1
- package/dist/src/functions/credential-set.function.d.ts.map +1 -1
- package/dist/src/functions/credential-status.function.d.ts +1 -1
- package/dist/src/functions/credential-status.function.d.ts.map +1 -1
- package/dist/src/functions/credential-users.function.d.ts +1 -1
- package/dist/src/functions/credential-users.function.d.ts.map +1 -1
- package/dist/src/functions/delete-agent-thread.function.d.ts +1 -1
- package/dist/src/functions/delete-agent-thread.function.d.ts.map +1 -1
- package/dist/src/functions/delete-workflow-run.function.d.ts +1 -1
- package/dist/src/functions/delete-workflow-run.function.d.ts.map +1 -1
- package/dist/src/functions/get-addon-categories.function.d.ts +1 -1
- package/dist/src/functions/get-addon-categories.function.d.ts.map +1 -1
- package/dist/src/functions/get-addon-icon.function.d.ts +1 -1
- package/dist/src/functions/get-addon-icon.function.d.ts.map +1 -1
- package/dist/src/functions/get-addon-instances.function.d.ts +1 -1
- package/dist/src/functions/get-addon-instances.function.d.ts.map +1 -1
- package/dist/src/functions/get-addon-instances.function.js +1 -1
- package/dist/src/functions/get-addon-instances.function.js.map +1 -1
- package/dist/src/functions/get-addon-meta.function.d.ts +1 -1
- package/dist/src/functions/get-addon-meta.function.d.ts.map +1 -1
- package/dist/src/functions/get-addon-package.function.d.ts +1 -1
- package/dist/src/functions/get-addon-package.function.d.ts.map +1 -1
- package/dist/src/functions/get-agent-run-scores.function.d.ts +8 -0
- package/dist/src/functions/get-agent-run-scores.function.d.ts.map +1 -0
- package/dist/src/functions/get-agent-run-scores.function.js +24 -0
- package/dist/src/functions/get-agent-run-scores.function.js.map +1 -0
- package/dist/src/functions/get-agent-run-scores.function.test.d.ts +2 -0
- package/dist/src/functions/get-agent-run-scores.function.test.d.ts.map +1 -0
- package/dist/src/functions/get-agent-run-scores.function.test.js +34 -0
- package/dist/src/functions/get-agent-run-scores.function.test.js.map +1 -0
- package/dist/src/functions/get-agent-thread-messages.function.d.ts +1 -1
- package/dist/src/functions/get-agent-thread-messages.function.d.ts.map +1 -1
- package/dist/src/functions/get-agent-thread-runs.function.d.ts +1 -1
- package/dist/src/functions/get-agent-thread-runs.function.d.ts.map +1 -1
- package/dist/src/functions/get-agent-thread-runs.function.js +14 -3
- package/dist/src/functions/get-agent-thread-runs.function.js.map +1 -1
- package/dist/src/functions/get-agent-thread-runs.function.test.d.ts +2 -0
- package/dist/src/functions/get-agent-thread-runs.function.test.d.ts.map +1 -0
- package/dist/src/functions/get-agent-thread-runs.function.test.js +27 -0
- package/dist/src/functions/get-agent-thread-runs.function.test.js.map +1 -0
- package/dist/src/functions/get-agent-threads.function.d.ts +1 -1
- package/dist/src/functions/get-agent-threads.function.d.ts.map +1 -1
- package/dist/src/functions/get-all-meta.function.d.ts +1 -1
- package/dist/src/functions/get-all-meta.function.d.ts.map +1 -1
- package/dist/src/functions/get-audit-filters.function.d.ts +23 -0
- package/dist/src/functions/get-audit-filters.function.d.ts.map +1 -0
- package/dist/src/functions/get-audit-filters.function.js +31 -0
- package/dist/src/functions/get-audit-filters.function.js.map +1 -0
- package/dist/src/functions/get-audits.function.d.ts +34 -0
- package/dist/src/functions/get-audits.function.d.ts.map +1 -0
- package/dist/src/functions/get-audits.function.js +24 -0
- package/dist/src/functions/get-audits.function.js.map +1 -0
- package/dist/src/functions/get-auth-providers.function.d.ts +1 -1
- package/dist/src/functions/get-auth-providers.function.d.ts.map +1 -1
- package/dist/src/functions/get-channel-snippets.function.d.ts +1 -1
- package/dist/src/functions/get-channel-snippets.function.d.ts.map +1 -1
- package/dist/src/functions/get-db-schema.function.d.ts +1 -1
- package/dist/src/functions/get-db-schema.function.d.ts.map +1 -1
- package/dist/src/functions/get-functions-meta.function.d.ts +1 -1
- package/dist/src/functions/get-functions-meta.function.d.ts.map +1 -1
- package/dist/src/functions/get-installed-addons.function.d.ts +1 -1
- package/dist/src/functions/get-installed-addons.function.d.ts.map +1 -1
- package/dist/src/functions/get-installed-addons.function.js +1 -1
- package/dist/src/functions/get-installed-addons.function.js.map +1 -1
- package/dist/src/functions/get-installed-package.function.d.ts +1 -1
- package/dist/src/functions/get-installed-package.function.d.ts.map +1 -1
- package/dist/src/functions/get-installed-package.function.js +1 -1
- package/dist/src/functions/get-installed-package.function.js.map +1 -1
- package/dist/src/functions/get-knowledge.function.d.ts +1 -1
- package/dist/src/functions/get-knowledge.function.d.ts.map +1 -1
- package/dist/src/functions/get-my-access.function.d.ts +1 -1
- package/dist/src/functions/get-my-access.function.d.ts.map +1 -1
- package/dist/src/functions/get-openapi-categories.function.d.ts +1 -1
- package/dist/src/functions/get-openapi-categories.function.d.ts.map +1 -1
- package/dist/src/functions/get-openapi-detail.function.d.ts +1 -1
- package/dist/src/functions/get-openapi-detail.function.d.ts.map +1 -1
- package/dist/src/functions/get-openapis.function.d.ts +1 -1
- package/dist/src/functions/get-openapis.function.d.ts.map +1 -1
- package/dist/src/functions/get-schema.function.d.ts +1 -1
- package/dist/src/functions/get-schema.function.d.ts.map +1 -1
- package/dist/src/functions/get-scorers.function.d.ts +13 -0
- package/dist/src/functions/get-scorers.function.d.ts.map +1 -0
- package/dist/src/functions/get-scorers.function.js +25 -0
- package/dist/src/functions/get-scorers.function.js.map +1 -0
- package/dist/src/functions/get-security-audit.function.d.ts +1 -1
- package/dist/src/functions/get-security-audit.function.d.ts.map +1 -1
- package/dist/src/functions/get-state-diff.function.d.ts +1 -1
- package/dist/src/functions/get-state-diff.function.d.ts.map +1 -1
- package/dist/src/functions/get-webhook-delivery.function.d.ts +1 -1
- package/dist/src/functions/get-webhook-delivery.function.d.ts.map +1 -1
- package/dist/src/functions/get-workflow-meta-by-id.function.d.ts +4 -1
- package/dist/src/functions/get-workflow-meta-by-id.function.d.ts.map +1 -1
- package/dist/src/functions/get-workflow-run-history.function.d.ts +1 -1
- package/dist/src/functions/get-workflow-run-history.function.d.ts.map +1 -1
- package/dist/src/functions/get-workflow-run-names.function.d.ts +1 -1
- package/dist/src/functions/get-workflow-run-names.function.d.ts.map +1 -1
- package/dist/src/functions/get-workflow-run-steps.function.d.ts +1 -1
- package/dist/src/functions/get-workflow-run-steps.function.d.ts.map +1 -1
- package/dist/src/functions/get-workflow-run.function.d.ts +1 -1
- package/dist/src/functions/get-workflow-run.function.d.ts.map +1 -1
- package/dist/src/functions/get-workflow-runs.function.d.ts +1 -1
- package/dist/src/functions/get-workflow-runs.function.d.ts.map +1 -1
- package/dist/src/functions/get-workflow-version.function.d.ts +1 -1
- package/dist/src/functions/get-workflow-version.function.d.ts.map +1 -1
- package/dist/src/functions/install-addon.function.d.ts +3 -3
- package/dist/src/functions/install-addon.function.d.ts.map +1 -1
- package/dist/src/functions/install-addon.function.js +2 -2
- package/dist/src/functions/install-addon.function.js.map +1 -1
- package/dist/src/functions/install-openapi-addon.function.d.ts +3 -3
- package/dist/src/functions/install-openapi-addon.function.d.ts.map +1 -1
- package/dist/src/functions/install-openapi-addon.function.js +2 -2
- package/dist/src/functions/install-openapi-addon.function.js.map +1 -1
- package/dist/src/functions/list-webhook-deliveries.function.d.ts +1 -1
- package/dist/src/functions/list-webhook-deliveries.function.d.ts.map +1 -1
- package/dist/src/functions/ping.function.d.ts +1 -1
- package/dist/src/functions/ping.function.d.ts.map +1 -1
- package/dist/src/functions/read-agent-source.function.d.ts +1 -1
- package/dist/src/functions/read-agent-source.function.d.ts.map +1 -1
- package/dist/src/functions/read-function-body.function.d.ts +1 -1
- package/dist/src/functions/read-function-body.function.d.ts.map +1 -1
- package/dist/src/functions/read-function-source.function.d.ts +1 -1
- package/dist/src/functions/read-function-source.function.d.ts.map +1 -1
- package/dist/src/functions/render-email-preview.function.d.ts +1 -1
- package/dist/src/functions/render-email-preview.function.d.ts.map +1 -1
- package/dist/src/functions/run-security-audit.function.d.ts +1 -1
- package/dist/src/functions/run-security-audit.function.d.ts.map +1 -1
- package/dist/src/functions/scope-add-scope-to-user.function.d.ts +1 -1
- package/dist/src/functions/scope-add-scope-to-user.function.d.ts.map +1 -1
- package/dist/src/functions/scope-add-user-to-role.function.d.ts +1 -1
- package/dist/src/functions/scope-add-user-to-role.function.d.ts.map +1 -1
- package/dist/src/functions/scope-create-role.function.d.ts +1 -1
- package/dist/src/functions/scope-create-role.function.d.ts.map +1 -1
- package/dist/src/functions/scope-delete-role.function.d.ts +1 -1
- package/dist/src/functions/scope-delete-role.function.d.ts.map +1 -1
- package/dist/src/functions/scope-list-declared.function.d.ts +1 -1
- package/dist/src/functions/scope-list-declared.function.d.ts.map +1 -1
- package/dist/src/functions/scope-list-roles.function.d.ts +1 -1
- package/dist/src/functions/scope-list-roles.function.d.ts.map +1 -1
- package/dist/src/functions/scope-list-user-roles.function.d.ts +1 -1
- package/dist/src/functions/scope-list-user-roles.function.d.ts.map +1 -1
- package/dist/src/functions/scope-remove-scope-from-user.function.d.ts +1 -1
- package/dist/src/functions/scope-remove-scope-from-user.function.d.ts.map +1 -1
- package/dist/src/functions/scope-remove-user-from-role.function.d.ts +1 -1
- package/dist/src/functions/scope-remove-user-from-role.function.d.ts.map +1 -1
- package/dist/src/functions/scope-set-role-scopes.function.d.ts +1 -1
- package/dist/src/functions/scope-set-role-scopes.function.d.ts.map +1 -1
- package/dist/src/functions/secret-get.function.d.ts +17 -0
- package/dist/src/functions/secret-get.function.d.ts.map +1 -0
- package/dist/src/functions/secret-get.function.js +10 -0
- package/dist/src/functions/secret-get.function.js.map +1 -0
- package/dist/src/functions/secret-has.function.d.ts +14 -0
- package/dist/src/functions/secret-has.function.d.ts.map +1 -0
- package/dist/src/functions/secret-has.function.js +11 -0
- package/dist/src/functions/secret-has.function.js.map +1 -0
- package/dist/src/functions/secret-set.function.d.ts +17 -0
- package/dist/src/functions/secret-set.function.d.ts.map +1 -0
- package/dist/src/functions/secret-set.function.js +11 -0
- package/dist/src/functions/secret-set.function.js.map +1 -0
- package/dist/src/functions/stream-workflow-run.function.d.ts +1 -1
- package/dist/src/functions/update-agent-config.function.d.ts +1 -1
- package/dist/src/functions/update-agent-config.function.d.ts.map +1 -1
- package/dist/src/functions/update-dependency.function.d.ts +1 -1
- package/dist/src/functions/update-dependency.function.d.ts.map +1 -1
- package/dist/src/functions/update-email-template.function.d.ts +1 -1
- package/dist/src/functions/update-email-template.function.d.ts.map +1 -1
- package/dist/src/functions/update-function-body.function.d.ts +1 -1
- package/dist/src/functions/update-function-body.function.d.ts.map +1 -1
- package/dist/src/functions/update-function-config.function.d.ts +1 -1
- package/dist/src/functions/update-function-config.function.d.ts.map +1 -1
- package/dist/src/lib/resolve-audit-users.d.ts +37 -0
- package/dist/src/lib/resolve-audit-users.d.ts.map +1 -0
- package/dist/src/lib/resolve-audit-users.js +56 -0
- package/dist/src/lib/resolve-audit-users.js.map +1 -0
- package/dist/src/lib/resolve-audit-users.test.d.ts +2 -0
- package/dist/src/lib/resolve-audit-users.test.d.ts.map +1 -0
- package/dist/src/lib/resolve-audit-users.test.js +91 -0
- package/dist/src/lib/resolve-audit-users.test.js.map +1 -0
- package/dist/src/scopes.js +8 -0
- package/dist/src/scopes.js.map +1 -1
- package/dist/src/services/secret-admin.service.d.ts +20 -0
- package/dist/src/services/secret-admin.service.d.ts.map +1 -0
- package/dist/src/services/secret-admin.service.js +27 -0
- package/dist/src/services/secret-admin.service.js.map +1 -0
- package/dist/src/services/secret-admin.service.test.d.ts +2 -0
- package/dist/src/services/secret-admin.service.test.d.ts.map +1 -0
- package/dist/src/services/secret-admin.service.test.js +69 -0
- package/dist/src/services/secret-admin.service.test.js.map +1 -0
- package/dist/src/services.d.ts.map +1 -1
- package/dist/src/services.js +9 -1
- package/dist/src/services.js.map +1 -1
- package/dist/types/application-types.d.ts +43 -0
- package/package.json +9 -9
- package/dist/.pikku/schemas/schemas/FunctionCoverageReport.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/GetAIWorkflowsInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/GetAIWorkflowsOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/GetAddonMetaOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/GetStubCallsInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/GetStubCallsOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthConnectInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthConnectOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthDisconnectInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthExchangeTokensInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthExchangeTokensOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthRefreshTokenInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthRefreshTokenOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthStatusInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthStatusOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthTestTokenInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/OauthTestTokenOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/ResetLiveCoverageOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/ResetStubsOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/StreamFunctionTestsOutput.schema.json +0 -1
- package/dist/.pikku/workflow/pikku-scenario-actors.gen.d.ts +0 -20
- package/dist/.pikku/workflow/pikku-scenario-actors.gen.d.ts.map +0 -1
- package/dist/.pikku/workflow/pikku-scenario-actors.gen.js +0 -18
- package/dist/.pikku/workflow/pikku-scenario-actors.gen.js.map +0 -1
- package/dist/src/functions/get-ai-workflows.function.d.ts +0 -20
- package/dist/src/functions/get-ai-workflows.function.d.ts.map +0 -1
- package/dist/src/functions/get-ai-workflows.function.js +0 -10
- package/dist/src/functions/get-ai-workflows.function.js.map +0 -1
- package/dist/src/functions/get-function-coverage.function.d.ts +0 -26
- package/dist/src/functions/get-function-coverage.function.d.ts.map +0 -1
- package/dist/src/functions/get-function-coverage.function.js +0 -21
- package/dist/src/functions/get-function-coverage.function.js.map +0 -1
- package/dist/src/functions/get-stub-calls.function.d.ts +0 -13
- package/dist/src/functions/get-stub-calls.function.d.ts.map +0 -1
- package/dist/src/functions/get-stub-calls.function.js +0 -11
- package/dist/src/functions/get-stub-calls.function.js.map +0 -1
- package/dist/src/functions/oauth-connect.function.d.ts +0 -20
- package/dist/src/functions/oauth-connect.function.d.ts.map +0 -1
- package/dist/src/functions/oauth-connect.function.js +0 -44
- package/dist/src/functions/oauth-connect.function.js.map +0 -1
- package/dist/src/functions/oauth-disconnect.function.d.ts +0 -8
- package/dist/src/functions/oauth-disconnect.function.d.ts.map +0 -1
- package/dist/src/functions/oauth-disconnect.function.js +0 -25
- package/dist/src/functions/oauth-disconnect.function.js.map +0 -1
- package/dist/src/functions/oauth-exchange-tokens.function.d.ts +0 -17
- package/dist/src/functions/oauth-exchange-tokens.function.d.ts.map +0 -1
- package/dist/src/functions/oauth-exchange-tokens.function.js +0 -25
- package/dist/src/functions/oauth-exchange-tokens.function.js.map +0 -1
- package/dist/src/functions/oauth-refresh-token.function.d.ts +0 -17
- package/dist/src/functions/oauth-refresh-token.function.d.ts.map +0 -1
- package/dist/src/functions/oauth-refresh-token.function.js +0 -28
- package/dist/src/functions/oauth-refresh-token.function.js.map +0 -1
- package/dist/src/functions/oauth-status.function.d.ts +0 -23
- package/dist/src/functions/oauth-status.function.d.ts.map +0 -1
- package/dist/src/functions/oauth-status.function.js +0 -44
- package/dist/src/functions/oauth-status.function.js.map +0 -1
- package/dist/src/functions/oauth-test-token.function.d.ts +0 -17
- package/dist/src/functions/oauth-test-token.function.d.ts.map +0 -1
- package/dist/src/functions/oauth-test-token.function.js +0 -27
- package/dist/src/functions/oauth-test-token.function.js.map +0 -1
- package/dist/src/functions/reset-live-coverage.function.d.ts +0 -8
- package/dist/src/functions/reset-live-coverage.function.d.ts.map +0 -1
- package/dist/src/functions/reset-live-coverage.function.js +0 -13
- package/dist/src/functions/reset-live-coverage.function.js.map +0 -1
- package/dist/src/functions/reset-stubs.function.d.ts +0 -8
- package/dist/src/functions/reset-stubs.function.d.ts.map +0 -1
- package/dist/src/functions/reset-stubs.function.js +0 -12
- package/dist/src/functions/reset-stubs.function.js.map +0 -1
- package/dist/src/functions/run-function-tests.function.d.ts +0 -3
- package/dist/src/functions/run-function-tests.function.d.ts.map +0 -1
- package/dist/src/functions/run-function-tests.function.js +0 -67
- package/dist/src/functions/run-function-tests.function.js.map +0 -1
- package/dist/src/functions/stream-function-tests.function.d.ts +0 -37
- package/dist/src/functions/stream-function-tests.function.d.ts.map +0 -1
- package/dist/src/functions/stream-function-tests.function.js +0 -258
- package/dist/src/functions/stream-function-tests.function.js.map +0 -1
- package/dist/src/functions/stream-function-tests.function.test.d.ts +0 -2
- package/dist/src/functions/stream-function-tests.function.test.d.ts.map +0 -1
- package/dist/src/functions/stream-function-tests.function.test.js +0 -238
- package/dist/src/functions/stream-function-tests.function.test.js.map +0 -1
- package/dist/src/functions/take-live-coverage.function.d.ts +0 -3
- package/dist/src/functions/take-live-coverage.function.d.ts.map +0 -1
- package/dist/src/functions/take-live-coverage.function.js +0 -27
- package/dist/src/functions/take-live-coverage.function.js.map +0 -1
- package/dist/src/lib/coverage-types.d.ts +0 -25
- package/dist/src/lib/coverage-types.d.ts.map +0 -1
- package/dist/src/lib/coverage-types.js +0 -2
- package/dist/src/lib/coverage-types.js.map +0 -1
- package/dist/src/lib/function-tests-paths.d.ts +0 -14
- package/dist/src/lib/function-tests-paths.d.ts.map +0 -1
- package/dist/src/lib/function-tests-paths.js +0 -22
- package/dist/src/lib/function-tests-paths.js.map +0 -1
- package/dist/src/lib/precise-coverage-map.d.ts +0 -30
- package/dist/src/lib/precise-coverage-map.d.ts.map +0 -1
- package/dist/src/lib/precise-coverage-map.js +0 -177
- package/dist/src/lib/precise-coverage-map.js.map +0 -1
- package/dist/src/lib/precise-coverage-map.test.d.ts +0 -2
- package/dist/src/lib/precise-coverage-map.test.d.ts.map +0 -1
- package/dist/src/lib/precise-coverage-map.test.js +0 -153
- package/dist/src/lib/precise-coverage-map.test.js.map +0 -1
- package/dist/src/services/oauth.service.d.ts +0 -17
- package/dist/src/services/oauth.service.d.ts.map +0 -1
- package/dist/src/services/oauth.service.js +0 -26
- package/dist/src/services/oauth.service.js.map +0 -1
- package/dist/src/tests/test-oauth2-client.d.ts +0 -6
- package/dist/src/tests/test-oauth2-client.d.ts.map +0 -1
- package/dist/src/tests/test-oauth2-client.js +0 -139
- package/dist/src/tests/test-oauth2-client.js.map +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the user ids on a page of the trail to the people behind them.
|
|
3
|
+
*
|
|
4
|
+
* The trail stores an id because that is the only thing stable enough to record
|
|
5
|
+
* — a name can change after the event, and an audit row must not. The join
|
|
6
|
+
* therefore happens at read time, and it happens here rather than in SQL: the
|
|
7
|
+
* sink and the user table are routinely different databases (and on a queue
|
|
8
|
+
* sink, different systems entirely), so there is no query that spans both.
|
|
9
|
+
*
|
|
10
|
+
* Read through better-auth's own adapter as the server, not as the caller.
|
|
11
|
+
* `pikku:audit:read` already grants "every recorded action, and which user took
|
|
12
|
+
* it", so a reader who may see the id may see the name — an opaque id would be
|
|
13
|
+
* the same disclosure, just unreadable. Reading the adapter directly also
|
|
14
|
+
* reaches actor rows, which the admin user list deliberately hides: nobody
|
|
15
|
+
* picks a scenario actor out of a people-picker, but a trail that cannot say an
|
|
16
|
+
* actor did it is worse than one that names them.
|
|
17
|
+
*
|
|
18
|
+
* An id missing from the result is not an error: a deleted account leaves its
|
|
19
|
+
* events behind on purpose, and the caller falls back to showing the id.
|
|
20
|
+
*/
|
|
21
|
+
export const resolveAuditUsers = async (auth, userIds, logger) => {
|
|
22
|
+
const ids = [...new Set(userIds.filter((id) => !!id))];
|
|
23
|
+
if (!auth || ids.length === 0) {
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
let adapter;
|
|
27
|
+
try {
|
|
28
|
+
adapter = (await (await auth()).$context)?.internalAdapter;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
logger?.warn(`Audit users could not be resolved, showing ids instead: ${error}`);
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
if (!adapter?.findUserById) {
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
const directory = {};
|
|
38
|
+
await Promise.all(ids.map(async (id) => {
|
|
39
|
+
try {
|
|
40
|
+
const user = await adapter.findUserById(id);
|
|
41
|
+
if (user) {
|
|
42
|
+
directory[id] = {
|
|
43
|
+
name: user.name || undefined,
|
|
44
|
+
email: user.email || undefined,
|
|
45
|
+
actor: user.actor === true ? true : undefined,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
// One unreadable row must not cost the whole page its names.
|
|
51
|
+
logger?.debug?.(`Audit user '${id}' could not be resolved: ${error}`);
|
|
52
|
+
}
|
|
53
|
+
}));
|
|
54
|
+
return directory;
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=resolve-audit-users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-audit-users.js","sourceRoot":"","sources":["../../../src/lib/resolve-audit-users.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,IAAqD,EACrD,OAAkC,EAClC,MAAwC,EACX,EAAE;IAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACpE,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,OAAoE,CAAA;IACxE,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,IAAI,CACV,2DAA2D,KAAK,EAAE,CACnE,CAAA;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,SAAS,GAAuB,EAAE,CAAA;IACxC,MAAM,OAAO,CAAC,GAAG,CACf,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAa,CAAC,EAAE,CAAC,CAAA;YAC5C,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,CAAC,EAAE,CAAC,GAAG;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;oBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;oBAC9B,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iBAC9C,CAAA;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6DAA6D;YAC7D,MAAM,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,4BAA4B,KAAK,EAAE,CAAC,CAAA;QACvE,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-audit-users.test.d.ts","sourceRoot":"","sources":["../../../src/lib/resolve-audit-users.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { strict as assert } from 'assert';
|
|
2
|
+
import { describe, test } from 'node:test';
|
|
3
|
+
import { resolveAuditUsers } from './resolve-audit-users.js';
|
|
4
|
+
/**
|
|
5
|
+
* A stand-in for better-auth exposing only what the resolver reaches for, plus
|
|
6
|
+
* a record of the ids it was asked about — the dedupe is only observable there.
|
|
7
|
+
*/
|
|
8
|
+
const fakeAuth = (users, asked = []) => (async () => ({
|
|
9
|
+
$context: Promise.resolve({
|
|
10
|
+
internalAdapter: {
|
|
11
|
+
findUserById: async (id) => {
|
|
12
|
+
asked.push(id);
|
|
13
|
+
const user = users[id];
|
|
14
|
+
if (user instanceof Error)
|
|
15
|
+
throw user;
|
|
16
|
+
return user;
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
}),
|
|
20
|
+
}));
|
|
21
|
+
const silentLogger = {
|
|
22
|
+
warn: () => { },
|
|
23
|
+
debug: () => { },
|
|
24
|
+
};
|
|
25
|
+
describe('resolveAuditUsers', () => {
|
|
26
|
+
test('names the ids it was given', async () => {
|
|
27
|
+
const directory = await resolveAuditUsers(fakeAuth({
|
|
28
|
+
usr_1: { name: 'Ada', email: 'ada@example.com' },
|
|
29
|
+
usr_2: { email: 'bob@example.com' },
|
|
30
|
+
}), ['usr_1', 'usr_2']);
|
|
31
|
+
assert.deepEqual(directory, {
|
|
32
|
+
usr_1: { name: 'Ada', email: 'ada@example.com', actor: undefined },
|
|
33
|
+
usr_2: { name: undefined, email: 'bob@example.com', actor: undefined },
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
test('asks about each id once, however often a page repeats it', async () => {
|
|
37
|
+
const asked = [];
|
|
38
|
+
await resolveAuditUsers(fakeAuth({ usr_1: { name: 'Ada' } }, asked), [
|
|
39
|
+
'usr_1',
|
|
40
|
+
'usr_1',
|
|
41
|
+
undefined,
|
|
42
|
+
'usr_1',
|
|
43
|
+
]);
|
|
44
|
+
assert.deepEqual(asked, ['usr_1']);
|
|
45
|
+
});
|
|
46
|
+
test('flags a scenario actor so synthetic traffic is not read as real', async () => {
|
|
47
|
+
const directory = await resolveAuditUsers(fakeAuth({ usr_1: { name: 'Admin', actor: true } }), ['usr_1']);
|
|
48
|
+
assert.equal(directory.usr_1?.actor, true);
|
|
49
|
+
});
|
|
50
|
+
test('leaves an ordinary user unflagged rather than false', async () => {
|
|
51
|
+
const directory = await resolveAuditUsers(fakeAuth({ usr_1: { name: 'Ada', actor: false } }), ['usr_1']);
|
|
52
|
+
assert.equal(directory.usr_1?.actor, undefined);
|
|
53
|
+
});
|
|
54
|
+
test('omits an account deleted since the event, leaving the id to show', async () => {
|
|
55
|
+
const directory = await resolveAuditUsers(fakeAuth({ usr_1: undefined }), [
|
|
56
|
+
'usr_1',
|
|
57
|
+
]);
|
|
58
|
+
assert.deepEqual(directory, {});
|
|
59
|
+
});
|
|
60
|
+
test('one unreadable row does not cost the page its other names', async () => {
|
|
61
|
+
const directory = await resolveAuditUsers(fakeAuth({
|
|
62
|
+
usr_1: new Error('row is gone'),
|
|
63
|
+
usr_2: { name: 'Bob' },
|
|
64
|
+
}), ['usr_1', 'usr_2'], silentLogger);
|
|
65
|
+
assert.deepEqual(Object.keys(directory), ['usr_2']);
|
|
66
|
+
});
|
|
67
|
+
test('an app without auth resolves nothing rather than throwing', async () => {
|
|
68
|
+
assert.deepEqual(await resolveAuditUsers(undefined, ['usr_1']), {});
|
|
69
|
+
});
|
|
70
|
+
test('skips the lookup entirely when the page named nobody', async () => {
|
|
71
|
+
const asked = [];
|
|
72
|
+
await resolveAuditUsers(fakeAuth({}, asked), [undefined, undefined]);
|
|
73
|
+
assert.deepEqual(asked, []);
|
|
74
|
+
});
|
|
75
|
+
test('warns and falls back to ids when auth itself fails', async () => {
|
|
76
|
+
const warnings = [];
|
|
77
|
+
const directory = await resolveAuditUsers((async () => {
|
|
78
|
+
throw new Error('auth is down');
|
|
79
|
+
}), ['usr_1'], { warn: (m) => warnings.push(m), debug: () => { } });
|
|
80
|
+
assert.deepEqual(directory, {});
|
|
81
|
+
assert.equal(warnings.length, 1, 'the failure is reported, not swallowed');
|
|
82
|
+
assert.match(warnings[0], /auth is down/);
|
|
83
|
+
});
|
|
84
|
+
test('resolves nothing when the adapter cannot look users up', async () => {
|
|
85
|
+
const directory = await resolveAuditUsers((async () => ({
|
|
86
|
+
$context: Promise.resolve({ internalAdapter: {} }),
|
|
87
|
+
})), ['usr_1']);
|
|
88
|
+
assert.deepEqual(directory, {});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=resolve-audit-users.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-audit-users.test.js","sourceRoot":"","sources":["../../../src/lib/resolve-audit-users.test.ts"],"names":[],"mappings":"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"}
|
package/dist/src/scopes.js
CHANGED
package/dist/src/scopes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEpC;;;;;;;;;;;;;;;GAeG;AACH,WAAW,CAAC;IACV,KAAK,EAAE;QACL,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,qDAAqD;QAClE,MAAM,EAAE;YACN,WAAW,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACnD,WAAW,EAAE;gBACX,WAAW,EAAE,8BAA8B;gBAC3C,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE;iBACjE;aACF;YACD,KAAK,EAAE;gBACL,WAAW,EAAE,oBAAoB;gBACjC,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE;oBAC9C,MAAM,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE;oBACnD,GAAG,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE;oBAC3C,MAAM,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE;oBAC1D,QAAQ,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE;oBACrD,QAAQ,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE;iBACnD;aACF;SACF;KACF;IACD,KAAK,EAAE;QACL,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,+CAA+C;QAC5D,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,WAAW,EAAE,0BAA0B;gBACvC,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,WAAW,EAAE,iDAAiD;qBAC/D;oBACD,MAAM,EAAE;wBACN,WAAW,EACT,wEAAwE;qBAC3E;iBACF;aACF;SACF;KACF;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEpC;;;;;;;;;;;;;;;GAeG;AACH,WAAW,CAAC;IACV,KAAK,EAAE;QACL,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,qDAAqD;QAClE,MAAM,EAAE;YACN,WAAW,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACnD,WAAW,EAAE;gBACX,WAAW,EAAE,8BAA8B;gBAC3C,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE;iBACjE;aACF;YACD,KAAK,EAAE;gBACL,WAAW,EAAE,oBAAoB;gBACjC,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE;oBAC9C,MAAM,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE;oBACnD,GAAG,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE;oBAC3C,MAAM,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE;oBAC1D,QAAQ,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE;oBACrD,QAAQ,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE;iBACnD;aACF;SACF;KACF;IACD,KAAK,EAAE;QACL,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,+CAA+C;QAC5D,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,WAAW,EAAE,0BAA0B;gBACvC,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,WAAW,EAAE,iDAAiD;qBAC/D;oBACD,MAAM,EAAE;wBACN,WAAW,EACT,wEAAwE;qBAC3E;iBACF;aACF;YACD,KAAK,EAAE;gBACL,WAAW,EAAE,iBAAiB;gBAC9B,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,WAAW,EACT,sEAAsE;qBACzE;iBACF;aACF;SACF;KACF;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SecretService } from '@pikku/core/services';
|
|
2
|
+
/**
|
|
3
|
+
* Secret administration for the console.
|
|
4
|
+
*
|
|
5
|
+
* The secret id arrives as user input, so no static declaration can cover it —
|
|
6
|
+
* administering arbitrary secrets is the job. Holding the `SecretService` here
|
|
7
|
+
* keeps it out of the services a function receives, and makes the plaintext
|
|
8
|
+
* disclosure a single greppable `.reveal()` rather than one per function.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SecretAdminService {
|
|
11
|
+
private secrets;
|
|
12
|
+
constructor(secrets: SecretService);
|
|
13
|
+
has(secretId: string): Promise<boolean>;
|
|
14
|
+
read(secretId: string): Promise<{
|
|
15
|
+
exists: boolean;
|
|
16
|
+
value: unknown;
|
|
17
|
+
}>;
|
|
18
|
+
write(secretId: string, value: unknown): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=secret-admin.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-admin.service.d.ts","sourceRoot":"","sources":["../../../src/services/secret-admin.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,aAAa;IAEpC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAQpE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret administration for the console.
|
|
3
|
+
*
|
|
4
|
+
* The secret id arrives as user input, so no static declaration can cover it —
|
|
5
|
+
* administering arbitrary secrets is the job. Holding the `SecretService` here
|
|
6
|
+
* keeps it out of the services a function receives, and makes the plaintext
|
|
7
|
+
* disclosure a single greppable `.reveal()` rather than one per function.
|
|
8
|
+
*/
|
|
9
|
+
export class SecretAdminService {
|
|
10
|
+
constructor(secrets) {
|
|
11
|
+
this.secrets = secrets;
|
|
12
|
+
}
|
|
13
|
+
async has(secretId) {
|
|
14
|
+
return this.secrets.hasSecret(secretId);
|
|
15
|
+
}
|
|
16
|
+
async read(secretId) {
|
|
17
|
+
if (!(await this.secrets.hasSecret(secretId))) {
|
|
18
|
+
return { exists: false, value: null };
|
|
19
|
+
}
|
|
20
|
+
const secret = await this.secrets.getSecret(secretId);
|
|
21
|
+
return { exists: true, value: secret.reveal() };
|
|
22
|
+
}
|
|
23
|
+
async write(secretId, value) {
|
|
24
|
+
await this.secrets.setSecret(secretId, value);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=secret-admin.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-admin.service.js","sourceRoot":"","sources":["../../../src/services/secret-admin.service.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IAC7B,YAAoB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAE9C,KAAK,CAAC,GAAG,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB;QACzB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QACvC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACrD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,KAAc;QAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-admin.service.test.d.ts","sourceRoot":"","sources":["../../../src/services/secret-admin.service.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { describe, test } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { SecretAdminService } from './secret-admin.service.js';
|
|
4
|
+
const secretValue = (value) => ({ reveal: () => value });
|
|
5
|
+
const stubSecrets = (store) => {
|
|
6
|
+
const calls = [];
|
|
7
|
+
const secrets = {
|
|
8
|
+
calls,
|
|
9
|
+
async hasSecret(key) {
|
|
10
|
+
calls.push(`hasSecret:${key}`);
|
|
11
|
+
return key in store;
|
|
12
|
+
},
|
|
13
|
+
async getSecret(key) {
|
|
14
|
+
calls.push(`getSecret:${key}`);
|
|
15
|
+
if (!(key in store)) {
|
|
16
|
+
throw new Error(`missing: ${key}`);
|
|
17
|
+
}
|
|
18
|
+
return secretValue(store[key]);
|
|
19
|
+
},
|
|
20
|
+
async setSecret(key, value) {
|
|
21
|
+
calls.push(`setSecret:${key}`);
|
|
22
|
+
store[key] = value;
|
|
23
|
+
},
|
|
24
|
+
async deleteSecret() { },
|
|
25
|
+
async getSecrets() {
|
|
26
|
+
return {};
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
return secrets;
|
|
30
|
+
};
|
|
31
|
+
describe('SecretAdminService', () => {
|
|
32
|
+
test('reports an existing secret without reading its value', async () => {
|
|
33
|
+
const secrets = stubSecrets({ STRIPE_KEY: 'sk_live' });
|
|
34
|
+
const admin = new SecretAdminService(secrets);
|
|
35
|
+
assert.equal(await admin.has('STRIPE_KEY'), true);
|
|
36
|
+
assert.deepEqual(secrets.calls, ['hasSecret:STRIPE_KEY']);
|
|
37
|
+
});
|
|
38
|
+
test('reports a missing secret', async () => {
|
|
39
|
+
const admin = new SecretAdminService(stubSecrets({}));
|
|
40
|
+
assert.equal(await admin.has('NOPE'), false);
|
|
41
|
+
});
|
|
42
|
+
test('reveals the value of an existing secret', async () => {
|
|
43
|
+
const admin = new SecretAdminService(stubSecrets({ STRIPE_KEY: 'sk_live' }));
|
|
44
|
+
assert.deepEqual(await admin.read('STRIPE_KEY'), {
|
|
45
|
+
exists: true,
|
|
46
|
+
value: 'sk_live',
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
test('reads a missing secret as absent rather than throwing', async () => {
|
|
50
|
+
const admin = new SecretAdminService(stubSecrets({}));
|
|
51
|
+
assert.deepEqual(await admin.read('NOPE'), { exists: false, value: null });
|
|
52
|
+
});
|
|
53
|
+
test('writes a secret through to the underlying service', async () => {
|
|
54
|
+
const store = {};
|
|
55
|
+
const admin = new SecretAdminService(stubSecrets(store));
|
|
56
|
+
await admin.write('STRIPE_KEY', 'sk_test');
|
|
57
|
+
assert.equal(store.STRIPE_KEY, 'sk_test');
|
|
58
|
+
});
|
|
59
|
+
test('administers an id it was never told about ahead of time', async () => {
|
|
60
|
+
const store = {};
|
|
61
|
+
const admin = new SecretAdminService(stubSecrets(store));
|
|
62
|
+
await admin.write('ARBITRARY_RUNTIME_ID', 'value');
|
|
63
|
+
assert.deepEqual(await admin.read('ARBITRARY_RUNTIME_ID'), {
|
|
64
|
+
exists: true,
|
|
65
|
+
value: 'value',
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=secret-admin.service.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-admin.service.test.js","sourceRoot":"","sources":["../../../src/services/secret-admin.service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,uBAAuB,0MA0FnC,CAAA"}
|
package/dist/src/services.js
CHANGED
|
@@ -4,14 +4,16 @@ import { AddonService } from './services/addon.service.js';
|
|
|
4
4
|
import { StateDiffService } from './services/state-diff.service.js';
|
|
5
5
|
import { DbSchemaService } from './services/db-schema.service.js';
|
|
6
6
|
import { KnowledgeService } from './services/knowledge.service.js';
|
|
7
|
+
import { SecretAdminService } from './services/secret-admin.service.js';
|
|
7
8
|
import { findProjectRoot } from './lib/find-project-root.js';
|
|
8
|
-
export const createSingletonServices = pikkuAddonServices(async (_config, { variables, metaService: existingMetaService, aiAgentRunner, schedulerService, agentRunService, workflowService, workflowRunService, aiStorage, aiRunState, deploymentService, credentialService, coverageService, scopeService, webhookService, auth, }) => {
|
|
9
|
+
export const createSingletonServices = pikkuAddonServices(async (_config, { variables, secrets, metaService: existingMetaService, aiAgentRunner, schedulerService, agentRunService, workflowService, workflowRunService, aiStorage, aiRunState, deploymentService, credentialService, coverageService, scopeService, webhookService, audit, auth, }) => {
|
|
9
10
|
if (!existingMetaService) {
|
|
10
11
|
throw new Error('metaService is required for the console addon. Set it in your createSingletonServices using PikkuMetaService from #pikku/pikku-meta-service.gen.js');
|
|
11
12
|
}
|
|
12
13
|
const metaService = existingMetaService;
|
|
13
14
|
const fabricApiUrl = (await variables.get('FABRIC_API_URL')) ?? 'https://api.pikkufabric.com';
|
|
14
15
|
const wiringService = new WiringService(metaService);
|
|
16
|
+
const secretAdminService = new SecretAdminService(secrets);
|
|
15
17
|
const addonService = new AddonService(fabricApiUrl);
|
|
16
18
|
await addonService.init();
|
|
17
19
|
const metaBasePath = existingMetaService?.basePath;
|
|
@@ -41,6 +43,7 @@ export const createSingletonServices = pikkuAddonServices(async (_config, { vari
|
|
|
41
43
|
return {
|
|
42
44
|
metaService,
|
|
43
45
|
wiringService,
|
|
46
|
+
secretAdminService,
|
|
44
47
|
addonService,
|
|
45
48
|
workflowService,
|
|
46
49
|
workflowRunService,
|
|
@@ -54,6 +57,11 @@ export const createSingletonServices = pikkuAddonServices(async (_config, { vari
|
|
|
54
57
|
coverageService,
|
|
55
58
|
scopeService,
|
|
56
59
|
webhookService,
|
|
60
|
+
// Forwarded rather than constructed: the sink is the application's
|
|
61
|
+
// choice, and an addon that made its own would read a trail nobody
|
|
62
|
+
// writes to. Absent when the app configured none, which is what
|
|
63
|
+
// `getAudits` reports as `readable: false`.
|
|
64
|
+
audit,
|
|
57
65
|
codeEditService,
|
|
58
66
|
stateDiffService,
|
|
59
67
|
dbSchemaService,
|
package/dist/src/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CACvD,KAAK,EACH,OAAO,EACP,EACE,SAAS,EACT,WAAW,EAAE,mBAAmB,EAChC,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,IAAI,GACL,EACD,EAAE;IACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,oJAAoJ,CACrJ,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,mBAAmB,CAAA;IACvC,MAAM,YAAY,GAChB,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,6BAA6B,CAAA;IAE1E,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,MAAM,YAAY,GAAG,mBAAmB,EAAE,QAAQ,CAAA;IAClD,IAAI,eAAe,GAA2B,IAAI,CAAA;IAClD,IAAI,gBAAgB,GAA4B,IAAI,CAAA;IACpD,IAAI,eAAe,GAA2B,IAAI,CAAA;IAClD,IAAI,gBAAgB,GAA4B,IAAI,CAAA;IACpD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QACjD,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACpD,eAAe,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;QAClD,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QAClE,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,iCAAiC,CAAA;YACtD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;YACtD,eAAe,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,aAAa;QACb,YAAY;QACZ,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,SAAS;QACT,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,YAAY;QACZ,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,IAAI;KACL,CAAA;AACH,CAAC,CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
CoreConfig,
|
|
3
|
+
CoreServices,
|
|
4
|
+
CoreSingletonServices,
|
|
5
|
+
CoreUserSession,
|
|
6
|
+
} from '@pikku/core'
|
|
7
|
+
import type { MetaService } from '@pikku/core/services'
|
|
8
|
+
import type { WiringService } from '../src/services/wiring.service.js'
|
|
9
|
+
import type { AddonService } from '../src/services/addon.service.js'
|
|
10
|
+
import type { CodeEditService } from '../src/services/code-edit.service.js'
|
|
11
|
+
import type { StateDiffService } from '../src/services/state-diff.service.js'
|
|
12
|
+
import type { DbSchemaService } from '../src/services/db-schema.service.js'
|
|
13
|
+
import type { KnowledgeService } from '../src/services/knowledge.service.js'
|
|
14
|
+
import type { SecretAdminService } from '../src/services/secret-admin.service.js'
|
|
15
|
+
import type { BetterAuthInstance } from '@pikku/better-auth'
|
|
16
|
+
|
|
17
|
+
export interface Config extends CoreConfig {}
|
|
18
|
+
|
|
19
|
+
export interface UserSession extends CoreUserSession {}
|
|
20
|
+
|
|
21
|
+
export interface SingletonServices extends CoreSingletonServices<Config> {
|
|
22
|
+
metaService: MetaService
|
|
23
|
+
wiringService: WiringService
|
|
24
|
+
/**
|
|
25
|
+
* Secret administration. The console's own surface for it — the addon holds
|
|
26
|
+
* the `SecretService` so no console function has to.
|
|
27
|
+
*/
|
|
28
|
+
secretAdminService: SecretAdminService
|
|
29
|
+
addonService: AddonService
|
|
30
|
+
codeEditService: CodeEditService | null
|
|
31
|
+
stateDiffService: StateDiffService | null
|
|
32
|
+
dbSchemaService: DbSchemaService | null
|
|
33
|
+
knowledgeService: KnowledgeService | null
|
|
34
|
+
/**
|
|
35
|
+
* The host's resolved better-auth instance, wired by `pikkuBetterAuth`. The
|
|
36
|
+
* console never constructs it — it is declared here only so the functions
|
|
37
|
+
* that read the auth adapter (e.g. the user directory) are typed rather than
|
|
38
|
+
* casting. Absent when the host wires no auth at all.
|
|
39
|
+
*/
|
|
40
|
+
auth?: () => Promise<BetterAuthInstance>
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface Services extends CoreServices<SingletonServices> {}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pikku/addon-console",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.40",
|
|
4
4
|
"description": "Console addon for Pikku — functions powering the Pikku Console UI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"imports": {
|
|
7
7
|
"#pikku": {
|
|
8
|
-
"types": "
|
|
8
|
+
"types": "./dist/.pikku/pikku-types.gen.d.ts",
|
|
9
9
|
"import": "./dist/.pikku/pikku-types.gen.js",
|
|
10
10
|
"default": "./dist/.pikku/pikku-types.gen.js"
|
|
11
11
|
}
|
|
@@ -32,15 +32,15 @@
|
|
|
32
32
|
"dist"
|
|
33
33
|
],
|
|
34
34
|
"scripts": {
|
|
35
|
-
"build": "pikku all && tsc && (cp .pikku/rpc/*.d.ts dist/.pikku/rpc/ 2>/dev/null || true) && (cp .pikku/agent/*.d.ts dist/.pikku/agent/ 2>/dev/null || true) && (cp .pikku/workflow/*.d.ts dist/.pikku/workflow/ 2>/dev/null || true) && (mkdir -p dist/.pikku/function && cp .pikku/function/*-verbose.gen.json dist/.pikku/function/ 2>/dev/null || true)",
|
|
35
|
+
"build": "pikku all && tsc && (cp .pikku/rpc/*.d.ts dist/.pikku/rpc/ 2>/dev/null || true) && (cp .pikku/agent/*.d.ts dist/.pikku/agent/ 2>/dev/null || true) && (cp .pikku/workflow/*.d.ts dist/.pikku/workflow/ 2>/dev/null || true) && (mkdir -p dist/.pikku/function && cp .pikku/function/*-verbose.gen.json dist/.pikku/function/ 2>/dev/null || true) && (mkdir -p dist/types && cp types/*.d.ts dist/types/)",
|
|
36
36
|
"pikku": "pikku all",
|
|
37
37
|
"pretest": "pikku all",
|
|
38
38
|
"test": "tsc --noEmit",
|
|
39
39
|
"test:coverage": "bash run-tests.sh --coverage"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@pikku/better-auth": "^0.12.
|
|
43
|
-
"@pikku/core": "^0.12.
|
|
42
|
+
"@pikku/better-auth": "^0.12.23",
|
|
43
|
+
"@pikku/core": "^0.12.82"
|
|
44
44
|
},
|
|
45
45
|
"peerDependenciesMeta": {
|
|
46
46
|
"@pikku/better-auth": {
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@pikku/better-auth": "^0.12.
|
|
52
|
-
"@pikku/cli": "^0.12.
|
|
53
|
-
"@pikku/core": "^0.12.
|
|
51
|
+
"@pikku/better-auth": "^0.12.23",
|
|
52
|
+
"@pikku/cli": "^0.12.102",
|
|
53
|
+
"@pikku/core": "^0.12.82",
|
|
54
54
|
"oauth2-mock-server": "^7.1.1",
|
|
55
55
|
"typescript": "^6.0.3"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@pikku/knowledge": "^0.12.
|
|
58
|
+
"@pikku/knowledge": "^0.12.5",
|
|
59
59
|
"json-schema": "^0.4.0",
|
|
60
60
|
"open": "^10.0.0"
|
|
61
61
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "generatedAt": { "type": "string" }, "summary": { "type": "object", "properties": { "total": { "type": "number" }, "covered": { "type": "number" }, "partial": { "type": "number" }, "uncovered": { "type": "number" }, "unknown": { "type": "number" }, "overallRatio": { "type": "number" } }, "required": ["total", "covered", "partial", "uncovered", "unknown", "overallRatio"], "additionalProperties": false }, "functions": { "type": "array", "items": { "$ref": "#/definitions/FunctionCoverageEntry" } } }, "required": ["generatedAt", "summary", "functions"], "additionalProperties": false, "definitions": { "FunctionCoverageEntry": { "type": "object", "properties": { "name": { "type": "string" }, "sourceFile": { "type": "string" }, "exposed": { "type": "boolean" }, "description": { "type": ["string", "null"] }, "coveredLines": { "type": "number" }, "totalLines": { "type": "number" }, "missedLines": { "type": "array", "items": { "type": "number" } }, "ratio": { "type": "number" }, "status": { "$ref": "#/definitions/CoverageStatus" } }, "required": ["name", "sourceFile", "exposed", "description", "coveredLines", "totalLines", "missedLines", "ratio", "status"], "additionalProperties": false }, "CoverageStatus": { "type": "string", "enum": ["covered", "partial", "uncovered", "unknown"] } } }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "agentName": { "type": "string" } }, "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "array", "items": { "type": "object", "properties": { "workflowName": { "type": "string" }, "graphHash": { "type": "string" }, "graph": {} }, "required": ["workflowName", "graphHash", "graph"], "additionalProperties": false }, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "array", "items": { "$ref": "#/definitions/AddonPackageInfo" }, "definitions": { "AddonPackageInfo": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "displayName": { "type": "string" }, "version": { "type": "string" }, "description": { "type": "string" }, "author": { "type": "string" }, "repository": { "type": "string" }, "license": { "type": "string" }, "readme": { "type": "string" }, "icon": { "type": "string" }, "publishedAt": { "type": "string" }, "updatedAt": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "categories": { "type": "array", "items": { "type": "string" } }, "functions": { "$ref": "#/definitions/FunctionsMeta" }, "agents": { "type": "object", "additionalProperties": {} }, "secrets": { "type": "object", "additionalProperties": {} }, "credentials": { "type": "object", "additionalProperties": {}, "description": "OAuth2 + wire credentials the addon declares (from its own `credentials/pikku-credentials-meta.gen.json`). Entries with an `oauth2` field are OAuth integrations to connect; the rest are wire credentials." }, "variables": { "type": "object", "additionalProperties": {} }, "httpRoutes": { "$ref": "#/definitions/HTTPWiringsMeta" }, "channels": { "$ref": "#/definitions/ChannelsMeta" }, "cli": { "type": "object", "additionalProperties": { "$ref": "#/definitions/CLIProgramMeta" } }, "mcp": { "anyOf": [{ "$ref": "#/definitions/McpMeta" }, { "type": "null" }] }, "schemas": { "type": "object", "additionalProperties": {} } }, "required": ["id", "name", "displayName", "version", "description", "author", "publishedAt", "updatedAt", "tags", "categories", "functions", "agents", "secrets", "credentials", "variables", "httpRoutes", "channels", "cli", "mcp", "schemas"], "additionalProperties": false }, "FunctionsMeta": { "type": "object", "additionalProperties": { "$ref": "#/definitions/FunctionMeta" } }, "FunctionMeta": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string" }, "functionType": { "type": "string", "enum": ["user", "inline", "helper"] }, "funcWrapper": { "type": "string" }, "services": { "$ref": "#/definitions/FunctionServicesMeta" }, "wires": { "$ref": "#/definitions/FunctionWiresMeta" }, "inputs": { "anyOf": [{ "type": "array", "items": { "type": "string" } }, { "type": "null" }] }, "outputs": { "anyOf": [{ "type": "array", "items": { "type": "string" } }, { "type": "null" }] }, "middleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } }, "permissions": { "type": "array", "items": { "$ref": "#/definitions/PermissionMetadata" } }, "isDirectFunction": { "type": "boolean" }, "sourceFile": { "type": "string" }, "exportedName": { "type": "string" }, "bodySourceFile": { "type": "string", "description": "File containing the handler body when it differs from sourceFile (imported handlers)" }, "bodyStart": { "type": "number", "description": "1-indexed first line of the handler body (verbose meta; coverage mapping)" }, "bodyEnd": { "type": "number", "description": "1-indexed last line of the handler body (verbose meta; coverage mapping)" }, "pikkuFuncId": { "type": "string" }, "packageName": { "type": "string" }, "title": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "summary": { "type": "string" }, "description": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "inputSchemaName": { "type": ["string", "null"] }, "outputSchemaName": { "type": ["string", "null"] }, "scopes": { "type": "array", "items": { "type": "string" }, "description": "Scopes the session must hold to run this function. All are required (AND)." }, "expose": { "type": "boolean" }, "remote": { "type": "boolean" }, "mcp": { "type": "boolean" }, "readonly": { "type": "boolean" }, "deploy": { "type": "string", "enum": ["serverless", "server", "auto"] }, "sessionless": { "type": "boolean" }, "workflowQueued": { "type": "boolean", "description": "When true, workflow steps calling this function are dispatched via the queue. No queue service configured is a hard error." }, "workflowRetries": { "type": "number", "description": "Retry count when this function is used as a workflow step." }, "workflowTimeout": { "type": "string", "description": "Timeout when this function is used as a workflow step (e.g. '30s', '5m')." }, "version": { "type": "number" }, "approvalRequired": { "type": "boolean" }, "approvalDescription": { "type": "string" }, "implementationHash": { "type": "string" }, "contractHash": { "type": "string" }, "inputHash": { "type": "string" }, "outputHash": { "type": "string" } }, "required": ["inputSchemaName", "outputSchemaName", "pikkuFuncId"] }, "FunctionServicesMeta": { "type": "object", "properties": { "optimized": { "type": "boolean" }, "services": { "type": "array", "items": { "type": "string" } } }, "required": ["optimized", "services"], "additionalProperties": false }, "FunctionWiresMeta": { "type": "object", "properties": { "optimized": { "type": "boolean" }, "wires": { "type": "array", "items": { "type": "string" } } }, "required": ["optimized", "wires"], "additionalProperties": false }, "MiddlewareMetadata": { "anyOf": [{ "type": "object", "properties": { "type": { "type": "string", "const": "http" }, "route": { "type": "string" } }, "required": ["type", "route"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "tag" }, "tag": { "type": "string" } }, "required": ["type", "tag"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "wire" }, "name": { "type": "string" }, "inline": { "type": "boolean" } }, "required": ["type", "name"], "additionalProperties": false }], "description": "Metadata for middleware at any level\n- type: 'http' = HTTP route middleware group (references httpGroup in pikkuState)\n- type: 'tag' = Tag-based middleware group (references tagGroup in pikkuState)\n- type: 'wire' = Wire-level individual middleware" }, "PermissionMetadata": { "type": "object", "properties": { "type": { "type": "string", "const": "wire" }, "name": { "type": "string" }, "inline": { "type": "boolean" } }, "required": ["type", "name"], "additionalProperties": false, "description": "A reference to a permission function a function declares, resolved by name. Used at filter time (e.g. listing agent tools) to run the session-only (pikkuAuth) predicates without request data. Permissions are function-scoped only — there are no wire- or tag-level permission references." }, "HTTPWiringsMeta": { "type": "object", "properties": { "post": { "type": "object", "additionalProperties": { "$ref": "#/definitions/HTTPWiringMeta" } }, "get": { "type": "object", "additionalProperties": { "$ref": "#/definitions/HTTPWiringMeta" } }, "delete": { "type": "object", "additionalProperties": { "$ref": "#/definitions/HTTPWiringMeta" } }, "patch": { "type": "object", "additionalProperties": { "$ref": "#/definitions/HTTPWiringMeta" } }, "head": { "type": "object", "additionalProperties": { "$ref": "#/definitions/HTTPWiringMeta" } }, "put": { "type": "object", "additionalProperties": { "$ref": "#/definitions/HTTPWiringMeta" } }, "options": { "type": "object", "additionalProperties": { "$ref": "#/definitions/HTTPWiringMeta" } } }, "required": ["post", "get", "delete", "patch", "head", "put", "options"], "additionalProperties": false }, "HTTPWiringMeta": { "type": "object", "additionalProperties": false, "properties": { "route": { "type": "string" }, "method": { "$ref": "#/definitions/HTTPMethod" }, "refTarget": { "type": "string" }, "params": { "type": "array", "items": { "type": "string" } }, "query": { "type": "array", "items": { "type": "string" } }, "inputTypes": { "$ref": "#/definitions/HTTPFunctionMetaInputTypes" }, "headersSchemaName": { "type": "string" }, "sse": { "type": "boolean", "const": true }, "groupBasePath": { "type": "string" }, "pikkuFuncId": { "type": "string" }, "packageName": { "type": "string" }, "title": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "summary": { "type": "string" }, "description": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "middleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } }, "permissions": { "type": "array", "items": { "$ref": "#/definitions/PermissionMetadata" } } }, "required": ["method", "pikkuFuncId", "route"], "description": "Represents metadata for a set of HTTP wirings, including HTTP wiring details, methods, input/output types, and documentation." }, "HTTPMethod": { "type": "string", "enum": ["post", "get", "delete", "patch", "head", "put", "options"], "description": "Represents the HTTP methods supported for API HTTP wirings." }, "HTTPFunctionMetaInputTypes": { "type": "object", "properties": { "params": { "type": "string" }, "query": { "type": "string" }, "body": { "type": "string" } }, "additionalProperties": false, "description": "Represents the input types for HTTP wiring metadata, including parameters, query, and body types." }, "ChannelsMeta": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ChannelMeta" } }, "ChannelMeta": { "type": "object", "properties": { "name": { "type": "string" }, "route": { "type": "string" }, "params": { "type": "array", "items": { "type": "string" } }, "query": { "type": "array", "items": { "type": "string" } }, "input": { "type": ["string", "null"] }, "inputTypes": { "$ref": "#/definitions/HTTPFunctionMetaInputTypes" }, "connect": { "anyOf": [{ "$ref": "#/definitions/ChannelMessageMeta" }, { "type": "null" }] }, "disconnect": { "anyOf": [{ "$ref": "#/definitions/ChannelMessageMeta" }, { "type": "null" }] }, "message": { "anyOf": [{ "$ref": "#/definitions/ChannelMessageMeta" }, { "type": "null" }] }, "messageWirings": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "$ref": "#/definitions/ChannelMessageMeta" } } }, "binary": { "type": ["boolean", "null"] }, "summary": { "type": "string" }, "description": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } }, "middleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } }, "channelMiddleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } } }, "required": ["name", "route", "input", "connect", "disconnect", "message", "messageWirings"], "additionalProperties": false }, "ChannelMessageMeta": { "type": "object", "properties": { "pikkuFuncId": { "type": "string" }, "packageName": { "type": "string" }, "summary": { "type": "string" }, "description": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } }, "middleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } } }, "required": ["pikkuFuncId"], "additionalProperties": false }, "CLIProgramMeta": { "type": "object", "properties": { "program": { "type": "string" }, "commands": { "type": "object", "additionalProperties": { "$ref": "#/definitions/CLICommandMeta" } }, "options": { "type": "object", "additionalProperties": { "$ref": "#/definitions/CLIOption" } }, "defaultRenderName": { "type": "string" } }, "required": ["program", "commands", "options"], "additionalProperties": false, "description": "CLI metadata collection (per program)" }, "CLICommandMeta": { "type": "object", "properties": { "parameters": { "type": "string" }, "pikkuFuncId": { "type": "string" }, "packageName": { "type": "string" }, "positionals": { "type": "array", "items": { "$ref": "#/definitions/CLIPositional" } }, "options": { "type": "object", "additionalProperties": { "$ref": "#/definitions/CLIOption" } }, "renderName": { "type": "string" }, "summary": { "type": "string" }, "description": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } }, "subcommands": { "type": "object", "additionalProperties": { "$ref": "#/definitions/CLICommandMeta" } }, "middleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } }, "isDefault": { "type": "boolean" } }, "required": ["pikkuFuncId", "positionals", "options"], "additionalProperties": false, "description": "CLI command metadata for runtime" }, "CLIPositional": { "type": "object", "properties": { "name": { "type": "string" }, "required": { "type": "boolean" }, "variadic": { "type": "boolean" } }, "required": ["name", "required"], "additionalProperties": false, "description": "Positional argument definition" }, "CLIOption": { "type": "object", "properties": { "description": { "type": "string" }, "short": { "type": "string" }, "default": {}, "choices": { "type": "array", "items": {} }, "array": { "type": "boolean" }, "required": { "type": "boolean" } }, "required": ["description"], "additionalProperties": false, "description": "CLI option definition" }, "McpMeta": { "type": "object", "properties": { "toolsMeta": { "$ref": "#/definitions/MCPToolMeta" }, "resourcesMeta": { "$ref": "#/definitions/MCPResourceMeta" }, "promptsMeta": { "$ref": "#/definitions/MCPPromptMeta" } }, "required": ["toolsMeta", "resourcesMeta", "promptsMeta"], "additionalProperties": false }, "MCPToolMeta": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": false, "properties": { "pikkuFuncId": { "type": "string" }, "inputSchema": { "type": ["string", "null"] }, "outputSchema": { "type": ["string", "null"] }, "middleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } }, "name": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "summary": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } }, "streaming": { "type": "boolean" } }, "required": ["inputSchema", "name", "outputSchema", "pikkuFuncId"] }, "description": "Represents metadata for MCP tools, including name, description, and documentation." }, "MCPResourceMeta": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": false, "properties": { "pikkuFuncId": { "type": "string" }, "inputSchema": { "type": ["string", "null"] }, "outputSchema": { "type": ["string", "null"] }, "middleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } }, "uri": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "summary": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "mimeType": { "type": "string" }, "size": { "type": "number" }, "streaming": { "type": "boolean" }, "tags": { "type": "array", "items": { "type": "string" } } }, "required": ["description", "inputSchema", "outputSchema", "pikkuFuncId", "title", "uri"] }, "description": "Represents metadata for MCP resources, including name, description, and documentation." }, "MCPPromptMeta": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": false, "properties": { "pikkuFuncId": { "type": "string" }, "inputSchema": { "type": ["string", "null"] }, "outputSchema": { "type": ["string", "null"] }, "arguments": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "required": { "type": "boolean" } }, "required": ["name", "description", "required"], "additionalProperties": false } }, "middleware": { "type": "array", "items": { "$ref": "#/definitions/MiddlewareMetadata" } }, "name": { "type": "string" }, "description": { "type": "string" }, "summary": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } } }, "required": ["arguments", "description", "inputSchema", "name", "outputSchema", "pikkuFuncId"] }, "description": "Represents metadata for MCP prompts, including name, description, and arguments." } } }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "service": { "type": "string" } }, "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "array", "items": { "$ref": "#/definitions/StubCallEntry" }, "definitions": { "StubCallEntry": { "type": "object", "properties": { "service": { "type": "string" }, "method": { "type": "string" }, "args": { "type": "array", "items": {} } }, "required": ["service", "method", "args"], "additionalProperties": false } } }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "credentialName": { "type": "string" }, "callbackUrl": { "type": "string" }, "userId": { "type": "string" } }, "required": ["credentialName"], "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "authUrl": { "type": "string" } }, "required": ["authUrl"], "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "credentialName": { "type": "string" } }, "required": ["credentialName"], "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "code": { "type": "string" }, "state": { "type": "string" } }, "required": ["code", "state"], "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "credentialName": { "type": "string" } }, "required": ["credentialName"], "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "credentialName": { "type": "string" } }, "required": ["credentialName"], "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } }, "required": ["success"], "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "credentialName": { "type": "string" } }, "required": ["credentialName"], "additionalProperties": false, "definitions": {} }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "connected": { "type": "boolean" }, "hasRefreshToken": { "type": "boolean" }, "expiresAt": { "type": "number" }, "isExpired": { "type": "boolean" } }, "required": ["connected"], "additionalProperties": false, "definitions": {} }
|