agent-scope 0.1.1 → 0.2.1

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.
Files changed (39) hide show
  1. package/README.md +69 -253
  2. package/dist/cli.js +58 -26
  3. package/dist/cli.js.map +1 -1
  4. package/dist/core/logParser.js +9 -2
  5. package/dist/core/logParser.js.map +1 -1
  6. package/dist/core/queueParser.d.ts +8 -1
  7. package/dist/core/queueParser.d.ts.map +1 -1
  8. package/dist/core/queueParser.js +67 -6
  9. package/dist/core/queueParser.js.map +1 -1
  10. package/dist/core/stateEngine.js +5 -1
  11. package/dist/core/stateEngine.js.map +1 -1
  12. package/dist/core/todoReader.d.ts +11 -0
  13. package/dist/core/todoReader.d.ts.map +1 -0
  14. package/dist/core/todoReader.js +120 -0
  15. package/dist/core/todoReader.js.map +1 -0
  16. package/dist/core/types.d.ts +18 -1
  17. package/dist/core/types.d.ts.map +1 -1
  18. package/dist/public/404/index.html +1 -1
  19. package/dist/public/404.html +1 -1
  20. package/dist/public/_next/static/A6N9GtF30z_GVyVzO-PGY/_buildManifest.js +1 -0
  21. package/dist/public/_next/static/chunks/46-3b308c2fb194eb7d.js +1 -0
  22. package/dist/public/_next/static/chunks/app/page-525816f75fc4208f.js +1 -0
  23. package/dist/public/_next/static/css/9056dd3cc8c03e80.css +5 -0
  24. package/dist/public/index.html +1 -1
  25. package/dist/public/index.txt +2 -2
  26. package/dist/server/server.d.ts +6 -1
  27. package/dist/server/server.d.ts.map +1 -1
  28. package/dist/server/server.js +94 -30
  29. package/dist/server/server.js.map +1 -1
  30. package/dist/server/watcher.d.ts +19 -0
  31. package/dist/server/watcher.d.ts.map +1 -0
  32. package/dist/server/watcher.js +76 -0
  33. package/dist/server/watcher.js.map +1 -0
  34. package/package.json +2 -1
  35. package/dist/public/_next/static/T3xW0JlDHZRgq8cYrd_K-/_buildManifest.js +0 -1
  36. package/dist/public/_next/static/chunks/758-ab07c9ea623e4759.js +0 -1
  37. package/dist/public/_next/static/chunks/app/page-b95a4c5030b9d7e5.js +0 -1
  38. package/dist/public/_next/static/css/e8837d74ddf8b412.css +0 -5
  39. /package/dist/public/_next/static/{T3xW0JlDHZRgq8cYrd_K- → A6N9GtF30z_GVyVzO-PGY}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -1,51 +1,73 @@
1
1
  # agent-scope
2
2
 
3
- > **Deterministic, local, passive execution observer for AI agent workflows**
3
+ See what your AI agent is actually doing.
4
4
 
