indusagi 0.12.19 → 0.12.21
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/README.md +16 -36
- package/dist/agent/agent-loop.d.ts +3 -9
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +19 -58
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/agent.d.ts +9 -10
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +182 -129
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/error-handler.d.ts.map +1 -1
- package/dist/agent/error-handler.js.map +1 -1
- package/dist/agent/event-bus.d.ts.map +1 -1
- package/dist/agent/event-bus.js +1 -3
- package/dist/agent/event-bus.js.map +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +0 -6
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/messages.d.ts +1 -1
- package/dist/agent/messages.d.ts.map +1 -1
- package/dist/agent/proxy.d.ts +1 -14
- package/dist/agent/proxy.d.ts.map +1 -1
- package/dist/agent/proxy.js +67 -148
- package/dist/agent/proxy.js.map +1 -1
- package/dist/agent/session-manager.d.ts +10 -10
- package/dist/agent/session-manager.d.ts.map +1 -1
- package/dist/agent/session-manager.js +20 -16
- package/dist/agent/session-manager.js.map +1 -1
- package/dist/agent/state-manager.d.ts +1 -1
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/agent/state-manager.js +1 -0
- package/dist/agent/state-manager.js.map +1 -1
- package/dist/agent/telemetry.d.ts.map +1 -1
- package/dist/agent/telemetry.js +1 -3
- package/dist/agent/telemetry.js.map +1 -1
- package/dist/agent/tools/bash.d.ts.map +1 -1
- package/dist/agent/tools/bash.js +143 -118
- package/dist/agent/tools/bash.js.map +1 -1
- package/dist/agent/tools/edit-diff.d.ts +1 -1
- package/dist/agent/tools/edit-diff.d.ts.map +1 -1
- package/dist/agent/tools/edit-diff.js +189 -175
- package/dist/agent/tools/edit-diff.js.map +1 -1
- package/dist/agent/tools/edit.d.ts.map +1 -1
- package/dist/agent/tools/edit.js +137 -121
- package/dist/agent/tools/edit.js.map +1 -1
- package/dist/agent/tools/find.d.ts.map +1 -1
- package/dist/agent/tools/find.js +100 -65
- package/dist/agent/tools/find.js.map +1 -1
- package/dist/agent/tools/grep.d.ts.map +1 -1
- package/dist/agent/tools/grep.js +126 -97
- package/dist/agent/tools/grep.js.map +1 -1
- package/dist/agent/tools/index.d.ts +53 -40
- package/dist/agent/tools/index.d.ts.map +1 -1
- package/dist/agent/tools/index.js +19 -12
- package/dist/agent/tools/index.js.map +1 -1
- package/dist/agent/tools/ls.d.ts +2 -1
- package/dist/agent/tools/ls.d.ts.map +1 -1
- package/dist/agent/tools/ls.js +145 -94
- package/dist/agent/tools/ls.js.map +1 -1
- package/dist/agent/tools/path-utils.d.ts.map +1 -1
- package/dist/agent/tools/path-utils.js +48 -29
- package/dist/agent/tools/path-utils.js.map +1 -1
- package/dist/agent/tools/process-controller.d.ts +15 -0
- package/dist/agent/tools/process-controller.d.ts.map +1 -0
- package/dist/agent/tools/process-controller.js +39 -0
- package/dist/agent/tools/process-controller.js.map +1 -0
- package/dist/agent/tools/process-manager.d.ts +60 -0
- package/dist/agent/tools/process-manager.d.ts.map +1 -0
- package/dist/agent/tools/process-manager.js +485 -0
- package/dist/agent/tools/process-manager.js.map +1 -0
- package/dist/agent/tools/process-types.d.ts +74 -0
- package/dist/agent/tools/process-types.d.ts.map +1 -0
- package/dist/agent/tools/process-types.js +7 -0
- package/dist/agent/tools/process-types.js.map +1 -0
- package/dist/agent/tools/process.d.ts +38 -0
- package/dist/agent/tools/process.d.ts.map +1 -0
- package/dist/agent/tools/process.js +360 -0
- package/dist/agent/tools/process.js.map +1 -0
- package/dist/agent/tools/read.d.ts.map +1 -1
- package/dist/agent/tools/read.js +157 -135
- package/dist/agent/tools/read.js.map +1 -1
- package/dist/agent/tools/registry.js +2 -4
- package/dist/agent/tools/registry.js.map +1 -1
- package/dist/agent/tools/teams/activity-tracker.d.ts +66 -0
- package/dist/agent/tools/teams/activity-tracker.d.ts.map +1 -0
- package/dist/agent/tools/teams/activity-tracker.js +480 -0
- package/dist/agent/tools/teams/activity-tracker.js.map +1 -0
- package/dist/agent/tools/teams/cleanup.d.ts +51 -0
- package/dist/agent/tools/teams/cleanup.d.ts.map +1 -0
- package/dist/agent/tools/teams/cleanup.js +219 -0
- package/dist/agent/tools/teams/cleanup.js.map +1 -0
- package/dist/agent/tools/teams/fs-lock.d.ts +12 -0
- package/dist/agent/tools/teams/fs-lock.d.ts.map +1 -0
- package/dist/agent/tools/teams/fs-lock.js +74 -0
- package/dist/agent/tools/teams/fs-lock.js.map +1 -0
- package/dist/agent/tools/teams/index.d.ts +12 -0
- package/dist/agent/tools/teams/index.d.ts.map +1 -0
- package/dist/agent/tools/teams/index.js +12 -0
- package/dist/agent/tools/teams/index.js.map +1 -0
- package/dist/agent/tools/teams/mailbox.d.ts +21 -0
- package/dist/agent/tools/teams/mailbox.d.ts.map +1 -0
- package/dist/agent/tools/teams/mailbox.js +106 -0
- package/dist/agent/tools/teams/mailbox.js.map +1 -0
- package/dist/agent/tools/teams/model-policy.d.ts +23 -0
- package/dist/agent/tools/teams/model-policy.d.ts.map +1 -0
- package/dist/agent/tools/teams/model-policy.js +113 -0
- package/dist/agent/tools/teams/model-policy.js.map +1 -0
- package/dist/agent/tools/teams/names.d.ts +28 -0
- package/dist/agent/tools/teams/names.d.ts.map +1 -0
- package/dist/agent/tools/teams/names.js +109 -0
- package/dist/agent/tools/teams/names.js.map +1 -0
- package/dist/agent/tools/teams/protocol.d.ts +75 -0
- package/dist/agent/tools/teams/protocol.d.ts.map +1 -0
- package/dist/agent/tools/teams/protocol.js +205 -0
- package/dist/agent/tools/teams/protocol.js.map +1 -0
- package/dist/agent/tools/teams/task-store.d.ts +89 -0
- package/dist/agent/tools/teams/task-store.d.ts.map +1 -0
- package/dist/agent/tools/teams/task-store.js +445 -0
- package/dist/agent/tools/teams/task-store.js.map +1 -0
- package/dist/agent/tools/teams/team-attach-claim.d.ts +36 -0
- package/dist/agent/tools/teams/team-attach-claim.d.ts.map +1 -0
- package/dist/agent/tools/teams/team-attach-claim.js +144 -0
- package/dist/agent/tools/teams/team-attach-claim.js.map +1 -0
- package/dist/agent/tools/teams/team-config.d.ts +55 -0
- package/dist/agent/tools/teams/team-config.d.ts.map +1 -0
- package/dist/agent/tools/teams/team-config.js +252 -0
- package/dist/agent/tools/teams/team-config.js.map +1 -0
- package/dist/agent/tools/teams/worktree.d.ts +40 -0
- package/dist/agent/tools/teams/worktree.d.ts.map +1 -0
- package/dist/agent/tools/teams/worktree.js +213 -0
- package/dist/agent/tools/teams/worktree.js.map +1 -0
- package/dist/agent/tools/todo-store.js +2 -1
- package/dist/agent/tools/todo-store.js.map +1 -1
- package/dist/agent/tools/todo.d.ts +2 -2
- package/dist/agent/tools/todo.js +2 -2
- package/dist/agent/tools/truncate.d.ts.map +1 -1
- package/dist/agent/tools/truncate.js +150 -134
- package/dist/agent/tools/truncate.js.map +1 -1
- package/dist/agent/tools/utils/hook-runner.d.ts +9 -10
- package/dist/agent/tools/utils/hook-runner.d.ts.map +1 -1
- package/dist/agent/tools/utils/hook-runner.js +18 -16
- package/dist/agent/tools/utils/hook-runner.js.map +1 -1
- package/dist/agent/tools/utils/image-resize.d.ts +1 -14
- package/dist/agent/tools/utils/image-resize.d.ts.map +1 -1
- package/dist/agent/tools/utils/image-resize.js +80 -34
- package/dist/agent/tools/utils/image-resize.js.map +1 -1
- package/dist/agent/tools/utils/mime.d.ts +0 -8
- package/dist/agent/tools/utils/mime.d.ts.map +1 -1
- package/dist/agent/tools/utils/mime.js +43 -32
- package/dist/agent/tools/utils/mime.js.map +1 -1
- package/dist/agent/tools/utils/shell.d.ts +1 -23
- package/dist/agent/tools/utils/shell.d.ts.map +1 -1
- package/dist/agent/tools/utils/shell.js +43 -86
- package/dist/agent/tools/utils/shell.js.map +1 -1
- package/dist/agent/tools/write.d.ts.map +1 -1
- package/dist/agent/tools/write.js +105 -62
- package/dist/agent/tools/write.js.map +1 -1
- package/dist/agent/types.d.ts +69 -64
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +38 -23
- package/dist/agent/types.js.map +1 -1
- package/dist/agent.d.ts +4 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +4 -0
- package/dist/agent.js.map +1 -1
- package/dist/ai/api-registry.d.ts.map +1 -1
- package/dist/ai/api-registry.js +3 -4
- package/dist/ai/api-registry.js.map +1 -1
- package/dist/ai/cli.js +62 -82
- package/dist/ai/cli.js.map +1 -1
- package/dist/ai/env-api-keys.d.ts.map +1 -1
- package/dist/ai/env-api-keys.js +78 -81
- package/dist/ai/env-api-keys.js.map +1 -1
- package/dist/ai/index.d.ts +6 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +6 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/models.d.ts +7 -17
- package/dist/ai/models.d.ts.map +1 -1
- package/dist/ai/models.generated.d.ts +19 -0
- package/dist/ai/models.generated.d.ts.map +1 -1
- package/dist/ai/models.generated.js +14 -2
- package/dist/ai/models.generated.js.map +1 -1
- package/dist/ai/models.js +17 -11
- package/dist/ai/models.js.map +1 -1
- package/dist/ai/providers/amazon-bedrock.d.ts.map +1 -1
- package/dist/ai/providers/amazon-bedrock.js +319 -248
- package/dist/ai/providers/amazon-bedrock.js.map +1 -1
- package/dist/ai/providers/anthropic.d.ts.map +1 -1
- package/dist/ai/providers/anthropic.js +378 -324
- package/dist/ai/providers/anthropic.js.map +1 -1
- package/dist/ai/providers/azure-openai-responses.d.ts.map +1 -1
- package/dist/ai/providers/azure-openai-responses.js +164 -123
- package/dist/ai/providers/azure-openai-responses.js.map +1 -1
- package/dist/ai/providers/google-shared.d.ts +0 -18
- package/dist/ai/providers/google-shared.d.ts.map +1 -1
- package/dist/ai/providers/google-shared.js +224 -225
- package/dist/ai/providers/google-shared.js.map +1 -1
- package/dist/ai/providers/google-vertex.d.ts.map +1 -1
- package/dist/ai/providers/google-vertex.js +244 -226
- package/dist/ai/providers/google-vertex.js.map +1 -1
- package/dist/ai/providers/google.d.ts +3 -0
- package/dist/ai/providers/google.d.ts.map +1 -1
- package/dist/ai/providers/google.js +232 -210
- package/dist/ai/providers/google.js.map +1 -1
- package/dist/ai/providers/kimi.js +1 -0
- package/dist/ai/providers/kimi.js.map +1 -1
- package/dist/ai/providers/mock.d.ts +10 -0
- package/dist/ai/providers/mock.d.ts.map +1 -0
- package/dist/ai/providers/mock.js +64 -0
- package/dist/ai/providers/mock.js.map +1 -0
- package/dist/ai/providers/openai-codex-responses.d.ts.map +1 -1
- package/dist/ai/providers/openai-codex-responses.js +178 -133
- package/dist/ai/providers/openai-codex-responses.js.map +1 -1
- package/dist/ai/providers/openai-completions.d.ts.map +1 -1
- package/dist/ai/providers/openai-completions.js +468 -387
- package/dist/ai/providers/openai-completions.js.map +1 -1
- package/dist/ai/providers/openai-responses-shared.d.ts.map +1 -1
- package/dist/ai/providers/openai-responses-shared.js +187 -166
- package/dist/ai/providers/openai-responses-shared.js.map +1 -1
- package/dist/ai/providers/openai-responses.d.ts.map +1 -1
- package/dist/ai/providers/openai-responses.js +108 -85
- package/dist/ai/providers/openai-responses.js.map +1 -1
- package/dist/ai/providers/openai-scaffold.d.ts +4 -0
- package/dist/ai/providers/openai-scaffold.d.ts.map +1 -0
- package/dist/ai/providers/openai-scaffold.js +33 -0
- package/dist/ai/providers/openai-scaffold.js.map +1 -0
- package/dist/ai/providers/register-builtins.d.ts.map +1 -1
- package/dist/ai/providers/register-builtins.js +109 -42
- package/dist/ai/providers/register-builtins.js.map +1 -1
- package/dist/ai/providers/simple-options.js +2 -0
- package/dist/ai/providers/simple-options.js.map +1 -1
- package/dist/ai/providers/transform-messages.js +3 -9
- package/dist/ai/providers/transform-messages.js.map +1 -1
- package/dist/ai/stream.d.ts +4 -14
- package/dist/ai/stream.d.ts.map +1 -1
- package/dist/ai/stream.js +0 -36
- package/dist/ai/stream.js.map +1 -1
- package/dist/ai/types.d.ts +22 -3
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/ai/types.js +154 -77
- package/dist/ai/types.js.map +1 -1
- package/dist/ai/utils/base-stream-handler.js +1 -0
- package/dist/ai/utils/base-stream-handler.js.map +1 -1
- package/dist/ai/utils/event-stream.d.ts +2 -0
- package/dist/ai/utils/event-stream.d.ts.map +1 -1
- package/dist/ai/utils/event-stream.js +22 -5
- package/dist/ai/utils/event-stream.js.map +1 -1
- package/dist/ai/utils/json-parse.d.ts +3 -0
- package/dist/ai/utils/json-parse.d.ts.map +1 -1
- package/dist/ai/utils/json-parse.js +8 -5
- package/dist/ai/utils/json-parse.js.map +1 -1
- package/dist/ai/utils/oauth/anthropic.d.ts.map +1 -1
- package/dist/ai/utils/oauth/anthropic.js +110 -65
- package/dist/ai/utils/oauth/anthropic.js.map +1 -1
- package/dist/ai/utils/oauth/github-copilot.d.ts +8 -16
- package/dist/ai/utils/oauth/github-copilot.d.ts.map +1 -1
- package/dist/ai/utils/oauth/github-copilot.js +218 -227
- package/dist/ai/utils/oauth/github-copilot.js.map +1 -1
- package/dist/ai/utils/oauth/openai-codex.d.ts +4 -2
- package/dist/ai/utils/oauth/openai-codex.d.ts.map +1 -1
- package/dist/ai/utils/oauth/openai-codex.js +221 -236
- package/dist/ai/utils/oauth/openai-codex.js.map +1 -1
- package/dist/ai/utils/oauth/pkce.d.ts +6 -5
- package/dist/ai/utils/oauth/pkce.d.ts.map +1 -1
- package/dist/ai/utils/oauth/pkce.js +24 -21
- package/dist/ai/utils/oauth/pkce.js.map +1 -1
- package/dist/ai/utils/oauth/types.d.ts +31 -12
- package/dist/ai/utils/oauth/types.d.ts.map +1 -1
- package/dist/ai/utils/oauth/types.js +10 -1
- package/dist/ai/utils/oauth/types.js.map +1 -1
- package/dist/ai/utils/overflow.d.ts.map +1 -1
- package/dist/ai/utils/overflow.js +49 -21
- package/dist/ai/utils/overflow.js.map +1 -1
- package/dist/ai/utils/provider-adapter.js +9 -0
- package/dist/ai/utils/provider-adapter.js.map +1 -1
- package/dist/ai/utils/provider-client-builder.js +1 -1
- package/dist/ai/utils/provider-client-builder.js.map +1 -1
- package/dist/ai/utils/provider-errors.js +2 -0
- package/dist/ai/utils/provider-errors.js.map +1 -1
- package/dist/ai/utils/sanitize-unicode.d.ts +0 -20
- package/dist/ai/utils/sanitize-unicode.d.ts.map +1 -1
- package/dist/ai/utils/sanitize-unicode.js +35 -17
- package/dist/ai/utils/sanitize-unicode.js.map +1 -1
- package/dist/ai/utils/stream-event-helper.js +3 -0
- package/dist/ai/utils/stream-event-helper.js.map +1 -1
- package/dist/ai/utils/stream-handler-types.js +5 -0
- package/dist/ai/utils/stream-handler-types.js.map +1 -1
- package/dist/ai/utils/streaming-state-manager.js +4 -2
- package/dist/ai/utils/streaming-state-manager.js.map +1 -1
- package/dist/ai/utils/typebox-helpers.d.ts +6 -4
- package/dist/ai/utils/typebox-helpers.d.ts.map +1 -1
- package/dist/ai/utils/typebox-helpers.js +25 -7
- package/dist/ai/utils/typebox-helpers.js.map +1 -1
- package/dist/ai/utils/validation.d.ts.map +1 -1
- package/dist/ai/utils/validation.js +67 -34
- package/dist/ai/utils/validation.js.map +1 -1
- package/dist/ai.d.ts +4 -0
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +4 -0
- package/dist/ai.js.map +1 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/client-pool.js +3 -2
- package/dist/mcp/client-pool.js.map +1 -1
- package/dist/mcp/client.js +19 -6
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/config.d.ts +6 -6
- package/dist/mcp/config.js +17 -17
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/errors.js +8 -0
- package/dist/mcp/errors.js.map +1 -1
- package/dist/mcp/index.d.ts +5 -5
- package/dist/mcp/index.js +5 -5
- package/dist/mcp/schema-converter.d.ts +1 -1
- package/dist/mcp/schema-converter.js +1 -1
- package/dist/mcp/server.d.ts +4 -4
- package/dist/mcp/server.js +12 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-factory.d.ts +2 -2
- package/dist/mcp/tool-factory.js +2 -2
- package/dist/mcp.d.ts +0 -4
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +0 -4
- package/dist/mcp.js.map +1 -1
- package/dist/observability.d.ts +2 -0
- package/dist/observability.d.ts.map +1 -0
- package/dist/observability.js +2 -0
- package/dist/observability.js.map +1 -0
- package/dist/tui/autocomplete.d.ts +14 -18
- package/dist/tui/autocomplete.d.ts.map +1 -1
- package/dist/tui/autocomplete.js +290 -402
- package/dist/tui/autocomplete.js.map +1 -1
- package/dist/tui/components/box.d.ts +1 -6
- package/dist/tui/components/box.d.ts.map +1 -1
- package/dist/tui/components/box.js +98 -67
- package/dist/tui/components/box.js.map +1 -1
- package/dist/tui/components/cancellable-loader.d.ts +6 -3
- package/dist/tui/components/cancellable-loader.d.ts.map +1 -1
- package/dist/tui/components/cancellable-loader.js +8 -9
- package/dist/tui/components/cancellable-loader.js.map +1 -1
- package/dist/tui/components/editor.d.ts +18 -0
- package/dist/tui/components/editor.d.ts.map +1 -1
- package/dist/tui/components/editor.js +356 -354
- package/dist/tui/components/editor.js.map +1 -1
- package/dist/tui/components/image.d.ts +2 -0
- package/dist/tui/components/image.d.ts.map +1 -1
- package/dist/tui/components/image.js +79 -37
- package/dist/tui/components/image.js.map +1 -1
- package/dist/tui/components/input.d.ts +4 -8
- package/dist/tui/components/input.d.ts.map +1 -1
- package/dist/tui/components/input.js +236 -232
- package/dist/tui/components/input.js.map +1 -1
- package/dist/tui/components/loader.d.ts +5 -5
- package/dist/tui/components/loader.d.ts.map +1 -1
- package/dist/tui/components/loader.js +22 -19
- package/dist/tui/components/loader.js.map +1 -1
- package/dist/tui/components/markdown.d.ts +2 -32
- package/dist/tui/components/markdown.d.ts.map +1 -1
- package/dist/tui/components/markdown.js +338 -357
- package/dist/tui/components/markdown.js.map +1 -1
- package/dist/tui/components/select-list.d.ts +1 -0
- package/dist/tui/components/select-list.d.ts.map +1 -1
- package/dist/tui/components/select-list.js +83 -82
- package/dist/tui/components/select-list.js.map +1 -1
- package/dist/tui/components/settings-list.d.ts +10 -10
- package/dist/tui/components/settings-list.d.ts.map +1 -1
- package/dist/tui/components/settings-list.js +48 -40
- package/dist/tui/components/settings-list.js.map +1 -1
- package/dist/tui/components/spacer.d.ts +1 -0
- package/dist/tui/components/spacer.d.ts.map +1 -1
- package/dist/tui/components/spacer.js +20 -5
- package/dist/tui/components/spacer.js.map +1 -1
- package/dist/tui/components/text.d.ts.map +1 -1
- package/dist/tui/components/text.js +47 -20
- package/dist/tui/components/text.js.map +1 -1
- package/dist/tui/components/truncated-text.d.ts +8 -4
- package/dist/tui/components/truncated-text.d.ts.map +1 -1
- package/dist/tui/components/truncated-text.js +15 -12
- package/dist/tui/components/truncated-text.js.map +1 -1
- package/dist/tui/editor-component.d.ts +87 -23
- package/dist/tui/editor-component.d.ts.map +1 -1
- package/dist/tui/fuzzy.d.ts.map +1 -1
- package/dist/tui/fuzzy.js +101 -50
- package/dist/tui/fuzzy.js.map +1 -1
- package/dist/tui/keybindings.d.ts +3 -3
- package/dist/tui/keybindings.d.ts.map +1 -1
- package/dist/tui/keybindings.js +137 -111
- package/dist/tui/keybindings.js.map +1 -1
- package/dist/tui/keys.d.ts +46 -43
- package/dist/tui/keys.d.ts.map +1 -1
- package/dist/tui/keys.js +493 -411
- package/dist/tui/keys.js.map +1 -1
- package/dist/tui/stdin-buffer.d.ts.map +1 -1
- package/dist/tui/stdin-buffer.js +162 -159
- package/dist/tui/stdin-buffer.js.map +1 -1
- package/dist/tui/terminal-image.d.ts +10 -5
- package/dist/tui/terminal-image.d.ts.map +1 -1
- package/dist/tui/terminal-image.js +53 -51
- package/dist/tui/terminal-image.js.map +1 -1
- package/dist/tui/terminal.d.ts +4 -27
- package/dist/tui/terminal.d.ts.map +1 -1
- package/dist/tui/terminal.js +123 -121
- package/dist/tui/terminal.js.map +1 -1
- package/dist/tui/tui.d.ts +14 -1
- package/dist/tui/tui.d.ts.map +1 -1
- package/dist/tui/tui.js +185 -145
- package/dist/tui/tui.js.map +1 -1
- package/dist/tui/utils.d.ts.map +1 -1
- package/dist/tui/utils.js +235 -216
- package/dist/tui/utils.js.map +1 -1
- package/dist/tui.d.ts +4 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +4 -0
- package/dist/tui.js.map +1 -1
- package/package.json +23 -43
- package/LICENSE.md +0 -22
- package/dist/agent/tools/task-types.d.ts +0 -74
- package/dist/agent/tools/task-types.d.ts.map +0 -1
- package/dist/agent/tools/task-types.js +0 -8
- package/dist/agent/tools/task-types.js.map +0 -1
- package/dist/agent/tools/task.d.ts +0 -84
- package/dist/agent/tools/task.d.ts.map +0 -1
- package/dist/agent/tools/task.js +0 -184
- package/dist/agent/tools/task.js.map +0 -1
- package/dist/memory/embedder/base.d.ts +0 -41
- package/dist/memory/embedder/base.d.ts.map +0 -1
- package/dist/memory/embedder/base.js +0 -10
- package/dist/memory/embedder/base.js.map +0 -1
- package/dist/memory/embedder/index.d.ts +0 -8
- package/dist/memory/embedder/index.d.ts.map +0 -1
- package/dist/memory/embedder/index.js +0 -6
- package/dist/memory/embedder/index.js.map +0 -1
- package/dist/memory/embedder/openai.d.ts +0 -35
- package/dist/memory/embedder/openai.d.ts.map +0 -1
- package/dist/memory/embedder/openai.js +0 -103
- package/dist/memory/embedder/openai.js.map +0 -1
- package/dist/memory/index.d.ts +0 -33
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -31
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/memory.d.ts +0 -126
- package/dist/memory/memory.d.ts.map +0 -1
- package/dist/memory/memory.js +0 -280
- package/dist/memory/memory.js.map +0 -1
- package/dist/memory/processors/base.d.ts +0 -42
- package/dist/memory/processors/base.d.ts.map +0 -1
- package/dist/memory/processors/base.js +0 -6
- package/dist/memory/processors/base.js.map +0 -1
- package/dist/memory/processors/index.d.ts +0 -16
- package/dist/memory/processors/index.d.ts.map +0 -1
- package/dist/memory/processors/index.js +0 -18
- package/dist/memory/processors/index.js.map +0 -1
- package/dist/memory/processors/message-history.d.ts +0 -35
- package/dist/memory/processors/message-history.d.ts.map +0 -1
- package/dist/memory/processors/message-history.js +0 -51
- package/dist/memory/processors/message-history.js.map +0 -1
- package/dist/memory/processors/observational-memory/index.d.ts +0 -82
- package/dist/memory/processors/observational-memory/index.d.ts.map +0 -1
- package/dist/memory/processors/observational-memory/index.js +0 -234
- package/dist/memory/processors/observational-memory/index.js.map +0 -1
- package/dist/memory/processors/observational-memory/observer-agent.d.ts +0 -64
- package/dist/memory/processors/observational-memory/observer-agent.d.ts.map +0 -1
- package/dist/memory/processors/observational-memory/observer-agent.js +0 -362
- package/dist/memory/processors/observational-memory/observer-agent.js.map +0 -1
- package/dist/memory/processors/observational-memory/reflector-agent.d.ts +0 -38
- package/dist/memory/processors/observational-memory/reflector-agent.d.ts.map +0 -1
- package/dist/memory/processors/observational-memory/reflector-agent.js +0 -213
- package/dist/memory/processors/observational-memory/reflector-agent.js.map +0 -1
- package/dist/memory/processors/observational-memory/token-counter.d.ts +0 -35
- package/dist/memory/processors/observational-memory/token-counter.d.ts.map +0 -1
- package/dist/memory/processors/observational-memory/token-counter.js +0 -90
- package/dist/memory/processors/observational-memory/token-counter.js.map +0 -1
- package/dist/memory/processors/semantic-recall.d.ts +0 -55
- package/dist/memory/processors/semantic-recall.d.ts.map +0 -1
- package/dist/memory/processors/semantic-recall.js +0 -143
- package/dist/memory/processors/semantic-recall.js.map +0 -1
- package/dist/memory/processors/working-memory.d.ts +0 -41
- package/dist/memory/processors/working-memory.d.ts.map +0 -1
- package/dist/memory/processors/working-memory.js +0 -82
- package/dist/memory/processors/working-memory.js.map +0 -1
- package/dist/memory/storage/base.d.ts +0 -288
- package/dist/memory/storage/base.d.ts.map +0 -1
- package/dist/memory/storage/base.js +0 -211
- package/dist/memory/storage/base.js.map +0 -1
- package/dist/memory/storage/index.d.ts +0 -9
- package/dist/memory/storage/index.d.ts.map +0 -1
- package/dist/memory/storage/index.js +0 -7
- package/dist/memory/storage/index.js.map +0 -1
- package/dist/memory/storage/inmemory.d.ts +0 -93
- package/dist/memory/storage/inmemory.d.ts.map +0 -1
- package/dist/memory/storage/inmemory.js +0 -646
- package/dist/memory/storage/inmemory.js.map +0 -1
- package/dist/memory/tools/working-memory.d.ts +0 -100
- package/dist/memory/tools/working-memory.d.ts.map +0 -1
- package/dist/memory/tools/working-memory.js +0 -237
- package/dist/memory/tools/working-memory.js.map +0 -1
- package/dist/memory/types.d.ts +0 -386
- package/dist/memory/types.d.ts.map +0 -1
- package/dist/memory/types.js +0 -58
- package/dist/memory/types.js.map +0 -1
- package/dist/memory/vector/base.d.ts +0 -145
- package/dist/memory/vector/base.d.ts.map +0 -1
- package/dist/memory/vector/base.js +0 -83
- package/dist/memory/vector/base.js.map +0 -1
- package/dist/memory/vector/index.d.ts +0 -8
- package/dist/memory/vector/index.d.ts.map +0 -1
- package/dist/memory/vector/index.js +0 -7
- package/dist/memory/vector/index.js.map +0 -1
- package/dist/memory/vector/inmemory.d.ts +0 -47
- package/dist/memory/vector/inmemory.d.ts.map +0 -1
- package/dist/memory/vector/inmemory.js +0 -234
- package/dist/memory/vector/inmemory.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-resize.js","sourceRoot":"","sources":["../../../../src/agent/tools/utils/image-resize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-resize.js","sourceRoot":"","sources":["../../../../src/agent/tools/utils/image-resize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MIME type detection utilities for the read tool.
|
|
3
|
-
* This is a simplified version that handles basic MIME detection.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Detect if a file is a supported image type by reading magic bytes.
|
|
7
|
-
* This is a simplified version that checks common image signatures.
|
|
8
|
-
*/
|
|
9
1
|
export declare function detectSupportedImageMimeTypeFromFile(filePath: string): Promise<string | null>;
|
|
10
2
|
//# sourceMappingURL=mime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../../../../src/agent/tools/utils/mime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../../../../src/agent/tools/utils/mime.ts"],"names":[],"mappings":"AAKA,wBAAsB,oCAAoC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoEnG"}
|
|
@@ -1,54 +1,65 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MIME type detection utilities for the read tool.
|
|
3
|
-
* This is a simplified version that handles basic MIME detection.
|
|
4
|
-
*/
|
|
5
1
|
import { open } from "node:fs/promises";
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const FILE_TYPE_SNIFF_BYTES = 4100;
|
|
9
|
-
/**
|
|
10
|
-
* Detect if a file is a supported image type by reading magic bytes.
|
|
11
|
-
* This is a simplified version that checks common image signatures.
|
|
12
|
-
*/
|
|
2
|
+
const HEADER_BYTES = 4100;
|
|
3
|
+
const cache = new Map();
|
|
13
4
|
export async function detectSupportedImageMimeTypeFromFile(filePath) {
|
|
14
|
-
const cached =
|
|
5
|
+
const cached = cache.get(filePath);
|
|
15
6
|
if (cached !== undefined)
|
|
16
7
|
return cached;
|
|
17
|
-
const
|
|
8
|
+
const handle = await open(filePath, "r");
|
|
18
9
|
try {
|
|
19
|
-
const buffer = Buffer.alloc(
|
|
20
|
-
const { bytesRead } = await
|
|
21
|
-
if (bytesRead
|
|
10
|
+
const buffer = Buffer.alloc(HEADER_BYTES);
|
|
11
|
+
const { bytesRead } = await handle.read(buffer, 0, HEADER_BYTES, 0);
|
|
12
|
+
if (bytesRead < 3) {
|
|
13
|
+
cache.set(filePath, null);
|
|
22
14
|
return null;
|
|
23
15
|
}
|
|
24
|
-
|
|
25
|
-
if (
|
|
26
|
-
|
|
16
|
+
const isJpeg = buffer[0] === 0xff && buffer[1] === 0xd8 && buffer[2] === 0xff;
|
|
17
|
+
if (isJpeg) {
|
|
18
|
+
cache.set(filePath, "image/jpeg");
|
|
27
19
|
return "image/jpeg";
|
|
28
20
|
}
|
|
29
|
-
|
|
30
|
-
buffer[0] === 0x89 &&
|
|
31
|
-
buffer[
|
|
32
|
-
buffer[
|
|
33
|
-
|
|
21
|
+
const isPng = bytesRead >= 8 &&
|
|
22
|
+
buffer[0] === 0x89 &&
|
|
23
|
+
buffer[1] === 0x50 &&
|
|
24
|
+
buffer[2] === 0x4e &&
|
|
25
|
+
buffer[3] === 0x47 &&
|
|
26
|
+
buffer[4] === 0x0d &&
|
|
27
|
+
buffer[5] === 0x0a &&
|
|
28
|
+
buffer[6] === 0x1a &&
|
|
29
|
+
buffer[7] === 0x0a;
|
|
30
|
+
if (isPng) {
|
|
31
|
+
cache.set(filePath, "image/png");
|
|
34
32
|
return "image/png";
|
|
35
33
|
}
|
|
36
|
-
|
|
37
|
-
buffer[0] === 0x47 &&
|
|
34
|
+
const isGif = bytesRead >= 6 &&
|
|
35
|
+
buffer[0] === 0x47 &&
|
|
36
|
+
buffer[1] === 0x49 &&
|
|
37
|
+
buffer[2] === 0x46 &&
|
|
38
38
|
buffer[3] === 0x38 &&
|
|
39
|
-
(buffer[4] === 0x37 || buffer[4] === 0x39) &&
|
|
39
|
+
(buffer[4] === 0x37 || buffer[4] === 0x39) &&
|
|
40
|
+
buffer[5] === 0x61;
|
|
41
|
+
if (isGif) {
|
|
42
|
+
cache.set(filePath, "image/gif");
|
|
40
43
|
return "image/gif";
|
|
41
44
|
}
|
|
42
|
-
|
|
43
|
-
buffer[0] === 0x52 &&
|
|
44
|
-
buffer[
|
|
45
|
-
buffer[
|
|
45
|
+
const isWebp = bytesRead >= 12 &&
|
|
46
|
+
buffer[0] === 0x52 &&
|
|
47
|
+
buffer[1] === 0x49 &&
|
|
48
|
+
buffer[2] === 0x46 &&
|
|
49
|
+
buffer[3] === 0x46 &&
|
|
50
|
+
buffer[8] === 0x57 &&
|
|
51
|
+
buffer[9] === 0x45 &&
|
|
52
|
+
buffer[10] === 0x42 &&
|
|
53
|
+
buffer[11] === 0x50;
|
|
54
|
+
if (isWebp) {
|
|
55
|
+
cache.set(filePath, "image/webp");
|
|
46
56
|
return "image/webp";
|
|
47
57
|
}
|
|
58
|
+
cache.set(filePath, null);
|
|
48
59
|
return null;
|
|
49
60
|
}
|
|
50
61
|
finally {
|
|
51
|
-
await
|
|
62
|
+
await handle.close();
|
|
52
63
|
}
|
|
53
64
|
}
|
|
54
65
|
//# sourceMappingURL=mime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mime.js","sourceRoot":"","sources":["../../../../src/agent/tools/utils/mime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mime.js","sourceRoot":"","sources":["../../../../src/agent/tools/utils/mime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shell utilities for bash tool.
|
|
3
|
-
* Simplified version for indusagi agent framework.
|
|
4
|
-
*/
|
|
5
1
|
export declare function resetShellConfigCache(): void;
|
|
6
2
|
export declare function validateShellConfig(config: {
|
|
7
3
|
shell: string;
|
|
8
4
|
args: string[];
|
|
9
5
|
}): void;
|
|
10
|
-
/**
|
|
11
|
-
* Get shell configuration based on platform.
|
|
12
|
-
* Resolution order:
|
|
13
|
-
* 1. On Windows: Git Bash in known locations, then bash on PATH
|
|
14
|
-
* 2. On Unix: /bin/bash
|
|
15
|
-
* 3. Fallback: sh
|
|
16
|
-
*/
|
|
17
6
|
export declare function getShellConfig(): {
|
|
18
7
|
shell: string;
|
|
19
8
|
args: string[];
|
|
20
9
|
};
|
|
21
|
-
/**
|
|
22
|
-
* Get shell environment.
|
|
23
|
-
* Returns current environment with PATH unmodified.
|
|
24
|
-
*/
|
|
25
10
|
export declare function getShellEnv(): NodeJS.ProcessEnv;
|
|
26
|
-
|
|
27
|
-
* Sanitize binary output for display/storage.
|
|
28
|
-
* Removes characters that crash string-width or cause display issues.
|
|
29
|
-
*/
|
|
30
|
-
export declare function sanitizeBinaryOutput(str: string): string;
|
|
31
|
-
/**
|
|
32
|
-
* Kill a process and all its children (cross-platform)
|
|
33
|
-
*/
|
|
11
|
+
export declare function sanitizeBinaryOutput(text: string): string;
|
|
34
12
|
export declare function killProcessTree(pid: number): void;
|
|
35
13
|
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/agent/tools/utils/shell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/agent/tools/utils/shell.ts"],"names":[],"mappings":"AAKA,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAInF;AAmBD,wBAAgB,cAAc,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAsClE;AAED,wBAAgB,WAAW,IAAI,MAAM,CAAC,UAAU,CAE/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAmBjD"}
|
|
@@ -1,77 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
* Shell utilities for bash tool.
|
|
3
|
-
* Simplified version for indusagi agent framework.
|
|
4
|
-
*/
|
|
1
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
5
2
|
import { existsSync } from "node:fs";
|
|
6
|
-
import { spawn, spawnSync } from "child_process";
|
|
7
3
|
let cachedShellConfig = null;
|
|
8
4
|
export function resetShellConfigCache() {
|
|
9
5
|
cachedShellConfig = null;
|
|
10
6
|
}
|
|
11
7
|
export function validateShellConfig(config) {
|
|
12
|
-
if (!config.shell || config.shell.trim()
|
|
13
|
-
throw new Error("Invalid shell config: shell path
|
|
8
|
+
if (!config.shell || !config.shell.trim()) {
|
|
9
|
+
throw new Error("Invalid shell config: shell path is empty");
|
|
14
10
|
}
|
|
15
11
|
}
|
|
16
|
-
|
|
17
|
-
* Find bash executable on PATH (Windows)
|
|
18
|
-
*/
|
|
19
|
-
function findBashOnPath() {
|
|
12
|
+
function findWindowsBash() {
|
|
20
13
|
try {
|
|
21
|
-
const result = spawnSync("where", ["bash.exe"], { encoding: "
|
|
22
|
-
if (result.status
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
const result = spawnSync("where", ["bash.exe"], { encoding: "utf8", timeout: 5000 });
|
|
15
|
+
if (result.status !== 0 || !result.stdout)
|
|
16
|
+
return null;
|
|
17
|
+
const first = result.stdout
|
|
18
|
+
.split(/\r?\n/)
|
|
19
|
+
.map((line) => line.trim())
|
|
20
|
+
.find((line) => line.length > 0);
|
|
21
|
+
if (!first)
|
|
22
|
+
return null;
|
|
23
|
+
return existsSync(first) ? first : null;
|
|
28
24
|
}
|
|
29
25
|
catch {
|
|
30
|
-
|
|
26
|
+
return null;
|
|
31
27
|
}
|
|
32
|
-
return null;
|
|
33
28
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Get shell configuration based on platform.
|
|
36
|
-
* Resolution order:
|
|
37
|
-
* 1. On Windows: Git Bash in known locations, then bash on PATH
|
|
38
|
-
* 2. On Unix: /bin/bash
|
|
39
|
-
* 3. Fallback: sh
|
|
40
|
-
*/
|
|
41
29
|
export function getShellConfig() {
|
|
42
30
|
if (cachedShellConfig) {
|
|
43
31
|
validateShellConfig(cachedShellConfig);
|
|
44
32
|
return cachedShellConfig;
|
|
45
33
|
}
|
|
46
34
|
if (process.platform === "win32") {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (programFiles) {
|
|
51
|
-
paths.push(`${programFiles}\\Git\\bin\\bash.exe`);
|
|
35
|
+
const candidates = [];
|
|
36
|
+
if (process.env.ProgramFiles) {
|
|
37
|
+
candidates.push(`${process.env.ProgramFiles}\\Git\\bin\\bash.exe`);
|
|
52
38
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
paths.push(`${programFilesX86}\\Git\\bin\\bash.exe`);
|
|
39
|
+
if (process.env["ProgramFiles(x86)"]) {
|
|
40
|
+
candidates.push(`${process.env["ProgramFiles(x86)"]}\\Git\\bin\\bash.exe`);
|
|
56
41
|
}
|
|
57
|
-
for (const
|
|
58
|
-
if (existsSync(
|
|
59
|
-
cachedShellConfig = { shell:
|
|
42
|
+
for (const candidate of candidates) {
|
|
43
|
+
if (existsSync(candidate)) {
|
|
44
|
+
cachedShellConfig = { shell: candidate, args: ["-c"] };
|
|
60
45
|
return cachedShellConfig;
|
|
61
46
|
}
|
|
62
47
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
cachedShellConfig = { shell: bashOnPath, args: ["-c"] };
|
|
48
|
+
const fromPath = findWindowsBash();
|
|
49
|
+
if (fromPath) {
|
|
50
|
+
cachedShellConfig = { shell: fromPath, args: ["-c"] };
|
|
67
51
|
return cachedShellConfig;
|
|
68
52
|
}
|
|
69
|
-
throw new Error(
|
|
70
|
-
` 1. Install Git for Windows: https://git-scm.com/download/win\n` +
|
|
71
|
-
` 2. Add your bash to PATH (Cygwin, MSYS2, etc.)\n\n` +
|
|
72
|
-
`Searched Git Bash in:\n${paths.map((p) => ` ${p}`).join("\n")}`);
|
|
53
|
+
throw new Error("No bash shell found on Windows. Install Git Bash or add bash.exe to PATH.");
|
|
73
54
|
}
|
|
74
|
-
// Unix: prefer bash over sh
|
|
75
55
|
if (existsSync("/bin/bash")) {
|
|
76
56
|
cachedShellConfig = { shell: "/bin/bash", args: ["-c"] };
|
|
77
57
|
return cachedShellConfig;
|
|
@@ -79,67 +59,44 @@ export function getShellConfig() {
|
|
|
79
59
|
cachedShellConfig = { shell: "sh", args: ["-c"] };
|
|
80
60
|
return cachedShellConfig;
|
|
81
61
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Get shell environment.
|
|
84
|
-
* Returns current environment with PATH unmodified.
|
|
85
|
-
*/
|
|
86
62
|
export function getShellEnv() {
|
|
87
63
|
return { ...process.env };
|
|
88
64
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
* Removes characters that crash string-width or cause display issues.
|
|
92
|
-
*/
|
|
93
|
-
export function sanitizeBinaryOutput(str) {
|
|
94
|
-
// Use Array.from to properly iterate over code points
|
|
95
|
-
return Array.from(str)
|
|
65
|
+
export function sanitizeBinaryOutput(text) {
|
|
66
|
+
return Array.from(text)
|
|
96
67
|
.filter((char) => {
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
if (code === undefined)
|
|
68
|
+
const codePoint = char.codePointAt(0);
|
|
69
|
+
if (codePoint === undefined)
|
|
100
70
|
return false;
|
|
101
|
-
|
|
102
|
-
if (code === 0x09 || code === 0x0a || code === 0x0d)
|
|
71
|
+
if (codePoint === 0x09 || codePoint === 0x0a || codePoint === 0x0d)
|
|
103
72
|
return true;
|
|
104
|
-
|
|
105
|
-
if (code <= 0x1f)
|
|
73
|
+
if (codePoint <= 0x1f)
|
|
106
74
|
return false;
|
|
107
|
-
|
|
108
|
-
if (code >= 0xfff9 && code <= 0xfffb)
|
|
75
|
+
if (codePoint >= 0xfff9 && codePoint <= 0xfffb)
|
|
109
76
|
return false;
|
|
110
77
|
return true;
|
|
111
78
|
})
|
|
112
79
|
.join("");
|
|
113
80
|
}
|
|
114
|
-
/**
|
|
115
|
-
* Kill a process and all its children (cross-platform)
|
|
116
|
-
*/
|
|
117
81
|
export function killProcessTree(pid) {
|
|
118
82
|
if (process.platform === "win32") {
|
|
119
|
-
// Use taskkill on Windows to kill process tree
|
|
120
83
|
try {
|
|
121
|
-
spawn("taskkill", ["/F", "/T", "/PID", String(pid)], {
|
|
122
|
-
stdio: "ignore",
|
|
123
|
-
detached: true,
|
|
124
|
-
});
|
|
84
|
+
spawn("taskkill", ["/F", "/T", "/PID", String(pid)], { stdio: "ignore", detached: true });
|
|
125
85
|
}
|
|
126
86
|
catch {
|
|
127
|
-
//
|
|
87
|
+
// ignore cleanup failures
|
|
128
88
|
}
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
process.kill(-pid, "SIGKILL");
|
|
129
93
|
}
|
|
130
|
-
|
|
131
|
-
// Use SIGKILL on Unix/Linux/Mac
|
|
94
|
+
catch {
|
|
132
95
|
try {
|
|
133
|
-
process.kill(
|
|
96
|
+
process.kill(pid, "SIGKILL");
|
|
134
97
|
}
|
|
135
98
|
catch {
|
|
136
|
-
//
|
|
137
|
-
try {
|
|
138
|
-
process.kill(pid, "SIGKILL");
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
// Process already dead
|
|
142
|
-
}
|
|
99
|
+
// process already exited
|
|
143
100
|
}
|
|
144
101
|
}
|
|
145
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../src/agent/tools/utils/shell.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../src/agent/tools/utils/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,QAAA,MAAM,WAAW;;;EAGf,CAAC;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,8BAA8B;IAC9B,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,qCAAqC;IACrC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,QAAA,MAAM,WAAW;;;EAGf,CAAC;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,8BAA8B;IAC9B,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,qCAAqC;IACrC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAgBD,MAAM,WAAW,gBAAgB;IAChC,oEAAoE;IACpE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,0CAA0C;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AA2GD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC,OAAO,WAAW,CAAC,CAiCtG;AAED,2EAA2E;AAC3E,eAAO,MAAM,SAAS;;;QAAiC,CAAC"}
|
|
@@ -13,12 +13,106 @@ const defaultWriteOperations = {
|
|
|
13
13
|
};
|
|
14
14
|
class FileValidator {
|
|
15
15
|
validate(path) {
|
|
16
|
-
if (!path || path.trim().length === 0)
|
|
16
|
+
if (!path || path.trim().length === 0) {
|
|
17
17
|
throw new Error("Path cannot be empty");
|
|
18
|
+
}
|
|
18
19
|
}
|
|
19
20
|
}
|
|
21
|
+
class WriteSession {
|
|
22
|
+
cwd;
|
|
23
|
+
relativePath;
|
|
24
|
+
fileContent;
|
|
25
|
+
operations;
|
|
26
|
+
createBackup;
|
|
27
|
+
absolutePath;
|
|
28
|
+
targetDir;
|
|
29
|
+
constructor(cwd, relativePath, fileContent, operations, createBackup) {
|
|
30
|
+
this.cwd = cwd;
|
|
31
|
+
this.relativePath = relativePath;
|
|
32
|
+
this.fileContent = fileContent;
|
|
33
|
+
this.operations = operations;
|
|
34
|
+
this.createBackup = createBackup;
|
|
35
|
+
this.absolutePath = resolveToCwd(relativePath, cwd);
|
|
36
|
+
this.targetDir = dirname(this.absolutePath);
|
|
37
|
+
}
|
|
38
|
+
async prepareDirectories() {
|
|
39
|
+
await this.operations.mkdir(this.targetDir);
|
|
40
|
+
}
|
|
41
|
+
async backupIfEnabled() {
|
|
42
|
+
if (!this.createBackup || !this.operations.copyFile) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
await this.operations.copyFile(this.absolutePath, `${this.absolutePath}.bak`);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Ignore backup failures when file does not exist yet.
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async persistContent() {
|
|
53
|
+
await this.operations.writeFile(this.absolutePath, this.fileContent);
|
|
54
|
+
}
|
|
55
|
+
buildResponse() {
|
|
56
|
+
return {
|
|
57
|
+
content: [{ type: "text", text: `Successfully wrote ${this.fileContent.length} bytes to ${this.relativePath}` }],
|
|
58
|
+
details: undefined,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function createAbortError() {
|
|
63
|
+
return new Error("Operation aborted");
|
|
64
|
+
}
|
|
65
|
+
function throwIfAborted(isAborted) {
|
|
66
|
+
if (isAborted()) {
|
|
67
|
+
throw createAbortError();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function withAbort(signal, task) {
|
|
71
|
+
if (signal?.aborted) {
|
|
72
|
+
return Promise.reject(createAbortError());
|
|
73
|
+
}
|
|
74
|
+
return new Promise((resolve, reject) => {
|
|
75
|
+
let settled = false;
|
|
76
|
+
const completeResolve = (value) => {
|
|
77
|
+
if (settled)
|
|
78
|
+
return;
|
|
79
|
+
settled = true;
|
|
80
|
+
if (signal)
|
|
81
|
+
signal.removeEventListener("abort", onAbort);
|
|
82
|
+
resolve(value);
|
|
83
|
+
};
|
|
84
|
+
const completeReject = (error) => {
|
|
85
|
+
if (settled)
|
|
86
|
+
return;
|
|
87
|
+
settled = true;
|
|
88
|
+
if (signal)
|
|
89
|
+
signal.removeEventListener("abort", onAbort);
|
|
90
|
+
reject(error);
|
|
91
|
+
};
|
|
92
|
+
const isAborted = () => Boolean(signal?.aborted);
|
|
93
|
+
const onAbort = () => completeReject(createAbortError());
|
|
94
|
+
if (signal) {
|
|
95
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
96
|
+
}
|
|
97
|
+
task(isAborted)
|
|
98
|
+
.then((result) => {
|
|
99
|
+
if (isAborted()) {
|
|
100
|
+
completeReject(createAbortError());
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
completeResolve(result);
|
|
104
|
+
})
|
|
105
|
+
.catch((error) => {
|
|
106
|
+
if (isAborted()) {
|
|
107
|
+
completeReject(createAbortError());
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
completeReject(error);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
20
114
|
export function createWriteTool(cwd, options) {
|
|
21
|
-
const
|
|
115
|
+
const operations = options?.operations ?? defaultWriteOperations;
|
|
22
116
|
const validator = new FileValidator();
|
|
23
117
|
return {
|
|
24
118
|
name: "write",
|
|
@@ -27,66 +121,15 @@ export function createWriteTool(cwd, options) {
|
|
|
27
121
|
parameters: writeSchema,
|
|
28
122
|
execute: async (_toolCallId, { path, content }, signal) => {
|
|
29
123
|
validator.validate(path);
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// Set up abort handler
|
|
40
|
-
const onAbort = () => {
|
|
41
|
-
aborted = true;
|
|
42
|
-
reject(new Error("Operation aborted"));
|
|
43
|
-
};
|
|
44
|
-
if (signal) {
|
|
45
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
46
|
-
}
|
|
47
|
-
// Perform the write operation
|
|
48
|
-
(async () => {
|
|
49
|
-
try {
|
|
50
|
-
// Create parent directories if needed
|
|
51
|
-
await ops.mkdir(dir);
|
|
52
|
-
// Check if aborted before writing
|
|
53
|
-
if (aborted) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
// Backup existing file if requested
|
|
57
|
-
if (options?.createBackup && ops.copyFile) {
|
|
58
|
-
try {
|
|
59
|
-
await ops.copyFile(absolutePath, `${absolutePath}.bak`);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
// ignore when target does not exist yet
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
// Write the file
|
|
66
|
-
await ops.writeFile(absolutePath, content);
|
|
67
|
-
// Check if aborted after writing
|
|
68
|
-
if (aborted) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
// Clean up abort handler
|
|
72
|
-
if (signal) {
|
|
73
|
-
signal.removeEventListener("abort", onAbort);
|
|
74
|
-
}
|
|
75
|
-
resolve({
|
|
76
|
-
content: [{ type: "text", text: `Successfully wrote ${content.length} bytes to ${path}` }],
|
|
77
|
-
details: undefined,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
// Clean up abort handler
|
|
82
|
-
if (signal) {
|
|
83
|
-
signal.removeEventListener("abort", onAbort);
|
|
84
|
-
}
|
|
85
|
-
if (!aborted) {
|
|
86
|
-
reject(error);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
})();
|
|
124
|
+
const writeSession = new WriteSession(cwd, path, content, operations, Boolean(options?.createBackup));
|
|
125
|
+
return withAbort(signal, async (isAborted) => {
|
|
126
|
+
await writeSession.prepareDirectories();
|
|
127
|
+
throwIfAborted(isAborted);
|
|
128
|
+
await writeSession.backupIfEnabled();
|
|
129
|
+
throwIfAborted(isAborted);
|
|
130
|
+
await writeSession.persistContent();
|
|
131
|
+
throwIfAborted(isAborted);
|
|
132
|
+
return writeSession.buildResponse();
|
|
90
133
|
});
|
|
91
134
|
},
|
|
92
135
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/agent/tools/write.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,KAAK,IAAI,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;IACtF,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;CACrE,CAAC,CAAC;AAeH,MAAM,sBAAsB,GAAoB;IAC/C,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;IACjE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;IAChE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,aAAa;IAClB,QAAQ,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/agent/tools/write.ts"],"names":[],"mappings":"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"}
|