@synergenius/flowweaver-pack-weaver 0.5.0 → 0.5.2
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 +167 -0
- package/dist/bot/agent-provider.d.ts +15 -1
- package/dist/bot/agent-provider.d.ts.map +1 -1
- package/dist/bot/agent-provider.js +78 -2
- package/dist/bot/agent-provider.js.map +1 -1
- package/dist/bot/ai-client.d.ts +4 -0
- package/dist/bot/ai-client.d.ts.map +1 -0
- package/dist/bot/ai-client.js +46 -0
- package/dist/bot/ai-client.js.map +1 -0
- package/dist/bot/bot-agent-channel.d.ts +14 -1
- package/dist/bot/bot-agent-channel.d.ts.map +1 -1
- package/dist/bot/bot-agent-channel.js +16 -0
- package/dist/bot/bot-agent-channel.js.map +1 -1
- package/dist/bot/cli-provider.d.ts +16 -1
- package/dist/bot/cli-provider.d.ts.map +1 -1
- package/dist/bot/cli-provider.js +10 -0
- package/dist/bot/cli-provider.js.map +1 -1
- package/dist/bot/dashboard.d.ts.map +1 -1
- package/dist/bot/dashboard.js +2 -2
- package/dist/bot/dashboard.js.map +1 -1
- package/dist/bot/file-lock.d.ts +7 -0
- package/dist/bot/file-lock.d.ts.map +1 -0
- package/dist/bot/file-lock.js +64 -0
- package/dist/bot/file-lock.js.map +1 -0
- package/dist/bot/file-validator.d.ts +7 -0
- package/dist/bot/file-validator.d.ts.map +1 -0
- package/dist/bot/file-validator.js +20 -0
- package/dist/bot/file-validator.js.map +1 -0
- package/dist/bot/genesis-store.d.ts +18 -0
- package/dist/bot/genesis-store.d.ts.map +1 -0
- package/dist/bot/genesis-store.js +89 -0
- package/dist/bot/genesis-store.js.map +1 -0
- package/dist/bot/index.d.ts +7 -1
- package/dist/bot/index.d.ts.map +1 -1
- package/dist/bot/index.js +8 -0
- package/dist/bot/index.js.map +1 -1
- package/dist/bot/runner.d.ts.map +1 -1
- package/dist/bot/runner.js +2 -4
- package/dist/bot/runner.js.map +1 -1
- package/dist/bot/session-state.d.ts +3 -3
- package/dist/bot/session-state.d.ts.map +1 -1
- package/dist/bot/session-state.js +24 -15
- package/dist/bot/session-state.js.map +1 -1
- package/dist/bot/steering.d.ts +2 -2
- package/dist/bot/steering.d.ts.map +1 -1
- package/dist/bot/steering.js +20 -15
- package/dist/bot/steering.js.map +1 -1
- package/dist/bot/step-executor.d.ts +9 -0
- package/dist/bot/step-executor.d.ts.map +1 -0
- package/dist/bot/step-executor.js +51 -0
- package/dist/bot/step-executor.js.map +1 -0
- package/dist/bot/task-queue.d.ts +8 -8
- package/dist/bot/task-queue.d.ts.map +1 -1
- package/dist/bot/task-queue.js +58 -47
- package/dist/bot/task-queue.js.map +1 -1
- package/dist/bot/types.d.ts +131 -0
- package/dist/bot/types.d.ts.map +1 -1
- package/dist/cli-bridge.d.ts.map +1 -1
- package/dist/cli-bridge.js +2 -4
- package/dist/cli-bridge.js.map +1 -1
- package/dist/cli-handlers.d.ts +4 -1
- package/dist/cli-handlers.d.ts.map +1 -1
- package/dist/cli-handlers.js +84 -8
- package/dist/cli-handlers.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-tools.d.ts.map +1 -1
- package/dist/mcp-tools.js +27 -5
- package/dist/mcp-tools.js.map +1 -1
- package/dist/node-types/abort-task.d.ts +5 -12
- package/dist/node-types/abort-task.d.ts.map +1 -1
- package/dist/node-types/abort-task.js +11 -16
- package/dist/node-types/abort-task.js.map +1 -1
- package/dist/node-types/approval-gate.d.ts +4 -21
- package/dist/node-types/approval-gate.d.ts.map +1 -1
- package/dist/node-types/approval-gate.js +17 -23
- package/dist/node-types/approval-gate.js.map +1 -1
- package/dist/node-types/bot-report.d.ts +8 -10
- package/dist/node-types/bot-report.d.ts.map +1 -1
- package/dist/node-types/bot-report.js +28 -24
- package/dist/node-types/bot-report.js.map +1 -1
- package/dist/node-types/build-context.d.ts +5 -18
- package/dist/node-types/build-context.d.ts.map +1 -1
- package/dist/node-types/build-context.js +14 -23
- package/dist/node-types/build-context.js.map +1 -1
- package/dist/node-types/detect-provider.d.ts +7 -10
- package/dist/node-types/detect-provider.d.ts.map +1 -1
- package/dist/node-types/detect-provider.js +8 -12
- package/dist/node-types/detect-provider.js.map +1 -1
- package/dist/node-types/exec-validate-retry.d.ts +5 -26
- package/dist/node-types/exec-validate-retry.d.ts.map +1 -1
- package/dist/node-types/exec-validate-retry.js +21 -144
- package/dist/node-types/exec-validate-retry.js.map +1 -1
- package/dist/node-types/execute-plan.d.ts +10 -18
- package/dist/node-types/execute-plan.d.ts.map +1 -1
- package/dist/node-types/execute-plan.js +13 -68
- package/dist/node-types/execute-plan.js.map +1 -1
- package/dist/node-types/execute-target.d.ts +5 -15
- package/dist/node-types/execute-target.d.ts.map +1 -1
- package/dist/node-types/execute-target.js +17 -85
- package/dist/node-types/execute-target.js.map +1 -1
- package/dist/node-types/fix-errors.d.ts +9 -17
- package/dist/node-types/fix-errors.d.ts.map +1 -1
- package/dist/node-types/fix-errors.js +13 -64
- package/dist/node-types/fix-errors.js.map +1 -1
- package/dist/node-types/genesis-apply-retry.d.ts +24 -0
- package/dist/node-types/genesis-apply-retry.d.ts.map +1 -0
- package/dist/node-types/genesis-apply-retry.js +95 -0
- package/dist/node-types/genesis-apply-retry.js.map +1 -0
- package/dist/node-types/genesis-apply.d.ts +29 -0
- package/dist/node-types/genesis-apply.d.ts.map +1 -0
- package/dist/node-types/genesis-apply.js +76 -0
- package/dist/node-types/genesis-apply.js.map +1 -0
- package/dist/node-types/genesis-approve.d.ts +19 -0
- package/dist/node-types/genesis-approve.d.ts.map +1 -0
- package/dist/node-types/genesis-approve.js +54 -0
- package/dist/node-types/genesis-approve.js.map +1 -0
- package/dist/node-types/genesis-check-stabilize.d.ts +16 -0
- package/dist/node-types/genesis-check-stabilize.d.ts.map +1 -0
- package/dist/node-types/genesis-check-stabilize.js +32 -0
- package/dist/node-types/genesis-check-stabilize.js.map +1 -0
- package/dist/node-types/genesis-check-threshold.d.ts +15 -0
- package/dist/node-types/genesis-check-threshold.d.ts.map +1 -0
- package/dist/node-types/genesis-check-threshold.js +29 -0
- package/dist/node-types/genesis-check-threshold.js.map +1 -0
- package/dist/node-types/genesis-commit.d.ts +17 -0
- package/dist/node-types/genesis-commit.d.ts.map +1 -0
- package/dist/node-types/genesis-commit.js +59 -0
- package/dist/node-types/genesis-commit.js.map +1 -0
- package/dist/node-types/genesis-compile-validate.d.ts +26 -0
- package/dist/node-types/genesis-compile-validate.d.ts.map +1 -0
- package/dist/node-types/genesis-compile-validate.js +60 -0
- package/dist/node-types/genesis-compile-validate.js.map +1 -0
- package/dist/node-types/genesis-diff-fingerprint.d.ts +15 -0
- package/dist/node-types/genesis-diff-fingerprint.d.ts.map +1 -0
- package/dist/node-types/genesis-diff-fingerprint.js +59 -0
- package/dist/node-types/genesis-diff-fingerprint.js.map +1 -0
- package/dist/node-types/genesis-diff-workflow.d.ts +15 -0
- package/dist/node-types/genesis-diff-workflow.d.ts.map +1 -0
- package/dist/node-types/genesis-diff-workflow.js +39 -0
- package/dist/node-types/genesis-diff-workflow.js.map +1 -0
- package/dist/node-types/genesis-load-config.d.ts +17 -0
- package/dist/node-types/genesis-load-config.d.ts.map +1 -0
- package/dist/node-types/genesis-load-config.js +35 -0
- package/dist/node-types/genesis-load-config.js.map +1 -0
- package/dist/node-types/genesis-observe.d.ts +18 -0
- package/dist/node-types/genesis-observe.d.ts.map +1 -0
- package/dist/node-types/genesis-observe.js +101 -0
- package/dist/node-types/genesis-observe.js.map +1 -0
- package/dist/node-types/genesis-propose.d.ts +17 -0
- package/dist/node-types/genesis-propose.d.ts.map +1 -0
- package/dist/node-types/genesis-propose.js +67 -0
- package/dist/node-types/genesis-propose.js.map +1 -0
- package/dist/node-types/genesis-report.d.ts +18 -0
- package/dist/node-types/genesis-report.d.ts.map +1 -0
- package/dist/node-types/genesis-report.js +61 -0
- package/dist/node-types/genesis-report.js.map +1 -0
- package/dist/node-types/genesis-snapshot.d.ts +15 -0
- package/dist/node-types/genesis-snapshot.d.ts.map +1 -0
- package/dist/node-types/genesis-snapshot.js +26 -0
- package/dist/node-types/genesis-snapshot.js.map +1 -0
- package/dist/node-types/genesis-try-apply.d.ts +18 -0
- package/dist/node-types/genesis-try-apply.d.ts.map +1 -0
- package/dist/node-types/genesis-try-apply.js +109 -0
- package/dist/node-types/genesis-try-apply.js.map +1 -0
- package/dist/node-types/genesis-update-history.d.ts +15 -0
- package/dist/node-types/genesis-update-history.d.ts.map +1 -0
- package/dist/node-types/genesis-update-history.js +57 -0
- package/dist/node-types/genesis-update-history.js.map +1 -0
- package/dist/node-types/genesis-validate-proposal.d.ts +16 -0
- package/dist/node-types/genesis-validate-proposal.d.ts.map +1 -0
- package/dist/node-types/genesis-validate-proposal.js +52 -0
- package/dist/node-types/genesis-validate-proposal.js.map +1 -0
- package/dist/node-types/git-ops.d.ts +5 -8
- package/dist/node-types/git-ops.d.ts.map +1 -1
- package/dist/node-types/git-ops.js +16 -14
- package/dist/node-types/git-ops.js.map +1 -1
- package/dist/node-types/index.d.ts +17 -0
- package/dist/node-types/index.d.ts.map +1 -1
- package/dist/node-types/index.js +17 -0
- package/dist/node-types/index.js.map +1 -1
- package/dist/node-types/load-config.d.ts +4 -2
- package/dist/node-types/load-config.d.ts.map +1 -1
- package/dist/node-types/load-config.js +3 -2
- package/dist/node-types/load-config.js.map +1 -1
- package/dist/node-types/plan-task.d.ts +5 -20
- package/dist/node-types/plan-task.d.ts.map +1 -1
- package/dist/node-types/plan-task.js +16 -85
- package/dist/node-types/plan-task.js.map +1 -1
- package/dist/node-types/read-workflow.d.ts +5 -20
- package/dist/node-types/read-workflow.d.ts.map +1 -1
- package/dist/node-types/read-workflow.js +16 -28
- package/dist/node-types/read-workflow.js.map +1 -1
- package/dist/node-types/receive-task.d.ts +9 -20
- package/dist/node-types/receive-task.d.ts.map +1 -1
- package/dist/node-types/receive-task.js +16 -19
- package/dist/node-types/receive-task.js.map +1 -1
- package/dist/node-types/report.d.ts +3 -4
- package/dist/node-types/report.d.ts.map +1 -1
- package/dist/node-types/report.js +6 -6
- package/dist/node-types/report.js.map +1 -1
- package/dist/node-types/resolve-target.d.ts +7 -15
- package/dist/node-types/resolve-target.d.ts.map +1 -1
- package/dist/node-types/resolve-target.js +47 -47
- package/dist/node-types/resolve-target.js.map +1 -1
- package/dist/node-types/route-task.d.ts +4 -16
- package/dist/node-types/route-task.d.ts.map +1 -1
- package/dist/node-types/route-task.js +6 -13
- package/dist/node-types/route-task.js.map +1 -1
- package/dist/node-types/send-notify.d.ts +5 -11
- package/dist/node-types/send-notify.d.ts.map +1 -1
- package/dist/node-types/send-notify.js +17 -24
- package/dist/node-types/send-notify.js.map +1 -1
- package/dist/node-types/validate-result.d.ts +11 -19
- package/dist/node-types/validate-result.d.ts.map +1 -1
- package/dist/node-types/validate-result.js +18 -33
- package/dist/node-types/validate-result.js.map +1 -1
- package/dist/workflows/genesis-task.d.ts +52 -0
- package/dist/workflows/genesis-task.d.ts.map +1 -0
- package/dist/workflows/genesis-task.js +56 -0
- package/dist/workflows/genesis-task.js.map +1 -0
- package/dist/workflows/index.d.ts +1 -1
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/weaver-bot-batch.d.ts +15 -26
- package/dist/workflows/weaver-bot-batch.d.ts.map +1 -1
- package/dist/workflows/weaver-bot-batch.js +15 -26
- package/dist/workflows/weaver-bot-batch.js.map +1 -1
- package/dist/workflows/weaver-bot.d.ts +18 -32
- package/dist/workflows/weaver-bot.d.ts.map +1 -1
- package/dist/workflows/weaver-bot.js +18 -32
- package/dist/workflows/weaver-bot.js.map +1 -1
- package/dist/workflows/weaver.d.ts +9 -9
- package/dist/workflows/weaver.js +9 -9
- package/flowweaver.manifest.json +494 -558
- package/package.json +3 -3
- package/dist/workflows/weaver-bot-session.d.ts +0 -65
- package/dist/workflows/weaver-bot-session.d.ts.map +0 -1
- package/dist/workflows/weaver-bot-session.js +0 -68
- package/dist/workflows/weaver-bot-session.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Weaver
|
|
2
|
+
|
|
3
|
+
Weaver is an autonomous AI bot that creates, runs, and evolves Flow Weaver workflows. It is itself built as a set of Flow Weaver workflows, so the bot that evolves workflows is a workflow. It ships as a marketplace pack (`@synergenius/flowweaver-pack-weaver`) and plugs into any Flow Weaver project.
|
|
4
|
+
|
|
5
|
+
Weaver understands the full Flow Weaver ecosystem: annotation grammar, compilation, validation, CLI tools, node patterns, error diagnosis, and the Genesis self-evolution protocol. This knowledge is loaded dynamically from `@synergenius/flow-weaver/doc-metadata`, so Weaver always stays current with the engine.
|
|
6
|
+
|
|
7
|
+
## How it works
|
|
8
|
+
|
|
9
|
+
Weaver connects to an AI provider (Anthropic API, Claude CLI, or GitHub Copilot CLI), detects the right one automatically or uses your `.weaver.json` config, and operates in one of four modes:
|
|
10
|
+
|
|
11
|
+
**Run mode** (`weaver run`) executes an existing workflow file with an AI agent channel attached. The agent channel lets nodes inside the target workflow pause and ask Weaver for decisions. This is how Genesis works: the genesis-task workflow asks Weaver what evolutions to propose, and Weaver responds with structured operations.
|
|
12
|
+
|
|
13
|
+
**Bot mode** (`weaver bot "create a greeting workflow"`) takes a task instruction and handles it end-to-end. It builds context from the project, sends the task to the AI for planning, presents the plan for approval, executes the plan steps (writing files, running CLI commands, compiling), validates the results, and retries with AI-generated fixes if validation fails. Git operations and notifications run in parallel after execution.
|
|
14
|
+
|
|
15
|
+
**Batch mode** (`weaver bot --batch`) processes multiple sub-tasks sequentially through the same plan-approve-execute cycle.
|
|
16
|
+
|
|
17
|
+
**Session mode** (`weaver session`) polls a task queue continuously, picking up tasks submitted via CLI or MCP and processing them one at a time through the full pipeline.
|
|
18
|
+
|
|
19
|
+
## The three workflows
|
|
20
|
+
|
|
21
|
+
Each mode maps to a workflow file that wires the same set of reusable node types differently:
|
|
22
|
+
|
|
23
|
+
`weaver.ts` is the runner. Six nodes in a line: load config, detect provider, find the target, execute it, notify, report.
|
|
24
|
+
|
|
25
|
+
`weaver-bot.ts` is the single-task bot. It adds task routing (read-only tasks skip to analysis, actionable tasks go through planning), an approval gate with an abort path, the execute-validate-retry loop, and parallel fan-out to git ops and notifications before merging at the report node. Session mode also uses this workflow, running it in a continuous loop that polls the task queue.
|
|
26
|
+
|
|
27
|
+
`weaver-bot-batch.ts` is the batch variant. Same pipeline as the bot but without read-only routing, since batch tasks are always actionable.
|
|
28
|
+
|
|
29
|
+
All three workflows are customizable. Run `weaver eject` to get a local copy you can modify in Studio: add nodes, change connections, insert custom approval logic, whatever you need.
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
flow-weaver pack add @synergenius/flowweaver-pack-weaver
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Or scaffold a new project with it:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
flow-weaver init # select "AI Workflow Runner"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Configuration
|
|
44
|
+
|
|
45
|
+
Place a `.weaver.json` in your project root:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"provider": "auto",
|
|
50
|
+
"target": "src/my-workflow.ts",
|
|
51
|
+
"approval": "auto",
|
|
52
|
+
"notify": [
|
|
53
|
+
{ "channel": "discord", "url": "https://discord.com/api/webhooks/..." }
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Provider
|
|
59
|
+
|
|
60
|
+
Controls which AI provider Weaver uses.
|
|
61
|
+
|
|
62
|
+
`"auto"` (default) tries in order: `ANTHROPIC_API_KEY` env var, `claude` CLI, `copilot` CLI.
|
|
63
|
+
|
|
64
|
+
Explicit string values: `"anthropic"`, `"claude-cli"`, `"copilot-cli"`.
|
|
65
|
+
|
|
66
|
+
Object form for full control:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"provider": {
|
|
71
|
+
"name": "anthropic",
|
|
72
|
+
"model": "claude-sonnet-4-6",
|
|
73
|
+
"maxTokens": 8192
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Approval
|
|
79
|
+
|
|
80
|
+
How the approval gate behaves in bot mode.
|
|
81
|
+
|
|
82
|
+
`"auto"` approves immediately. `"prompt"` asks interactively. `"timeout-auto"` waits N seconds then approves.
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"approval": { "mode": "timeout-auto", "timeoutSeconds": 120 }
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Notifications
|
|
91
|
+
|
|
92
|
+
Array of webhook targets. Supports Discord (rich embeds), Slack (Block Kit), and raw webhooks.
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"notify": [
|
|
97
|
+
{ "channel": "discord", "url": "...", "events": ["workflow-complete", "error"] },
|
|
98
|
+
{ "channel": "slack", "url": "..." }
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## CLI commands
|
|
104
|
+
|
|
105
|
+
The pack adds these commands to `flow-weaver`:
|
|
106
|
+
|
|
107
|
+
| Command | Description |
|
|
108
|
+
|---------|-------------|
|
|
109
|
+
| `weaver run [file]` | Run a workflow with Weaver |
|
|
110
|
+
| `weaver bot <task>` | Give Weaver a task to execute |
|
|
111
|
+
| `weaver session` | Start continuous queue processing |
|
|
112
|
+
| `weaver eject` | Copy the managed workflow for customization |
|
|
113
|
+
| `weaver history [id]` | List recent runs |
|
|
114
|
+
| `weaver costs` | Show token usage and cost summary |
|
|
115
|
+
| `weaver providers` | List detected AI providers |
|
|
116
|
+
| `weaver steer <cmd>` | Send pause/resume/cancel to a running bot |
|
|
117
|
+
| `weaver queue <op>` | Manage the task queue (add, list, clear, remove) |
|
|
118
|
+
| `weaver watch <file>` | Re-run on file changes |
|
|
119
|
+
| `weaver cron <expr> <file>` | Run on a schedule |
|
|
120
|
+
| `weaver pipeline <config>` | Run a multi-stage pipeline |
|
|
121
|
+
| `weaver dashboard [file]` | Live execution dashboard |
|
|
122
|
+
|
|
123
|
+
## MCP tools
|
|
124
|
+
|
|
125
|
+
For IDE integration, the pack exposes MCP tools: `fw_weaver_run`, `fw_weaver_bot`, `fw_weaver_steer`, `fw_weaver_queue`, `fw_weaver_status`, `fw_weaver_history`, `fw_weaver_costs`, `fw_weaver_providers`.
|
|
126
|
+
|
|
127
|
+
## Node types
|
|
128
|
+
|
|
129
|
+
The pack ships 19 node types usable in any Flow Weaver workflow. The core ones:
|
|
130
|
+
|
|
131
|
+
`weaverLoadConfig` reads `.weaver.json` and outputs the parsed config object.
|
|
132
|
+
|
|
133
|
+
`weaverDetectProvider` resolves the AI provider and assembles a `WeaverEnv` bundle (project dir, config, provider type, provider info) that flows through the rest of the pipeline as a single typed object.
|
|
134
|
+
|
|
135
|
+
`weaverReceiveTask` picks up a task from CLI args, MCP, or the queue.
|
|
136
|
+
|
|
137
|
+
`weaverBuildContext` generates the knowledge bundle the AI needs for planning, pulling annotation grammar and docs from the Flow Weaver engine.
|
|
138
|
+
|
|
139
|
+
`weaverPlanTask` sends the task and context to the AI and gets back a structured execution plan.
|
|
140
|
+
|
|
141
|
+
`weaverApprovalGate` presents the plan for approval, branching to abort on rejection.
|
|
142
|
+
|
|
143
|
+
`weaverExecValidateRetry` runs the plan, validates with `flow-weaver validate`, and on failure asks the AI for fixes. Up to 3 attempts.
|
|
144
|
+
|
|
145
|
+
`weaverGitOps` stages and commits modified files.
|
|
146
|
+
|
|
147
|
+
`weaverSendNotify` dispatches webhook notifications.
|
|
148
|
+
|
|
149
|
+
## Programmatic usage
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
import { runWorkflow, createProvider, detectProvider, BotAgentChannel } from '@synergenius/flowweaver-pack-weaver';
|
|
153
|
+
|
|
154
|
+
const result = await runWorkflow('path/to/workflow.ts', { verbose: true });
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Or build a custom agent channel for more control:
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
const providerConfig = detectProvider();
|
|
161
|
+
const provider = createProvider(providerConfig);
|
|
162
|
+
const channel = new BotAgentChannel(provider, { systemPrompt: '...' });
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## License
|
|
166
|
+
|
|
167
|
+
See [LICENSE](./LICENSE).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BotProviderConfig, BotConfig, BotAgentProvider, OnUsageCallback } from './types.js';
|
|
1
|
+
import type { BotProviderConfig, BotConfig, BotAgentProvider, OnUsageCallback, StreamChunk, ToolDefinition, ToolUseResult } from './types.js';
|
|
2
2
|
import type { ProviderRegistry } from './provider-registry.js';
|
|
3
3
|
export type { BotAgentProvider };
|
|
4
4
|
export declare function resolveProviderConfig(provider: BotConfig['provider']): BotProviderConfig;
|
|
@@ -14,6 +14,20 @@ export declare class AnthropicAgentProvider implements BotAgentProvider {
|
|
|
14
14
|
context: Record<string, unknown>;
|
|
15
15
|
prompt: string;
|
|
16
16
|
}): Promise<Record<string, unknown>>;
|
|
17
|
+
stream(request: {
|
|
18
|
+
agentId: string;
|
|
19
|
+
context: Record<string, unknown>;
|
|
20
|
+
prompt: string;
|
|
21
|
+
}): AsyncIterable<StreamChunk>;
|
|
22
|
+
decideWithTools(request: {
|
|
23
|
+
agentId: string;
|
|
24
|
+
context: Record<string, unknown>;
|
|
25
|
+
prompt: string;
|
|
26
|
+
tools: ToolDefinition[];
|
|
27
|
+
}): Promise<{
|
|
28
|
+
result: Record<string, unknown>;
|
|
29
|
+
toolCalls?: ToolUseResult[];
|
|
30
|
+
}>;
|
|
17
31
|
private parseJson;
|
|
18
32
|
private loadSdk;
|
|
19
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-provider.d.ts","sourceRoot":"","sources":["../../src/bot/agent-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-provider.d.ts","sourceRoot":"","sources":["../../src/bot/agent-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG9I,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,GAC9B,iBAAiB,CAInB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,GAAE,gBAAkC,GAC3C,OAAO,CAAC,gBAAgB,CAAC,CA4C3B;AAED,wBAAgB,cAAc,CAAC,QAAQ,GAAE,gBAAkC,GAAG,iBAAiB,CAwB9F;AAED,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;gBAEd,MAAM,EAAE,iBAAiB;IAK/B,MAAM,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA0C7B,MAAM,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,aAAa,CAAC,WAAW,CAAC;IA2CxB,eAAe,CAAC,OAAO,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IA0C7E,OAAO,CAAC,SAAS;YAkBH,OAAO;CAWtB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
2
|
import { buildSystemPrompt } from './system-prompt.js';
|
|
3
3
|
import { defaultRegistry, loadExternalProvider } from './provider-registry.js';
|
|
4
4
|
const WHICH_CMD = process.platform === 'win32' ? 'where' : 'which';
|
|
@@ -61,7 +61,7 @@ export function detectProvider(registry = defaultRegistry) {
|
|
|
61
61
|
for (const { name, metadata } of registry.list()) {
|
|
62
62
|
if (metadata.detectCliCommand) {
|
|
63
63
|
try {
|
|
64
|
-
|
|
64
|
+
execFileSync(WHICH_CMD, [metadata.detectCliCommand], { stdio: 'pipe' });
|
|
65
65
|
return { name };
|
|
66
66
|
}
|
|
67
67
|
catch { /* not installed */ }
|
|
@@ -112,6 +112,81 @@ export class AnthropicAgentProvider {
|
|
|
112
112
|
const text = response.content[0].type === 'text' ? response.content[0].text : '';
|
|
113
113
|
return this.parseJson(text);
|
|
114
114
|
}
|
|
115
|
+
async *stream(request) {
|
|
116
|
+
if (!process.env.ANTHROPIC_API_KEY) {
|
|
117
|
+
throw new Error('ANTHROPIC_API_KEY environment variable is required for the Anthropic provider');
|
|
118
|
+
}
|
|
119
|
+
const Anthropic = await this.loadSdk();
|
|
120
|
+
const client = new Anthropic();
|
|
121
|
+
const systemPrompt = await buildSystemPrompt();
|
|
122
|
+
const contextStr = typeof request.context === 'string'
|
|
123
|
+
? request.context
|
|
124
|
+
: JSON.stringify(request.context, null, 2);
|
|
125
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
|
+
const stream = client.messages.stream({
|
|
127
|
+
model: this.model,
|
|
128
|
+
max_tokens: this.maxTokens,
|
|
129
|
+
system: systemPrompt,
|
|
130
|
+
messages: [{ role: 'user', content: `Context:\n${contextStr}\n\nInstructions:\n${request.prompt}` }],
|
|
131
|
+
});
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
133
|
+
for await (const event of stream) {
|
|
134
|
+
if (event.type === 'content_block_delta' && event.delta?.type === 'text_delta') {
|
|
135
|
+
yield { type: 'text', text: event.delta.text };
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
139
|
+
const finalMessage = await stream.finalMessage();
|
|
140
|
+
if (finalMessage?.usage) {
|
|
141
|
+
const usage = {
|
|
142
|
+
inputTokens: finalMessage.usage.input_tokens,
|
|
143
|
+
outputTokens: finalMessage.usage.output_tokens,
|
|
144
|
+
cacheCreationInputTokens: finalMessage.usage.cache_creation_input_tokens,
|
|
145
|
+
cacheReadInputTokens: finalMessage.usage.cache_read_input_tokens,
|
|
146
|
+
};
|
|
147
|
+
if (this.onUsage)
|
|
148
|
+
this.onUsage(request.agentId, finalMessage.model ?? this.model, usage);
|
|
149
|
+
yield { type: 'usage', usage };
|
|
150
|
+
}
|
|
151
|
+
yield { type: 'done' };
|
|
152
|
+
}
|
|
153
|
+
async decideWithTools(request) {
|
|
154
|
+
if (!process.env.ANTHROPIC_API_KEY) {
|
|
155
|
+
throw new Error('ANTHROPIC_API_KEY environment variable is required for the Anthropic provider');
|
|
156
|
+
}
|
|
157
|
+
const Anthropic = await this.loadSdk();
|
|
158
|
+
const client = new Anthropic();
|
|
159
|
+
const systemPrompt = await buildSystemPrompt();
|
|
160
|
+
const contextStr = typeof request.context === 'string'
|
|
161
|
+
? request.context
|
|
162
|
+
: JSON.stringify(request.context, null, 2);
|
|
163
|
+
const response = await client.messages.create({
|
|
164
|
+
model: this.model,
|
|
165
|
+
max_tokens: this.maxTokens,
|
|
166
|
+
system: systemPrompt,
|
|
167
|
+
messages: [{ role: 'user', content: `Context:\n${contextStr}\n\nInstructions:\n${request.prompt}` }],
|
|
168
|
+
tools: request.tools,
|
|
169
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
170
|
+
});
|
|
171
|
+
if (this.onUsage && response.usage) {
|
|
172
|
+
this.onUsage(request.agentId, response.model ?? this.model, {
|
|
173
|
+
inputTokens: response.usage.input_tokens,
|
|
174
|
+
outputTokens: response.usage.output_tokens,
|
|
175
|
+
cacheCreationInputTokens: response.usage.cache_creation_input_tokens,
|
|
176
|
+
cacheReadInputTokens: response.usage.cache_read_input_tokens,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
const toolCalls = [];
|
|
180
|
+
let text = '';
|
|
181
|
+
for (const block of response.content) {
|
|
182
|
+
if (block.type === 'text')
|
|
183
|
+
text = block.text;
|
|
184
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
185
|
+
else if (block.type === 'tool_use')
|
|
186
|
+
toolCalls.push({ toolName: block.name, toolInput: block.input });
|
|
187
|
+
}
|
|
188
|
+
return { result: this.parseJson(text || '{}'), toolCalls: toolCalls.length > 0 ? toolCalls : undefined };
|
|
189
|
+
}
|
|
115
190
|
parseJson(text) {
|
|
116
191
|
let cleaned = text.trim();
|
|
117
192
|
if (cleaned.startsWith('```')) {
|
|
@@ -128,6 +203,7 @@ export class AnthropicAgentProvider {
|
|
|
128
203
|
throw new Error(`Failed to parse AI response as JSON: ${text.slice(0, 200)}`);
|
|
129
204
|
}
|
|
130
205
|
}
|
|
206
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
131
207
|
async loadSdk() {
|
|
132
208
|
try {
|
|
133
209
|
// @ts-expect-error -- optional peer dep, loaded at runtime
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-provider.js","sourceRoot":"","sources":["../../src/bot/agent-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-provider.js","sourceRoot":"","sources":["../../src/bot/agent-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function callCli(provider: string, prompt: string): string;
|
|
2
|
+
export declare function callApi(apiKey: string, model: string, maxTokens: number, systemPrompt: string, userPrompt: string): Promise<string>;
|
|
3
|
+
export declare function parseJsonResponse(text: string): Record<string, unknown>;
|
|
4
|
+
//# sourceMappingURL=ai-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-client.d.ts","sourceRoot":"","sources":["../../src/bot/ai-client.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAYhE;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAChD,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GACvC,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASvE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
export function callCli(provider, prompt) {
|
|
3
|
+
if (provider === 'claude-cli') {
|
|
4
|
+
return execSync('claude -p --output-format text', {
|
|
5
|
+
input: prompt, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 120_000,
|
|
6
|
+
}).trim();
|
|
7
|
+
}
|
|
8
|
+
if (provider === 'copilot-cli') {
|
|
9
|
+
return execSync('copilot -p --silent --allow-all-tools', {
|
|
10
|
+
input: prompt, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 120_000,
|
|
11
|
+
}).trim();
|
|
12
|
+
}
|
|
13
|
+
throw new Error(`Unknown CLI provider: ${provider}`);
|
|
14
|
+
}
|
|
15
|
+
export async function callApi(apiKey, model, maxTokens, systemPrompt, userPrompt) {
|
|
16
|
+
const body = JSON.stringify({
|
|
17
|
+
model, max_tokens: maxTokens, system: systemPrompt,
|
|
18
|
+
messages: [{ role: 'user', content: userPrompt }],
|
|
19
|
+
});
|
|
20
|
+
const response = await fetch('https://api.anthropic.com/v1/messages', {
|
|
21
|
+
method: 'POST',
|
|
22
|
+
headers: { 'x-api-key': apiKey, 'anthropic-version': '2023-06-01', 'content-type': 'application/json' },
|
|
23
|
+
body,
|
|
24
|
+
});
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
const text = await response.text();
|
|
27
|
+
throw new Error(`Anthropic API error ${response.status}: ${text.slice(0, 200)}`);
|
|
28
|
+
}
|
|
29
|
+
const json = await response.json();
|
|
30
|
+
return json.content[0]?.text ?? '';
|
|
31
|
+
}
|
|
32
|
+
export function parseJsonResponse(text) {
|
|
33
|
+
let cleaned = text.trim();
|
|
34
|
+
if (cleaned.startsWith('```')) {
|
|
35
|
+
cleaned = cleaned.replace(/^```(?:json)?\s*\n?/, '').replace(/\n?```\s*$/, '');
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
return JSON.parse(cleaned);
|
|
39
|
+
}
|
|
40
|
+
catch { /* fallthrough */ }
|
|
41
|
+
const match = cleaned.match(/\{[\s\S]*\}/);
|
|
42
|
+
if (match)
|
|
43
|
+
return JSON.parse(match[0]);
|
|
44
|
+
throw new Error(`Failed to parse AI response as JSON: ${text.slice(0, 200)}`);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ai-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-client.js","sourceRoot":"","sources":["../../src/bot/ai-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,UAAU,OAAO,CAAC,QAAgB,EAAE,MAAc;IACtD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,gCAAgC,EAAE;YAChD,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO;SACpF,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,uCAAuC,EAAE;YACvD,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO;SACpF,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAc,EAAE,KAAa,EAAE,SAAiB,EAChD,YAAoB,EAAE,UAAkB;IAExC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY;QAClD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACvG,IAAI;KACL,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAwD,CAAC;IACzF,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BotAgentProvider } from './agent-provider.js';
|
|
2
|
-
import type { ApprovalMode, NotificationEvent } from './types.js';
|
|
2
|
+
import type { ApprovalMode, NotificationEvent, StreamChunk, ToolDefinition, ToolUseResult } from './types.js';
|
|
3
3
|
import type { DashboardServer } from './dashboard.js';
|
|
4
4
|
export interface BotChannelContext {
|
|
5
5
|
projectDir: string;
|
|
@@ -26,6 +26,19 @@ export declare class BotAgentChannel {
|
|
|
26
26
|
prompt: string;
|
|
27
27
|
}): Promise<object>;
|
|
28
28
|
private handleApproval;
|
|
29
|
+
requestWithTools(agentRequest: {
|
|
30
|
+
agentId: string;
|
|
31
|
+
context: Record<string, unknown>;
|
|
32
|
+
prompt: string;
|
|
33
|
+
}, tools: ToolDefinition[]): Promise<{
|
|
34
|
+
result: Record<string, unknown>;
|
|
35
|
+
toolCalls?: ToolUseResult[];
|
|
36
|
+
}>;
|
|
37
|
+
streamRequest(agentRequest: {
|
|
38
|
+
agentId: string;
|
|
39
|
+
context: Record<string, unknown>;
|
|
40
|
+
prompt: string;
|
|
41
|
+
}): AsyncIterable<StreamChunk>;
|
|
29
42
|
onPause(): Promise<object>;
|
|
30
43
|
resume(_result: object): void;
|
|
31
44
|
fail(_reason: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-agent-channel.d.ts","sourceRoot":"","sources":["../../src/bot/bot-agent-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bot-agent-channel.d.ts","sourceRoot":"","sources":["../../src/bot/bot-agent-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,OAAO,CAAoB;gBAGjC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE;QACP,YAAY,EAAE,YAAY,CAAC;QAC3B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO,EAAE,iBAAiB,CAAC;KAC5B;IAcG,OAAO,CAAC,YAAY,EAAE;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC;YAOL,cAAc;IAetB,gBAAgB,CACpB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EACnF,KAAK,EAAE,cAAc,EAAE,GACtB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAQrE,aAAa,CAAC,YAAY,EAAE;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,aAAa,CAAC,WAAW,CAAC;IAW9B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAG1B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAC5B"}
|
|
@@ -32,6 +32,22 @@ export class BotAgentChannel {
|
|
|
32
32
|
};
|
|
33
33
|
return this.approvalHandler.handle(request, event);
|
|
34
34
|
}
|
|
35
|
+
async requestWithTools(agentRequest, tools) {
|
|
36
|
+
if (this.provider.decideWithTools) {
|
|
37
|
+
return this.provider.decideWithTools({ ...agentRequest, tools });
|
|
38
|
+
}
|
|
39
|
+
const result = await this.provider.decide(agentRequest);
|
|
40
|
+
return { result };
|
|
41
|
+
}
|
|
42
|
+
async *streamRequest(agentRequest) {
|
|
43
|
+
if (this.provider.stream) {
|
|
44
|
+
yield* this.provider.stream(agentRequest);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const result = await this.provider.decide(agentRequest);
|
|
48
|
+
yield { type: 'text', text: JSON.stringify(result) };
|
|
49
|
+
yield { type: 'done' };
|
|
50
|
+
}
|
|
35
51
|
// Compat stubs for AgentChannel interface (used by executor, not by nodes)
|
|
36
52
|
onPause() {
|
|
37
53
|
return new Promise(() => { });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-agent-channel.js","sourceRoot":"","sources":["../../src/bot/bot-agent-channel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AASvD,MAAM,OAAO,eAAe;IAClB,QAAQ,CAAmB;IAC3B,eAAe,CAA2C;IAC1D,QAAQ,CAA8C;IACtD,OAAO,CAAoB;IAEnC,YACE,QAA0B,EAC1B,OAQC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE;YACjE,cAAc,EAAE,OAAO,CAAC,sBAAsB;YAC9C,UAAU,EAAE,OAAO,CAAC,kBAAkB;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,eAAe;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,YAIb;QACC,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAG5B;QACC,MAAM,KAAK,GAAsB;YAC/B,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,QAAQ,EAAE,OAAO,CAAC,OAAO;SAC1B,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,2EAA2E;IAC3E,OAAO;QACL,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,CAAC,OAAe,IAAS,CAAC;IAChC,IAAI,CAAC,OAAe,IAAS,CAAC;CAC/B"}
|
|
1
|
+
{"version":3,"file":"bot-agent-channel.js","sourceRoot":"","sources":["../../src/bot/bot-agent-channel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AASvD,MAAM,OAAO,eAAe;IAClB,QAAQ,CAAmB;IAC3B,eAAe,CAA2C;IAC1D,QAAQ,CAA8C;IACtD,OAAO,CAAoB;IAEnC,YACE,QAA0B,EAC1B,OAQC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE;YACjE,cAAc,EAAE,OAAO,CAAC,sBAAsB;YAC9C,UAAU,EAAE,OAAO,CAAC,kBAAkB;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,eAAe;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,YAIb;QACC,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAG5B;QACC,MAAM,KAAK,GAAsB;YAC/B,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,QAAQ,EAAE,OAAO,CAAC,OAAO;SAC1B,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,YAAmF,EACnF,KAAuB;QAEvB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACxD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,CAAC,aAAa,CAAC,YAIpB;QACC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,2EAA2E;IAC3E,OAAO;QACL,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,CAAC,OAAe,IAAS,CAAC;IAChC,IAAI,CAAC,OAAe,IAAS,CAAC;CAC/B"}
|
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
import type { BotAgentProvider } from './
|
|
1
|
+
import type { BotAgentProvider, OnUsageCallback, StreamChunk, ToolDefinition, ToolUseResult } from './types.js';
|
|
2
2
|
export declare class CliAgentProvider implements BotAgentProvider {
|
|
3
3
|
private cli;
|
|
4
|
+
onUsage?: OnUsageCallback;
|
|
4
5
|
constructor(cli: 'claude-cli' | 'copilot-cli');
|
|
5
6
|
decide(request: {
|
|
6
7
|
agentId: string;
|
|
7
8
|
context: Record<string, unknown>;
|
|
8
9
|
prompt: string;
|
|
9
10
|
}): Promise<Record<string, unknown>>;
|
|
11
|
+
stream(request: {
|
|
12
|
+
agentId: string;
|
|
13
|
+
context: Record<string, unknown>;
|
|
14
|
+
prompt: string;
|
|
15
|
+
}): AsyncIterable<StreamChunk>;
|
|
16
|
+
decideWithTools(request: {
|
|
17
|
+
agentId: string;
|
|
18
|
+
context: Record<string, unknown>;
|
|
19
|
+
prompt: string;
|
|
20
|
+
tools: ToolDefinition[];
|
|
21
|
+
}): Promise<{
|
|
22
|
+
result: Record<string, unknown>;
|
|
23
|
+
toolCalls?: ToolUseResult[];
|
|
24
|
+
}>;
|
|
10
25
|
private parseJson;
|
|
11
26
|
}
|
|
12
27
|
//# sourceMappingURL=cli-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-provider.d.ts","sourceRoot":"","sources":["../../src/bot/cli-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cli-provider.d.ts","sourceRoot":"","sources":["../../src/bot/cli-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhH,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,EAAE,eAAe,CAAC;gBAEd,GAAG,EAAE,YAAY,GAAG,aAAa;IAIvC,MAAM,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA8B7B,MAAM,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,aAAa,CAAC,WAAW,CAAC;IAMxB,eAAe,CAAC,OAAO,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAK7E,OAAO,CAAC,SAAS;CAgBlB"}
|
package/dist/bot/cli-provider.js
CHANGED
|
@@ -2,6 +2,7 @@ import { execSync } from 'node:child_process';
|
|
|
2
2
|
import { buildSystemPrompt } from './system-prompt.js';
|
|
3
3
|
export class CliAgentProvider {
|
|
4
4
|
cli;
|
|
5
|
+
onUsage;
|
|
5
6
|
constructor(cli) {
|
|
6
7
|
this.cli = cli;
|
|
7
8
|
}
|
|
@@ -30,6 +31,15 @@ export class CliAgentProvider {
|
|
|
30
31
|
}
|
|
31
32
|
return this.parseJson(raw);
|
|
32
33
|
}
|
|
34
|
+
async *stream(request) {
|
|
35
|
+
const result = await this.decide(request);
|
|
36
|
+
yield { type: 'text', text: JSON.stringify(result) };
|
|
37
|
+
yield { type: 'done' };
|
|
38
|
+
}
|
|
39
|
+
async decideWithTools(request) {
|
|
40
|
+
const result = await this.decide(request);
|
|
41
|
+
return { result };
|
|
42
|
+
}
|
|
33
43
|
parseJson(text) {
|
|
34
44
|
let cleaned = text.trim();
|
|
35
45
|
if (cleaned.startsWith('```')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../src/bot/cli-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,OAAO,gBAAgB;IACnB,GAAG,CAA+B;
|
|
1
|
+
{"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../src/bot/cli-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,OAAO,gBAAgB;IACnB,GAAG,CAA+B;IAC1C,OAAO,CAAmB;IAE1B,YAAY,GAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAIZ;QACC,MAAM,YAAY,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE/C,MAAM,UAAU,GACd,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YACjC,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,GAAG,YAAY,iBAAiB,UAAU,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEpG,IAAI,GAAW,CAAC;QAChB,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YAC9B,GAAG,GAAG,QAAQ,CAAC,gCAAgC,EAAE;gBAC/C,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,QAAQ,CAAC,uCAAuC,EAAE;gBACtD,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAIb;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAKrB;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC3C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/bot/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAId,sBAAsB,EACtB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAqBrD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAuB;gBAE7B,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAKnD,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAYxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,MAAM,IAAI,MAAM;IAIhB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAYtC,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAU/C,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAelD,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAYlE,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW3C,gBAAgB,CACd,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAC7D,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GACxC,MAAM;IAaT,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQhC,mBAAmB,IAAI,OAAO;IAI9B,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/bot/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAId,sBAAsB,EACtB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAqBrD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAuB;gBAE7B,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAKnD,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAYxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,MAAM,IAAI,MAAM;IAIhB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAYtC,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAU/C,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAelD,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAYlE,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW3C,gBAAgB,CACd,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAC7D,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GACxC,MAAM;IAaT,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQhC,mBAAmB,IAAI,OAAO;IAI9B,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,eAAe;YAOT,cAAc;IAO5B,OAAO,CAAC,eAAe;CAwBxB"}
|
package/dist/bot/dashboard.js
CHANGED
|
@@ -273,9 +273,9 @@ export class DashboardServer {
|
|
|
273
273
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
274
274
|
res.end(JSON.stringify(session ?? { status: 'idle', currentTask: null, completedTasks: 0 }));
|
|
275
275
|
}
|
|
276
|
-
handleBotQueue(res) {
|
|
276
|
+
async handleBotQueue(res) {
|
|
277
277
|
const queue = new TaskQueue();
|
|
278
|
-
const tasks = queue.list();
|
|
278
|
+
const tasks = await queue.list();
|
|
279
279
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
280
280
|
res.end(JSON.stringify(tasks));
|
|
281
281
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/bot/dashboard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/bot/dashboard.ts"],"names":[],"mappings":"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"}
|