notilens 0.4.0 → 0.4.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.
- checksums.yaml +4 -4
- data/README.md +15 -15
- data/bin/notilens +31 -31
- data/lib/notilens/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fd7625736ecfbf29e8edd2db4793939a9b934b0889decbb9289d57c7d9a5f8f4
|
|
4
|
+
data.tar.gz: ec9b1425f1876f3c995fba3d06706e29ab0971b6770edff89843abdce3a860b3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6015855ee231777d06b19c229edeb9d04d95b5a8d6916ac2deea918f20438119bce87113a6d2649531c904aea5f2f51003f70078de082e6f137c42f72d95a986
|
|
7
|
+
data.tar.gz: 03c43d1eee264f2759fd765d772683125bd6c30ed7704339f1bee04bd91bcf593ca174f777a5f980103a1da235efae9b6eda26c2b222e1a4b79247a7e8ca18e4
|
data/README.md
CHANGED
|
@@ -155,21 +155,21 @@ notilens remove-agent my-agent
|
|
|
155
155
|
`--task` is a semantic label (e.g. `email`, `report`). Each `task.start` creates an isolated run internally — concurrent executions of the same label never conflict.
|
|
156
156
|
|
|
157
157
|
```bash
|
|
158
|
-
notilens
|
|
159
|
-
notilens
|
|
160
|
-
notilens
|
|
161
|
-
notilens
|
|
162
|
-
notilens
|
|
163
|
-
notilens
|
|
164
|
-
notilens
|
|
165
|
-
notilens
|
|
166
|
-
notilens
|
|
167
|
-
notilens
|
|
168
|
-
notilens
|
|
169
|
-
notilens
|
|
170
|
-
notilens
|
|
171
|
-
notilens
|
|
172
|
-
notilens
|
|
158
|
+
notilens queue --agent my-agent --task email
|
|
159
|
+
notilens start --agent my-agent --task email
|
|
160
|
+
notilens progress "Fetching data" --agent my-agent --task email
|
|
161
|
+
notilens loop "Item 5/100" --agent my-agent --task email
|
|
162
|
+
notilens retry --agent my-agent --task email
|
|
163
|
+
notilens pause "Rate limited" --agent my-agent --task email
|
|
164
|
+
notilens resume "Resuming" --agent my-agent --task email
|
|
165
|
+
notilens wait "Awaiting tool" --agent my-agent --task email
|
|
166
|
+
notilens stop --agent my-agent --task email
|
|
167
|
+
notilens error "Quota hit" --agent my-agent --task email
|
|
168
|
+
notilens fail "Fatal error" --agent my-agent --task email
|
|
169
|
+
notilens timeout "Timed out" --agent my-agent --task email
|
|
170
|
+
notilens cancel "Cancelled" --agent my-agent --task email
|
|
171
|
+
notilens terminate "Force stop" --agent my-agent --task email
|
|
172
|
+
notilens complete "Done!" --agent my-agent --task email
|
|
173
173
|
|
|
174
174
|
notilens output.generate "Report ready" --agent my-agent --task email
|
|
175
175
|
notilens output.fail "Render failed" --agent my-agent --task email
|
data/bin/notilens
CHANGED
|
@@ -59,7 +59,7 @@ def resolve_run_id(f)
|
|
|
59
59
|
end
|
|
60
60
|
run_id = NotiLens::State.read_pointer(f[:agent], f[:task_label])
|
|
61
61
|
if run_id.empty?
|
|
62
|
-
$stderr.puts "❌ No active run for task '#{f[:task_label]}' on agent '#{f[:agent]}'. Run
|
|
62
|
+
$stderr.puts "❌ No active run for task '#{f[:task_label]}' on agent '#{f[:agent]}'. Run start first."
|
|
63
63
|
exit 1
|
|
64
64
|
end
|
|
65
65
|
run_id
|
|
@@ -181,7 +181,7 @@ when "remove-agent"
|
|
|
181
181
|
? puts("✔ Agent '#{rest[0]}' removed") \
|
|
182
182
|
: $stderr.puts("Agent '#{rest[0]}' not found")
|
|
183
183
|
|
|
184
|
-
when "
|
|
184
|
+
when "queue"
|
|
185
185
|
f = parse_flags(rest)
|
|
186
186
|
run_id = gen_run_id
|
|
187
187
|
sf = NotiLens::State.file(f[:agent], run_id)
|
|
@@ -202,7 +202,7 @@ when "task.queue"
|
|
|
202
202
|
send_notify("task.queued", "Task queued", f, run_id)
|
|
203
203
|
puts run_id
|
|
204
204
|
|
|
205
|
-
when "
|
|
205
|
+
when "start"
|
|
206
206
|
f = parse_flags(rest)
|
|
207
207
|
# Reuse run_id from a prior task.queue if available
|
|
208
208
|
run_id = NotiLens::State.read_pointer(f[:agent], f[:task_label])
|
|
@@ -230,13 +230,13 @@ when "task.start"
|
|
|
230
230
|
send_notify("task.started", "Task started", f, run_id)
|
|
231
231
|
puts run_id
|
|
232
232
|
|
|
233
|
-
when "
|
|
233
|
+
when "progress"
|
|
234
234
|
pos, rest2 = positional_args(rest)
|
|
235
235
|
f = parse_flags(rest2)
|
|
236
236
|
run_id = resolve_run_id(f)
|
|
237
237
|
send_notify("task.progress", pos[0].to_s, f, run_id)
|
|
238
238
|
|
|
239
|
-
when "
|
|
239
|
+
when "loop"
|
|
240
240
|
pos, rest2 = positional_args(rest)
|
|
241
241
|
f = parse_flags(rest2)
|
|
242
242
|
run_id = resolve_run_id(f)
|
|
@@ -245,7 +245,7 @@ when "task.loop"
|
|
|
245
245
|
NotiLens::State.update(sf, { "loop_count" => count })
|
|
246
246
|
send_notify("task.loop", pos[0].to_s, f, run_id)
|
|
247
247
|
|
|
248
|
-
when "
|
|
248
|
+
when "retry"
|
|
249
249
|
f = parse_flags(rest)
|
|
250
250
|
run_id = resolve_run_id(f)
|
|
251
251
|
sf = NotiLens::State.file(f[:agent], run_id)
|
|
@@ -253,12 +253,12 @@ when "task.retry"
|
|
|
253
253
|
NotiLens::State.update(sf, { "retry_count" => count })
|
|
254
254
|
send_notify("task.retry", "Retrying task", f, run_id)
|
|
255
255
|
|
|
256
|
-
when "
|
|
256
|
+
when "stop"
|
|
257
257
|
f = parse_flags(rest)
|
|
258
258
|
run_id = resolve_run_id(f)
|
|
259
259
|
send_notify("task.stopped", "Task stopped", f, run_id)
|
|
260
260
|
|
|
261
|
-
when "
|
|
261
|
+
when "pause"
|
|
262
262
|
pos, rest2 = positional_args(rest)
|
|
263
263
|
f = parse_flags(rest2)
|
|
264
264
|
run_id = resolve_run_id(f)
|
|
@@ -270,7 +270,7 @@ when "task.pause"
|
|
|
270
270
|
})
|
|
271
271
|
send_notify("task.paused", pos[0].to_s, f, run_id)
|
|
272
272
|
|
|
273
|
-
when "
|
|
273
|
+
when "resume"
|
|
274
274
|
pos, rest2 = positional_args(rest)
|
|
275
275
|
f = parse_flags(rest2)
|
|
276
276
|
run_id = resolve_run_id(f)
|
|
@@ -289,7 +289,7 @@ when "task.resume"
|
|
|
289
289
|
NotiLens::State.update(sf, updates) unless updates.empty?
|
|
290
290
|
send_notify("task.resumed", pos[0].to_s, f, run_id)
|
|
291
291
|
|
|
292
|
-
when "
|
|
292
|
+
when "wait"
|
|
293
293
|
pos, rest2 = positional_args(rest)
|
|
294
294
|
f = parse_flags(rest2)
|
|
295
295
|
run_id = resolve_run_id(f)
|
|
@@ -301,7 +301,7 @@ when "task.wait"
|
|
|
301
301
|
})
|
|
302
302
|
send_notify("task.waiting", pos[0].to_s, f, run_id)
|
|
303
303
|
|
|
304
|
-
when "
|
|
304
|
+
when "error"
|
|
305
305
|
pos, rest2 = positional_args(rest)
|
|
306
306
|
f = parse_flags(rest2)
|
|
307
307
|
run_id = resolve_run_id(f)
|
|
@@ -311,7 +311,7 @@ when "task.error"
|
|
|
311
311
|
send_notify("task.error", pos[0].to_s, f, run_id)
|
|
312
312
|
$stderr.puts "❌ Error: #{pos[0]}"
|
|
313
313
|
|
|
314
|
-
when "
|
|
314
|
+
when "fail"
|
|
315
315
|
pos, rest2 = positional_args(rest)
|
|
316
316
|
f = parse_flags(rest2)
|
|
317
317
|
run_id = resolve_run_id(f)
|
|
@@ -319,7 +319,7 @@ when "task.fail"
|
|
|
319
319
|
NotiLens::State.delete(NotiLens::State.file(f[:agent], run_id))
|
|
320
320
|
NotiLens::State.delete_pointer(f[:agent], f[:task_label])
|
|
321
321
|
|
|
322
|
-
when "
|
|
322
|
+
when "timeout"
|
|
323
323
|
pos, rest2 = positional_args(rest)
|
|
324
324
|
f = parse_flags(rest2)
|
|
325
325
|
run_id = resolve_run_id(f)
|
|
@@ -327,7 +327,7 @@ when "task.timeout"
|
|
|
327
327
|
NotiLens::State.delete(NotiLens::State.file(f[:agent], run_id))
|
|
328
328
|
NotiLens::State.delete_pointer(f[:agent], f[:task_label])
|
|
329
329
|
|
|
330
|
-
when "
|
|
330
|
+
when "cancel"
|
|
331
331
|
pos, rest2 = positional_args(rest)
|
|
332
332
|
f = parse_flags(rest2)
|
|
333
333
|
run_id = resolve_run_id(f)
|
|
@@ -335,7 +335,7 @@ when "task.cancel"
|
|
|
335
335
|
NotiLens::State.delete(NotiLens::State.file(f[:agent], run_id))
|
|
336
336
|
NotiLens::State.delete_pointer(f[:agent], f[:task_label])
|
|
337
337
|
|
|
338
|
-
when "
|
|
338
|
+
when "terminate"
|
|
339
339
|
pos, rest2 = positional_args(rest)
|
|
340
340
|
f = parse_flags(rest2)
|
|
341
341
|
run_id = resolve_run_id(f)
|
|
@@ -343,7 +343,7 @@ when "task.terminate"
|
|
|
343
343
|
NotiLens::State.delete(NotiLens::State.file(f[:agent], run_id))
|
|
344
344
|
NotiLens::State.delete_pointer(f[:agent], f[:task_label])
|
|
345
345
|
|
|
346
|
-
when "
|
|
346
|
+
when "complete"
|
|
347
347
|
pos, rest2 = positional_args(rest)
|
|
348
348
|
f = parse_flags(rest2)
|
|
349
349
|
run_id = resolve_run_id(f)
|
|
@@ -443,21 +443,21 @@ else
|
|
|
443
443
|
notilens remove-agent <agent>
|
|
444
444
|
|
|
445
445
|
Task Lifecycle:
|
|
446
|
-
notilens
|
|
447
|
-
notilens
|
|
448
|
-
notilens
|
|
449
|
-
notilens
|
|
450
|
-
notilens
|
|
451
|
-
notilens
|
|
452
|
-
notilens
|
|
453
|
-
notilens
|
|
454
|
-
notilens
|
|
455
|
-
notilens
|
|
456
|
-
notilens
|
|
457
|
-
notilens
|
|
458
|
-
notilens
|
|
459
|
-
notilens
|
|
460
|
-
notilens
|
|
446
|
+
notilens queue --agent <agent> --task <label>
|
|
447
|
+
notilens start --agent <agent> --task <label>
|
|
448
|
+
notilens progress "msg" --agent <agent> --task <label>
|
|
449
|
+
notilens loop "msg" --agent <agent> --task <label>
|
|
450
|
+
notilens retry --agent <agent> --task <label>
|
|
451
|
+
notilens stop --agent <agent> --task <label>
|
|
452
|
+
notilens pause "msg" --agent <agent> --task <label>
|
|
453
|
+
notilens resume "msg" --agent <agent> --task <label>
|
|
454
|
+
notilens wait "msg" --agent <agent> --task <label>
|
|
455
|
+
notilens error "msg" --agent <agent> --task <label>
|
|
456
|
+
notilens fail "msg" --agent <agent> --task <label>
|
|
457
|
+
notilens timeout "msg" --agent <agent> --task <label>
|
|
458
|
+
notilens cancel "msg" --agent <agent> --task <label>
|
|
459
|
+
notilens terminate "msg" --agent <agent> --task <label>
|
|
460
|
+
notilens complete "msg" --agent <agent> --task <label>
|
|
461
461
|
|
|
462
462
|
Output / Input:
|
|
463
463
|
notilens output.generate "msg" --agent <agent> --task <label>
|
data/lib/notilens/version.rb
CHANGED