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.
|
|
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
|