patchwork-os 1.1.0-beta.4.canary.510 → 1.1.0-beta.4.canary.511

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.
@@ -67,6 +67,20 @@ const DOMAIN_BY_TOOL = {
67
67
  "linear.list_issues": "issue-read", // read-only; reversible
68
68
  "sentry.get_issue": "issue-read", // read-only; reversible
69
69
  "diagnostics.get": "fs-read",
70
+ // personal task management. Separate from `issue` (engineering trackers):
71
+ // a personal to-do list has different blast radius and a different audience,
72
+ // and trust on one should not unlock the other.
73
+ "todoist.list_tasks": "tasks-read",
74
+ "todoist.list_projects": "tasks-read",
75
+ "asana.list_tasks": "tasks-read",
76
+ "asana.get_task": "tasks-read",
77
+ "todoist.create_task": "tasks", // compensable — todoist.delete_task exists
78
+ "todoist.close_task": "tasks", // compensable — todoist.reopen_task exists
79
+ "todoist.reopen_task": "tasks",
80
+ "todoist.delete_task": "tasks",
81
+ "asana.create_task": "tasks",
82
+ "asana.update_task": "tasks",
83
+ "asana.complete_task": "tasks",
70
84
  // payments / commerce — money movement. These connector methods exist
71
85
  // (src/connectors/paystack.ts, stripe.ts) but are NOT currently registered as
72
86
  // recipe tools; that unreachability is the only thing containing them today.
@@ -96,6 +110,12 @@ const REVERSIBILITY_BY_DOMAIN = {
96
110
  "issue-read": "reversible", // read-only issue queries
97
111
  ci: "reversible", // re-runnable, no durable side effect
98
112
  "deps-read": "reversible",
113
+ "tasks-read": "reversible",
114
+ // Compensable rather than reversible: every write here has a registered
115
+ // inverse (#1268), but running it is a NEW action with residue — a shared
116
+ // list showed the task, a collaborator may have seen it. "Undoable" and
117
+ // "as if it never happened" are not the same claim.
118
+ tasks: "compensable",
99
119
  payments: "irreversible", // a settled charge/transfer has no generic inverse;
100
120
  // a refund is a NEW compensating action with residue (fees kept, two
101
121
  // statement lines), not an undo — see src/recipes/fileRollback.ts's note.
@@ -1 +1 @@
1
- {"version":3,"file":"actionClass.js","sourceRoot":"","sources":["../../src/workers/actionClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actionClass.js","sourceRoot":"","sources":["../../src/workers/actionClass.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchwork-os",
3
- "version": "1.1.0-beta.4.canary.510",
3
+ "version": "1.1.0-beta.4.canary.511",
4
4
  "description": "Your personal AI runtime, local-first. Patchwork OS gives any AI model a consistent set of tools, YAML recipes, a delegation policy with approval queue, and a durable trace memory — all on your machine, all under your policy.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,68 @@
1
+ # yaml-language-server: $schema=https://patchwork.dev/schemas/recipe.v1.json
2
+ #
3
+ # Body for the Butler Errands Worker (templates/workers/butler-errands.worker.yaml).
4
+ # Phase 3 of docs/plans/butler-walking-skeleton-2026-08-05.md.
5
+ #
6
+ # The whole point of this recipe is the GATE, not the errand. It performs one
7
+ # real external action (a task appears on the user's personal list) so that a
8
+ # person can watch: Butler proposes → it stops → you say yes → the Decision
9
+ # Record afterwards says what happened, on what evidence, and that it can be
10
+ # undone with todoist.delete_task.
11
+ #
12
+ # Manual trigger on purpose. Inbound chat is deferred (Telegram's webhook mode
13
+ # needs a public HTTPS endpoint a local-first bridge does not have, so inbound
14
+ # means a polling loop — real infrastructure, and not what this slice is for).
15
+ # Run it with:
16
+ # patchwork recipe run butler-errand --var request="book the car in for a service"
17
+ apiVersion: patchwork.sh/v1
18
+ name: butler-errand
19
+ description: Turn a request the user made into a task on their personal list, with a human approving the write.
20
+ allowWrites:
21
+ - todoist.create_task
22
+ - file.append
23
+ trigger:
24
+ type: manual
25
+ vars:
26
+ - name: request
27
+ default: ""
28
+ description: "What the user asked for, in their own words. Required — an empty request produces an empty task title."
29
+ - name: project_id
30
+ default: ""
31
+ description: "Todoist project to file into. Leave blank for the default inbox."
32
+ steps:
33
+ # Read first: an errand that duplicates something already on the list is the
34
+ # most likely way for this to be annoying rather than useful.
35
+ - tool: todoist.list_tasks
36
+ limit: 50
37
+ into: existing
38
+
39
+ - agent:
40
+ prompt: |
41
+ The user asked for: {{request}}
42
+
43
+ Their current tasks:
44
+ {{existing}}
45
+
46
+ Write ONE task title for this request — imperative, under 60
47
+ characters, no trailing full stop. If the request is already covered by
48
+ an existing task, reply with exactly: DUPLICATE
49
+
50
+ Reply with the title alone, nothing else.
51
+ into: title
52
+
53
+ # The gated step. `tasks:compensable:*` sits above the worker's
54
+ # autonomyCeiling of 1, so this always stops for a human — by design, not by
55
+ # accident. Approving it is the moment the whole demo exists to show.
56
+ - when: "{{title}} != DUPLICATE"
57
+ tool: todoist.create_task
58
+ content: "{{title}}"
59
+ project_id: "{{project_id}}"
60
+ into: created
61
+
62
+ # The receipt. `created.id` is what todoist.delete_task needs to undo this —
63
+ # surfacing it is the difference between "undoable in principle" and
64
+ # "undoable by someone who has the id".
65
+ - tool: file.append
66
+ path: ~/.patchwork/inbox/butler-errands.md
67
+ content: |
68
+ - {{title}} (todoist id {{created.id}}) — undo: patchwork recipe run … todoist.delete_task id={{created.id}}
@@ -0,0 +1,51 @@
1
+ # Butler's errands worker — the walking-skeleton demo identity
2
+ # (docs/plans/butler-walking-skeleton-2026-08-05.md, Phase 3).
3
+ #
4
+ # This exists to make ONE governance moment visible: Butler proposes a real
5
+ # external action, a person says yes, and the Decision Record afterwards says
6
+ # what happened, on what evidence, and whether it can be undone.
7
+ #
8
+ # Deliberately a SEPARATE identity from Butler itself. Butler proposes; the
9
+ # errands worker executes. In a workspace of one that is the only way to get a
10
+ # maker/checker pair at all — the roster fails soft to a single implicit owner,
11
+ # so maker-checker between two humans is arithmetically unavailable.
12
+ #
13
+ # KNOWN LIMITATION, do not mistake this for delegation: a nested recipe today
14
+ # runs under its PARENT's gate and its evidence is attributed to the parent
15
+ # (buildWorkerAutonomyGate binds once per top-level run). So this worker earns
16
+ # its own dial only when its recipe is the top-level run. Fixing that would
17
+ # widen autonomy and needs its own change with a hard never-widen rule.
18
+ id: butler-errands-worker
19
+ name: Butler — Errands
20
+ sector: personal
21
+ recipe: butler-errand
22
+ responsibilities:
23
+ - Turn a stated request into a task on the user's personal list
24
+ - Never act on a request it merely READ somewhere; only one the user made
25
+
26
+ # Matches the recipe's actual steps. `tasks` covers todoist.create_task;
27
+ # `tasks-read` covers the list read. Nothing aspirational — an `owns` entry
28
+ # with no step to attach an observation to can never earn anything, it just
29
+ # looks like coverage.
30
+ owns:
31
+ - tasks-read
32
+ - tasks
33
+
34
+ # Capped at 1, BELOW the compensable auto-allow rung (L2), so every write stays
35
+ # human-approved no matter how much trust accrues. That is the point of the
36
+ # demo: the approval must actually happen. Raising this to 2 is what "Butler
37
+ # handles small errands on its own" would mean, and it should be a deliberate
38
+ # decision made after watching the queue, not a default.
39
+ #
40
+ # Note the honest gap it also covers: there is no outcome grader for tasks.
41
+ # Nothing observes whether a created task was useful or junk, so a success
42
+ # would fold good:true past the durability window on no evidence — the same
43
+ # trust-by-neglect closed for issues in #1064, surviving on this path. Until a
44
+ # grader exists, earned trust here is not meaningful and the ceiling is what
45
+ # actually protects the user.
46
+ autonomyCeiling: 1
47
+
48
+ # Cold-start prior. Modest and weakly held: this worker has done nothing yet.
49
+ competence:
50
+ mean: 0.7
51
+ strength: 2