dotdo 0.0.2 → 0.1.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/cli/README.md +238 -0
- package/cli/agent.ts +72 -0
- package/cli/bin.js +44 -0
- package/cli/bin.ts +38 -0
- package/cli/build.ts +157 -0
- package/cli/commands/auth/login.ts +14 -0
- package/cli/commands/auth/logout.ts +6 -0
- package/cli/commands/auth/whoami.ts +16 -0
- package/cli/commands/deploy-multi.ts +245 -0
- package/cli/commands/dev/deploy.ts +100 -0
- package/cli/commands/dev/dev.ts +95 -0
- package/cli/commands/dev/logs.ts +91 -0
- package/cli/commands/dev-local.ts +88 -0
- package/cli/commands/do-ops.ts +314 -0
- package/cli/commands/index.ts +100 -0
- package/cli/commands/init.ts +247 -0
- package/cli/commands/introspect/emitter.ts +315 -0
- package/cli/commands/introspect/index.ts +193 -0
- package/cli/commands/link.ts +598 -0
- package/cli/commands/snippets.ts +415 -0
- package/cli/commands/tunnel.ts +239 -0
- package/cli/device-auth.ts +289 -0
- package/cli/fallback.ts +12 -0
- package/cli/index.ts +121 -0
- package/cli/main.ts +246 -0
- package/cli/mcp-stdio.ts +790 -0
- package/cli/package.json +62 -0
- package/cli/runtime/do-registry.ts +193 -0
- package/cli/runtime/embedded-db.ts +344 -0
- package/cli/runtime/index.ts +9 -0
- package/cli/runtime/miniflare-adapter.ts +162 -0
- package/cli/sandbox.ts +82 -0
- package/cli/src/args.ts +174 -0
- package/cli/src/auth.ts +55 -0
- package/cli/src/commands/call.ts +84 -0
- package/cli/src/commands/charge.ts +96 -0
- package/cli/src/commands/config.ts +115 -0
- package/cli/src/commands/email.ts +112 -0
- package/cli/src/commands/llm.ts +115 -0
- package/cli/src/commands/queue.ts +134 -0
- package/cli/src/commands/text.ts +86 -0
- package/cli/src/config.ts +185 -0
- package/cli/src/output.ts +246 -0
- package/cli/src/rpc.ts +192 -0
- package/cli/utils/config.ts +282 -0
- package/cli/utils/detect.ts +73 -0
- package/cli/utils/index.ts +15 -0
- package/cli/utils/logger.ts +232 -0
- package/dist/ai/template-literals.js +2 -2
- package/dist/ai/template-literals.js.map +1 -1
- package/dist/api/middleware/auth.js +3 -2
- package/dist/api/middleware/auth.js.map +1 -1
- package/dist/db/iceberg/inverted-index.js +1 -1
- package/dist/db/iceberg/inverted-index.js.map +1 -1
- package/dist/db/iceberg/puffin.js.map +1 -1
- package/dist/db/json-indexes.js.map +1 -1
- package/dist/db/objects.js.map +1 -1
- package/dist/db/primitives/dag-scheduler/index.js +1 -1
- package/dist/db/primitives/dag-scheduler/index.js.map +1 -1
- package/dist/db/primitives/observability.js.map +1 -1
- package/dist/db/primitives/schema-evolution.js.map +1 -1
- package/dist/db/primitives/temporal-store.js.map +1 -1
- package/dist/db/primitives/typed-column-store.js.map +1 -1
- package/dist/db/primitives/utils/duration.js.map +1 -1
- package/dist/db/primitives/utils/murmur3.js +12 -14
- package/dist/db/primitives/utils/murmur3.js.map +1 -1
- package/dist/db/primitives/window-manager.js.map +1 -1
- package/dist/db/stores.js.map +1 -1
- package/dist/db/things.js.map +1 -1
- package/dist/lib/DODispatcher.js +2 -2
- package/dist/lib/DODispatcher.js.map +1 -1
- package/dist/lib/auto-wiring.js.map +1 -1
- package/dist/lib/channels/email.js +1 -1
- package/dist/lib/channels/email.js.map +1 -1
- package/dist/lib/channels/slack-blockkit.js.map +1 -1
- package/dist/lib/cloudflare/ai.js +1 -1
- package/dist/lib/cloudflare/ai.js.map +1 -1
- package/dist/lib/cloudflare/kv.js +1 -1
- package/dist/lib/cloudflare/kv.js.map +1 -1
- package/dist/lib/cloudflare/r2.js +3 -3
- package/dist/lib/cloudflare/r2.js.map +1 -1
- package/dist/lib/cloudflare/vectorize.js.map +1 -1
- package/dist/lib/cloudflare/workflows.js.map +1 -1
- package/dist/lib/executors/AgenticFunctionExecutor.js.map +1 -1
- package/dist/lib/executors/CodeFunctionExecutor.js.map +1 -1
- package/dist/lib/executors/GenerativeFunctionExecutor.js.map +1 -1
- package/dist/lib/executors/HumanFunctionExecutor.js +1 -1
- package/dist/lib/executors/HumanFunctionExecutor.js.map +1 -1
- package/dist/lib/executors/ParallelStepExecutor.js.map +1 -1
- package/dist/lib/experiments.js.map +1 -1
- package/dist/lib/flags/store.js.map +1 -1
- package/dist/lib/functions/FunctionComposition.js.map +1 -1
- package/dist/lib/functions/FunctionMiddleware.js.map +1 -1
- package/dist/lib/functions/FunctionRegistry.js.map +1 -1
- package/dist/lib/humans/templates.js.map +1 -1
- package/dist/lib/identity.js +2 -2
- package/dist/lib/identity.js.map +1 -1
- package/dist/lib/logging/index.js.map +1 -1
- package/dist/lib/mixins/bash.js +1 -73
- package/dist/lib/mixins/bash.js.map +1 -1
- package/dist/lib/mixins/git.js +0 -5
- package/dist/lib/mixins/git.js.map +1 -1
- package/dist/lib/mixins/npm.js.map +1 -1
- package/dist/lib/noun-id.js.map +1 -1
- package/dist/lib/rate-limit/sliding-window.js.map +1 -1
- package/dist/lib/rpc/bindings.js.map +1 -1
- package/dist/lib/safe-stringify.js.map +1 -1
- package/dist/lib/sandbox/miniflare-sandbox.js.map +1 -1
- package/dist/lib/sqids.js.map +1 -1
- package/dist/lib/sql/adapters/node-sql-parser.js.map +1 -1
- package/dist/lib/sql/adapters/pgsql-parser.js +19 -18
- package/dist/lib/sql/adapters/pgsql-parser.js.map +1 -1
- package/dist/metrics/hunch.js.map +1 -1
- package/dist/objects/API.js +1 -1
- package/dist/objects/API.js.map +1 -1
- package/dist/objects/Agent.js.map +1 -1
- package/dist/objects/Browser.js.map +1 -1
- package/dist/objects/CLI.js.map +1 -1
- package/dist/objects/DOBase.js.map +1 -1
- package/dist/objects/DOCache.js +153 -0
- package/dist/objects/DOCache.js.map +1 -0
- package/dist/objects/DOFull.js.map +1 -1
- package/dist/objects/Entity.js.map +1 -1
- package/dist/objects/Human.js.map +1 -1
- package/dist/objects/IcebergMetadataDO.js.map +1 -1
- package/dist/objects/IntegrationsDO.js.map +1 -1
- package/dist/objects/ObservabilityBroadcaster.js.map +1 -1
- package/dist/objects/Package.js.map +1 -1
- package/dist/objects/Product.js +1 -1
- package/dist/objects/Product.js.map +1 -1
- package/dist/objects/SaaS.js.map +1 -1
- package/dist/objects/SandboxDO.js.map +1 -1
- package/dist/objects/Service.js.map +1 -1
- package/dist/objects/VectorShardDO.js +9 -7
- package/dist/objects/VectorShardDO.js.map +1 -1
- package/dist/objects/Workflow.js.map +1 -1
- package/dist/objects/WorkflowFactory.js.map +1 -1
- package/dist/objects/WorkflowRuntime.js.map +1 -1
- package/dist/objects/lifecycle/Branch.js.map +1 -1
- package/dist/objects/lifecycle/Clone.js +1 -1
- package/dist/objects/lifecycle/Clone.js.map +1 -1
- package/dist/objects/lifecycle/Compact.js.map +1 -1
- package/dist/objects/lifecycle/Shard.js.map +1 -1
- package/dist/objects/persistence/checkpoint-manager.js.map +1 -1
- package/dist/objects/persistence/migration-runner.js.map +1 -1
- package/dist/objects/persistence/replication-manager.js +2 -2
- package/dist/objects/persistence/replication-manager.js.map +1 -1
- package/dist/objects/persistence/tiered-storage-manager.js.map +1 -1
- package/dist/objects/persistence/wal-manager.js.map +1 -1
- package/dist/objects/transport/auth-layer.js.map +1 -1
- package/dist/objects/transport/chain.js.map +1 -1
- package/dist/objects/transport/mcp-server.js +7 -6
- package/dist/objects/transport/mcp-server.js.map +1 -1
- package/dist/objects/transport/rest-autowire.js +3 -2
- package/dist/objects/transport/rest-autowire.js.map +1 -1
- package/dist/objects/transport/rest-router.js.map +1 -1
- package/dist/objects/transport/rpc-server.js +18 -15
- package/dist/objects/transport/rpc-server.js.map +1 -1
- package/dist/objects/transport/shared.js +2 -1
- package/dist/objects/transport/shared.js.map +1 -1
- package/dist/snippets/artifacts-ingest.js.map +1 -1
- package/dist/snippets/artifacts-serve.js.map +1 -1
- package/dist/snippets/search.js.map +1 -1
- package/dist/workflows/ScheduleManager.js.map +1 -1
- package/dist/workflows/StepResultStorage.js.map +1 -1
- package/dist/workflows/WaitForEventManager.js.map +1 -1
- package/dist/workflows/compat/backends/cloudflare-workflows.js.map +1 -1
- package/dist/workflows/compat/inngest/index.js.map +1 -1
- package/dist/workflows/compat/qstash/index.js.map +1 -1
- package/dist/workflows/compat/temporal/client.js.map +1 -1
- package/dist/workflows/compat/temporal/index.js.map +1 -1
- package/dist/workflows/compat/trigger/index.js.map +1 -1
- package/dist/workflows/compat/utils/index.js.map +1 -1
- package/dist/workflows/context/correlation.js +2 -2
- package/dist/workflows/context/correlation.js.map +1 -1
- package/dist/workflows/context/experiment.js +1 -1
- package/dist/workflows/context/experiment.js.map +1 -1
- package/dist/workflows/context/flag.js +1 -1
- package/dist/workflows/context/flag.js.map +1 -1
- package/dist/workflows/context/measure.js +1 -1
- package/dist/workflows/context/measure.js.map +1 -1
- package/dist/workflows/context/rate-limit.js.map +1 -1
- package/dist/workflows/data/entity-events/entity-events.js.map +1 -1
- package/dist/workflows/data/experiment/index.js.map +1 -1
- package/dist/workflows/data/goal/context.js +1 -1
- package/dist/workflows/data/goal/context.js.map +1 -1
- package/dist/workflows/data/measure/index.js +1 -1
- package/dist/workflows/data/measure/index.js.map +1 -1
- package/dist/workflows/data/stream/index.js +10 -76
- package/dist/workflows/data/stream/index.js.map +1 -1
- package/dist/workflows/data/track/context.js.map +1 -1
- package/dist/workflows/data/view/context.js.map +1 -1
- package/dist/workflows/domain.js.map +1 -1
- package/dist/workflows/flags.js +1 -1
- package/dist/workflows/flags.js.map +1 -1
- package/dist/workflows/hash.js.map +1 -1
- package/dist/workflows/on.js +1 -1
- package/dist/workflows/on.js.map +1 -1
- package/dist/workflows/schedule-builder.js.map +1 -1
- package/dist/workflows/visibility/index.js +0 -2
- package/dist/workflows/visibility/index.js.map +1 -1
- package/dist/workflows/visibility/query-parser.js.map +1 -1
- package/package.json +18 -3
- package/dist/api/analytics/router.js +0 -601
- package/dist/api/analytics/router.js.map +0 -1
- package/dist/api/index.js +0 -158
- package/dist/api/index.js.map +0 -1
- package/dist/api/middleware/error-handling.js +0 -176
- package/dist/api/middleware/error-handling.js.map +0 -1
- package/dist/api/middleware/request-id.js +0 -21
- package/dist/api/middleware/request-id.js.map +0 -1
- package/dist/api/pages.js +0 -1180
- package/dist/api/pages.js.map +0 -1
- package/dist/api/routes/api.js +0 -612
- package/dist/api/routes/api.js.map +0 -1
- package/dist/api/routes/browsers.js +0 -471
- package/dist/api/routes/browsers.js.map +0 -1
- package/dist/api/routes/do.js +0 -188
- package/dist/api/routes/do.js.map +0 -1
- package/dist/api/routes/mcp.js +0 -459
- package/dist/api/routes/mcp.js.map +0 -1
- package/dist/api/routes/obs.js +0 -445
- package/dist/api/routes/obs.js.map +0 -1
- package/dist/api/routes/openapi.js +0 -794
- package/dist/api/routes/openapi.js.map +0 -1
- package/dist/api/routes/rpc.js +0 -1103
- package/dist/api/routes/rpc.js.map +0 -1
- package/dist/api/routes/sandboxes.js +0 -389
- package/dist/api/routes/sandboxes.js.map +0 -1
- package/dist/api/test-do.js +0 -38
- package/dist/api/test-do.js.map +0 -1
- package/dist/api/types.js +0 -11
- package/dist/api/types.js.map +0 -1
- package/dist/cli/bin.js +0 -2
- package/dist/cli/main.js +0 -52342
- package/dist/do/bash.js +0 -35
- package/dist/do/bash.js.map +0 -1
- package/dist/do/fs.js +0 -25
- package/dist/do/fs.js.map +0 -1
- package/dist/do/full.js +0 -61
- package/dist/do/full.js.map +0 -1
- package/dist/do/git.js +0 -28
- package/dist/do/git.js.map +0 -1
- package/dist/do/index.js +0 -52
- package/dist/do/index.js.map +0 -1
- package/dist/lib/agent/tools/bash.js +0 -336
- package/dist/lib/agent/tools/bash.js.map +0 -1
- package/dist/lib/agent/tools/edit.js +0 -157
- package/dist/lib/agent/tools/edit.js.map +0 -1
- package/dist/lib/agent/tools/glob.js +0 -137
- package/dist/lib/agent/tools/glob.js.map +0 -1
- package/dist/lib/agent/tools/grep.js +0 -315
- package/dist/lib/agent/tools/grep.js.map +0 -1
- package/dist/lib/agent/tools/index.js +0 -71
- package/dist/lib/agent/tools/index.js.map +0 -1
- package/dist/lib/agent/tools/read.js +0 -212
- package/dist/lib/agent/tools/read.js.map +0 -1
- package/dist/lib/agent/tools/types.js +0 -197
- package/dist/lib/agent/tools/types.js.map +0 -1
- package/dist/lib/agent/tools/write.js +0 -159
- package/dist/lib/agent/tools/write.js.map +0 -1
- package/dist/lib/mixins/index.js +0 -29
- package/dist/lib/mixins/index.js.map +0 -1
- package/dist/primitives/bashx/src/ast/analyze.js +0 -1472
- package/dist/primitives/bashx/src/ast/analyze.js.map +0 -1
- package/dist/primitives/bashx/src/ast/parser.js +0 -1488
- package/dist/primitives/bashx/src/ast/parser.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/crypto.js +0 -1954
- package/dist/primitives/bashx/src/do/commands/crypto.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/data-processing.js +0 -1812
- package/dist/primitives/bashx/src/do/commands/data-processing.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/extended-utils.js +0 -804
- package/dist/primitives/bashx/src/do/commands/extended-utils.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/math-control.js +0 -1122
- package/dist/primitives/bashx/src/do/commands/math-control.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/posix-utils.js +0 -1015
- package/dist/primitives/bashx/src/do/commands/posix-utils.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/system-utils.js +0 -687
- package/dist/primitives/bashx/src/do/commands/system-utils.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/test-command.js +0 -523
- package/dist/primitives/bashx/src/do/commands/test-command.js.map +0 -1
- package/dist/primitives/bashx/src/do/commands/text-processing.js +0 -1550
- package/dist/primitives/bashx/src/do/commands/text-processing.js.map +0 -1
- package/dist/primitives/bashx/src/do/container-executor.js +0 -429
- package/dist/primitives/bashx/src/do/container-executor.js.map +0 -1
- package/dist/primitives/bashx/src/do/index.js +0 -668
- package/dist/primitives/bashx/src/do/index.js.map +0 -1
- package/dist/primitives/bashx/src/do/tiered-executor.js +0 -2647
- package/dist/primitives/bashx/src/do/tiered-executor.js.map +0 -1
- package/dist/primitives/bashx/src/do/worker.js +0 -352
- package/dist/primitives/bashx/src/do/worker.js.map +0 -1
- package/dist/primitives/bashx/src/types.js +0 -10
- package/dist/primitives/bashx/src/types.js.map +0 -1
- package/dist/primitives/fsx/core/backend.js +0 -480
- package/dist/primitives/fsx/core/backend.js.map +0 -1
- package/dist/primitives/fsx/core/constants.js +0 -140
- package/dist/primitives/fsx/core/constants.js.map +0 -1
- package/dist/primitives/fsx/core/fsx.js +0 -1184
- package/dist/primitives/fsx/core/fsx.js.map +0 -1
- package/dist/primitives/fsx/core/glob/glob.js +0 -438
- package/dist/primitives/fsx/core/glob/glob.js.map +0 -1
- package/dist/primitives/fsx/core/glob/index.js +0 -8
- package/dist/primitives/fsx/core/glob/index.js.map +0 -1
- package/dist/primitives/fsx/core/glob/match.js +0 -392
- package/dist/primitives/fsx/core/glob/match.js.map +0 -1
- package/dist/primitives/fsx/core/types.js +0 -307
- package/dist/primitives/fsx/core/types.js.map +0 -1
- package/dist/sdk/capnweb-compat.js +0 -42
- package/dist/sdk/capnweb-compat.js.map +0 -1
- package/dist/sdk/client.js +0 -20
- package/dist/sdk/client.js.map +0 -1
- package/dist/sdk/index.js +0 -17
- package/dist/sdk/index.js.map +0 -1
package/dist/do/bash.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dotdo/bash - DO with Bash Capability
|
|
3
|
-
*
|
|
4
|
-
* Exports a DO class with filesystem and shell operations via $.fs and $.bash
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { DO } from 'dotdo/bash'
|
|
9
|
-
*
|
|
10
|
-
* class MyDO extends DO {
|
|
11
|
-
* async runTests() {
|
|
12
|
-
* const result = await this.$.bash.exec('npm test')
|
|
13
|
-
* if (result.exitCode !== 0) {
|
|
14
|
-
* throw new Error(`Tests failed: ${result.stderr}`)
|
|
15
|
-
* }
|
|
16
|
-
* return result.stdout
|
|
17
|
-
* }
|
|
18
|
-
* }
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
import { DO as BaseDO } from '../objects/DO';
|
|
22
|
-
import { withFs } from '../lib/mixins/fs';
|
|
23
|
-
import { withBash } from '../lib/mixins/bash';
|
|
24
|
-
// TODO: Configure executor and fs properly - these are placeholders
|
|
25
|
-
export const DO = withBash(withFs(BaseDO), {
|
|
26
|
-
executor: () => {
|
|
27
|
-
throw new Error('Bash executor not configured - provide executor in withBash options');
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
/**
|
|
31
|
-
* Capabilities included in this entry point
|
|
32
|
-
*/
|
|
33
|
-
export const capabilities = ['fs', 'bash'];
|
|
34
|
-
export { withFs, withBash };
|
|
35
|
-
//# sourceMappingURL=bash.js.map
|
package/dist/do/bash.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../do/bash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,oEAAoE;AACpE,MAAM,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;IACzC,QAAQ,EAAE,GAAG,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;IACxF,CAAC;CACF,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA"}
|
package/dist/do/fs.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dotdo/fs - DO with Filesystem Capability
|
|
3
|
-
*
|
|
4
|
-
* Exports a DO class with filesystem operations via $.fs
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { DO } from 'dotdo/fs'
|
|
9
|
-
*
|
|
10
|
-
* class MyDO extends DO {
|
|
11
|
-
* async readConfig() {
|
|
12
|
-
* return this.$.fs.read('/config.json')
|
|
13
|
-
* }
|
|
14
|
-
* }
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
import { DO as BaseDO } from '../objects/DO';
|
|
18
|
-
import { withFs } from '../lib/mixins/fs';
|
|
19
|
-
export const DO = withFs(BaseDO);
|
|
20
|
-
/**
|
|
21
|
-
* Capabilities included in this entry point
|
|
22
|
-
*/
|
|
23
|
-
export const capabilities = ['fs'];
|
|
24
|
-
export { withFs };
|
|
25
|
-
//# sourceMappingURL=fs.js.map
|
package/dist/do/fs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../do/fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;AAEhC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
package/dist/do/full.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dotdo/full - DO with All Capabilities
|
|
3
|
-
*
|
|
4
|
-
* Exports a DO class (~120KB) with all available capabilities:
|
|
5
|
-
* - WorkflowContext ($) with event handlers, scheduling
|
|
6
|
-
* - Stores (things, rels, actions, events, search, objects, dlq)
|
|
7
|
-
* - Lifecycle (fork, clone, compact, move)
|
|
8
|
-
* - Sharding (shard, unshard, routing)
|
|
9
|
-
* - Branching (branch, checkout, merge)
|
|
10
|
-
* - Promotion (promote, demote)
|
|
11
|
-
* - $.fs - Filesystem operations
|
|
12
|
-
* - $.git - Git version control
|
|
13
|
-
* - $.bash - Shell execution
|
|
14
|
-
*
|
|
15
|
-
* Note: The bash capability uses a stub executor by default.
|
|
16
|
-
* Override by providing a custom executor in your subclass.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* import { DO } from 'dotdo/full'
|
|
21
|
-
*
|
|
22
|
-
* class MyDO extends DO {
|
|
23
|
-
* async deploy() {
|
|
24
|
-
* await this.$.fs.write('/config.json', JSON.stringify(config))
|
|
25
|
-
* await this.$.git.add('.')
|
|
26
|
-
* await this.$.git.commit('chore: update config')
|
|
27
|
-
* await this.$.git.push()
|
|
28
|
-
* await this.$.bash.run('npm run deploy')
|
|
29
|
-
* }
|
|
30
|
-
*
|
|
31
|
-
* async backup() {
|
|
32
|
-
* // Full lifecycle operations available
|
|
33
|
-
* await this.clone('https://backup.example.com.ai')
|
|
34
|
-
* await this.branch('feature-x')
|
|
35
|
-
* }
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
import { DO as BaseDO } from '../objects/DOFull';
|
|
40
|
-
import { withFs, withGit, withBash } from '../lib/mixins';
|
|
41
|
-
/**
|
|
42
|
-
* Stub executor that throws when used.
|
|
43
|
-
* Users should configure a real executor via environment bindings.
|
|
44
|
-
*/
|
|
45
|
-
const stubExecutor = {
|
|
46
|
-
async execute(command, options) {
|
|
47
|
-
throw new Error(`Bash execution not configured. ` +
|
|
48
|
-
`Attempted to run: ${command}\n` +
|
|
49
|
-
`Configure a real executor (e.g., Cloudflare Container, RPC) in your DO class.`);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
const DOWithFsGit = withGit(withFs(BaseDO));
|
|
53
|
-
export const DO = withBash(DOWithFsGit, {
|
|
54
|
-
executor: () => stubExecutor
|
|
55
|
-
});
|
|
56
|
-
/**
|
|
57
|
-
* Capabilities included in this entry point
|
|
58
|
-
*/
|
|
59
|
-
export const capabilities = ['fs', 'git', 'bash'];
|
|
60
|
-
export { withFs, withGit, withBash };
|
|
61
|
-
//# sourceMappingURL=full.js.map
|
package/dist/do/full.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"full.js","sourceRoot":"","sources":["../../do/full.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAwD,MAAM,eAAe,CAAA;AAE/G;;;GAGG;AACH,MAAM,YAAY,GAAiB;IACjC,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAqB;QAClD,MAAM,IAAI,KAAK,CACb,iCAAiC;YACjC,qBAAqB,OAAO,IAAI;YAChC,+EAA+E,CAChF,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAE3C,MAAM,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE;IACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY;CAC7B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
package/dist/do/git.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dotdo/git - DO with Git Capability
|
|
3
|
-
*
|
|
4
|
-
* Exports a DO class with filesystem and git operations via $.fs and $.git
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { DO } from 'dotdo/git'
|
|
9
|
-
*
|
|
10
|
-
* class MyDO extends DO {
|
|
11
|
-
* async commitChanges() {
|
|
12
|
-
* await this.$.git.add('.')
|
|
13
|
-
* await this.$.git.commit('feat: add feature')
|
|
14
|
-
* await this.$.git.push()
|
|
15
|
-
* }
|
|
16
|
-
* }
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
import { DO as BaseDO } from '../objects/DO';
|
|
20
|
-
import { withFs } from '../lib/mixins/fs';
|
|
21
|
-
import { withGit } from '../lib/mixins/git';
|
|
22
|
-
export const DO = withGit(withFs(BaseDO));
|
|
23
|
-
/**
|
|
24
|
-
* Capabilities included in this entry point
|
|
25
|
-
*/
|
|
26
|
-
export const capabilities = ['fs', 'git'];
|
|
27
|
-
export { withFs, withGit };
|
|
28
|
-
//# sourceMappingURL=git.js.map
|
package/dist/do/git.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../do/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAEzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA"}
|
package/dist/do/index.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dotdo - Durable Object Framework
|
|
3
|
-
*
|
|
4
|
-
* A comprehensive framework for building applications with Cloudflare Durable Objects.
|
|
5
|
-
*
|
|
6
|
-
* ## DO Class Hierarchy
|
|
7
|
-
*
|
|
8
|
-
* ```
|
|
9
|
-
* DOTiny (~15KB) - Identity, db, fetch, toJSON
|
|
10
|
-
* |
|
|
11
|
-
* v
|
|
12
|
-
* DO (~80KB) - + WorkflowContext, stores, events, scheduling
|
|
13
|
-
* |
|
|
14
|
-
* v
|
|
15
|
-
* DOFull (~120KB) - + Lifecycle, sharding, branching, promotion
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* ## Entry Points (by size)
|
|
19
|
-
*
|
|
20
|
-
* - `dotdo/tiny` - Minimal DO (DOTiny, ~15KB)
|
|
21
|
-
* - `dotdo/base` - Core DO with workflow context (DO, ~80KB)
|
|
22
|
-
* - `dotdo` - Full DO with fs/git/bash mixins (DOFull + mixins)
|
|
23
|
-
* - `dotdo/full` - Same as default (all capabilities)
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```ts
|
|
27
|
-
* // Full capabilities (default)
|
|
28
|
-
* import { DO, Agent, Workflow } from 'dotdo'
|
|
29
|
-
*
|
|
30
|
-
* // Minimal footprint
|
|
31
|
-
* import { DO } from 'dotdo/tiny'
|
|
32
|
-
*
|
|
33
|
-
* // Core without lifecycle ops
|
|
34
|
-
* import { DO } from 'dotdo/base'
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
// Re-export DO from full.ts (includes all capabilities)
|
|
38
|
-
export { DO, capabilities, withFs, withGit, withBash } from './full';
|
|
39
|
-
// Core Durable Object classes (excluding base DO which is overridden above)
|
|
40
|
-
export { Agent, Human, Worker } from '../objects';
|
|
41
|
-
export { Entity, Collection, Directory, Package, Product } from '../objects';
|
|
42
|
-
export { Business, App, Site, SaaS } from '../objects';
|
|
43
|
-
export { Workflow } from '../objects';
|
|
44
|
-
export { Function } from '../objects';
|
|
45
|
-
export { Service, API, SDK, CLI } from '../objects';
|
|
46
|
-
// Type definitions
|
|
47
|
-
export * from '../types';
|
|
48
|
-
// Code snippets for common patterns
|
|
49
|
-
export * from '../snippets';
|
|
50
|
-
// Client SDK - $() function for Cap'n Web RPC
|
|
51
|
-
export { $ } from '../sdk/index.js';
|
|
52
|
-
//# sourceMappingURL=index.js.map
|
package/dist/do/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../do/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,wDAAwD;AACxD,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEpE,4EAA4E;AAC5E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEnD,mBAAmB;AACnB,cAAc,UAAU,CAAA;AAExB,oCAAoC;AACpC,cAAc,aAAa,CAAA;AAE3B,8CAA8C;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bash Tool Adapter
|
|
3
|
-
*
|
|
4
|
-
* Maps Claude SDK Bash tool to bashx.do tiered execution.
|
|
5
|
-
* Includes AST-based safety analysis and tiered execution model.
|
|
6
|
-
*
|
|
7
|
-
* @module lib/agent/tools/bash
|
|
8
|
-
*/
|
|
9
|
-
import { TimeoutError } from './types';
|
|
10
|
-
/**
|
|
11
|
-
* Default timeout for bash commands (2 minutes)
|
|
12
|
-
*/
|
|
13
|
-
const DEFAULT_TIMEOUT = 120000;
|
|
14
|
-
/**
|
|
15
|
-
* Maximum timeout (10 minutes)
|
|
16
|
-
*/
|
|
17
|
-
const MAX_TIMEOUT = 600000;
|
|
18
|
-
/**
|
|
19
|
-
* Dangerous commands that require confirmation
|
|
20
|
-
*/
|
|
21
|
-
const DANGEROUS_COMMANDS = new Set([
|
|
22
|
-
'rm',
|
|
23
|
-
'rmdir',
|
|
24
|
-
'mv',
|
|
25
|
-
'dd',
|
|
26
|
-
'mkfs',
|
|
27
|
-
'fdisk',
|
|
28
|
-
'parted',
|
|
29
|
-
'mount',
|
|
30
|
-
'umount',
|
|
31
|
-
'chmod',
|
|
32
|
-
'chown',
|
|
33
|
-
'sudo',
|
|
34
|
-
'su',
|
|
35
|
-
'kill',
|
|
36
|
-
'killall',
|
|
37
|
-
'pkill',
|
|
38
|
-
'shutdown',
|
|
39
|
-
'reboot',
|
|
40
|
-
'halt',
|
|
41
|
-
'poweroff',
|
|
42
|
-
'init',
|
|
43
|
-
]);
|
|
44
|
-
/**
|
|
45
|
-
* Dangerous patterns that should be blocked or require confirmation
|
|
46
|
-
*/
|
|
47
|
-
const DANGEROUS_PATTERNS = [
|
|
48
|
-
/rm\s+(-[a-zA-Z]*r[a-zA-Z]*\s+)?(-[a-zA-Z]*f[a-zA-Z]*\s+)?\//, // rm -rf /
|
|
49
|
-
/rm\s+(-[a-zA-Z]*f[a-zA-Z]*\s+)?(-[a-zA-Z]*r[a-zA-Z]*\s+)?\//, // rm -fr /
|
|
50
|
-
/>\s*\/dev\/sd[a-z]/, // write to disk device
|
|
51
|
-
/dd\s+.*of=\/dev\//, // dd to device
|
|
52
|
-
/mkfs/, // format filesystem
|
|
53
|
-
/:\(\)\{\s*:\|:&\s*\};:/, // fork bomb
|
|
54
|
-
/chmod\s+(-[a-zA-Z]*\s+)?777\s+\//, // chmod 777 /
|
|
55
|
-
/curl.*\|\s*(ba)?sh/, // curl | sh
|
|
56
|
-
/wget.*\|\s*(ba)?sh/, // wget | sh
|
|
57
|
-
];
|
|
58
|
-
/**
|
|
59
|
-
* Commands that map to Tier 1 (native fsx operations)
|
|
60
|
-
*/
|
|
61
|
-
const TIER1_COMMANDS = new Set([
|
|
62
|
-
'cat',
|
|
63
|
-
'ls',
|
|
64
|
-
'head',
|
|
65
|
-
'tail',
|
|
66
|
-
'echo',
|
|
67
|
-
'printf',
|
|
68
|
-
'pwd',
|
|
69
|
-
'wc',
|
|
70
|
-
'stat',
|
|
71
|
-
'file',
|
|
72
|
-
'basename',
|
|
73
|
-
'dirname',
|
|
74
|
-
'realpath',
|
|
75
|
-
'readlink',
|
|
76
|
-
'test',
|
|
77
|
-
'[',
|
|
78
|
-
'[[',
|
|
79
|
-
]);
|
|
80
|
-
/**
|
|
81
|
-
* Commands that map to Tier 2 (RPC services)
|
|
82
|
-
*/
|
|
83
|
-
const TIER2_COMMANDS = new Set([
|
|
84
|
-
'git',
|
|
85
|
-
'jq',
|
|
86
|
-
'yq',
|
|
87
|
-
'curl',
|
|
88
|
-
'wget',
|
|
89
|
-
]);
|
|
90
|
-
/**
|
|
91
|
-
* Commands that map to Tier 3 (dynamic npm loading)
|
|
92
|
-
*/
|
|
93
|
-
const TIER3_COMMANDS = new Set([
|
|
94
|
-
'npm',
|
|
95
|
-
'npx',
|
|
96
|
-
'pnpm',
|
|
97
|
-
'yarn',
|
|
98
|
-
'node',
|
|
99
|
-
'tsx',
|
|
100
|
-
'ts-node',
|
|
101
|
-
'esbuild',
|
|
102
|
-
'tsc',
|
|
103
|
-
]);
|
|
104
|
-
/**
|
|
105
|
-
* Simple command parser to extract command name
|
|
106
|
-
*/
|
|
107
|
-
function extractCommandName(command) {
|
|
108
|
-
// Remove leading whitespace and environment variables
|
|
109
|
-
const trimmed = command.trim();
|
|
110
|
-
// Handle environment variable assignments at the start
|
|
111
|
-
let cmd = trimmed;
|
|
112
|
-
while (/^[A-Za-z_][A-Za-z0-9_]*=\S*\s+/.test(cmd)) {
|
|
113
|
-
cmd = cmd.replace(/^[A-Za-z_][A-Za-z0-9_]*=\S*\s+/, '');
|
|
114
|
-
}
|
|
115
|
-
// Handle command substitution, subshells, etc.
|
|
116
|
-
if (cmd.startsWith('(') || cmd.startsWith('$(') || cmd.startsWith('`')) {
|
|
117
|
-
return null; // Complex command
|
|
118
|
-
}
|
|
119
|
-
// Extract the command name (first word)
|
|
120
|
-
const match = cmd.match(/^([a-zA-Z_][a-zA-Z0-9_\-.]*)/);
|
|
121
|
-
return match ? match[1] : null;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Check if command is dangerous
|
|
125
|
-
*/
|
|
126
|
-
function isDangerousCommand(command) {
|
|
127
|
-
const cmdName = extractCommandName(command);
|
|
128
|
-
// Check dangerous command names
|
|
129
|
-
if (cmdName && DANGEROUS_COMMANDS.has(cmdName)) {
|
|
130
|
-
return {
|
|
131
|
-
dangerous: true,
|
|
132
|
-
reason: `Command '${cmdName}' can modify system state and requires confirmation`,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
// Check dangerous patterns
|
|
136
|
-
for (const pattern of DANGEROUS_PATTERNS) {
|
|
137
|
-
if (pattern.test(command)) {
|
|
138
|
-
return {
|
|
139
|
-
dangerous: true,
|
|
140
|
-
reason: 'Command matches a dangerous pattern and requires confirmation',
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return { dangerous: false };
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Determine execution tier for a command
|
|
148
|
-
*/
|
|
149
|
-
function determineExecutionTier(command) {
|
|
150
|
-
const cmdName = extractCommandName(command);
|
|
151
|
-
if (cmdName && TIER1_COMMANDS.has(cmdName)) {
|
|
152
|
-
return 1;
|
|
153
|
-
}
|
|
154
|
-
if (cmdName && TIER2_COMMANDS.has(cmdName)) {
|
|
155
|
-
return 2;
|
|
156
|
-
}
|
|
157
|
-
if (cmdName && TIER3_COMMANDS.has(cmdName)) {
|
|
158
|
-
return 3;
|
|
159
|
-
}
|
|
160
|
-
// Default to sandbox for unknown commands
|
|
161
|
-
return 4;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Execute a Tier 1 command using fsx
|
|
165
|
-
*/
|
|
166
|
-
async function executeTier1(command, context) {
|
|
167
|
-
const { fs, cwd } = context;
|
|
168
|
-
const cmdName = extractCommandName(command);
|
|
169
|
-
// Parse the command for basic shell operations
|
|
170
|
-
// This is a simplified implementation - full shell parsing would use bashx AST
|
|
171
|
-
try {
|
|
172
|
-
if (cmdName === 'cat') {
|
|
173
|
-
// Extract file path from command
|
|
174
|
-
const args = command.replace(/^cat\s+/, '').trim();
|
|
175
|
-
const filePath = args.startsWith('/') ? args : `${cwd}/${args}`;
|
|
176
|
-
const content = await fs.readFile(filePath);
|
|
177
|
-
return { stdout: content, stderr: '', exit_code: 0 };
|
|
178
|
-
}
|
|
179
|
-
if (cmdName === 'ls') {
|
|
180
|
-
const args = command.replace(/^ls\s*/, '').trim();
|
|
181
|
-
const targetPath = args || cwd;
|
|
182
|
-
const fullPath = targetPath.startsWith('/') ? targetPath : `${cwd}/${targetPath}`;
|
|
183
|
-
const entries = await fs.readdir(fullPath);
|
|
184
|
-
const entryNames = Array.isArray(entries)
|
|
185
|
-
? entries.map(e => typeof e === 'string' ? e : e.name)
|
|
186
|
-
: entries;
|
|
187
|
-
return { stdout: entryNames.join('\n'), stderr: '', exit_code: 0 };
|
|
188
|
-
}
|
|
189
|
-
if (cmdName === 'pwd') {
|
|
190
|
-
return { stdout: cwd, stderr: '', exit_code: 0 };
|
|
191
|
-
}
|
|
192
|
-
if (cmdName === 'echo') {
|
|
193
|
-
const args = command.replace(/^echo\s*/, '');
|
|
194
|
-
return { stdout: args, stderr: '', exit_code: 0 };
|
|
195
|
-
}
|
|
196
|
-
// For other Tier 1 commands, fall through to a not implemented error
|
|
197
|
-
throw new Error(`Tier 1 command '${cmdName}' not yet implemented`);
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
const err = error;
|
|
201
|
-
return {
|
|
202
|
-
stdout: '',
|
|
203
|
-
stderr: err.message,
|
|
204
|
-
exit_code: 1,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Execute a command using the tiered executor
|
|
210
|
-
*/
|
|
211
|
-
async function executeCommand(command, context, options) {
|
|
212
|
-
const startTime = Date.now();
|
|
213
|
-
// Check if command is dangerous
|
|
214
|
-
const danger = isDangerousCommand(command);
|
|
215
|
-
if (danger.dangerous && !options.confirm) {
|
|
216
|
-
return {
|
|
217
|
-
stdout: '',
|
|
218
|
-
stderr: '',
|
|
219
|
-
exit_code: 0,
|
|
220
|
-
blocked: true,
|
|
221
|
-
block_reason: danger.reason,
|
|
222
|
-
duration_ms: Date.now() - startTime,
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
// Determine execution tier
|
|
226
|
-
const tier = determineExecutionTier(command);
|
|
227
|
-
// If we have a bash executor, use it
|
|
228
|
-
if (context.bash) {
|
|
229
|
-
try {
|
|
230
|
-
const result = await context.bash.exec(command, {
|
|
231
|
-
timeout: options.timeout,
|
|
232
|
-
cwd: options.cwd || context.cwd,
|
|
233
|
-
});
|
|
234
|
-
return {
|
|
235
|
-
stdout: result.stdout,
|
|
236
|
-
stderr: result.stderr,
|
|
237
|
-
exit_code: result.exitCode,
|
|
238
|
-
tier,
|
|
239
|
-
duration_ms: Date.now() - startTime,
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
catch (error) {
|
|
243
|
-
const err = error;
|
|
244
|
-
if (err.message.includes('timeout')) {
|
|
245
|
-
throw new TimeoutError(command, options.timeout);
|
|
246
|
-
}
|
|
247
|
-
throw error;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
// Otherwise, try Tier 1 execution
|
|
251
|
-
if (tier === 1) {
|
|
252
|
-
try {
|
|
253
|
-
const result = await executeTier1(command, context);
|
|
254
|
-
return {
|
|
255
|
-
...result,
|
|
256
|
-
tier: 1,
|
|
257
|
-
duration_ms: Date.now() - startTime,
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
catch (error) {
|
|
261
|
-
// Fall through to error handling
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
// No executor available
|
|
265
|
-
return {
|
|
266
|
-
stdout: '',
|
|
267
|
-
stderr: `No bash executor available for tier ${tier} command: ${command}`,
|
|
268
|
-
exit_code: 127,
|
|
269
|
-
tier,
|
|
270
|
-
duration_ms: Date.now() - startTime,
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Bash Tool Adapter
|
|
275
|
-
*
|
|
276
|
-
* Executes bash commands with AST-based safety analysis and tiered execution.
|
|
277
|
-
* Tiers:
|
|
278
|
-
* - Tier 1: Native (cat/ls via fsx) - <1ms
|
|
279
|
-
* - Tier 2: RPC (git/jq) - <5ms
|
|
280
|
-
* - Tier 3: Loader (npm via esm.sh) - <10ms
|
|
281
|
-
* - Tier 4: Sandbox (fallback) - 2-3s cold
|
|
282
|
-
*/
|
|
283
|
-
export class BashToolAdapter {
|
|
284
|
-
name = 'Bash';
|
|
285
|
-
description = `Executes a given bash command in a persistent shell session with optional timeout.
|
|
286
|
-
|
|
287
|
-
IMPORTANT: This tool is for terminal operations like git, npm, docker, etc. DO NOT use it for file operations (reading, writing, editing, searching, finding files) - use the specialized tools for this instead.
|
|
288
|
-
|
|
289
|
-
Usage notes:
|
|
290
|
-
- The command argument is required.
|
|
291
|
-
- You can specify an optional timeout in milliseconds (up to 600000ms / 10 minutes). If not specified, commands will timeout after 120000ms (2 minutes).
|
|
292
|
-
- If the output exceeds 30000 characters, output will be truncated.`;
|
|
293
|
-
inputSchema = {
|
|
294
|
-
type: 'object',
|
|
295
|
-
properties: {
|
|
296
|
-
command: {
|
|
297
|
-
type: 'string',
|
|
298
|
-
description: 'The command to execute',
|
|
299
|
-
},
|
|
300
|
-
timeout: {
|
|
301
|
-
type: 'number',
|
|
302
|
-
description: 'Optional timeout in milliseconds (max 600000)',
|
|
303
|
-
},
|
|
304
|
-
cwd: {
|
|
305
|
-
type: 'string',
|
|
306
|
-
description: 'Working directory for the command',
|
|
307
|
-
},
|
|
308
|
-
confirm: {
|
|
309
|
-
type: 'boolean',
|
|
310
|
-
description: 'Confirm execution of dangerous commands',
|
|
311
|
-
},
|
|
312
|
-
run_in_background: {
|
|
313
|
-
type: 'boolean',
|
|
314
|
-
description: 'Run the command in the background',
|
|
315
|
-
},
|
|
316
|
-
description: {
|
|
317
|
-
type: 'string',
|
|
318
|
-
description: 'Clear, concise description of what this command does',
|
|
319
|
-
},
|
|
320
|
-
},
|
|
321
|
-
required: ['command'],
|
|
322
|
-
additionalProperties: false,
|
|
323
|
-
};
|
|
324
|
-
async execute(input, context) {
|
|
325
|
-
const { command, timeout = DEFAULT_TIMEOUT, cwd, confirm = false, } = input;
|
|
326
|
-
// Validate timeout
|
|
327
|
-
const effectiveTimeout = Math.min(Math.max(timeout, 0), MAX_TIMEOUT);
|
|
328
|
-
// Execute command
|
|
329
|
-
return executeCommand(command, context, {
|
|
330
|
-
timeout: effectiveTimeout,
|
|
331
|
-
cwd,
|
|
332
|
-
confirm,
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
//# sourceMappingURL=bash.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../../lib/agent/tools/bash.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EAAuB,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3D;;GAEG;AACH,MAAM,eAAe,GAAG,MAAM,CAAA;AAE9B;;GAEG;AACH,MAAM,WAAW,GAAG,MAAM,CAAA;AAE1B;;GAEG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,IAAI;IACJ,MAAM;IACN,SAAS;IACT,OAAO;IACP,UAAU;IACV,QAAQ;IACR,MAAM;IACN,UAAU;IACV,MAAM;CACP,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,6DAA6D,EAAE,WAAW;IAC1E,6DAA6D,EAAE,WAAW;IAC1E,oBAAoB,EAAE,uBAAuB;IAC7C,mBAAmB,EAAE,eAAe;IACpC,MAAM,EAAE,oBAAoB;IAC5B,wBAAwB,EAAE,YAAY;IACtC,kCAAkC,EAAE,cAAc;IAClD,oBAAoB,EAAE,YAAY;IAClC,oBAAoB,EAAE,YAAY;CACnC,CAAA;AAED;;GAEG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,KAAK;IACL,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,IAAI;IACJ,MAAM;IACN,MAAM;IACN,UAAU;IACV,SAAS;IACT,UAAU;IACV,UAAU;IACV,MAAM;IACN,GAAG;IACH,IAAI;CACL,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;CACP,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,SAAS;IACT,SAAS;IACT,KAAK;CACN,CAAC,CAAA;AAEF;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,sDAAsD;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAE9B,uDAAuD;IACvD,IAAI,GAAG,GAAG,OAAO,CAAA;IACjB,OAAO,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,+CAA+C;IAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAA,CAAC,kBAAkB;IAChC,CAAC;IAED,wCAAwC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAE3C,gCAAgC;IAChC,IAAI,OAAO,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,OAAO;YACL,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,YAAY,OAAO,qDAAqD;SACjF,CAAA;IACH,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,+DAA+D;aACxE,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAE3C,IAAI,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,CAAA;IACV,CAAC;IAED,0CAA0C;IAC1C,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,OAAe,EACf,OAAoB;IAEpB,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAE3C,+CAA+C;IAC/C,+EAA+E;IAE/E,IAAI,CAAC;QACH,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,iCAAiC;YACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YAC/D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAW,CAAA;YACrD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;QACtD,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YACjD,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,CAAA;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,UAAU,EAAE,CAAA;YACjF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACvC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtD,CAAC,CAAC,OAAO,CAAA;YACX,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;QACpE,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;QAClD,CAAC;QAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;YAC5C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;QACnD,CAAC;QAED,qEAAqE;QACrE,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,uBAAuB,CAAC,CAAA;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAc,CAAA;QAC1B,OAAO;YACL,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,SAAS,EAAE,CAAC;SACb,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAe,EACf,OAAoB,EACpB,OAIC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE5B,gCAAgC;IAChC,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACzC,OAAO;YACL,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACpC,CAAA;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,IAAI,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;IAE5C,qCAAqC;IACrC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;aAChC,CAAC,CAAA;YAEF,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,QAAQ;gBAC1B,IAAI;gBACJ,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACpC,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAA;YAC1B,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;YAClD,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACnD,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,CAAC;gBACP,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACpC,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,OAAO;QACL,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,uCAAuC,IAAI,aAAa,OAAO,EAAE;QACzE,SAAS,EAAE,GAAG;QACd,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACpC,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,MAAM,CAAA;IAEb,WAAW,GAAG;;;;;;;oEAO2C,CAAA;IAEzD,WAAW,GAAe;QACjC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wBAAwB;aACtC;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;aAC7D;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;aACjD;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,yCAAyC;aACvD;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,mCAAmC;aACjD;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sDAAsD;aACpE;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,oBAAoB,EAAE,KAAK;KAC5B,CAAA;IAED,KAAK,CAAC,OAAO,CAAC,KAAoB,EAAE,OAAoB;QACtD,MAAM,EACJ,OAAO,EACP,OAAO,GAAG,eAAe,EACzB,GAAG,EACH,OAAO,GAAG,KAAK,GAChB,GAAG,KAAK,CAAA;QAET,mBAAmB;QACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;QAEpE,kBAAkB;QAClB,OAAO,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;YACtC,OAAO,EAAE,gBAAgB;YACzB,GAAG;YACH,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
|