patchwork-os 0.2.0-beta.13.canary.282 → 0.2.0-beta.13.canary.283

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.
@@ -0,0 +1,35 @@
1
+ import type { TrustLevel } from "./trustLevel.js";
2
+ /**
3
+ * Context-risk — the FAST, situational half of the autonomy decision.
4
+ *
5
+ * Earned trust answers "is this worker generally reliable on this action-class?"
6
+ * (slow, accrued over many runs). Context-risk answers a DIFFERENT, orthogonal
7
+ * question: "is THIS situation safe to act in RIGHT NOW?" — computed per-action
8
+ * from signals the bridge already exposes (open diagnostics in the touched
9
+ * files, test coverage, git hotspot-ness, diff size, CI status). It has no
10
+ * cold-start: it is fully computable on day one, so it can de-rate autonomy from
11
+ * the very first action while the trust posterior is still accruing.
12
+ *
13
+ * It is a DE-RATER only: it can lower the effective autonomy level, never raise
14
+ * it (never-widen). Combined with earned trust + the autonomy ceiling, the gate
15
+ * becomes `min(earned, ceiling, contextCeiling)` — a worker stays at its earned
16
+ * level when the situation is clean and is throttled toward propose-only as live
17
+ * risk climbs. This is the dimension "approve-once / approve-similar" structurally
18
+ * cannot model. See docs/worker-autonomy-policy-gate.md §3a.
19
+ */
20
+ export interface ContextRisk {
21
+ /** 0 (clean) … 1 (dangerous). Out-of-range / NaN is treated as "unknown". */
22
+ score: number;
23
+ /** Human-readable contributors (e.g. "CI red", "diff 1.2k lines", "hotspot
24
+ * file"), surfaced in the gate reason + audit trail. */
25
+ reasons?: string[];
26
+ }
27
+ /**
28
+ * Map a context-risk score to the MAX autonomy rung permitted in this situation.
29
+ * DESCENDING only — higher risk ⇒ lower ceiling. Returns L4 (no de-rate) for a
30
+ * clean OR unknown/unmeasurable score: context-risk adds caution when danger is
31
+ * MEASURED; when it can't be measured the base gate (earned trust + ceiling)
32
+ * still applies its own floor, so an unknown situation must not silently throttle
33
+ * everything to zero.
34
+ */
35
+ export declare function contextRiskCeiling(score: number): TrustLevel;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Map a context-risk score to the MAX autonomy rung permitted in this situation.
3
+ * DESCENDING only — higher risk ⇒ lower ceiling. Returns L4 (no de-rate) for a
4
+ * clean OR unknown/unmeasurable score: context-risk adds caution when danger is
5
+ * MEASURED; when it can't be measured the base gate (earned trust + ceiling)
6
+ * still applies its own floor, so an unknown situation must not silently throttle
7
+ * everything to zero.
8
+ */
9
+ export function contextRiskCeiling(score) {
10
+ if (!Number.isFinite(score) || score <= 0)
11
+ return 4; // clean / unknown → no de-rate
12
+ if (score >= 0.8)
13
+ return 0; // dangerous → propose-only: every risky action gated
14
+ if (score >= 0.5)
15
+ return 1; // elevated → reversible only flows freely
16
+ if (score >= 0.3)
17
+ return 2; // moderate → compensable ok, irreversible still gated
18
+ return 4; // mild → no de-rate
19
+ }
20
+ //# sourceMappingURL=contextRisk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextRisk.js","sourceRoot":"","sources":["../../src/workers/contextRisk.ts"],"names":[],"mappings":"AA4BA;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,+BAA+B;IACpF,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC,CAAC,qDAAqD;IACjF,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC,CAAC,0CAA0C;IACtE,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC,CAAC,sDAAsD;IAClF,OAAO,CAAC,CAAC,CAAC,oBAAoB;AAChC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type ActionClass } from "./actionClass.js";
2
+ import { type ContextRisk } from "./contextRisk.js";
2
3
  import type { TrustLevel } from "./trustLevel.js";
3
4
  import { type WorkerManifest } from "./worker.js";
4
5
  import type { WorkerLevelStore } from "./workerLevelStore.js";
@@ -41,17 +42,29 @@ export interface WorkerGateDecision {
41
42
  /** Trust actually earned on this class (for logging / the dial). */
42
43
  earnedLevel: TrustLevel;
43
44
  autonomyCeiling: TrustLevel;
44
- /** What the gate operates at: min(earned, ceiling), 0 if not owned. */
45
+ /** What the gate operates at: min(earned, ceiling, contextCeiling), 0 if not
46
+ * owned. */
45
47
  effectiveLevel: TrustLevel;
48
+ /** The descending ceiling imposed by live context-risk (4 = no de-rate).
49
+ * Present only when a contextRisk was supplied. Diagnostic / audit. */
50
+ contextCeiling?: TrustLevel;
46
51
  reason: string;
47
52
  }
