agent-scope 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -160
- package/dist/cli.js +110 -29
- package/dist/cli.js.map +1 -1
- package/dist/core/todoReader.d.ts +3 -2
- package/dist/core/todoReader.d.ts.map +1 -1
- package/dist/core/todoReader.js +166 -15
- package/dist/core/todoReader.js.map +1 -1
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/public/404/index.html +1 -1
- package/dist/public/404.html +1 -1
- package/dist/public/index.html +1 -1
- package/dist/public/index.txt +1 -1
- package/dist/server/server.js +1 -1
- package/dist/server/server.js.map +1 -1
- package/dist/server/watcher.d.ts.map +1 -1
- package/dist/server/watcher.js +7 -2
- package/dist/server/watcher.js.map +1 -1
- package/package.json +2 -2
- /package/dist/public/_next/static/{EjG9asgaOWf0-7fNJq_Sd → K7T78-L0ry_e7hJ3Vq9AC}/_buildManifest.js +0 -0
- /package/dist/public/_next/static/{EjG9asgaOWf0-7fNJq_Sd → K7T78-L0ry_e7hJ3Vq9AC}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -1,92 +1,100 @@
|
|
|
1
1
|
# agent-scope
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
See what your AI agent is actually doing.
|
|
4
4
|
|
|
5
|
-
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](https://www.typescriptlang.org/)
|
|
7
5
|
[](https://www.npmjs.com/package/agent-scope)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
---
|
|
10
9
|
|
|
11
|
-
##
|
|
10
|
+
## The problem
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
- **Plan Mode** - Structured task planning with markdown DSL, dependencies, and acceptance criteria
|
|
15
|
-
- **Kanban Dashboard** - Visual board with Pending / In Progress / Completed columns
|
|
16
|
-
- **Real-time Updates** - SSE-powered file watching, no manual refresh needed
|
|
17
|
-
- **Deterministic** - Pure function state computation from files
|
|
18
|
-
- **Local-first** - All data stays on your machine
|
|
19
|
-
- **Type-safe** - Built with TypeScript in strict mode
|
|
12
|
+
You tell Claude Code to refactor your auth system. It says "on it." You wait. Terminal scrolls. Minutes pass. You have no idea if it's on task 2 of 12 or stuck in a loop. You're flying blind.
|
|
20
13
|
|
|
21
|
-
|
|
14
|
+
agent-scope fixes that. One command, zero config. It reads Claude Code's own task files and gives you a live Kanban board.
|
|
22
15
|
|
|
23
|
-
|
|
16
|
+
```bash
|
|
17
|
+
npx agent-scope start
|
|
18
|
+
```
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
|------|-----------|-------|----------|
|
|
27
|
-
| **Live** | `~/.claude/tasks/` (TodoWrite) | Zero config | Watch Claude Code work in real-time |
|
|
28
|
-
| **Plan** | `.agent-scope/queue.md` + `execution.log` | `agent-scope init` | Structured project planning with dependencies |
|
|
20
|
+
That's it. Open `localhost:4317`. Watch your agent work.
|
|
29
21
|
|
|
30
|
-
|
|
22
|
+

|
|
31
23
|
|
|
32
|
-
|
|
24
|
+
## How it works
|
|
33
25
|
|
|
34
|
-
|
|
26
|
+
Claude Code writes task state to `~/.claude/tasks/` when it uses the TodoWrite tool. agent-scope reads those files, watches for changes, and streams updates to your browser via SSE. No database. No auth. No cloud. Just files.
|
|
35
27
|
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
**Important:** Claude Code only writes task files when TodoWrite is actively used. To ensure your sessions always appear on the dashboard, add this to your project's `CLAUDE.md`:
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
You MUST use the TodoWrite tool to track your work.
|
|
32
|
+
At the START of any multi-step task, create a todo list with all steps.
|
|
33
|
+
Mark each task in_progress before starting, completed after finishing.
|
|
38
34
|
```
|
|
39
35
|
|
|
40
|
-
|
|
36
|
+
Or run `agent-scope init` — it generates a ready-to-use `CLAUDE.md` snippet.
|
|
41
37
|
|
|
42
|
-
|
|
38
|
+
## Two modes
|
|
43
39
|
|
|
44
|
-
|
|
40
|
+
| | Live | Plan |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| **What** | Watch Claude Code work | Structured project planning |
|
|
43
|
+
| **Source** | `~/.claude/tasks/` | `.agent-scope/queue.md` |
|
|
44
|
+
| **Setup** | None | `npx agent-scope init` |
|
|
45
|
+
| **Use when** | You want visibility | You want control |
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
# 1. Initialize
|
|
48
|
-
npx agent-scope init
|
|
47
|
+
Live mode is the default. Plan mode adds dependencies, acceptance criteria, and execution tracking on top.
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
| Live mode | Plan mode |
|
|
50
|
+
|---|---|
|
|
51
|
+
|  |  |
|
|
51
52
|
|
|
52
|
-
|
|
53
|
+
## Install
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Run directly
|
|
53
57
|
npx agent-scope start
|
|
58
|
+
|
|
59
|
+
# Or install globally
|
|
60
|
+
npm i -g agent-scope
|
|
54
61
|
```
|
|
55
62
|
|
|
56
|
-
|
|
63
|
+
### Plan mode
|
|
57
64
|
|
|
58
|
-
|
|
59
|
-
- **Session sidebar** with progress bars and active session indicators
|
|
60
|
-
- **Kanban board** with three columns: Pending, In Progress, Completed
|
|
61
|
-
- **Task detail panel** with description, dependencies (blockedBy/blocks)
|
|
62
|
-
- **Real-time updates** via Server-Sent Events (no polling)
|
|
65
|
+
For structured project execution with task dependencies and acceptance criteria.
|
|
63
66
|
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
- **Status overview** with summary cards, slice progress bars
|
|
68
|
-
- **Agent activity** tracking with execution traces
|
|
69
|
-
- **BLOCKED status** support (both computed from dependencies and explicit agent declarations)
|
|
67
|
+
```bash
|
|
68
|
+
agent-scope init
|
|
69
|
+
```
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
This creates `.agent-scope/` with:
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
| File | Purpose |
|
|
74
|
+
|---|---|
|
|
75
|
+
| `queue.md` | Your task list — slices, dependencies, AC |
|
|
76
|
+
| `workflow.md` | Execution protocol your agent follows |
|
|
77
|
+
| `execution.log` | Agent logs DONE/FAILED/BLOCKED here |
|
|
78
|
+
| `config.json` | Heading patterns, port, field definitions |
|
|
79
|
+
| `CLAUDE.md` | Paste into your project's CLAUDE.md |
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
npx agent-scope start --claude-dir /path/to/.claude
|
|
81
|
+
Then:
|
|
79
82
|
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
1. Edit `queue.md` with your actual tasks
|
|
84
|
+
2. Copy `CLAUDE.md` contents into your project's CLAUDE.md
|
|
85
|
+
3. Tell your agent: *"follow .agent-scope/workflow.md, start with S1-T1"*
|
|
86
|
+
4. Run `agent-scope start` and watch the dashboard
|
|
82
87
|
|
|
83
|
-
|
|
84
|
-
npx agent-scope init
|
|
85
|
-
```
|
|
88
|
+
## CLI
|
|
86
89
|
|
|
87
|
-
|
|
90
|
+
```bash
|
|
91
|
+
agent-scope start # Auto-detect modes, open dashboard
|
|
92
|
+
agent-scope start --claude-dir /path # Custom Claude directory
|
|
93
|
+
agent-scope start -p 3000 # Custom port
|
|
94
|
+
agent-scope init # Init plan mode in current dir
|
|
95
|
+
```
|
|
88
96
|
|
|
89
|
-
|
|
97
|
+
## Queue format (Plan mode)
|
|
90
98
|
|
|
91
99
|
```markdown
|
|
92
100
|
# Slice S1
|
|
@@ -104,30 +112,11 @@ Description: Implement user authentication
|
|
|
104
112
|
AC: Login and registration endpoints working
|
|
105
113
|
```
|
|
106
114
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
Configure heading patterns in `.agent-scope/config.json`:
|
|
110
|
-
|
|
111
|
-
```json
|
|
112
|
-
{
|
|
113
|
-
"taskModel": {
|
|
114
|
-
"id": "{slice}-T{n}",
|
|
115
|
-
"headings": {
|
|
116
|
-
"slice": "# Slice {name}",
|
|
117
|
-
"task": "## {id}"
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
```
|
|
115
|
+
Validates: required fields, duplicate IDs, unknown deps, circular deps.
|
|
122
116
|
|
|
123
|
-
|
|
117
|
+
## Execution log (Plan mode)
|
|
124
118
|
|
|
125
|
-
-
|
|
126
|
-
- No duplicate task IDs
|
|
127
|
-
- No unknown dependencies
|
|
128
|
-
- No circular dependencies (DFS detection)
|
|
129
|
-
|
|
130
|
-
## Execution Log Format (Plan Mode)
|
|
119
|
+
Append-only JSONL:
|
|
131
120
|
|
|
132
121
|
```json
|
|
133
122
|
{"task_id":"S1-T1","status":"DONE","timestamp":"2026-02-16T14:31:22Z","agent":"claude"}
|
|
@@ -135,101 +124,32 @@ Configure heading patterns in `.agent-scope/config.json`:
|
|
|
135
124
|
{"task_id":"S1-T3","status":"BLOCKED","reason":"API key missing","timestamp":"2026-02-16T14:35:00Z","agent":"claude"}
|
|
136
125
|
```
|
|
137
126
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
## Architecture
|
|
141
|
-
|
|
142
|
-
### Status Computation (Plan Mode)
|
|
143
|
-
|
|
144
|
-
```
|
|
145
|
-
Priority: FAILED > BLOCKED(explicit) > DONE > BLOCKED(computed) > READY
|
|
146
|
-
|
|
147
|
-
For each task:
|
|
148
|
-
if lastEvent.status === FAILED → FAILED
|
|
149
|
-
else if lastEvent.status === BLOCKED → BLOCKED (with reason)
|
|
150
|
-
else if lastEvent.status === DONE → DONE
|
|
151
|
-
else if any dependency.status !== DONE → BLOCKED (computed)
|
|
152
|
-
else → READY
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Tech Stack
|
|
156
|
-
|
|
157
|
-
- **Language**: TypeScript (strict mode)
|
|
158
|
-
- **CLI**: Commander
|
|
159
|
-
- **Server**: Fastify + chokidar (file watching)
|
|
160
|
-
- **Real-time**: Server-Sent Events (SSE)
|
|
161
|
-
- **UI**: Next.js + Tailwind CSS
|
|
162
|
-
- **Testing**: Vitest (85 tests)
|
|
163
|
-
|
|
164
|
-
## API Reference
|
|
165
|
-
|
|
166
|
-
### `GET /health`
|
|
167
|
-
|
|
168
|
-
```json
|
|
169
|
-
{"status": "ok", "modes": {"live": true, "plan": true}}
|
|
170
|
-
```
|
|
127
|
+
## API
|
|
171
128
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
### `GET /events`
|
|
181
|
-
|
|
182
|
-
SSE stream for real-time file change notifications.
|
|
183
|
-
|
|
184
|
-
### `GET /snapshot`
|
|
185
|
-
|
|
186
|
-
Returns Plan mode state (queue.md + execution.log).
|
|
129
|
+
| Endpoint | Description |
|
|
130
|
+
|---|---|
|
|
131
|
+
| `GET /health` | Status + available modes |
|
|
132
|
+
| `GET /sessions` | All Claude Code sessions |
|
|
133
|
+
| `GET /sessions/:id` | Tasks for a session |
|
|
134
|
+
| `GET /events` | SSE stream |
|
|
135
|
+
| `GET /snapshot` | Plan mode state |
|
|
187
136
|
|
|
188
137
|
## Development
|
|
189
138
|
|
|
190
139
|
```bash
|
|
191
140
|
git clone https://github.com/yunusemrgrl/agent-scope.git
|
|
192
|
-
cd agent-scope
|
|
193
|
-
npm install
|
|
141
|
+
cd agent-scope && npm install
|
|
194
142
|
cd dashboard && npm install && cd ..
|
|
195
143
|
|
|
196
144
|
npm run build # Build core + dashboard
|
|
197
|
-
npm test #
|
|
145
|
+
npm test # 97 tests
|
|
198
146
|
npm run dev # Dev server with watch
|
|
199
147
|
```
|
|
200
148
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
```
|
|
204
|
-
agent-scope/
|
|
205
|
-
├─ src/
|
|
206
|
-
│ ├─ core/
|
|
207
|
-
│ │ ├─ types.ts # Domain model (Plan + Live types)
|
|
208
|
-
│ │ ├─ queueParser.ts # Markdown parser with template support
|
|
209
|
-
│ │ ├─ logParser.ts # JSONL parser with BLOCKED validation
|
|
210
|
-
│ │ ├─ stateEngine.ts # Snapshot computation
|
|
211
|
-
│ │ └─ todoReader.ts # Claude Code TodoWrite reader
|
|
212
|
-
│ ├─ server/
|
|
213
|
-
│ │ ├─ server.ts # Fastify API + SSE
|
|
214
|
-
│ │ └─ watcher.ts # chokidar file watching
|
|
215
|
-
│ └─ cli.ts # Commander CLI
|
|
216
|
-
├─ tests/core/ # Unit tests (85 tests)
|
|
217
|
-
├─ dashboard/ # Next.js UI
|
|
218
|
-
│ └─ src/app/page.tsx # Dual-mode dashboard (Live + Plan)
|
|
219
|
-
├─ dist/ # Build output
|
|
220
|
-
└─ .agent-scope/ # Created by init (gitignored)
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
## Contributing
|
|
224
|
-
|
|
225
|
-
Contributions welcome! Please:
|
|
149
|
+
## Stack
|
|
226
150
|
|
|
227
|
-
|
|
228
|
-
2. Create a feature branch
|
|
229
|
-
3. Write tests for new functionality
|
|
230
|
-
4. Ensure `npm test` passes
|
|
231
|
-
5. Submit a pull request
|
|
151
|
+
TypeScript, Fastify, chokidar, SSE, Next.js, Tailwind, Vitest.
|
|
232
152
|
|
|
233
153
|
## License
|
|
234
154
|
|
|
235
|
-
MIT
|
|
155
|
+
MIT
|
package/dist/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ const program = new Command();
|
|
|
8
8
|
program
|
|
9
9
|
.name('agent-scope')
|
|
10
10
|
.description('Deterministic, local, passive execution observer for AI agent workflows')
|
|
11
|
-
.version('0.2.
|
|
11
|
+
.version('0.2.1');
|
|
12
12
|
program
|
|
13
13
|
.command('init')
|
|
14
14
|
.description('Initialize agent-scope in current directory')
|
|
@@ -21,18 +21,30 @@ program
|
|
|
21
21
|
}
|
|
22
22
|
try {
|
|
23
23
|
mkdirSync(agentScopeDir);
|
|
24
|
-
console.log('✓ Created .agent-scope/
|
|
25
|
-
// Create queue.md
|
|
24
|
+
console.log('✓ Created .agent-scope/');
|
|
25
|
+
// Create queue.md with realistic example
|
|
26
26
|
const queueTemplate = `# Slice S1
|
|
27
27
|
|
|
28
28
|
## S1-T1
|
|
29
|
-
Area:
|
|
29
|
+
Area: Setup
|
|
30
30
|
Depends: -
|
|
31
|
-
Description:
|
|
32
|
-
AC:
|
|
31
|
+
Description: Initialize project structure and install dependencies
|
|
32
|
+
AC: Project builds and all linters pass
|
|
33
|
+
|
|
34
|
+
## S1-T2
|
|
35
|
+
Area: Core
|
|
36
|
+
Depends: S1-T1
|
|
37
|
+
Description: Implement core feature
|
|
38
|
+
AC: Feature works end-to-end with happy path
|
|
39
|
+
|
|
40
|
+
## S1-T3
|
|
41
|
+
Area: Test
|
|
42
|
+
Depends: S1-T1, S1-T2
|
|
43
|
+
Description: Add integration tests for core feature
|
|
44
|
+
AC: All tests pass, edge cases covered
|
|
33
45
|
`;
|
|
34
46
|
writeFileSync(join(agentScopeDir, 'queue.md'), queueTemplate);
|
|
35
|
-
console.log('✓ Created queue.md
|
|
47
|
+
console.log('✓ Created queue.md');
|
|
36
48
|
// Create empty execution.log
|
|
37
49
|
writeFileSync(join(agentScopeDir, 'execution.log'), '');
|
|
38
50
|
console.log('✓ Created execution.log');
|
|
@@ -43,7 +55,7 @@ AC: Task completed successfully
|
|
|
43
55
|
port: 4317,
|
|
44
56
|
taskModel: {
|
|
45
57
|
fields: [
|
|
46
|
-
{ name: 'Area', type: 'enum', required: true, values: ['Core'] },
|
|
58
|
+
{ name: 'Area', type: 'enum', required: true, values: ['Setup', 'Core', 'Test'] },
|
|
47
59
|
{ name: 'Depends', type: 'refs', required: false },
|
|
48
60
|
{ name: 'Description', type: 'text', required: true },
|
|
49
61
|
{ name: 'AC', type: 'text', required: true }
|
|
@@ -57,45 +69,114 @@ AC: Task completed successfully
|
|
|
57
69
|
};
|
|
58
70
|
writeFileSync(join(agentScopeDir, 'config.json'), JSON.stringify(config, null, 2));
|
|
59
71
|
console.log('✓ Created config.json');
|
|
60
|
-
//
|
|
61
|
-
const
|
|
62
|
-
|
|
72
|
+
// Create workflow.md — autonomous execution protocol
|
|
73
|
+
const workflowTemplate = `# Agent Workflow
|
|
74
|
+
|
|
75
|
+
Autonomous execution protocol for agent-scope Plan mode.
|
|
76
|
+
Each task from \`queue.md\` is processed through these phases.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Phase 1 — INTAKE
|
|
63
81
|
|
|
64
|
-
|
|
82
|
+
Read the next READY task from \`.agent-scope/queue.md\`.
|
|
65
83
|
|
|
66
|
-
|
|
84
|
+
1. Parse the task: ID, Area, Description, AC, Dependencies.
|
|
85
|
+
2. Verify all dependencies have status DONE in \`execution.log\`.
|
|
86
|
+
3. If dependencies are not met, log BLOCKED and move to next task.
|
|
67
87
|
|
|
68
|
-
|
|
88
|
+
---
|
|
69
89
|
|
|
90
|
+
## Phase 2 — EXECUTE
|
|
91
|
+
|
|
92
|
+
Implement the task.
|
|
93
|
+
|
|
94
|
+
1. Read the task description and acceptance criteria.
|
|
95
|
+
2. Identify affected files using the codebase.
|
|
96
|
+
3. Implement the change. Follow existing conventions.
|
|
97
|
+
4. Run relevant tests/linters to verify.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Phase 3 — LOG
|
|
102
|
+
|
|
103
|
+
Append result to \`.agent-scope/execution.log\` (one JSON line):
|
|
104
|
+
|
|
105
|
+
Success:
|
|
70
106
|
\`\`\`json
|
|
71
|
-
{"task_id":"S1-T1","status":"DONE","timestamp":"2026-
|
|
107
|
+
{"task_id":"S1-T1","status":"DONE","timestamp":"2026-01-15T10:30:00Z","agent":"claude"}
|
|
72
108
|
\`\`\`
|
|
73
109
|
|
|
74
|
-
|
|
110
|
+
Failure:
|
|
111
|
+
\`\`\`json
|
|
112
|
+
{"task_id":"S1-T1","status":"FAILED","timestamp":"2026-01-15T10:30:00Z","agent":"claude","meta":{"reason":"tests failing"}}
|
|
113
|
+
\`\`\`
|
|
75
114
|
|
|
115
|
+
Blocked:
|
|
76
116
|
\`\`\`json
|
|
77
|
-
{"task_id":"S1-
|
|
117
|
+
{"task_id":"S1-T1","status":"BLOCKED","reason":"missing API key","timestamp":"2026-01-15T10:30:00Z","agent":"claude"}
|
|
78
118
|
\`\`\`
|
|
79
119
|
|
|
80
|
-
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Phase 4 — NEXT
|
|
123
|
+
|
|
124
|
+
Pick the next READY task and return to Phase 1.
|
|
125
|
+
If no READY tasks remain, stop and report summary.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Rules
|
|
130
|
+
|
|
131
|
+
1. One task at a time. Finish before starting next.
|
|
132
|
+
2. Always log to execution.log — never skip Phase 3.
|
|
133
|
+
3. If stuck after 2 attempts, log FAILED and move on.
|
|
134
|
+
4. Do not modify queue.md — it is read-only for the agent.
|
|
135
|
+
5. Use \`new Date().toISOString()\` for timestamps.
|
|
136
|
+
`;
|
|
137
|
+
writeFileSync(join(agentScopeDir, 'workflow.md'), workflowTemplate);
|
|
138
|
+
console.log('✓ Created workflow.md');
|
|
139
|
+
// Create CLAUDE.md snippet file
|
|
140
|
+
const claudeMdContent = `# Agent Scope Integration
|
|
141
|
+
|
|
142
|
+
## Task Tracking (MANDATORY)
|
|
143
|
+
|
|
144
|
+
You MUST use the TodoWrite tool to track your work. This is not optional.
|
|
145
|
+
The user monitors your progress via a live dashboard that reads TodoWrite output.
|
|
146
|
+
|
|
147
|
+
Rules:
|
|
148
|
+
- At the START of any multi-step task, create a todo list with all steps.
|
|
149
|
+
- Mark each task as \`in_progress\` BEFORE you start working on it.
|
|
150
|
+
- Mark each task as \`completed\` IMMEDIATELY after finishing it.
|
|
151
|
+
- Keep exactly ONE task as \`in_progress\` at any time.
|
|
152
|
+
- Update the todo list as you discover new subtasks.
|
|
153
|
+
|
|
154
|
+
If you skip TodoWrite, the user cannot see what you are doing.
|
|
155
|
+
|
|
156
|
+
## Plan Mode (if .agent-scope/queue.md exists)
|
|
157
|
+
|
|
158
|
+
Follow \`.agent-scope/workflow.md\` for structured task execution.
|
|
159
|
+
Tasks are defined in \`.agent-scope/queue.md\`.
|
|
160
|
+
Log progress to \`.agent-scope/execution.log\`.
|
|
81
161
|
|
|
162
|
+
Log format (append one JSON line per task):
|
|
82
163
|
\`\`\`json
|
|
83
|
-
{"task_id":"S1-
|
|
164
|
+
{"task_id":"S1-T1","status":"DONE","timestamp":"2026-01-15T10:30:00Z","agent":"claude"}
|
|
84
165
|
\`\`\`
|
|
85
166
|
|
|
86
|
-
|
|
167
|
+
Status values: \`DONE\`, \`FAILED\`, \`BLOCKED\` (requires \`reason\` field)
|
|
87
168
|
|
|
88
|
-
|
|
89
|
-
- \`status\`: "DONE", "FAILED", or "BLOCKED"
|
|
90
|
-
- \`timestamp\`: ISO-8601 timestamp (use \`new Date().toISOString()\`)
|
|
91
|
-
- \`agent\`: Your agent name (e.g., "claude")
|
|
92
|
-
- \`reason\`: (Required for BLOCKED) Why the task is blocked
|
|
93
|
-
- \`meta\`: (Optional) Additional context
|
|
169
|
+
## Dashboard
|
|
94
170
|
|
|
95
|
-
Run \`npx agent-scope start\` to view
|
|
171
|
+
Run \`npx agent-scope start\` to view progress.
|
|
96
172
|
`;
|
|
97
|
-
|
|
98
|
-
console.log(
|
|
173
|
+
writeFileSync(join(agentScopeDir, 'CLAUDE.md'), claudeMdContent);
|
|
174
|
+
console.log('✓ Created CLAUDE.md');
|
|
175
|
+
console.log('\n✓ Ready! Next steps:');
|
|
176
|
+
console.log(' 1. Edit .agent-scope/queue.md with your tasks');
|
|
177
|
+
console.log(' 2. Copy .agent-scope/CLAUDE.md contents into your project CLAUDE.md');
|
|
178
|
+
console.log(' 3. Tell your agent: "follow .agent-scope/workflow.md, start with S1-T1"');
|
|
179
|
+
console.log(' 4. Run: npx agent-scope start');
|
|
99
180
|
}
|
|
100
181
|
catch (error) {
|
|
101
182
|
console.error('❌ Failed to initialize:', error);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,yEAAyE,CAAC;KACtF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAE1D,iCAAiC;IACjC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,SAAS,CAAC,aAAa,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ClaudeSession } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Reads all sessions from ~/.claude/tasks/
|
|
4
|
-
*
|
|
3
|
+
* Reads all sessions from ~/.claude/tasks/ and ~/.claude/todos/ directories.
|
|
4
|
+
* tasks/: legacy format — subdirectories with individual JSON task files.
|
|
5
|
+
* todos/: current format — single JSON array file per session.
|
|
5
6
|
*/
|
|
6
7
|
export declare function readSessions(claudeDir: string): ClaudeSession[];
|
|
7
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todoReader.d.ts","sourceRoot":"","sources":["../../src/core/todoReader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AAI5D
|
|
1
|
+
{"version":3,"file":"todoReader.d.ts","sourceRoot":"","sources":["../../src/core/todoReader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AAI5D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,CAgD/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAsCrF"}
|
package/dist/core/todoReader.js
CHANGED
|
@@ -1,23 +1,49 @@
|
|
|
1
|
-
import { readdirSync, readFileSync, statSync, existsSync } from 'fs';
|
|
2
|
-
import { join } from 'path';
|
|
1
|
+
import { readdirSync, readFileSync, statSync, existsSync, openSync, readSync, closeSync } from 'fs';
|
|
2
|
+
import { join, basename } from 'path';
|
|
3
3
|
const SKIP_FILES = new Set(['.lock', '.highwatermark']);
|
|
4
4
|
/**
|
|
5
|
-
* Reads all sessions from ~/.claude/tasks/
|
|
6
|
-
*
|
|
5
|
+
* Reads all sessions from ~/.claude/tasks/ and ~/.claude/todos/ directories.
|
|
6
|
+
* tasks/: legacy format — subdirectories with individual JSON task files.
|
|
7
|
+
* todos/: current format — single JSON array file per session.
|
|
7
8
|
*/
|
|
8
9
|
export function readSessions(claudeDir) {
|
|
10
|
+
const sessionMap = new Map();
|
|
11
|
+
// Read legacy tasks/ directory (subdirectories with individual files)
|
|
9
12
|
const tasksDir = join(claudeDir, 'tasks');
|
|
10
|
-
if (
|
|
11
|
-
|
|
13
|
+
if (existsSync(tasksDir)) {
|
|
14
|
+
const entries = readdirSync(tasksDir, { withFileTypes: true });
|
|
15
|
+
for (const entry of entries) {
|
|
16
|
+
if (!entry.isDirectory())
|
|
17
|
+
continue;
|
|
18
|
+
const session = readSession(tasksDir, entry.name);
|
|
19
|
+
if (session && session.tasks.length > 0) {
|
|
20
|
+
sessionMap.set(session.id, session);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
12
23
|
}
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
// Read current todos/ directory (single array file per session)
|
|
25
|
+
const todosDir = join(claudeDir, 'todos');
|
|
26
|
+
if (existsSync(todosDir)) {
|
|
27
|
+
const files = readdirSync(todosDir).filter(f => f.endsWith('.json'));
|
|
28
|
+
for (const file of files) {
|
|
29
|
+
const session = readTodosFile(todosDir, file);
|
|
30
|
+
if (session && session.tasks.length > 0) {
|
|
31
|
+
// todos/ format is newer, overwrite if duplicate sessionId
|
|
32
|
+
sessionMap.set(session.id, session);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const sessions = Array.from(sessionMap.values());
|
|
37
|
+
// Enrich sessions with project metadata from ~/.claude/projects/
|
|
38
|
+
const projectsDir = join(claudeDir, 'projects');
|
|
39
|
+
if (existsSync(projectsDir)) {
|
|
40
|
+
const metadata = readProjectMetadata(projectsDir, sessions.map(s => s.id));
|
|
41
|
+
for (const session of sessions) {
|
|
42
|
+
const meta = metadata.get(session.id);
|
|
43
|
+
if (meta) {
|
|
44
|
+
session.projectName = meta.projectName;
|
|
45
|
+
session.cwd = meta.cwd;
|
|
46
|
+
}
|
|
21
47
|
}
|
|
22
48
|
}
|
|
23
49
|
// Sort by most recent activity (updatedAt desc)
|
|
@@ -94,7 +120,132 @@ function readSessionTasks(sessionDir) {
|
|
|
94
120
|
return tasks;
|
|
95
121
|
}
|
|
96
122
|
/**
|
|
97
|
-
*
|
|
123
|
+
* Reads a todos/ format file: single JSON array with all tasks.
|
|
124
|
+
* Filename pattern: <sessionId>-agent-<sessionId>.json
|
|
125
|
+
*/
|
|
126
|
+
function readTodosFile(todosDir, filename) {
|
|
127
|
+
// Extract sessionId from filename (e.g. "abc123-agent-abc123.json" → "abc123")
|
|
128
|
+
const match = filename.match(/^([a-f0-9-]+)-agent-/);
|
|
129
|
+
if (!match)
|
|
130
|
+
return null;
|
|
131
|
+
const sessionId = match[1];
|
|
132
|
+
const filePath = join(todosDir, filename);
|
|
133
|
+
try {
|
|
134
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
135
|
+
const parsed = JSON.parse(content);
|
|
136
|
+
if (!Array.isArray(parsed))
|
|
137
|
+
return null;
|
|
138
|
+
const tasks = [];
|
|
139
|
+
for (let i = 0; i < parsed.length; i++) {
|
|
140
|
+
const task = validateTodoItem(parsed[i], i);
|
|
141
|
+
if (task)
|
|
142
|
+
tasks.push(task);
|
|
143
|
+
}
|
|
144
|
+
if (tasks.length === 0)
|
|
145
|
+
return null;
|
|
146
|
+
const stat = statSync(filePath);
|
|
147
|
+
return {
|
|
148
|
+
id: sessionId,
|
|
149
|
+
tasks,
|
|
150
|
+
createdAt: stat.birthtime.toISOString(),
|
|
151
|
+
updatedAt: stat.mtime.toISOString()
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Validates a todo item from the todos/ format (has content instead of subject, no id).
|
|
160
|
+
*/
|
|
161
|
+
function validateTodoItem(obj, index) {
|
|
162
|
+
if (!obj || typeof obj !== 'object')
|
|
163
|
+
return null;
|
|
164
|
+
const record = obj;
|
|
165
|
+
if (typeof record.status !== 'string')
|
|
166
|
+
return null;
|
|
167
|
+
const validStatuses = ['pending', 'in_progress', 'completed'];
|
|
168
|
+
if (!validStatuses.includes(record.status))
|
|
169
|
+
return null;
|
|
170
|
+
// todos format uses "content" instead of "subject"
|
|
171
|
+
const subject = typeof record.content === 'string' ? record.content
|
|
172
|
+
: typeof record.subject === 'string' ? record.subject : '';
|
|
173
|
+
return {
|
|
174
|
+
id: typeof record.id === 'string' ? record.id : String(index + 1),
|
|
175
|
+
subject,
|
|
176
|
+
description: typeof record.description === 'string' ? record.description : '',
|
|
177
|
+
activeForm: typeof record.activeForm === 'string' ? record.activeForm : '',
|
|
178
|
+
status: record.status,
|
|
179
|
+
blocks: Array.isArray(record.blocks) ? record.blocks.filter((b) => typeof b === 'string') : [],
|
|
180
|
+
blockedBy: Array.isArray(record.blockedBy) ? record.blockedBy.filter((b) => typeof b === 'string') : []
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Reads project metadata from ~/.claude/projects/ JSONL files.
|
|
185
|
+
* Scans the first 16KB of each JSONL to extract cwd and project name.
|
|
186
|
+
*/
|
|
187
|
+
function readProjectMetadata(projectsDir, sessionIds) {
|
|
188
|
+
const result = new Map();
|
|
189
|
+
const targetIds = new Set(sessionIds);
|
|
190
|
+
try {
|
|
191
|
+
const projectDirs = readdirSync(projectsDir, { withFileTypes: true });
|
|
192
|
+
for (const dir of projectDirs) {
|
|
193
|
+
if (!dir.isDirectory())
|
|
194
|
+
continue;
|
|
195
|
+
const projectPath = join(projectsDir, dir.name);
|
|
196
|
+
const files = readdirSync(projectPath).filter(f => f.endsWith('.jsonl'));
|
|
197
|
+
for (const file of files) {
|
|
198
|
+
const sessionId = file.replace('.jsonl', '');
|
|
199
|
+
if (!targetIds.has(sessionId))
|
|
200
|
+
continue;
|
|
201
|
+
if (result.has(sessionId))
|
|
202
|
+
continue;
|
|
203
|
+
const meta = extractMetaFromJsonl(join(projectPath, file), dir.name);
|
|
204
|
+
if (meta)
|
|
205
|
+
result.set(sessionId, meta);
|
|
206
|
+
}
|
|
207
|
+
if (result.size === targetIds.size)
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch { /* projects dir may not be readable */ }
|
|
212
|
+
return result;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Reads the first 16KB of a JSONL file to extract cwd.
|
|
216
|
+
* Falls back to deriving project name from the directory name.
|
|
217
|
+
*/
|
|
218
|
+
function extractMetaFromJsonl(filePath, dirName) {
|
|
219
|
+
const READ_BYTES = 16 * 1024;
|
|
220
|
+
try {
|
|
221
|
+
const fd = openSync(filePath, 'r');
|
|
222
|
+
const buf = Buffer.alloc(READ_BYTES);
|
|
223
|
+
const bytesRead = readSync(fd, buf, 0, READ_BYTES, 0);
|
|
224
|
+
closeSync(fd);
|
|
225
|
+
const chunk = buf.toString('utf-8', 0, bytesRead);
|
|
226
|
+
const fallbackName = dirName.split('-').filter(Boolean).pop() || dirName;
|
|
227
|
+
const lines = chunk.split('\n');
|
|
228
|
+
for (const line of lines) {
|
|
229
|
+
if (!line.includes('"cwd"'))
|
|
230
|
+
continue;
|
|
231
|
+
try {
|
|
232
|
+
const obj = JSON.parse(line);
|
|
233
|
+
if (typeof obj.cwd === 'string') {
|
|
234
|
+
return { projectName: basename(obj.cwd), cwd: obj.cwd };
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return { projectName: fallbackName, cwd: '' };
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Validates and normalizes a parsed JSON object into a ClaudeTask (legacy tasks/ format).
|
|
98
249
|
*/
|
|
99
250
|
function validateClaudeTask(obj) {
|
|
100
251
|
if (!obj || typeof obj !== 'object')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todoReader.js","sourceRoot":"","sources":["../../src/core/todoReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"todoReader.js","sourceRoot":"","sources":["../../src/core/todoReader.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAGjE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAGjE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/9056dd3cc8c03e80.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8658fdbc42bfbbae.js"/><script src="/_next/static/chunks/fd9d1056-9e191f0896c1d560.js" async=""></script><script src="/_next/static/chunks/117-c710cb30aa7ed4f8.js" async=""></script><script src="/_next/static/chunks/main-app-feb0e3b0cc6fb4c7.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>agent-scope</title><meta name="description" content="Execution observer for AI agent workflows"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-8658fdbc42bfbbae.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/9056dd3cc8c03e80.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/9056dd3cc8c03e80.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8658fdbc42bfbbae.js"/><script src="/_next/static/chunks/fd9d1056-9e191f0896c1d560.js" async=""></script><script src="/_next/static/chunks/117-c710cb30aa7ed4f8.js" async=""></script><script src="/_next/static/chunks/main-app-feb0e3b0cc6fb4c7.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>agent-scope</title><meta name="description" content="Execution observer for AI agent workflows"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-8658fdbc42bfbbae.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/9056dd3cc8c03e80.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"K7T78-L0ry_e7hJ3Vq9AC\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9056dd3cc8c03e80.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"agent-scope\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Execution observer for AI agent workflows\"}]]\n3:null\n"])</script></body></html>
|
package/dist/public/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/9056dd3cc8c03e80.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8658fdbc42bfbbae.js"/><script src="/_next/static/chunks/fd9d1056-9e191f0896c1d560.js" async=""></script><script src="/_next/static/chunks/117-c710cb30aa7ed4f8.js" async=""></script><script src="/_next/static/chunks/main-app-feb0e3b0cc6fb4c7.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>agent-scope</title><meta name="description" content="Execution observer for AI agent workflows"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-8658fdbc42bfbbae.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/9056dd3cc8c03e80.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/9056dd3cc8c03e80.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8658fdbc42bfbbae.js"/><script src="/_next/static/chunks/fd9d1056-9e191f0896c1d560.js" async=""></script><script src="/_next/static/chunks/117-c710cb30aa7ed4f8.js" async=""></script><script src="/_next/static/chunks/main-app-feb0e3b0cc6fb4c7.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>agent-scope</title><meta name="description" content="Execution observer for AI agent workflows"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-8658fdbc42bfbbae.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/9056dd3cc8c03e80.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"K7T78-L0ry_e7hJ3Vq9AC\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\",\"\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9056dd3cc8c03e80.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"agent-scope\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Execution observer for AI agent workflows\"}]]\n3:null\n"])</script></body></html>
|
package/dist/public/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/9056dd3cc8c03e80.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8658fdbc42bfbbae.js"/><script src="/_next/static/chunks/fd9d1056-9e191f0896c1d560.js" async=""></script><script src="/_next/static/chunks/117-c710cb30aa7ed4f8.js" async=""></script><script src="/_next/static/chunks/main-app-feb0e3b0cc6fb4c7.js" async=""></script><script src="/_next/static/chunks/46-3b308c2fb194eb7d.js" async=""></script><script src="/_next/static/chunks/app/page-525816f75fc4208f.js" async=""></script><title>agent-scope</title><meta name="description" content="Execution observer for AI agent workflows"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div class="h-screen bg-background flex items-center justify-center"><div class="text-muted-foreground">Loading...</div></div><script src="/_next/static/chunks/webpack-8658fdbc42bfbbae.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/9056dd3cc8c03e80.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[8205,[\"46\",\"static/chunks/46-3b308c2fb194eb7d.js\",\"931\",\"static/chunks/app/page-525816f75fc4208f.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[6423,[],\"\"]\n9:I[1060,[],\"\"]\na:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/9056dd3cc8c03e80.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-8658fdbc42bfbbae.js"/><script src="/_next/static/chunks/fd9d1056-9e191f0896c1d560.js" async=""></script><script src="/_next/static/chunks/117-c710cb30aa7ed4f8.js" async=""></script><script src="/_next/static/chunks/main-app-feb0e3b0cc6fb4c7.js" async=""></script><script src="/_next/static/chunks/46-3b308c2fb194eb7d.js" async=""></script><script src="/_next/static/chunks/app/page-525816f75fc4208f.js" async=""></script><title>agent-scope</title><meta name="description" content="Execution observer for AI agent workflows"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div class="h-screen bg-background flex items-center justify-center"><div class="text-muted-foreground">Loading...</div></div><script src="/_next/static/chunks/webpack-8658fdbc42bfbbae.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/9056dd3cc8c03e80.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[8205,[\"46\",\"static/chunks/46-3b308c2fb194eb7d.js\",\"931\",\"static/chunks/app/page-525816f75fc4208f.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[6423,[],\"\"]\n9:I[1060,[],\"\"]\na:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"K7T78-L0ry_e7hJ3Vq9AC\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9056dd3cc8c03e80.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"ch"])</script><script>self.__next_f.push([1,"ildren\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"agent-scope\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Execution observer for AI agent workflows\"}]]\n3:null\n"])</script></body></html>
|
package/dist/public/index.txt
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
3:I[8205,["46","static/chunks/46-3b308c2fb194eb7d.js","931","static/chunks/app/page-525816f75fc4208f.js"],"default",1]
|
|
3
3
|
4:I[4707,[],""]
|
|
4
4
|
5:I[6423,[],""]
|
|
5
|
-
0:["
|
|
5
|
+
0:["K7T78-L0ry_e7hJ3Vq9AC",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9056dd3cc8c03e80.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
6
|
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"agent-scope"}],["$","meta","3",{"name":"description","content":"Execution observer for AI agent workflows"}]]
|
|
7
7
|
1:null
|
package/dist/server/server.js
CHANGED
|
@@ -39,7 +39,7 @@ export async function startServer(options) {
|
|
|
39
39
|
});
|
|
40
40
|
// Health check endpoint
|
|
41
41
|
fastify.get('/health', async () => {
|
|
42
|
-
const hasLive = existsSync(join(claudeDir, 'tasks'));
|
|
42
|
+
const hasLive = existsSync(join(claudeDir, 'tasks')) || existsSync(join(claudeDir, 'todos'));
|
|
43
43
|
const hasPlan = agentScopeDir ? existsSync(join(agentScopeDir, 'queue.md')) : false;
|
|
44
44
|
return { status: 'ok', modes: { live: hasLive, plan: hasPlan } };
|
|
45
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAyB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAG9D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAQtC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAsB;IACtD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEnD,MAAM,OAAO,GAAG,OAAO,CAAC;QACtB,MAAM,EAAE,KAAK;QACb,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,cAAc;IACd,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;QACzC,SAAS;QACT,aAAa;KACd,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;IAE1D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAiB,EAAE,EAAE;QACzC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/server/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/server/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAgFpG"}
|
package/dist/server/watcher.js
CHANGED
|
@@ -9,10 +9,15 @@ import { join } from 'path';
|
|
|
9
9
|
export function createWatcher(options) {
|
|
10
10
|
const emitter = new EventEmitter();
|
|
11
11
|
const watchPaths = [];
|
|
12
|
-
// Watch Claude tasks directory
|
|
12
|
+
// Watch Claude tasks directory (legacy format)
|
|
13
13
|
const claudeTasksDir = join(options.claudeDir, 'tasks');
|
|
14
14
|
if (existsSync(claudeTasksDir)) {
|
|
15
|
-
watchPaths.push(
|
|
15
|
+
watchPaths.push(claudeTasksDir);
|
|
16
|
+
}
|
|
17
|
+
// Watch Claude todos directory (current format)
|
|
18
|
+
const claudeTodosDir = join(options.claudeDir, 'todos');
|
|
19
|
+
if (existsSync(claudeTodosDir)) {
|
|
20
|
+
watchPaths.push(claudeTodosDir);
|
|
16
21
|
}
|
|
17
22
|
// Watch agent-scope files if configured
|
|
18
23
|
if (options.agentScopeDir && existsSync(options.agentScopeDir)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/server/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,+
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/server/watcher.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-scope",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Deterministic, local, passive execution observer for AI agent workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"build:dashboard": "cd dashboard && npm run build",
|
|
19
19
|
"test": "vitest --run",
|
|
20
20
|
"test:coverage": "vitest --coverage",
|
|
21
|
-
"
|
|
21
|
+
"version": "node scripts/sync-version.mjs && git add dashboard/package.json src/cli.ts"
|
|
22
22
|
},
|
|
23
23
|
"keywords": [
|
|
24
24
|
"agent",
|
/package/dist/public/_next/static/{EjG9asgaOWf0-7fNJq_Sd → K7T78-L0ry_e7hJ3Vq9AC}/_buildManifest.js
RENAMED
|
File without changes
|
/package/dist/public/_next/static/{EjG9asgaOWf0-7fNJq_Sd → K7T78-L0ry_e7hJ3Vq9AC}/_ssgManifest.js
RENAMED
|
File without changes
|