@skrr-ai/cli 0.1.111 → 0.1.113
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/dist/commands/agents/create.d.ts +3 -1
- package/dist/commands/agents/create.js +36 -3
- package/dist/commands/followups/plans/create.js +4 -2
- package/dist/commands/followups/plans/example.d.ts +6 -0
- package/dist/commands/followups/plans/example.js +12 -0
- package/dist/commands/followups/plans/revise.d.ts +1 -0
- package/dist/commands/followups/plans/revise.js +5 -2
- package/dist/lib/lookbackPlanHelp.d.ts +19 -0
- package/dist/lib/lookbackPlanHelp.js +27 -0
- package/dist/lib/lookbackPlans.d.ts +9 -0
- package/dist/lib/lookbackPlans.js +21 -1
- package/dist/node_modules/@skrr-ai/data-provider/index.js +1608 -1602
- package/docs/v1/README.md +1 -0
- package/docs/v1/lookback-plans.md +88 -0
- package/oclif.manifest.json +78 -3
- package/package.json +5 -2
package/docs/v1/README.md
CHANGED
|
@@ -9,6 +9,7 @@ This edition was reviewed on **2026-10-10** against CLI **0.1.95**, daemon **0.8
|
|
|
9
9
|
| Sign in and create your first Task | [Quickstart](quickstart.md) |
|
|
10
10
|
| Make a read-only HTTP request with a scoped key | [Public API](api.md) |
|
|
11
11
|
| Fix sign-in, errors, quotas, permissions, or a failed upgrade | [Operations and recovery](operations.md) |
|
|
12
|
+
| Schedule, inspect, revise or cancel 1–10 lookbacks | [Lookback plans](lookback-plans.md) |
|
|
12
13
|
| Understand what changed in this guide | [Changelog](changelog.md) |
|
|
13
14
|
|
|
14
15
|
The workspace CLI uses the account/workspace `/api` surface. The Managed Agents public API uses `/v1` and Space-scoped API keys. A personal access token for CLI automation is a different credential. Choose the surface before issuing a credential.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Scheduled lookback plans
|
|
2
|
+
|
|
3
|
+
A plan provides 1–10 opportunities to inspect fresh evidence. Each check may stay silent. It does not promise one message per check.
|
|
4
|
+
|
|
5
|
+
## Create
|
|
6
|
+
|
|
7
|
+
Read a conversation belonging to the intended agent:
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
skrr convos messages YOUR_CONVERSATION_ID --json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Choose a completed assistant reply (`isCreatedByUser: false`, `unfinished: false`). Copy its actual `messageId` and completion `updatedAt`. The source is immutable: do not substitute the current clock or a user message.
|
|
14
|
+
|
|
15
|
+
Generate a template without signing in, then replace all three source placeholders:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
skrr followups plans example > plan.json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The generated file contains:
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"objective": "Check deployment health",
|
|
26
|
+
"stopCondition": "Deployment is ready or the owner cancels",
|
|
27
|
+
"source": {
|
|
28
|
+
"conversationId": "YOUR_CONVERSATION_ID",
|
|
29
|
+
"messageId": "YOUR_COMPLETED_ASSISTANT_MESSAGE_ID",
|
|
30
|
+
"replyCompletedAt": "ACTUAL_REPLY_COMPLETION_ISO_TIMESTAMP"
|
|
31
|
+
},
|
|
32
|
+
"steps": [
|
|
33
|
+
{
|
|
34
|
+
"id": "health-check",
|
|
35
|
+
"instruction": "Read the latest original conversation. Report readiness once; otherwise stay silent.",
|
|
36
|
+
"when": { "kind": "relative", "offset": "10m" }
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
skrr followups plans create --agent YOUR_AGENT_ID --from-json plan.json --json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Relative time is measured from that reply's completion, so ensure the resulting time is still in the future. An envelope can explicitly separate delivery from evidence:
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"agentId": "YOUR_AGENT_ID",
|
|
51
|
+
"pinnedConversationId": "YOUR_CONVERSATION_ID",
|
|
52
|
+
"plan": { "objective": "...", "stopCondition": "...", "source": {}, "steps": [] }
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The envelope's abbreviated `plan` is structural guidance; replace it with the complete authored plan above. Optional delivery fields are `endpointId` and `endpointTarget`; source identity remains independent. `armed: true` confirms timer registration. A saved/pending result does not, and an existing terminal plan remains terminal on replay.
|
|
57
|
+
|
|
58
|
+
## Time forms
|
|
59
|
+
|
|
60
|
+
Each step's `when` accepts one of these shapes. Replace example dates with future dates:
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{"kind":"relative","offset":"10m"}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{"kind":"absolute","at":"2026-10-21T12:00:00Z"}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{"kind":"local","dateTime":"2026-10-21T09:00:00","timezone":"America/Los_Angeles"}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Absolute timestamps require `Z` or a UTC offset. Local times require an IANA timezone; ambiguous and nonexistent DST times are refused. A step may also have `label` and `expiresAfter` (for example `"1h"`). After expiry, the check must not execute. Top-level `title` and `timezone` are optional.
|
|
75
|
+
|
|
76
|
+
## Inspect, revise and cancel
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
skrr followups plans list --agent YOUR_AGENT_ID --json
|
|
80
|
+
skrr followups plans show PLAN_ID --json
|
|
81
|
+
skrr followups plans revise PLAN_ID --revision 1 --from-json revised-plan.json --json
|
|
82
|
+
skrr followups plans cancel PLAN_ID --revision 2 --reason "No longer needed" --json
|
|
83
|
+
skrr followups plans observability --agent YOUR_AGENT_ID --json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Use the current revision returned by `show`. A stale edit returns `LOOKBACK_CONFLICT` with HTTP 409; reread before deciding whether to edit again. Revision JSON is the full authored plan itself, with the exact original source and existing step IDs. Start from `plan.json`, preserve IDs from `show`, and edit pending instructions/times. Do not resubmit the full `show` response: server fields such as `state`, `runAt`, `expiresAt`, outcomes and claims are not authoring input. Completed evaluations consume the same lifetime allowance after edits.
|
|
87
|
+
|
|
88
|
+
Cancellation is idempotent and fences remaining work; it does not retract a message already delivered. `observability` reports a bounded sample, not lifetime totals. Normal account authority, budgets, runtime support and delivery policies still apply. No feature-flag enrollment or special two-person activation is needed.
|
package/oclif.manifest.json
CHANGED
|
@@ -7406,6 +7406,17 @@
|
|
|
7406
7406
|
"multiple": false,
|
|
7407
7407
|
"type": "option"
|
|
7408
7408
|
},
|
|
7409
|
+
"initial-always-on": {
|
|
7410
|
+
"description": "Start autonomous work after creation (default: on). Use off for a passive agent; explicit chat still works. Relationship-loop seeding is configured separately.",
|
|
7411
|
+
"name": "initial-always-on",
|
|
7412
|
+
"hasDynamicHelp": false,
|
|
7413
|
+
"multiple": false,
|
|
7414
|
+
"options": [
|
|
7415
|
+
"on",
|
|
7416
|
+
"off"
|
|
7417
|
+
],
|
|
7418
|
+
"type": "option"
|
|
7419
|
+
},
|
|
7409
7420
|
"no-relationship-loops": {
|
|
7410
7421
|
"description": "Single-purpose agent: skip the system-managed relationship portfolio (conversation continuity, relationship pulse, commitment incubator, open-loop closer). Self-reflection is still seeded.",
|
|
7411
7422
|
"name": "no-relationship-loops",
|
|
@@ -45552,7 +45563,7 @@
|
|
|
45552
45563
|
"followups:plans:create": {
|
|
45553
45564
|
"aliases": [],
|
|
45554
45565
|
"args": {},
|
|
45555
|
-
"description": "Schedule a bounded plan of 1–10 lookbacks, each free to stay silent",
|
|
45566
|
+
"description": "Schedule a bounded plan of 1–10 lookbacks, each free to stay silent\n\nInput is authored Plan JSON with objective, stopCondition, source and 1–10 steps. Generate an editable JSON file:\n\nskrr followups plans example > plan.json\n\nReplace the three source placeholders with a real completed assistant reply belonging to this agent. `skrr convos messages <conversation-id> --json` reads its messageId and completion updatedAt. Never use the current clock as a replacement anchor.\n\nRelative time is measured from source.replyCompletedAt, not command invocation. Choose an offset whose resulting time is still in the future.\n\nEach when supports {\"kind\":\"relative\",\"offset\":\"10m\"}, {\"kind\":\"absolute\",\"at\":\"2026-10-21T12:00:00Z\"}, or {\"kind\":\"local\",\"dateTime\":\"2026-10-21T09:00:00\",\"timezone\":\"America/Los_Angeles\"}. Replace example dates with future dates. Absolute time requires Z or a UTC offset; ambiguous/nonexistent local DST times are refused.\n\nOptional fields: title, timezone; per step: id, label, expiresAfter (for example \"1h\"). Revision retains the exact source and existing step IDs. Do not submit the show response unchanged: remove lifecycle fields such as state, runAt and expiresAt.\n\nA check may remain silent. Only armed:true confirms timer registration; saved/pending is not armed. Full guide is shipped at docs/v1/lookback-plans.md in the installed CLI package.\n\nCreate also accepts {\"agentId\":\"...\",\"pinnedConversationId\":\"...\",\"plan\":{...}}. Source and delivery destination are separate; pin the original conversation to return there.",
|
|
45556
45567
|
"examples": [
|
|
45557
45568
|
"<%= config.bin %> followups plans create --from-json plan.json --agent agent_1 --json"
|
|
45558
45569
|
],
|
|
@@ -45631,6 +45642,67 @@
|
|
|
45631
45642
|
"create.js"
|
|
45632
45643
|
]
|
|
45633
45644
|
},
|
|
45645
|
+
"followups:plans:example": {
|
|
45646
|
+
"aliases": [],
|
|
45647
|
+
"args": {},
|
|
45648
|
+
"description": "Print an editable Plan JSON template without signing in\n\nReplace the source placeholders with a real completed assistant reply before creating a plan. This command schedules nothing.",
|
|
45649
|
+
"examples": [
|
|
45650
|
+
"<%= config.bin %> followups plans example > plan.json"
|
|
45651
|
+
],
|
|
45652
|
+
"flags": {
|
|
45653
|
+
"bare": {
|
|
45654
|
+
"description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
|
|
45655
|
+
"name": "bare",
|
|
45656
|
+
"allowNo": false,
|
|
45657
|
+
"type": "boolean"
|
|
45658
|
+
},
|
|
45659
|
+
"token": {
|
|
45660
|
+
"description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
|
|
45661
|
+
"name": "token",
|
|
45662
|
+
"hasDynamicHelp": false,
|
|
45663
|
+
"multiple": false,
|
|
45664
|
+
"type": "option"
|
|
45665
|
+
},
|
|
45666
|
+
"workspace": {
|
|
45667
|
+
"description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
|
|
45668
|
+
"name": "workspace",
|
|
45669
|
+
"hasDynamicHelp": false,
|
|
45670
|
+
"multiple": false,
|
|
45671
|
+
"type": "option"
|
|
45672
|
+
},
|
|
45673
|
+
"profile": {
|
|
45674
|
+
"description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE. List them with `profiles list`.",
|
|
45675
|
+
"name": "profile",
|
|
45676
|
+
"hasDynamicHelp": false,
|
|
45677
|
+
"multiple": false,
|
|
45678
|
+
"type": "option"
|
|
45679
|
+
},
|
|
45680
|
+
"raw": {
|
|
45681
|
+
"description": "With --json, keep the Mongo storage fields (_id next to id, __v) that the CLI otherwise strips. Also OVERSKY_CLI_RAW=1.",
|
|
45682
|
+
"name": "raw",
|
|
45683
|
+
"allowNo": false,
|
|
45684
|
+
"type": "boolean"
|
|
45685
|
+
}
|
|
45686
|
+
},
|
|
45687
|
+
"hasDynamicHelp": false,
|
|
45688
|
+
"hiddenAliases": [],
|
|
45689
|
+
"id": "followups:plans:example",
|
|
45690
|
+
"pluginAlias": "@skrr-ai/cli",
|
|
45691
|
+
"pluginName": "@skrr-ai/cli",
|
|
45692
|
+
"pluginType": "core",
|
|
45693
|
+
"strict": true,
|
|
45694
|
+
"enableJsonFlag": false,
|
|
45695
|
+
"autonomousCredentialPolicy": "delegated",
|
|
45696
|
+
"resolveSpaceFlag": true,
|
|
45697
|
+
"isESM": false,
|
|
45698
|
+
"relativePath": [
|
|
45699
|
+
"dist",
|
|
45700
|
+
"commands",
|
|
45701
|
+
"followups",
|
|
45702
|
+
"plans",
|
|
45703
|
+
"example.js"
|
|
45704
|
+
]
|
|
45705
|
+
},
|
|
45634
45706
|
"followups:plans:list": {
|
|
45635
45707
|
"aliases": [],
|
|
45636
45708
|
"args": {},
|
|
@@ -45841,7 +45913,10 @@
|
|
|
45841
45913
|
"required": true
|
|
45842
45914
|
}
|
|
45843
45915
|
},
|
|
45844
|
-
"description": "Revise pending lookbacks using the original source and step IDs",
|
|
45916
|
+
"description": "Revise pending lookbacks using the original source and step IDs\n\nInput is authored Plan JSON with objective, stopCondition, source and 1–10 steps. Generate an editable JSON file:\n\nskrr followups plans example > plan.json\n\nReplace the three source placeholders with a real completed assistant reply belonging to this agent. `skrr convos messages <conversation-id> --json` reads its messageId and completion updatedAt. Never use the current clock as a replacement anchor.\n\nRelative time is measured from source.replyCompletedAt, not command invocation. Choose an offset whose resulting time is still in the future.\n\nEach when supports {\"kind\":\"relative\",\"offset\":\"10m\"}, {\"kind\":\"absolute\",\"at\":\"2026-10-21T12:00:00Z\"}, or {\"kind\":\"local\",\"dateTime\":\"2026-10-21T09:00:00\",\"timezone\":\"America/Los_Angeles\"}. Replace example dates with future dates. Absolute time requires Z or a UTC offset; ambiguous/nonexistent local DST times are refused.\n\nOptional fields: title, timezone; per step: id, label, expiresAfter (for example \"1h\"). Revision retains the exact source and existing step IDs. Do not submit the show response unchanged: remove lifecycle fields such as state, runAt and expiresAt.\n\nA check may remain silent. Only armed:true confirms timer registration; saved/pending is not armed. Full guide is shipped at docs/v1/lookback-plans.md in the installed CLI package.\n\nRevise accepts the plan itself, not a create envelope. Use the current --revision from show; a stale revision returns LOOKBACK_CONFLICT (409).",
|
|
45917
|
+
"examples": [
|
|
45918
|
+
"<%= config.bin %> followups plans revise PLAN_ID --revision 1 --from-json revised-plan.json --json"
|
|
45919
|
+
],
|
|
45845
45920
|
"flags": {
|
|
45846
45921
|
"bare": {
|
|
45847
45922
|
"description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
|
|
@@ -137151,5 +137226,5 @@
|
|
|
137151
137226
|
]
|
|
137152
137227
|
}
|
|
137153
137228
|
},
|
|
137154
|
-
"version": "0.1.
|
|
137229
|
+
"version": "0.1.113"
|
|
137155
137230
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skrr-ai/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.113",
|
|
4
4
|
"description": "Command-line interface for skrr",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "skrr",
|
|
@@ -558,7 +558,10 @@
|
|
|
558
558
|
"description": "Your Agent Manager (HR Agent): create it, or repair an incomplete one"
|
|
559
559
|
},
|
|
560
560
|
"followups": {
|
|
561
|
-
"description": "Schedule
|
|
561
|
+
"description": "Schedule agent follow-ups and bounded lookback plans"
|
|
562
|
+
},
|
|
563
|
+
"followups:plans": {
|
|
564
|
+
"description": "Schedule and manage bounded plans of 1–10 lookbacks"
|
|
562
565
|
},
|
|
563
566
|
"enterprise": {
|
|
564
567
|
"description": "Enterprise deployment configuration for a workspace (admin)"
|