53
+ /** Optional, descending-only signals that fold into the autonomy decision
54
+ * alongside earned trust (the keystone seam — see
55
+ * docs/worker-autonomy-policy-gate.md). All absent ⇒ byte-identical to the
56
+ * earned-trust-only gate. New signals may only LOWER autonomy, never raise it. */
57
+ export interface AutonomyDecisionOpts {
58
+ /** Live situational risk for THIS action (fast, day-1, no cold-start). */
59
+ contextRisk?: ContextRisk;
60
+ }
48
61
  /**
49
62
  * Undoable → flows un-gated even when unearned. Only reversible actions are
50
63
  * exempt from the trust requirement; compensable ones graduate to autonomous
51
64
  * at L2+; irreversible ones wait for earned L4.
52
65
  */
53
66
  export declare function flowsUngated(ac: ActionClass): boolean;
54
- export declare function decideWorkerAction(worker: WorkerManifest, toolName: string, params: Record<string, unknown> | undefined, store: WorkerLevelStore): WorkerGateDecision;
67
+ export declare function decideWorkerAction(worker: WorkerManifest, toolName: string, params: Record<string, unknown> | undefined, store: WorkerLevelStore, opts?: AutonomyDecisionOpts): WorkerGateDecision;
55
68
  /**
56
69
  * Tools a worker's AGENT step must be barred from calling.
57
70
  *
@@ -1,5 +1,6 @@
1
1
  import { classifyTool, getRiskTierMap } from "../riskTier.js";
2
2
  import { classifyActionClass, knownActionTools, } from "./actionClass.js";
3
+ import { contextRiskCeiling } from "./contextRisk.js";
3
4
  import { ownsAction } from "./worker.js";
4
5
  /**
5
6
  * Compensable actions (git-remote, issue) unlock autonomous execution at L2.
@@ -25,7 +26,7 @@ const BRIDGE_MCP_TOOL_PREFIX = "mcp__patchwork__";
25
26
  export function flowsUngated(ac) {
26
27
  return ac.reversibility === "reversible";
27
28
  }
28
- export function decideWorkerAction(worker, toolName, params, store) {
29
+ export function decideWorkerAction(worker, toolName, params, store, opts) {
29
30
  const ac = classifyActionClass(toolName, params);
30
31
  const owned = ownsAction(worker, ac);
31
32
  const earnedLevel = (store.getState(worker.id, ac.key)?.level ??
@@ -33,6 +34,16 @@ export function decideWorkerAction(worker, toolName, params, store) {
33
34
  let effectiveLevel = owned ? earnedLevel : 0;
34
35
  if (effectiveLevel > worker.autonomyCeiling)
35
36
  effectiveLevel = worker.autonomyCeiling;
37
+ // Descending context-risk clamp (keystone seam). A live, situational de-rater:
38
+ // it can only LOWER the effective level (never-widen). Absent ⇒ no-op, so the
39
+ // earned-trust-only path is byte-identical. A worker with a clean situation
40
+ // keeps its earned autonomy; a dangerous live context (red CI, huge diff,
41
+ // hotspot file) throttles it toward propose-only regardless of earned level.
42
+ const contextCeiling = opts?.contextRisk
43
+ ? contextRiskCeiling(opts.contextRisk.score)
44
+ : undefined;
45
+ if (contextCeiling !== undefined && effectiveLevel > contextCeiling)
46
+ effectiveLevel = contextCeiling;
36
47
  const base = {
37
48
  classKey: ac.key,
38
49
  domain: ac.domain,
@@ -42,6 +53,7 @@ export function decideWorkerAction(worker, toolName, params, store) {
42
53
  earnedLevel,
43
54
  autonomyCeiling: worker.autonomyCeiling,
44
55
  effectiveLevel,
56
+ ...(contextCeiling !== undefined && { contextCeiling }),
45
57
  };
46
58
  // Agent (reasoning) steps are not a durable side-effecting action-class: the
47
59
  // claude subprocess produces an output var, and any tool calls it makes are
@@ -88,7 +100,19 @@ export function decideWorkerAction(worker, toolName, params, store) {
88
100
  ? COMPENSABLE_AUTONOMY_LEVEL
89
101
  : AUTONOMOUS_LEVEL;
90
102
  let reason;
91
- if (!owned) {
103
+ // Context-risk is the BINDING constraint when it dropped the effective level
104
+ // below what earned trust + ceiling alone would have allowed. Attribute it so
105
+ // the audit trail shows the situation throttled the action, not stale trust.
106
+ const earnedCapped = Math.min(owned ? earnedLevel : 0, worker.autonomyCeiling);
107
+ if (contextCeiling !== undefined &&
108
+ contextCeiling < threshold &&
109
+ contextCeiling < earnedCapped) {
110
+ const why = opts?.contextRisk?.reasons?.length
111
+ ? ` (${opts.contextRisk.reasons.join(", ")})`
112
+ : "";
113
+ reason = `${ac.reversibility} throttled by live context-risk (ceiling L${contextCeiling} < L${threshold})${why} — gated`;
114
+ }
115
+ else if (!owned) {
92
116
  reason = `${ac.reversibility} action outside the worker's owned domain — gated`;
93
117
  }
94
118
  else if (worker.autonomyCeiling < threshold) {
@@ -1 +1 @@
1
- {"version":3,"file":"workerGate.js","sourceRoot":"","sources":["../../src/workers/workerGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workerGate.js","sourceRoot":"","sources":["../../src/workers/workerGate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAoB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AA8D9D;;;;;;;GAOG;AACH,MAAM,0BAA0B,GAAG,CAAU,CAAC;AAE9C,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAEpC;;;kFAGkF;AAClF,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAe;IAC1C,OAAO,EAAE,CAAC,aAAa,KAAK,YAAY,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAsB,EACtB,QAAgB,EAChB,MAA2C,EAC3C,KAAuB,EACvB,IAA2B;IAE3B,MAAM,EAAE,GAAG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK;QAC3D,CAAC,CAAe,CAAC;IAEnB,IAAI,cAAc,GAAe,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,cAAc,GAAG,MAAM,CAAC,eAAe;QACzC,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC;IAE1C,+EAA+E;IAC/E,8EAA8E;IAC9E,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,MAAM,cAAc,GAA2B,IAAI,EAAE,WAAW;QAC9D,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,GAAG,cAAc;QACjE,cAAc,GAAG,cAAc,CAAC;IAElC,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,EAAE,CAAC,GAAG;QAChB,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,KAAK;QACL,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,aAAa,EAAE,EAAE,CAAC,aAAa;QAC/B,WAAW;QACX,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,cAAc;QACd,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,CAAC;KAC/C,CAAC;IAEX,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,6EAA6E;IAC7E,8EAA8E;IAC9E,8DAA8D;IAC9D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,iDAAiD;SAC1D,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,eAAe,EAAE,CAAC,SAAS,oCAAoC;SACxE,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,oDAAoD;IACpD,IACE,EAAE,CAAC,aAAa,KAAK,aAAa;QAClC,cAAc,IAAI,0BAA0B,EAC5C,CAAC;QACD,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,qBAAqB,cAAc,6CAA6C,0BAA0B,GAAG;SACtH,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,IAAI,cAAc,IAAI,gBAAgB,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,2BAA2B,EAAE,CAAC,aAAa,QAAQ;SAC5D,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GACb,EAAE,CAAC,aAAa,KAAK,aAAa;QAChC,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,gBAAgB,CAAC;IACvB,IAAI,MAAc,CAAC;IACnB,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvB,MAAM,CAAC,eAAe,CACvB,CAAC;IACF,IACE,cAAc,KAAK,SAAS;QAC5B,cAAc,GAAG,SAAS;QAC1B,cAAc,GAAG,YAAY,EAC7B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;YAC5C,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,6CAA6C,cAAc,OAAO,SAAS,IAAI,GAAG,UAAU,CAAC;IAC3H,CAAC;SAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,mDAAmD,CAAC;IAClF,CAAC;SAAM,IAAI,MAAM,CAAC,eAAe,GAAG,SAAS,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,uCAAuC,MAAM,CAAC,eAAe,OAAO,SAAS,kBAAkB,CAAC;IAC9H,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,2BAA2B,cAAc,OAAO,SAAS,wBAAwB,CAAC;IAChH,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAAsB,EACtB,KAAuB;IAEvB,2EAA2E;IAC3E,wEAAwE;IACxE,+EAA+E;IAC/E,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;QACvB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAChC,GAAG,gBAAgB,EAAE;KACtB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,0EAA0E;QAC1E,mEAAmE;QACnE,IAAI,QAAQ,KAAK,OAAO;YAAE,SAAS;QACnC,2EAA2E;QAC3E,0EAA0E;QAC1E,4EAA4E;QAC5E,qEAAqE;QACrE,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QACrC,IACE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM;YAExE,SAAS;QACX,iEAAiE;QACjE,2EAA2E;QAC3E,6EAA6E;QAC7E,sEAAsE;QACtE,4EAA4E;QAC5E,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,sEAAsE;QACtE,MAAM,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,MAAM;YAAE,SAAS;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,kEAAkE;QAClE,4EAA4E;QAC5E,wEAAwE;QACxE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,GAAG,sBAAsB,GAAG,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAmB,EACnB,UAAqB;IAErB,IAAI,CAAC,UAAU,EAAE,MAAM;QAAE,OAAO,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchwork-os",
3
- "version": "0.2.0-beta.13.canary.282",
3
+ "version": "0.2.0-beta.13.canary.283",
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",