5
+ [![npm](https://img.shields.io/npm/v/agent-scope)](https://www.npmjs.com/package/agent-scope)
5
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue)](https://www.typescriptlang.org/)
7
- [![Test Coverage](https://img.shields.io/badge/coverage-98.33%25-brightgreen)](https://vitest.dev/)
8
7
 
9
- agent-scope is a lightweight, file-based execution observer for AI agent workflows. It provides real-time visibility into task progress, dependencies, and completion status without requiring databases, authentication, or cloud infrastructure.
8
+ ---
10
9
 
11
- ## Features
10
+ ## The problem
12
11
 
13
- - 🎯 **Deterministic** - Pure function state computation from files
14
- - 📁 **File-based** - No database, just markdown + JSONL
15
- - 👀 **Observer-only** - Passive monitoring, not an agent wrapper
16
- - 🤖 **Model-agnostic** - Works with any AI agent or framework
17
- - 📊 **Real-time dashboard** - Track progress, blockers, and failures
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
- ## Installation
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
24
- npm install -g agent-scope
17
+ npx agent-scope start
25
18
  ```
26
19
 
27
- Or use directly with npx:
20
+ That's it. Open `localhost:4317`. Watch your agent work.
21
+
22
+ ![agent-scope demo](docs/screenrecord.gif)
23
+
24
+ ## How it works
25
+
26
+ Claude Code already writes task state to `~/.claude/tasks/` via TodoWrite. agent-scope reads those files, watches for changes, and streams updates to your browser via SSE. No database. No auth. No cloud. Just files.
27
+
28
+ ## Two modes
29
+
30
+ | | Live | Plan |
31
+ |---|---|---|
32
+ | **What** | Watch Claude Code work | Structured project planning |
33
+ | **Source** | `~/.claude/tasks/` | `.agent-scope/queue.md` |
34
+ | **Setup** | None | `npx agent-scope init` |
35
+ | **Use when** | You want visibility | You want control |
36
+
37
+ Live mode is the default. Plan mode adds dependencies, acceptance criteria, and execution tracking on top.
38
+
39
+ | Live mode | Plan mode |
40
+ |---|---|
41
+ | ![Live](docs/screenshot-1.png) | ![Plan](docs/screenshot-2.png) |
42
+
43
+ ## Install
28
44
 
29
45
  ```bash
30
- npx agent-scope init
31
- ```
46
+ # Run directly
47
+ npx agent-scope start
32
48
 
33
- ## Quick Start
49
+ # Or install globally
50
+ npm i -g agent-scope
51
+ ```
34
52
 
35
- ### 1. Initialize in your project
53
+ ### Plan mode setup
36
54
 
37
55
  ```bash
38
- npx agent-scope init
56
+ agent-scope init # Creates .agent-scope/ with queue.md template
57
+ # Edit .agent-scope/queue.md with your tasks
58
+ agent-scope start
39
59
  ```
40
60
 
41
- This creates a `.agent-scope/` directory with:
42
- - `queue.md` - Task definitions in markdown
43
- - `execution.log` - JSONL event log
44
- - `config.json` - Configuration
61
+ ## CLI
45
62
 
46
- ### 2. Define your task queue
63
+ ```bash
64
+ agent-scope start # Auto-detect modes, open dashboard
65
+ agent-scope start --claude-dir /path # Custom Claude directory
66
+ agent-scope start -p 3000 # Custom port
67
+ agent-scope init # Init plan mode in current dir
68
+ ```
47
69
 
48
- Edit `.agent-scope/queue.md`:
70
+ ## Queue format (Plan mode)
49
71
 
50
72
  ```markdown
51
73
  # Slice S1
@@ -63,250 +85,44 @@ Description: Implement user authentication
63
85
  AC: Login and registration endpoints working
64
86
  ```
65
87
 
66
- ### 3. Log task completion
88
+ Validates: required fields, duplicate IDs, unknown deps, circular deps.
89
+
90
+ ## Execution log (Plan mode)
67
91
 
68
- Your agent writes to `.agent-scope/execution.log`:
92
+ Append-only JSONL:
69
93
 
70
94
  ```json
71
95
  {"task_id":"S1-T1","status":"DONE","timestamp":"2026-02-16T14:31:22Z","agent":"claude"}
72
96
  {"task_id":"S1-T2","status":"FAILED","timestamp":"2026-02-16T14:33:10Z","agent":"claude","meta":{"reason":"timeout"}}
97
+ {"task_id":"S1-T3","status":"BLOCKED","reason":"API key missing","timestamp":"2026-02-16T14:35:00Z","agent":"claude"}
73
98
  ```
74
99
 
75
- ### 4. Start the dashboard
76
-
77
- ```bash
78
- npx agent-scope start
79
- ```
80
-
81
- Opens `http://localhost:4317` with live progress visualization.
82
-
83
- ## Dashboard Features
84
-
85
- ### Executive Summary
86
- - Total tasks, done, failed, blocked, ready counts
87
- - Overall success rate calculation
88
- - Last updated timestamp
89
-
90
- ### Slice Progress
91
- - Visual progress bars per slice
92
- - Percentage completion tracking
93
- - Task distribution breakdown
94
-
95
- ### Task Table
96
- - Filter by status (READY, BLOCKED, DONE, FAILED)
97
- - View dependencies and blockers
98
- - Click any task for full details
99
-
100
- ### Task Details
101
- - Acceptance criteria
102
- - Dependency graph
103
- - Reverse dependencies (who depends on this)
104
- - Last event information
105
-
106
- ## Task Queue Format
107
-
108
- ### Markdown DSL
109
-
110
- ```markdown
111
- # Slice S1
112
-
113
- ## S1-T1
114
- Area: <category>
115
- Depends: - # No dependencies, or comma-separated IDs
116
- Description: <what to do>
117
- AC: <acceptance criteria>
118
- ```
119
-
120
- ### Validation
121
-
122
- agent-scope validates:
123
- - ✅ All required fields present
124
- - ✅ No duplicate task IDs
125
- - ✅ No unknown dependencies
126
- - ✅ No circular dependencies (DFS detection)
127
-
128
- ## Execution Log Format
129
-
130
- ### JSONL Schema
131
-
132
- ```typescript
133
- {
134
- "task_id": "S1-T1", // Required: matches task in queue
135
- "status": "DONE" | "FAILED", // Required: outcome
136
- "timestamp": "ISO-8601", // Required: when it happened
137
- "agent": "string", // Required: agent name
138
- "meta": {...} // Optional: additional context
139
- }
140
- ```
141
-
142
- ### Behavior
143
-
144
- - Latest event per task wins (by timestamp)
145
- - Invalid lines collected as warnings
146
- - Malformed JSON doesn't crash the system
147
-
148
- ## Architecture
149
-
150
- ### Core Principles
151
-
152
- 1. **Deterministic** - Same inputs always produce same output
153
- 2. **Stateless** - Server recomputes on every request (no cache in v0.1)
154
- 3. **Error-tolerant** - Collects errors instead of crashing
155
- 4. **Type-safe** - Strict TypeScript throughout
156
-
157
- ### Status Computation
158
-
159
- ```
160
- For each task:
161
- if lastEvent.status === FAILED → FAILED
162
- else if lastEvent.status === DONE → DONE
163
- else if any dependency.status !== DONE → BLOCKED
164
- else → READY
165
- ```
166
-
167
- Priority: `FAILED > DONE > BLOCKED > READY`
100
+ ## API
168
101
 
169
- ### Tech Stack
170
-
171
- - **Language**: TypeScript (strict mode)
172
- - **CLI**: Commander
173
- - **Server**: Fastify
174
- - **UI**: Next.js App Router + Tailwind CSS
175
- - **Testing**: Vitest (98.33% coverage)
102
+ | Endpoint | Description |
103
+ |---|---|
104
+ | `GET /health` | Status + available modes |
105
+ | `GET /sessions` | All Claude Code sessions |
106
+ | `GET /sessions/:id` | Tasks for a session |
107
+ | `GET /events` | SSE stream |
108
+ | `GET /snapshot` | Plan mode state |
176
109
 
177
110
  ## Development
178
111
 
179
- ### Setup
180
-
181
112
  ```bash
182
- git clone https://github.com/yourusername/agent-scope.git
183
- cd agent-scope
184
- npm install
113
+ git clone https://github.com/yunusemrgrl/agent-scope.git
114
+ cd agent-scope && npm install
185
115
  cd dashboard && npm install && cd ..
186
- ```
187
-
188
- ### Build
189
-
190
- ```bash
191
- npm run build # Builds core + dashboard
192
- npm run build:core # Only TypeScript
193
- npm run build:dashboard # Only Next.js UI
194
- ```
195
-
196
- ### Test
197
-
198
- ```bash
199
- npm test # Run tests in watch mode
200
- npm run test:coverage # Generate coverage report
201
- ```
202
-
203
- ### Project Structure
204
-
205
- ```
206
- agent-scope/
207
- ├─ src/
208
- │ ├─ core/
209
- │ │ ├─ types.ts # Domain model
210
- │ │ ├─ queueParser.ts # Markdown parser
211
- │ │ ├─ logParser.ts # JSONL parser
212
- │ │ └─ stateEngine.ts # Snapshot computation
213
- │ ├─ server/
214
- │ │ └─ server.ts # Fastify API
215
- │ └─ cli.ts # Commander CLI
216
- ├─ tests/core/ # Unit tests (62 tests)
217
- ├─ dashboard/ # Next.js UI
218
- │ └─ src/
219
- │ ├─ app/ # App Router pages
220
- │ └─ components/ # React components
221
- ├─ dist/ # Build output
222
- └─ .agent-scope/ # Created by init (gitignored)
223
- ```
224
-
225
- ## API Reference
226
116
 
227
- ### `GET /snapshot`
228
-
229
- Returns current system state:
230
-
231
- ```typescript
232
- {
233
- snapshot: Snapshot | null,
234
- queueErrors: string[], // Fatal queue parse errors
235
- logErrors: string[], // Non-fatal log warnings
236
- meta: {
237
- generatedAt: string, // ISO-8601
238
- totalTasks: number
239
- }
240
- }
117
+ npm run build # Build core + dashboard
118
+ npm test # 97 tests
119
+ npm run dev # Dev server with watch
241
120
  ```
242
121
 
243
- ### `GET /health`
244
-
245
- Health check endpoint:
246
-
247
- ```json
248
- {"status": "ok"}
249
- ```
250
-
251
- ## Use Cases
252
-
253
- - **AI Agent Development** - Monitor multi-step agent workflows
254
- - **Task Automation** - Track long-running automation pipelines
255
- - **Project Management** - Visualize task dependencies and progress
256
- - **Testing** - Observe test execution flows
257
- - **CI/CD Monitoring** - Track deployment task completion
258
-
259
- ## Non-Goals (v0.1)
260
-
261
- - ❌ Real-time streaming (manual refresh only)
262
- - ❌ Agent execution wrapper
263
- - ❌ Git integration
264
- - ❌ SaaS/cloud mode
265
- - ❌ Authentication
266
- - ❌ Task editing UI
267
- - ❌ WebSocket updates
268
-
269
- agent-scope is an **observer**, not an orchestrator. It watches your workflow, it doesn't run it.
122
+ ## Stack
270
123
 
271
- ## Roadmap
272
-
273
- ### v0.2 (Planned)
274
- - Incremental state updates
275
- - File watching for auto-refresh
276
- - Export reports (JSON, CSV)
277
- - Performance optimizations
278
-
279
- ### v0.3 (Planned)
280
- - Historical snapshots
281
- - Time-series progress tracking
282
- - Multiple project support
283
- - Search and filters
284
-
285
- ## Contributing
286
-
287
- Contributions welcome! Please:
288
-
289
- 1. Fork the repository
290
- 2. Create a feature branch (`git checkout -b feature/amazing`)
291
- 3. Write tests for new functionality
292
- 4. Ensure `npm test` passes with 95%+ coverage
293
- 5. Submit a pull request
124
+ TypeScript, Fastify, chokidar, SSE, Next.js, Tailwind, Vitest.
294
125
 
295
126
  ## License
296
127
 
297
- MIT License - see [LICENSE](LICENSE) file for details
298
-
299
- ## Credits
300
-
301
- Built with ❤️ by the agent-scope team
302
-
303
- Powered by:
304
- - [TypeScript](https://www.typescriptlang.org/)
305
- - [Fastify](https://www.fastify.io/)
306
- - [Next.js](https://nextjs.org/)
307
- - [Commander](https://github.com/tj/commander.js)
308
- - [Vitest](https://vitest.dev/)
309
-
310
- ---
311
-
312
- **Note**: This is v0.1 - a minimal viable product focused on core functionality. Features are intentionally limited to ensure stability and simplicity.
128
+ 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.1.0');
11
+ .version('0.2.1');
12
12
  program
13
13
  .command('init')
14
14
  .description('Initialize agent-scope in current directory')
@@ -40,7 +40,20 @@ AC: Task completed successfully
40
40
  const config = {
41
41
  queueFile: 'queue.md',
42
42
  logFile: 'execution.log',
43
- port: 4317
43
+ port: 4317,
44
+ taskModel: {
45
+ fields: [
46
+ { name: 'Area', type: 'enum', required: true, values: ['Core'] },
47
+ { name: 'Depends', type: 'refs', required: false },
48
+ { name: 'Description', type: 'text', required: true },
49
+ { name: 'AC', type: 'text', required: true }
50
+ ],
51
+ id: '{slice}-T{n}',
52
+ headings: {
53
+ slice: '# Slice {name}',
54
+ task: '## {id}'
55
+ }
56
+ }
44
57
  };
45
58
  writeFileSync(join(agentScopeDir, 'config.json'), JSON.stringify(config, null, 2));
46
59
  console.log('✓ Created config.json');
@@ -58,18 +71,25 @@ Each completed task should be logged as a single line:
58
71
  {"task_id":"S1-T1","status":"DONE","timestamp":"2026-02-16T14:31:22Z","agent":"claude"}
59
72
  \`\`\`
60
73
 
61
- Or for failures:
74
+ For failures:
62
75
 
63
76
  \`\`\`json
64
77
  {"task_id":"S1-T2","status":"FAILED","timestamp":"2026-02-16T14:33:10Z","agent":"claude","meta":{"reason":"timeout"}}
65
78
  \`\`\`
66
79
 
80
+ For blockers (when a task cannot proceed):
81
+
82
+ \`\`\`json
83
+ {"task_id":"S1-T3","status":"BLOCKED","reason":"API key missing","timestamp":"2026-02-16T14:35:00Z","agent":"claude"}
84
+ \`\`\`
85
+
67
86
  ## Required Fields
68
87
 
69
88
  - \`task_id\`: Task identifier from queue.md (e.g., "S1-T1")
70
- - \`status\`: Either "DONE" or "FAILED"
89
+ - \`status\`: "DONE", "FAILED", or "BLOCKED"
71
90
  - \`timestamp\`: ISO-8601 timestamp (use \`new Date().toISOString()\`)
72
91
  - \`agent\`: Your agent name (e.g., "claude")
92
+ - \`reason\`: (Required for BLOCKED) Why the task is blocked
73
93
  - \`meta\`: (Optional) Additional context
74
94
 
75
95
  Run \`npx agent-scope start\` to view the dashboard.
@@ -85,36 +105,48 @@ Run \`npx agent-scope start\` to view the dashboard.
85
105
  program
86
106
  .command('start')
87
107
  .description('Start the agent-scope server and dashboard')
88
- .action(async () => {
108
+ .option('--claude-dir <path>', 'Path to Claude directory', join(process.env.HOME || '~', '.claude'))
109
+ .option('-p, --port <number>', 'Port number', '4317')
110
+ .action(async (opts) => {
111
+ const claudeDir = opts.claudeDir;
89
112
  const agentScopeDir = join(process.cwd(), '.agent-scope');
90
- // Verify .agent-scope/ exists
91
- if (!existsSync(agentScopeDir)) {
92
- console.error('❌ .agent-scope/ not found. Run "agent-scope init" first.');
93
- process.exit(1);
94
- }
95
- // Read config
96
- const configPath = join(agentScopeDir, 'config.json');
97
- if (!existsSync(configPath)) {
98
- console.error('❌ config.json not found in .agent-scope/');
113
+ // Detect available modes
114
+ const hasLive = existsSync(join(claudeDir, 'tasks'));
115
+ const hasPlan = existsSync(agentScopeDir);
116
+ if (!hasLive && !hasPlan) {
117
+ console.error('❌ No data sources found.');
118
+ console.error(` Live mode: ${claudeDir}/tasks/ not found`);
119
+ console.error(' Plan mode: .agent-scope/ not found (run "agent-scope init")');
99
120
  process.exit(1);
100
121
  }
101
- let config;
102
- try {
103
- const configContent = await import('fs').then(fs => fs.promises.readFile(configPath, 'utf-8'));
104
- config = JSON.parse(configContent);
105
- }
106
- catch (error) {
107
- console.error('❌ Failed to read config.json:', error);
108
- process.exit(1);
122
+ // Read port from config if plan mode available, otherwise use CLI option
123
+ let port = parseInt(opts.port, 10);
124
+ if (hasPlan) {
125
+ const configPath = join(agentScopeDir, 'config.json');
126
+ if (existsSync(configPath)) {
127
+ try {
128
+ const configContent = await import('fs').then(fs => fs.promises.readFile(configPath, 'utf-8'));
129
+ const config = JSON.parse(configContent);
130
+ if (config.port && opts.port === '4317') {
131
+ port = config.port;
132
+ }
133
+ }
134
+ catch { /* use default port */ }
135
+ }
109
136
  }
110
- const port = config.port || 4317;
111
137
  const url = `http://localhost:${port}`;
112
138
  try {
113
- // Start server
114
- await startServer(agentScopeDir, port);
139
+ await startServer({
140
+ claudeDir,
141
+ port,
142
+ agentScopeDir: hasPlan ? agentScopeDir : undefined
143
+ });
115
144
  console.log(`✓ Server running on ${url}`);
145
+ if (hasLive)
146
+ console.log(` Live mode: watching ${claudeDir}/tasks/`);
147
+ if (hasPlan)
148
+ console.log(' Plan mode: reading .agent-scope/');
116
149
  console.log('✓ Opening browser...');
117
- // Auto-open browser
118
150
  const platform = process.platform;
119
151
  const openCommand = platform === 'darwin' ? 'open' :
120
152
  platform === 'win32' ? 'start' :
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -55,8 +55,14 @@ function validateLogEvent(obj, lineNumber) {
55
55
  errors.push(`Line ${lineNumber}: Missing or invalid task_id`);
56
56
  }
57
57
  // Validate status
58
- if (event.status !== 'DONE' && event.status !== 'FAILED') {
59
- errors.push(`Line ${lineNumber}: Invalid status (must be DONE or FAILED)`);
58
+ if (event.status !== 'DONE' && event.status !== 'FAILED' && event.status !== 'BLOCKED') {
59
+ errors.push(`Line ${lineNumber}: Invalid status (must be DONE, FAILED, or BLOCKED)`);
60
+ }
61
+ // Validate reason (required for BLOCKED)
62
+ if (event.status === 'BLOCKED') {
63
+ if (typeof event.reason !== 'string' || !event.reason) {
64
+ errors.push(`Line ${lineNumber}: reason is required when status is BLOCKED`);
65
+ }
60
66
  }
61
67
  // Validate timestamp
62
68
  if (typeof event.timestamp !== 'string' || !isValidISO8601(event.timestamp)) {
@@ -81,6 +87,7 @@ function validateLogEvent(obj, lineNumber) {
81
87
  status: event.status,
82
88
  timestamp: event.timestamp,
83
89
  agent: event.agent,
90
+ ...(event.reason !== undefined && { reason: event.reason }),
84
91
  ...(event.meta !== undefined && { meta: event.meta })
85
92
  };
86
93
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"logParser.js","sourceRoot":"","sources":["../../src/core/logParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logParser.js","sourceRoot":"","sources":["../../src/core/logParser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
1
  import type { Task } from './types.js';
2
+ export interface QueueParseConfig {
3
+ id?: string;
4
+ headings?: {
5
+ slice?: string;
6
+ task?: string;
7
+ };
8
+ }
2
9
  export interface QueueParseResult {
3
10
  tasks: Task[];
4
11
  errors: string[];
@@ -7,5 +14,5 @@ export interface QueueParseResult {
7
14
  * Parses a markdown queue file into structured tasks.
8
15
  * Returns both tasks and any validation errors encountered.
9
16
  */
10
- export declare function parseQueue(content: string): QueueParseResult;
17
+ export declare function parseQueue(content: string, config?: QueueParseConfig): QueueParseResult;
11
18
  //# sourceMappingURL=queueParser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queueParser.d.ts","sourceRoot":"","sources":["../../src/core/queueParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAmH5D"}
1
+ {"version":3,"file":"queueParser.d.ts","sourceRoot":"","sources":["../../src/core/queueParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAgED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CA4HvF"}