@theokit/sdk 1.6.2 → 1.7.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 +187 -0
- package/dist/a2a/agent-mailbox.d.cts +27 -0
- package/dist/a2a/agent-mailbox.d.ts +27 -0
- package/dist/a2a/index.cjs +16850 -0
- package/dist/a2a/index.cjs.map +1 -0
- package/dist/a2a/index.d.cts +9 -0
- package/dist/a2a/index.d.ts +9 -0
- package/dist/a2a/index.js +16844 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/a2a/message-bus.d.cts +27 -0
- package/dist/a2a/message-bus.d.ts +27 -0
- package/dist/a2a/subagent.d.cts +25 -0
- package/dist/a2a/subagent.d.ts +25 -0
- package/dist/a2a/types.d.cts +12 -0
- package/dist/a2a/types.d.ts +12 -0
- package/dist/agent.d.ts +1 -1
- package/dist/client/index.cjs +73 -0
- package/dist/client/index.cjs.map +1 -0
- package/dist/client/index.d.cts +7 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.js +71 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/theokit-client.d.cts +18 -0
- package/dist/client/theokit-client.d.ts +18 -0
- package/dist/client/types.d.cts +19 -0
- package/dist/client/types.d.ts +19 -0
- package/dist/{run-DkCD5DeO.d.cts → cron-BnywDYLq.d.cts} +496 -910
- package/dist/{run-DkCD5DeO.d.ts → cron-CtZvJD9J.d.ts} +496 -910
- package/dist/cron.cjs +4285 -2893
- package/dist/cron.cjs.map +1 -1
- package/dist/cron.d.cts +2 -3
- package/dist/cron.d.ts +2 -71
- package/dist/cron.js +4289 -2897
- package/dist/cron.js.map +1 -1
- package/dist/{errors-CvAeEWgE.d.ts → errors-ChqOmFH1.d.cts} +52 -6
- package/dist/{errors-CK8brCJ1.d.cts → errors-DV9e0rcp.d.ts} +52 -6
- package/dist/errors.cjs +218 -3
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.cts +2 -3
- package/dist/errors.d.ts +50 -4
- package/dist/errors.js +217 -4
- package/dist/errors.js.map +1 -1
- package/dist/eval.cjs +4285 -2893
- package/dist/eval.cjs.map +1 -1
- package/dist/eval.d.cts +35 -0
- package/dist/eval.js +4289 -2897
- package/dist/eval.js.map +1 -1
- package/dist/event-bus.d.ts +23 -0
- package/dist/index.cjs +5132 -4200
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +298 -278
- package/dist/index.d.ts +1898 -24
- package/dist/index.js +6441 -5509
- package/dist/index.js.map +1 -1
- package/dist/internal/agent-loop/loop-context-init.d.ts +2 -0
- package/dist/internal/agent-loop/tool-dispatch.d.ts +22 -1
- package/dist/internal/auth/api-key-validator.d.ts +46 -0
- package/dist/internal/llm/anthropic-shared.d.ts +8 -1
- package/dist/internal/llm/retry.d.ts +22 -0
- package/dist/internal/llm/types.d.ts +47 -1
- package/dist/internal/memory/active-memory-cache.d.ts +3 -3
- package/dist/internal/memory/active-memory-types.d.ts +8 -0
- package/dist/internal/memory/active-memory.d.ts +24 -20
- package/dist/internal/memory/adapters/azure-openai-embedding.d.ts +2 -0
- package/dist/internal/memory/adapters/cohere-embedding.d.ts +2 -0
- package/dist/internal/memory/adapters/gemini-embedding.d.ts +2 -0
- package/dist/internal/memory/adapters/jina-embedding.d.ts +2 -0
- package/dist/internal/memory/index-manager-contract.d.ts +26 -0
- package/dist/internal/memory/index-manager-dispatch.d.ts +1 -1
- package/dist/internal/memory/index-manager.d.ts +8 -26
- package/dist/internal/memory/{chunk-markdown.d.ts → storage/chunk-markdown.d.ts} +1 -1
- package/dist/internal/memory/{markdown-store.d.ts → storage/markdown-store.d.ts} +1 -1
- package/dist/internal/memory/{reader.d.ts → storage/reader.d.ts} +1 -1
- package/dist/internal/observability/context.d.cts +23 -0
- package/dist/internal/observability/context.d.ts +23 -0
- package/dist/internal/observability/index.cjs +38 -0
- package/dist/internal/observability/index.cjs.map +1 -0
- package/dist/internal/observability/index.d.cts +8 -0
- package/dist/internal/observability/index.d.ts +8 -0
- package/dist/internal/observability/index.js +33 -0
- package/dist/internal/observability/index.js.map +1 -0
- package/dist/internal/observability/tracer-loader.d.cts +20 -0
- package/dist/internal/persistence/conversation-storage-fs.d.cts +37 -0
- package/dist/internal/persistence/conversation-storage-memory.d.cts +24 -0
- package/dist/internal/persistence/credential-pool-store.d.cts +32 -0
- package/dist/internal/persistence/credential-pool-store.d.ts +32 -0
- package/dist/internal/persistence/cwd-mutex.d.cts +1 -0
- package/dist/internal/persistence/exclusive-create.d.cts +22 -0
- package/dist/internal/persistence/exclusive-create.d.ts +22 -0
- package/dist/internal/persistence/file-lock.d.cts +14 -0
- package/dist/internal/persistence/fts5-sanitize.d.cts +16 -0
- package/dist/internal/persistence/index.cjs +359 -0
- package/dist/internal/persistence/index.cjs.map +1 -0
- package/dist/internal/persistence/index.d.cts +20 -0
- package/dist/internal/persistence/index.d.ts +20 -0
- package/dist/internal/persistence/index.js +341 -0
- package/dist/internal/persistence/index.js.map +1 -0
- package/dist/internal/persistence/markdown-config-loader.d.cts +35 -0
- package/dist/internal/persistence/paths.d.cts +19 -0
- package/dist/internal/persistence/persistence-schema.d.cts +21 -0
- package/dist/internal/persistence/persistence-schema.d.ts +4 -0
- package/dist/internal/persistence/schema-version.d.cts +13 -0
- package/dist/internal/persistence/sqlite-cas.d.cts +25 -0
- package/dist/internal/persistence/sqlite-cas.d.ts +25 -0
- package/dist/internal/persistence/sqlite-wal.d.cts +10 -0
- package/dist/internal/plugins/context.d.cts +31 -0
- package/dist/internal/plugins/index.cjs +228 -0
- package/dist/internal/plugins/index.cjs.map +1 -0
- package/dist/internal/plugins/index.d.cts +8 -0
- package/dist/internal/plugins/index.d.ts +8 -0
- package/dist/internal/plugins/index.js +222 -0
- package/dist/internal/plugins/index.js.map +1 -0
- package/dist/internal/plugins/lifecycle.d.cts +14 -0
- package/dist/internal/plugins/lifecycle.d.ts +14 -0
- package/dist/internal/plugins/manager.d.cts +37 -0
- package/dist/internal/plugins/types.d.cts +102 -0
- package/dist/internal/providers/catalog-loader.d.ts +39 -0
- package/dist/internal/runtime/agent-session-store.d.ts +1 -1
- package/dist/internal/runtime/agent-session.d.ts +1 -0
- package/dist/internal/runtime/budget-tracker.d.ts +73 -0
- package/dist/internal/runtime/{context-manager.d.ts → context/context-manager.d.ts} +1 -1
- package/dist/internal/runtime/{fixture-events.d.ts → fixtures/fixture-events.d.ts} +1 -1
- package/dist/internal/runtime/{fixture-run-base.d.ts → fixtures/fixture-run-base.d.ts} +4 -4
- package/dist/internal/runtime/{fixture-scripts.d.ts → fixtures/fixture-scripts.d.ts} +1 -1
- package/dist/internal/runtime/local-agent-bootstrap.d.ts +2 -2
- package/dist/internal/runtime/local-agent-memory-provider.d.ts +57 -0
- package/dist/internal/runtime/memory-path-selector.d.ts +73 -0
- package/dist/internal/runtime/memory-provider.d.ts +165 -0
- package/dist/internal/runtime/{agent-registry.d.ts → registry/agent-registry-contract.d.ts} +15 -9
- package/dist/internal/runtime/registry/agent-registry.d.ts +7 -0
- package/dist/internal/runtime/{live-agent-registry.d.ts → registry/live-agent-registry.d.ts} +1 -1
- package/dist/internal/runtime/{run-registry.d.ts → registry/run-registry.d.ts} +1 -1
- package/dist/internal/runtime/session-types.d.ts +35 -0
- package/dist/internal/runtime/system-prompt/sources/skills-provider.d.ts +1 -0
- package/dist/internal/runtime/validate-response.d.ts +18 -0
- package/dist/internal/security/index.cjs +361 -0
- package/dist/internal/security/index.cjs.map +1 -0
- package/dist/internal/security/index.d.cts +11 -0
- package/dist/internal/security/index.js +350 -0
- package/dist/internal/security/index.js.map +1 -0
- package/dist/internal/security/path-guard.d.cts +59 -0
- package/dist/internal/security/path-guard.d.ts +3 -0
- package/dist/internal/security/redact.d.cts +21 -0
- package/dist/internal/security/secret-redactor.d.cts +1 -0
- package/dist/internal/security/secret-redactor.d.ts +1 -0
- package/dist/internal/security/test-reset.d.cts +10 -0
- package/dist/internal/security/test-reset.d.ts +10 -0
- package/dist/internal/telemetry/adapters/arize.d.ts +2 -0
- package/dist/internal/telemetry/adapters/braintrust.d.ts +2 -0
- package/dist/internal/telemetry/adapters/datadog.d.ts +2 -0
- package/dist/internal/telemetry/adapters/langsmith.d.ts +2 -0
- package/dist/internal/telemetry/span-names.d.ts +6 -0
- package/dist/internal/telemetry/tracer.d.ts +1 -0
- package/dist/internal/workflow/evented-executor.d.ts +42 -0
- package/dist/internal/workflow/scheduler.d.ts +23 -0
- package/dist/internal/zod/to-json-schema.d.ts +5 -15
- package/dist/job-queue.d.ts +28 -0
- package/dist/path-safety.cjs +67 -6
- package/dist/path-safety.cjs.map +1 -1
- package/dist/path-safety.d.cts +15 -0
- package/dist/path-safety.d.ts +1 -1
- package/dist/path-safety.js +67 -7
- package/dist/path-safety.js.map +1 -1
- package/dist/permission-engine.d.ts +21 -0
- package/dist/provider-catalog.json +702 -0
- package/dist/rag/index.cjs +136 -0
- package/dist/rag/index.cjs.map +1 -0
- package/dist/rag/index.d.cts +11 -0
- package/dist/rag/index.d.ts +11 -0
- package/dist/rag/index.js +129 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/reranker.d.cts +26 -0
- package/dist/rag/reranker.d.ts +26 -0
- package/dist/rag/retriever.d.cts +25 -0
- package/dist/rag/retriever.d.ts +25 -0
- package/dist/rag/text-splitter.d.cts +12 -0
- package/dist/rag/text-splitter.d.ts +12 -0
- package/dist/rag/types.d.cts +37 -0
- package/dist/rag/types.d.ts +37 -0
- package/dist/run-DrwUpFxZ.d.cts +823 -0
- package/dist/run-DrwUpFxZ.d.ts +823 -0
- package/dist/sandbox/index.cjs +133 -0
- package/dist/sandbox/index.cjs.map +1 -0
- package/dist/sandbox/index.d.cts +2 -0
- package/dist/sandbox/index.d.ts +2 -0
- package/dist/sandbox/index.js +128 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/sandbox/local-sandbox.d.cts +17 -0
- package/dist/sandbox/local-sandbox.d.ts +17 -0
- package/dist/sandbox/types.d.cts +44 -0
- package/dist/sandbox/types.d.ts +44 -0
- package/dist/server/adapter/express.d.cts +9 -0
- package/dist/server/adapter/express.d.ts +9 -0
- package/dist/server/adapter/fastify.d.cts +9 -0
- package/dist/server/adapter/fastify.d.ts +9 -0
- package/dist/server/adapter/hono.d.cts +9 -0
- package/dist/server/adapter/hono.d.ts +9 -0
- package/dist/server/adapter/index.d.cts +8 -0
- package/dist/server/adapter/index.d.ts +8 -0
- package/dist/server/adapter/shared-handler.d.cts +9 -0
- package/dist/server/adapter/shared-handler.d.ts +9 -0
- package/dist/server/adapter/types.d.cts +33 -0
- package/dist/server/adapter/types.d.ts +33 -0
- package/dist/server/auth/errors.d.cts +53 -0
- package/dist/server/auth/errors.d.ts +53 -0
- package/dist/server/auth/index.cjs +38 -41
- package/dist/server/auth/index.cjs.map +1 -1
- package/dist/server/auth/index.d.cts +11 -172
- package/dist/server/auth/index.d.ts +11 -172
- package/dist/server/auth/index.js +39 -42
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/auth/oauth-transaction-store.d.cts +39 -0
- package/dist/server/auth/oauth-transaction-store.d.ts +39 -0
- package/dist/server/auth/orchestrator.d.cts +8 -0
- package/dist/server/auth/orchestrator.d.ts +8 -0
- package/dist/server/auth/types.d.cts +91 -0
- package/dist/server/auth/types.d.ts +91 -0
- package/dist/server/auth/validate-return-to.d.cts +17 -0
- package/dist/server/auth/validate-return-to.d.ts +17 -0
- package/dist/server/errors-envelope.cjs +409 -0
- package/dist/server/errors-envelope.cjs.map +1 -0
- package/dist/server/errors-envelope.d.cts +61 -0
- package/dist/server/errors-envelope.d.ts +61 -0
- package/dist/server/errors-envelope.js +405 -0
- package/dist/server/errors-envelope.js.map +1 -0
- package/dist/subscription/define-subscription.d.cts +63 -0
- package/dist/subscription/define-subscription.d.ts +63 -0
- package/dist/subscription/index.cjs +402 -0
- package/dist/subscription/index.cjs.map +1 -0
- package/dist/subscription/index.d.cts +18 -0
- package/dist/subscription/index.d.ts +18 -0
- package/dist/subscription/index.js +394 -0
- package/dist/subscription/index.js.map +1 -0
- package/dist/subscription/internal/adapter-types.d.cts +11 -0
- package/dist/subscription/internal/adapter-types.d.ts +11 -0
- package/dist/subscription/internal/backpressure.d.cts +24 -0
- package/dist/subscription/internal/backpressure.d.ts +24 -0
- package/dist/subscription/internal/server-integration.d.cts +17 -0
- package/dist/subscription/internal/server-integration.d.ts +17 -0
- package/dist/subscription/internal/sse-encoder.d.cts +13 -0
- package/dist/subscription/internal/sse-encoder.d.ts +13 -0
- package/dist/subscription/internal/sse-parser.d.cts +15 -0
- package/dist/subscription/internal/sse-parser.d.ts +15 -0
- package/dist/subscription/internal/subscription-runtime.d.cts +9 -0
- package/dist/subscription/internal/subscription-runtime.d.ts +9 -0
- package/dist/subscription/internal/ws-adapter-node.d.cts +10 -0
- package/dist/subscription/internal/ws-adapter-node.d.ts +10 -0
- package/dist/subscription/theokit-subscribe.d.cts +41 -0
- package/dist/subscription/theokit-subscribe.d.ts +41 -0
- package/dist/subscription/types.d.cts +140 -0
- package/dist/subscription/types.d.ts +140 -0
- package/dist/task-store.cjs +30 -2
- package/dist/task-store.cjs.map +1 -1
- package/dist/task-store.d.cts +8 -0
- package/dist/task-store.js +31 -3
- package/dist/task-store.js.map +1 -1
- package/dist/types/agent-prims.d.ts +61 -0
- package/dist/types/agent.d.ts +48 -53
- package/dist/types/conversation.d.ts +20 -8
- package/dist/types/index.d.ts +0 -2
- package/dist/types/messages-base.d.ts +20 -0
- package/dist/types/messages.d.ts +1 -1
- package/dist/types/run.d.ts +1 -1
- package/dist/types/updates.d.ts +1 -1
- package/dist/voice/index.d.ts +7 -0
- package/dist/voice/openai-realtime.d.ts +21 -0
- package/dist/voice/types.d.ts +35 -0
- package/dist/workflow.cjs +179 -88
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +97 -0
- package/dist/workflow.js +180 -89
- package/dist/workflow.js.map +1 -1
- package/package.json +126 -25
- package/dist/budget.d.ts +0 -48
- package/dist/cache.d.ts +0 -74
- package/dist/cron-1yxL3K2S.d.cts +0 -221
- package/dist/cron-BYVdYzob.d.ts +0 -221
- package/dist/handoff.d.ts +0 -55
- package/dist/internal/budget/calendar-window.d.ts +0 -19
- package/dist/internal/budget/enforcement.d.ts +0 -32
- package/dist/internal/budget/ledger.d.ts +0 -25
- package/dist/internal/budget/normalize-usage.d.ts +0 -27
- package/dist/internal/budget/registry.d.ts +0 -16
- package/dist/internal/cache/cosine.d.ts +0 -14
- package/dist/internal/cache/embed-helper.d.ts +0 -15
- package/dist/internal/cache/key.d.ts +0 -15
- package/dist/internal/cache/lookup.d.ts +0 -28
- package/dist/internal/cache/store-handler.d.ts +0 -24
- package/dist/internal/cache/store-json.d.ts +0 -48
- package/dist/internal/cache/store.d.ts +0 -54
- package/dist/internal/cache/telemetry.d.ts +0 -20
- package/dist/internal/cache/ttl.d.ts +0 -11
- package/dist/internal/catalog/fixtures.d.ts +0 -16
- package/dist/internal/catalog/local-models.d.ts +0 -24
- package/dist/internal/handoff/dispatcher.d.ts +0 -29
- package/dist/internal/handoff/registry.d.ts +0 -23
- package/dist/internal/handoff/telemetry.d.ts +0 -18
- package/dist/internal/handoff/tool-injector.d.ts +0 -34
- package/dist/internal/memory/atomic-write.d.ts +0 -7
- package/dist/internal/memory/dreaming/diary.d.ts +0 -4
- package/dist/internal/memory/dreaming/phases.d.ts +0 -15
- package/dist/internal/memory/dreaming/run.d.ts +0 -10
- package/dist/internal/memory/migrate-sqlite-to-lance.d.ts +0 -15
- package/dist/memory-adapter-helpers.d.ts +0 -28
- package/dist/memory.d.ts +0 -123
- package/dist/migrate.d.ts +0 -33
- package/dist/security.d.ts +0 -67
- package/dist/task.d.ts +0 -87
- package/dist/theokit.d.ts +0 -84
- package/dist/tools/_path-scope.d.ts +0 -8
- package/dist/tools/_subprocess.d.ts +0 -28
- package/dist/tools/git-diff.d.ts +0 -22
- package/dist/tools/index.d.ts +0 -29
- package/dist/tools/list-dir.d.ts +0 -26
- package/dist/tools/read-file.d.ts +0 -31
- package/dist/tools/run-vitest.d.ts +0 -46
- package/dist/tools/search-text.d.ts +0 -32
- package/dist/tools.cjs +0 -690
- package/dist/tools.cjs.map +0 -1
- package/dist/tools.js +0 -683
- package/dist/tools.js.map +0 -1
- package/dist/trajectory-helpers.d.ts +0 -31
- package/dist/types/cache.d.ts +0 -76
- package/dist/types/handoff.d.ts +0 -135
- /package/dist/{internal/cron/run-job.d.ts → agent-helpers.d.ts} +0 -0
- /package/dist/internal/{cron/scheduler.d.ts → agent-loop/loop-llm-stream.d.ts} +0 -0
- /package/dist/internal/{cron/store.d.ts → agent-loop/tool-executors.d.ts} +0 -0
- /package/dist/internal/{cron/validate.d.ts → memory/index-manager-helpers.d.ts} +0 -0
- /package/dist/internal/memory/{session-loader.d.ts → storage/session-loader.d.ts} +0 -0
- /package/dist/internal/memory/{session-summary-writer.d.ts → storage/session-summary-writer.d.ts} +0 -0
- /package/dist/internal/memory/{transcript-store.d.ts → storage/transcript-store.d.ts} +0 -0
- /package/dist/internal/memory/{wiki-loader.d.ts → storage/wiki-loader.d.ts} +0 -0
- /package/dist/internal/{memory/cwd-mutex.d.ts → persistence/atomic-write.d.cts} +0 -0
- /package/dist/internal/runtime/{context-aggregator.d.ts → context/context-aggregator.d.ts} +0 -0
- /package/dist/internal/runtime/{context-discovery-runner.d.ts → context/context-discovery-runner.d.ts} +0 -0
- /package/dist/internal/runtime/{context-discovery.d.ts → context/context-discovery.d.ts} +0 -0
- /package/dist/internal/runtime/{context-frontmatter.d.ts → context/context-frontmatter.d.ts} +0 -0
- /package/dist/internal/runtime/{context-import-resolver.d.ts → context/context-import-resolver.d.ts} +0 -0
- /package/dist/internal/runtime/{context-loaders.d.ts → context/context-loaders.d.ts} +0 -0
- /package/dist/internal/runtime/{context-mdc-parser.d.ts → context/context-mdc-parser.d.ts} +0 -0
- /package/dist/internal/runtime/{fixture-responder.d.ts → fixtures/fixture-responder.d.ts} +0 -0
- /package/dist/internal/runtime/{fixture-types.d.ts → fixtures/fixture-types.d.ts} +0 -0
- /package/dist/internal/runtime/{plugins-manager.d.ts → local-agent-send.d.ts} +0 -0
- /package/dist/internal/runtime/{plugin-frontmatter.d.ts → plugins/plugin-frontmatter.d.ts} +0 -0
- /package/dist/internal/runtime/{system-prompt/providers/active-memory-provider.d.ts → plugins/plugins-manager.d.ts} +0 -0
- /package/dist/internal/runtime/{agent-factory-registry.d.ts → registry/agent-factory-registry.d.ts} +0 -0
- /package/dist/internal/runtime/{agent-registry-store.d.ts → registry/agent-registry-store.d.ts} +0 -0
- /package/dist/internal/runtime/system-prompt/{providers/base-provider.d.ts → sources/active-memory-provider.d.ts} +0 -0
- /package/dist/internal/runtime/system-prompt/{providers/context-provider.d.ts → sources/base-provider.d.ts} +0 -0
- /package/dist/internal/runtime/system-prompt/{providers/memory-provider.d.ts → sources/context-provider.d.ts} +0 -0
- /package/dist/internal/runtime/system-prompt/{providers/skills-provider.d.ts → sources/memory-provider.d.ts} +0 -0
package/dist/workflow.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var crypto = require('crypto');
|
|
3
4
|
var promises = require('fs/promises');
|
|
4
5
|
var path = require('path');
|
|
5
6
|
var module$1 = require('module');
|
|
6
7
|
var fs = require('fs');
|
|
7
8
|
var async_hooks = require('async_hooks');
|
|
8
|
-
var crypto = require('crypto');
|
|
9
9
|
var zod = require('zod');
|
|
10
10
|
|
|
11
11
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
@@ -19,6 +19,136 @@ var __export = (target, all) => {
|
|
|
19
19
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
+
// src/internal/security/redact.ts
|
|
23
|
+
function readEnvOnce() {
|
|
24
|
+
const raw = process.env.THEOKIT_REDACT_SECRETS;
|
|
25
|
+
if (raw === void 0) return true;
|
|
26
|
+
return ["1", "true", "yes", "on"].includes(raw.toLowerCase());
|
|
27
|
+
}
|
|
28
|
+
function maskToken(token) {
|
|
29
|
+
if (token.length < 18) return "***";
|
|
30
|
+
return `${token.slice(0, 6)}...${token.slice(-4)}`;
|
|
31
|
+
}
|
|
32
|
+
function coerceToString(value) {
|
|
33
|
+
if (typeof value === "string") return value;
|
|
34
|
+
if (value === null || value === void 0) return null;
|
|
35
|
+
if (typeof value === "object") {
|
|
36
|
+
try {
|
|
37
|
+
const s = JSON.stringify(value);
|
|
38
|
+
return s === void 0 ? null : s;
|
|
39
|
+
} catch {
|
|
40
|
+
return "[unredactable: circular]";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return String(value);
|
|
44
|
+
}
|
|
45
|
+
function redactSecrets(text, opts) {
|
|
46
|
+
const coerced = coerceToString(text);
|
|
47
|
+
if (coerced === null) return "";
|
|
48
|
+
if (!REDACT_ENABLED) return coerced;
|
|
49
|
+
let s = coerced;
|
|
50
|
+
for (const re of BUILTIN_PATTERNS) {
|
|
51
|
+
s = s.replace(re, (m) => maskToken(m));
|
|
52
|
+
}
|
|
53
|
+
for (const re of _extraPatterns) {
|
|
54
|
+
s = s.replace(re, (m) => maskToken(m));
|
|
55
|
+
}
|
|
56
|
+
{
|
|
57
|
+
s = s.replace(BEARER_PATTERN, (_, prefix) => `${prefix}***`);
|
|
58
|
+
s = s.replace(PARAM_PATTERN, (whole, prefix, value) => {
|
|
59
|
+
if (value.includes("...")) return whole;
|
|
60
|
+
return `${prefix}***`;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return s;
|
|
64
|
+
}
|
|
65
|
+
var REDACT_ENABLED, warnedOptOut, BUILTIN_PATTERNS, BEARER_PATTERN, PARAM_PATTERN, _extraPatterns;
|
|
66
|
+
var init_redact = __esm({
|
|
67
|
+
"src/internal/security/redact.ts"() {
|
|
68
|
+
REDACT_ENABLED = readEnvOnce();
|
|
69
|
+
warnedOptOut = false;
|
|
70
|
+
if (!REDACT_ENABLED && !warnedOptOut) {
|
|
71
|
+
process.stderr.write(
|
|
72
|
+
"[theokit-sdk] Secret redaction is DISABLED via THEOKIT_REDACT_SECRETS. Credentials may leak into errors, telemetry, logs, transcripts.\n"
|
|
73
|
+
);
|
|
74
|
+
warnedOptOut = true;
|
|
75
|
+
}
|
|
76
|
+
BUILTIN_PATTERNS = [
|
|
77
|
+
// T5.4: 30+ vendor prefixes (was 12 pre-T5.4). Order matters — more
|
|
78
|
+
// specific prefixes precede generic ones (e.g., sk-ant-admin01 before
|
|
79
|
+
// sk-ant-, sk-proj- before sk-). PEM block deliberately first so its
|
|
80
|
+
// multi-line span runs before any per-line patterns can fire.
|
|
81
|
+
/-----BEGIN[ ]+(?:RSA |EC |DSA |OPENSSH |ENCRYPTED |)PRIVATE KEY-----[\s\S]+?-----END[ ]+(?:RSA |EC |DSA |OPENSSH |ENCRYPTED |)PRIVATE KEY-----/g,
|
|
82
|
+
// JWT — exact 3-segment base64url. Dotted; the body floor of 4 chars per
|
|
83
|
+
// segment matches the minimum legal payload while skipping `a.b.c` noise.
|
|
84
|
+
/eyJ[A-Za-z0-9_-]{4,}\.eyJ[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]{4,}/g,
|
|
85
|
+
// Azure Storage SAS — match the sig= component (URL-encoded base64).
|
|
86
|
+
/(?<=[?&]sig=)[A-Za-z0-9%+/]{20,}/g,
|
|
87
|
+
// Anthropic
|
|
88
|
+
/sk-ant-admin01-[A-Za-z0-9_-]{10,}/g,
|
|
89
|
+
// Anthropic admin keys (must precede sk-ant-)
|
|
90
|
+
/sk-ant-[A-Za-z0-9_-]{10,}/g,
|
|
91
|
+
// Anthropic regular
|
|
92
|
+
// OpenAI family + clones (sk- generic must come AFTER all sk-foo- variants)
|
|
93
|
+
/sk-proj-[A-Za-z0-9_-]{10,}/g,
|
|
94
|
+
// OpenAI project key (must precede sk- generic)
|
|
95
|
+
/sk-[A-Za-z0-9_-]{10,}/g,
|
|
96
|
+
// OpenAI / OpenRouter / DeepInfra / Together / DeepSeek
|
|
97
|
+
// Provider prefixes (alphabetized for maintainability)
|
|
98
|
+
/AIza[A-Za-z0-9_-]{35}/g,
|
|
99
|
+
// Google API key
|
|
100
|
+
/AKIA[A-Z0-9]{16}/g,
|
|
101
|
+
// AWS access key
|
|
102
|
+
/fw_[A-Za-z0-9]{20,}/g,
|
|
103
|
+
// Fireworks
|
|
104
|
+
/glpat-[A-Za-z0-9_-]{20}/g,
|
|
105
|
+
// GitLab PAT
|
|
106
|
+
/ghp_[A-Za-z0-9]{36}/g,
|
|
107
|
+
// GitHub PAT classic
|
|
108
|
+
/github_pat_[A-Za-z0-9_]{82}/g,
|
|
109
|
+
// GitHub PAT fine-grained
|
|
110
|
+
/gsk_[A-Za-z0-9]{20,}/g,
|
|
111
|
+
// Groq
|
|
112
|
+
/hf_[A-Za-z0-9]{20,}/g,
|
|
113
|
+
// HuggingFace
|
|
114
|
+
/\bpa-[A-Za-z0-9_-]{20,}/g,
|
|
115
|
+
// Voyage AI (word-boundary to skip CSS / kebab IDs)
|
|
116
|
+
/pcsk_[A-Za-z0-9_-]{20,}/g,
|
|
117
|
+
// Pinecone
|
|
118
|
+
/pplx-[A-Za-z0-9_-]{20,}/g,
|
|
119
|
+
// Perplexity
|
|
120
|
+
/r8_[A-Za-z0-9_-]{20,}/g,
|
|
121
|
+
// Replicate
|
|
122
|
+
/rk_live_[A-Za-z0-9]{20,}/g,
|
|
123
|
+
// Stripe restricted
|
|
124
|
+
/sk_live_[A-Za-z0-9]{20,}/g,
|
|
125
|
+
// Stripe secret
|
|
126
|
+
/sntrys_[A-Za-z0-9]{40,}/g,
|
|
127
|
+
// Sentry user auth
|
|
128
|
+
/xai-[A-Za-z0-9_-]{20,}/g,
|
|
129
|
+
// xAI (Grok)
|
|
130
|
+
/xox[bpasr]-[A-Za-z0-9-]{10,}/g,
|
|
131
|
+
//Slack tokens
|
|
132
|
+
// Additional unique-prefix tokens with low false-positive risk
|
|
133
|
+
/npm_[A-Za-z0-9]{36}/g,
|
|
134
|
+
// npm access token
|
|
135
|
+
/SG\.[A-Za-z0-9_-]{22}\.[A-Za-z0-9_-]{43}/g,
|
|
136
|
+
// SendGrid
|
|
137
|
+
/\bSK[A-Za-z0-9]{32}\b/g,
|
|
138
|
+
// Twilio API SID (word-boundary to skip CSS class noise)
|
|
139
|
+
/\bkey-[a-f0-9]{32}\b/g,
|
|
140
|
+
// Mailgun (hex-only narrows false positives)
|
|
141
|
+
/MT[A-Za-z0-9_-]{23}\.[A-Za-z0-9_-]{6}\.[A-Za-z0-9_-]{27}/g,
|
|
142
|
+
// Discord bot
|
|
143
|
+
/\b(?:sdk|mob)-[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\b/g
|
|
144
|
+
// LaunchDarkly
|
|
145
|
+
];
|
|
146
|
+
BEARER_PATTERN = /\b(Bearer\s+)([A-Za-z0-9_\-.+/=]{8,})/g;
|
|
147
|
+
PARAM_PATTERN = /(\b(?:access_token|api_key|api-key|client_secret|credential|credentials|id_token|jwt|password|private_key|refresh_token|secret|service_account|session_token|token|x-api-key)\b["']?\s*[:=]\s*["']?)([A-Za-z0-9_\-.+/]+)/gi;
|
|
148
|
+
_extraPatterns = [];
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
|
|
22
152
|
// src/errors.ts
|
|
23
153
|
var TheokitAgentError, ConfigurationError, UnsupportedRunOperationError, InvalidTaskIdError, TaskNotFoundError;
|
|
24
154
|
var init_errors = __esm({
|
|
@@ -166,9 +296,29 @@ var init_workflow = __esm({
|
|
|
166
296
|
};
|
|
167
297
|
}
|
|
168
298
|
});
|
|
299
|
+
function detectNetworkFsName(typeMagic) {
|
|
300
|
+
return NETWORK_FS_MAGIC.get(typeMagic) ?? null;
|
|
301
|
+
}
|
|
302
|
+
async function warnOnNetworkFsOnce(dirPath, label) {
|
|
303
|
+
const key2 = `${dirPath}\0${label}`;
|
|
304
|
+
if (warnedNfsDirs.has(key2)) return;
|
|
305
|
+
warnedNfsDirs.add(key2);
|
|
306
|
+
try {
|
|
307
|
+
const info = await promises.statfs(dirPath);
|
|
308
|
+
const fsName = detectNetworkFsName(info.type);
|
|
309
|
+
if (fsName === null) return;
|
|
310
|
+
process.stderr.write(
|
|
311
|
+
`[theokit-sdk] ${label}: detected network fs (${fsName}) at ${dirPath} \u2014 rename() atomicity guarantees may be weaker than expected.
|
|
312
|
+
`
|
|
313
|
+
);
|
|
314
|
+
} catch {
|
|
315
|
+
}
|
|
316
|
+
}
|
|
169
317
|
async function replaceFileAtomic(filePath, content) {
|
|
170
|
-
|
|
171
|
-
const
|
|
318
|
+
await warnOnNetworkFsOnce(path.dirname(filePath), "atomic-write");
|
|
319
|
+
const suffix = crypto.randomBytes(8).toString("hex");
|
|
320
|
+
const tmp = `${filePath}.${process.pid}.${suffix}.tmp`;
|
|
321
|
+
const handle = await promises.open(tmp, "w", 384);
|
|
172
322
|
try {
|
|
173
323
|
await handle.writeFile(content, "utf8");
|
|
174
324
|
await handle.sync();
|
|
@@ -186,8 +336,16 @@ async function atomicWriteText(filePath, content) {
|
|
|
186
336
|
await promises.mkdir(path.dirname(filePath), { recursive: true });
|
|
187
337
|
await replaceFileAtomic(filePath, content);
|
|
188
338
|
}
|
|
339
|
+
var NETWORK_FS_MAGIC, warnedNfsDirs;
|
|
189
340
|
var init_atomic_write = __esm({
|
|
190
341
|
"src/internal/persistence/atomic-write.ts"() {
|
|
342
|
+
NETWORK_FS_MAGIC = /* @__PURE__ */ new Map([
|
|
343
|
+
[26985, "nfs"],
|
|
344
|
+
[20859, "smb"],
|
|
345
|
+
[4283649346, "cifs"],
|
|
346
|
+
[1702057286, "fuse"]
|
|
347
|
+
]);
|
|
348
|
+
warnedNfsDirs = /* @__PURE__ */ new Set();
|
|
191
349
|
}
|
|
192
350
|
});
|
|
193
351
|
function getSnapshotStoreFor(options) {
|
|
@@ -564,91 +722,6 @@ var init_step_agent = __esm({
|
|
|
564
722
|
}
|
|
565
723
|
});
|
|
566
724
|
|
|
567
|
-
// src/internal/security/redact.ts
|
|
568
|
-
function readEnvOnce() {
|
|
569
|
-
const raw = process.env.THEOKIT_REDACT_SECRETS;
|
|
570
|
-
if (raw === void 0) return true;
|
|
571
|
-
return ["1", "true", "yes", "on"].includes(raw.toLowerCase());
|
|
572
|
-
}
|
|
573
|
-
function maskToken(token) {
|
|
574
|
-
if (token.length < 18) return "***";
|
|
575
|
-
return `${token.slice(0, 6)}...${token.slice(-4)}`;
|
|
576
|
-
}
|
|
577
|
-
function coerceToString(value) {
|
|
578
|
-
if (typeof value === "string") return value;
|
|
579
|
-
if (value === null || value === void 0) return null;
|
|
580
|
-
if (typeof value === "object") {
|
|
581
|
-
try {
|
|
582
|
-
const s = JSON.stringify(value);
|
|
583
|
-
return s === void 0 ? null : s;
|
|
584
|
-
} catch {
|
|
585
|
-
return "[unredactable: circular]";
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
return String(value);
|
|
589
|
-
}
|
|
590
|
-
function redactSecrets(text, opts) {
|
|
591
|
-
const coerced = coerceToString(text);
|
|
592
|
-
if (coerced === null) return "";
|
|
593
|
-
if (!REDACT_ENABLED) return coerced;
|
|
594
|
-
let s = coerced;
|
|
595
|
-
for (const re of BUILTIN_PATTERNS) {
|
|
596
|
-
s = s.replace(re, (m) => maskToken(m));
|
|
597
|
-
}
|
|
598
|
-
for (const re of _extraPatterns) {
|
|
599
|
-
s = s.replace(re, (m) => maskToken(m));
|
|
600
|
-
}
|
|
601
|
-
{
|
|
602
|
-
s = s.replace(BEARER_PATTERN, (_, prefix) => `${prefix}***`);
|
|
603
|
-
s = s.replace(PARAM_PATTERN, (_, prefix) => `${prefix}***`);
|
|
604
|
-
}
|
|
605
|
-
return s;
|
|
606
|
-
}
|
|
607
|
-
var REDACT_ENABLED, warnedOptOut, BUILTIN_PATTERNS, BEARER_PATTERN, PARAM_PATTERN, _extraPatterns;
|
|
608
|
-
var init_redact = __esm({
|
|
609
|
-
"src/internal/security/redact.ts"() {
|
|
610
|
-
REDACT_ENABLED = readEnvOnce();
|
|
611
|
-
warnedOptOut = false;
|
|
612
|
-
if (!REDACT_ENABLED && !warnedOptOut) {
|
|
613
|
-
process.stderr.write(
|
|
614
|
-
"[theokit-sdk] Secret redaction is DISABLED via THEOKIT_REDACT_SECRETS. Credentials may leak into errors, telemetry, logs, transcripts.\n"
|
|
615
|
-
);
|
|
616
|
-
warnedOptOut = true;
|
|
617
|
-
}
|
|
618
|
-
BUILTIN_PATTERNS = [
|
|
619
|
-
/sk-ant-[A-Za-z0-9_-]{10,}/g,
|
|
620
|
-
// Anthropic
|
|
621
|
-
/sk-proj-[A-Za-z0-9_-]{10,}/g,
|
|
622
|
-
// OpenAI project key (must precede sk- generic)
|
|
623
|
-
/sk-[A-Za-z0-9_-]{10,}/g,
|
|
624
|
-
// OpenAI / OpenRouter / DeepInfra. {10,} body floor —
|
|
625
|
-
// real keys are 40+ chars; 10-char floor still skips `sk-test` (4) and
|
|
626
|
-
// `sk-test-key` (8). codeFile mode protects placeholders/examples.
|
|
627
|
-
/ghp_[A-Za-z0-9]{36}/g,
|
|
628
|
-
// GitHub PAT classic (exact length)
|
|
629
|
-
/github_pat_[A-Za-z0-9_]{82}/g,
|
|
630
|
-
// GitHub PAT fine-grained
|
|
631
|
-
/glpat-[A-Za-z0-9_-]{20}/g,
|
|
632
|
-
// GitLab PAT
|
|
633
|
-
/AKIA[A-Z0-9]{16}/g,
|
|
634
|
-
// AWS access key
|
|
635
|
-
/AIza[A-Za-z0-9_-]{35}/g,
|
|
636
|
-
// Google API key
|
|
637
|
-
/xox[bpasr]-[A-Za-z0-9-]{10,}/g,
|
|
638
|
-
//Slack tokens
|
|
639
|
-
/sntrys_[A-Za-z0-9]{40,}/g,
|
|
640
|
-
// Sentry user auth
|
|
641
|
-
/sk_live_[A-Za-z0-9]{20,}/g,
|
|
642
|
-
// Stripe secret
|
|
643
|
-
/rk_live_[A-Za-z0-9]{20,}/g
|
|
644
|
-
// Stripe restricted
|
|
645
|
-
];
|
|
646
|
-
BEARER_PATTERN = /\b(Bearer\s+)([A-Za-z0-9_\-.+/=]{8,})/g;
|
|
647
|
-
PARAM_PATTERN = /(\b(?:access_token|api_key|api-key|password|secret|x-api-key)\b["']?\s*[:=]\s*["']?)([A-Za-z0-9_\-.+/]+)/gi;
|
|
648
|
-
_extraPatterns = [];
|
|
649
|
-
}
|
|
650
|
-
});
|
|
651
|
-
|
|
652
725
|
// src/internal/workflow/step-branch.ts
|
|
653
726
|
async function runBranchStep(step, input, ctx, options, prevStepResults, dispatch) {
|
|
654
727
|
const startedAt = Date.now();
|
|
@@ -2132,6 +2205,23 @@ var PersistenceSchema = zod.z.object({
|
|
|
2132
2205
|
|
|
2133
2206
|
// src/internal/security/path-guard.ts
|
|
2134
2207
|
init_errors();
|
|
2208
|
+
var PathTraversalError = class extends ConfigurationError {
|
|
2209
|
+
name = "PathTraversalError";
|
|
2210
|
+
constructor(input, resolvedPath) {
|
|
2211
|
+
super(`Path traversal attempt: ${input} \u2192 ${resolvedPath}`, {
|
|
2212
|
+
code: "path_traversal"
|
|
2213
|
+
});
|
|
2214
|
+
}
|
|
2215
|
+
};
|
|
2216
|
+
function rejectNulAndControlChars(input, role) {
|
|
2217
|
+
for (let i = 0; i < input.length; i++) {
|
|
2218
|
+
const code = input.charCodeAt(i);
|
|
2219
|
+
if (code === 0 || code >= 1 && code <= 31 || code === 127) {
|
|
2220
|
+
const label = code === 0 ? "<nul-byte>" : `<control-char-0x${code.toString(16)}>`;
|
|
2221
|
+
throw new PathTraversalError(`${role}: ${input}`, label);
|
|
2222
|
+
}
|
|
2223
|
+
}
|
|
2224
|
+
}
|
|
2135
2225
|
var IDENTIFIER_PATTERN = /^[a-z0-9][a-z0-9\-_]*$/i;
|
|
2136
2226
|
function sanitizeIdentifier(input, options) {
|
|
2137
2227
|
const maxLen = options?.maxLen;
|
|
@@ -2140,6 +2230,7 @@ function sanitizeIdentifier(input, options) {
|
|
|
2140
2230
|
code: "invalid_identifier"
|
|
2141
2231
|
});
|
|
2142
2232
|
}
|
|
2233
|
+
rejectNulAndControlChars(input, "identifier");
|
|
2143
2234
|
if (!IDENTIFIER_PATTERN.test(input)) {
|
|
2144
2235
|
throw new ConfigurationError(`Identifier contains invalid characters: "${input}"`, {
|
|
2145
2236
|
code: "invalid_identifier"
|