pi-fabric 0.25.1 → 0.25.3

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.
@@ -1,11 +1,18 @@
1
- import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
1
+ import { type ExtensionContext } from "@earendil-works/pi-coding-agent";
2
2
  import type { FabricApprovalConfig } from "../config.js";
3
+ import type { FabricRisk } from "../protocol.js";
3
4
  import type { ResolvedFabricAction } from "./action-registry.js";
5
+ export declare class FabricSessionApprovals {
6
+ #private;
7
+ readonly approvedRisks: Set<FabricRisk>;
8
+ serialize<T>(request: () => Promise<T>): Promise<T>;
9
+ }
4
10
  export declare class ApprovalController {
5
11
  #private;
6
12
  readonly config: FabricApprovalConfig;
7
13
  readonly context: ExtensionContext;
8
- constructor(config: FabricApprovalConfig, context: ExtensionContext);
14
+ readonly sessionApprovals: FabricSessionApprovals;
15
+ constructor(config: FabricApprovalConfig, context: ExtensionContext, sessionApprovals?: FabricSessionApprovals);
9
16
  approve(action: ResolvedFabricAction): Promise<void>;
10
17
  }
11
18
  //# sourceMappingURL=approval-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-controller.d.ts","sourceRoot":"","sources":["../../src/core/approval-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AASjE,qBAAa,kBAAkB;;IAK3B,QAAQ,CAAC,MAAM,EAAE,oBAAoB;IACrC,QAAQ,CAAC,OAAO,EAAE,gBAAgB;gBADzB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,gBAAgB;IAG9B,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CA4B3D"}
1
+ {"version":3,"file":"approval-controller.d.ts","sourceRoot":"","sources":["../../src/core/approval-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAejE,qBAAa,sBAAsB;;IACjC,QAAQ,CAAC,aAAa,kBAAyB;IAGzC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAa1D;AAED,qBAAa,kBAAkB;;IAI3B,QAAQ,CAAC,MAAM,EAAE,oBAAoB;IACrC,QAAQ,CAAC,OAAO,EAAE,gBAAgB;IAClC,QAAQ,CAAC,gBAAgB;gBAFhB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,yBAA+B;IAGpD,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsH3D"}
@@ -1,45 +1,132 @@
1
+ import { DynamicBorder, getSelectListTheme, } from "@earendil-works/pi-coding-agent";
2
+ import { Container, SelectList, Spacer, Text, } from "@earendil-works/pi-tui";
1
3
  const inheritedRisks = () => {
2
4
  const allowed = new Set(["read", "write", "execute", "network", "agent"]);
3
5
  return (process.env.PI_FABRIC_GRANTED_RISKS ?? "")
4
6
  .split(",")
5
7
  .filter((risk) => allowed.has(risk));
6
8
  };
9
+ const onceLabel = "Allow once";
10
+ const sessionLabel = (risk) => `Allow ${risk} access for this session`;
11
+ export class FabricSessionApprovals {
12
+ approvedRisks = new Set();
13
+ #tail = Promise.resolve();
14
+ async serialize(request) {
15
+ const previous = this.#tail;
16
+ let release;
17
+ this.#tail = new Promise((resolve) => {
18
+ release = resolve;
19
+ });
20
+ await previous;
21
+ try {
22
+ return await request();
23
+ }
24
+ finally {
25
+ release?.();
26
+ }
27
+ }
28
+ }
7
29
  export class ApprovalController {
8
30
  config;
9
31
  context;
10
- #approvedRisks = new Set(inheritedRisks());
11
- #pendingApprovals = new Map();
12
- constructor(config, context) {
32
+ sessionApprovals;
33
+ #inheritedRisks = new Set(inheritedRisks());
34
+ constructor(config, context, sessionApprovals = new FabricSessionApprovals()) {
13
35
  this.config = config;
14
36
  this.context = context;
37
+ this.sessionApprovals = sessionApprovals;
15
38
  }
16
39
  async approve(action) {
17
40
  const mode = this.config[action.risk];
18
- if (mode === "allow" || this.#approvedRisks.has(action.risk))
41
+ if (mode === "allow" ||
42
+ this.#inheritedRisks.has(action.risk) ||
43
+ this.sessionApprovals.approvedRisks.has(action.risk))
19
44
  return;
20
45
  if (mode === "deny") {
21
46
  throw new Error(`${action.ref} is denied by the Fabric ${action.risk} policy`);
22
47
  }
23
- const pending = this.#pendingApprovals.get(action.risk);
24
- if (pending)
25
- return pending;
26
- const approval = this.#requestApproval(action);
27
- this.#pendingApprovals.set(action.risk, approval);
28
- try {
29
- await approval;
30
- }
31
- finally {
32
- this.#pendingApprovals.delete(action.risk);
33
- }
48
+ await this.sessionApprovals.serialize(async () => {
49
+ if (this.sessionApprovals.approvedRisks.has(action.risk))
50
+ return;
51
+ await this.#requestApproval(action);
52
+ });
34
53
  }
35
54
  async #requestApproval(action) {
36
55
  if (!this.context.hasUI) {
37
56
  throw new Error(`${action.ref} requires approval, but no interactive UI is available`);
38
57
  }
39
- const approved = await this.context.ui.confirm("Pi Fabric permission", `${action.ref} requests ${action.risk} access. Allow this access for the current Fabric execution?`);
40
- if (!approved)
58
+ const notification = `Fabric permission requested: ${action.ref} needs ${action.risk} access`;
59
+ this.context.ui.notify(notification, "warning");
60
+ const choice = this.context.mode === "tui"
61
+ ? await this.#requestTuiApproval(action)
62
+ : await this.#requestDialogApproval(action);
63
+ if (choice === "deny") {
64
+ this.context.ui.notify(`Denied ${action.risk} access for ${action.ref}`, "warning");
41
65
  throw new Error(`User denied ${action.risk} access for ${action.ref}`);
42
- this.#approvedRisks.add(action.risk);
66
+ }
67
+ if (choice === "allow-session") {
68
+ this.sessionApprovals.approvedRisks.add(action.risk);
69
+ this.context.ui.notify(`Allowed ${action.risk} access for this Pi session`, "info");
70
+ return;
71
+ }
72
+ this.context.ui.notify(`Allowed once: ${action.ref}`, "info");
73
+ }
74
+ async #requestDialogApproval(action) {
75
+ const session = sessionLabel(action.risk);
76
+ const picked = await this.context.ui.select(`Pi Fabric permission · ${action.ref} requests ${action.risk} access. ${action.description}`, [onceLabel, session, "Deny"]);
77
+ if (picked === onceLabel)
78
+ return "allow-once";
79
+ if (picked === session)
80
+ return "allow-session";
81
+ return "deny";
82
+ }
83
+ async #requestTuiApproval(action) {
84
+ const choice = await this.context.ui.custom((tui, theme, _keybindings, done) => {
85
+ const container = new Container();
86
+ container.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
87
+ container.addChild(new Spacer(1));
88
+ container.addChild(new Text(theme.fg("warning", theme.bold("🛡 Pi Fabric permission request")), 1, 0));
89
+ container.addChild(new Spacer(1));
90
+ container.addChild(new Text(theme.fg("text", `${action.ref} requests ${action.risk} access.`), 1, 0));
91
+ container.addChild(new Text(theme.fg("muted", action.description), 1, 0));
92
+ container.addChild(new Spacer(1));
93
+ container.addChild(new Text(theme.fg("dim", "Choose whether to allow only this call or this risk class for the session."), 1, 0));
94
+ container.addChild(new Spacer(1));
95
+ const items = [
96
+ {
97
+ value: "allow-once",
98
+ label: onceLabel,
99
+ description: "Run only this requested action",
100
+ },
101
+ {
102
+ value: "allow-session",
103
+ label: sessionLabel(action.risk),
104
+ description: "Do not ask again for this risk class until the Pi session ends",
105
+ },
106
+ {
107
+ value: "deny",
108
+ label: "Deny",
109
+ description: "Block the requested action",
110
+ },
111
+ ];
112
+ const list = new SelectList(items, items.length, getSelectListTheme());
113
+ list.onSelect = (item) => done(item.value);
114
+ list.onCancel = () => done("deny");
115
+ container.addChild(list);
116
+ container.addChild(new Spacer(1));
117
+ container.addChild(new Text(theme.fg("dim", "↑↓ navigate · enter select · esc deny"), 1, 0));
118
+ container.addChild(new Spacer(1));
119
+ container.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
120
+ return {
121
+ render: (width) => container.render(width),
122
+ invalidate: () => container.invalidate(),
123
+ handleInput: (data) => {
124
+ list.handleInput(data);
125
+ tui.requestRender();
126
+ },
127
+ };
128
+ });
129
+ return choice ?? "deny";
43
130
  }
44
131
  }
45
132
  //# sourceMappingURL=approval-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-controller.js","sourceRoot":"","sources":["../../src/core/approval-controller.ts"],"names":[],"mappings":"AAKA,MAAM,cAAc,GAAG,GAAiB,EAAE;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;SAC/C,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,IAAI,EAAsB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAkB,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,OAAO,kBAAkB;IAKlB;IACA;IALF,cAAc,GAAG,IAAI,GAAG,CAAa,cAAc,EAAE,CAAC,CAAC;IACvD,iBAAiB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAElE,YACW,MAA4B,EAC5B,OAAyB;QADzB,WAAM,GAAN,MAAM,CAAsB;QAC5B,YAAO,GAAP,OAAO,CAAkB;IACjC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,MAA4B;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO;QACrE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,4BAA4B,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA4B;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,wDAAwD,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAC5C,sBAAsB,EACtB,GAAG,MAAM,CAAC,GAAG,aAAa,MAAM,CAAC,IAAI,8DAA8D,CACpG,CAAC;QACF,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,CAAC,IAAI,eAAe,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"approval-controller.js","sourceRoot":"","sources":["../../src/core/approval-controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution-service.d.ts","sourceRoot":"","sources":["../src/execution-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAIV,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,KAAK,eAAe,EAErB,MAAM,2BAA2B,CAAC;AAYnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAuCjE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACnD;AAED,qBAAa,sBAAsB;;IAK/B,QAAQ,CAAC,QAAQ,EAAE,cAAc;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAyB;gBAHtC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,mBAAmB,YAAA,EAC9B,UAAU,CAAC,EAAE,yBAAyB,YAAA;IAG3C,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAmgB/E"}
1
+ {"version":3,"file":"execution-service.d.ts","sourceRoot":"","sources":["../src/execution-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAIV,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,KAAK,eAAe,EAErB,MAAM,2BAA2B,CAAC;AAenC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAuCjE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACnD;AAED,qBAAa,sBAAsB;;IAM/B,QAAQ,CAAC,QAAQ,EAAE,cAAc;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAyB;gBAHtC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,mBAAmB,YAAA,EAC9B,UAAU,CAAC,EAAE,yBAAyB,YAAA;IAG3C,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAugB/E"}
@@ -2,7 +2,7 @@ import { FabricExecutionTraceRecorder, executionOutcomeFromError, } from "./audi
2
2
  import { FabricActivityStore } from "./activity/store.js";
3
3
  import { MAX_SUBAGENT_TIMEOUT_MS, MIN_SUBAGENT_TIMEOUT_MS, } from "./config.js";
4
4
  import { ActionRegistry, } from "./core/action-registry.js";
5
- import { ApprovalController } from "./core/approval-controller.js";
5
+ import { ApprovalController, FabricSessionApprovals, } from "./core/approval-controller.js";
6
6
  import { codeUsesOrchestration, isBlockingOrchestrationRef, } from "./runtime/orchestration.js";
7
7
  let runtimeDependencies;
8
8
  const loadRuntimeDependencies = () => runtimeDependencies ??= Promise.all([
@@ -35,6 +35,7 @@ export class FabricExecutionService {
35
35
  authorizer;
36
36
  #runtime;
37
37
  #runtimeKind;
38
+ #sessionApprovals = new FabricSessionApprovals();
38
39
  constructor(registry, config, activity, authorizer) {
39
40
  this.registry = registry;
40
41
  this.config = config;
@@ -61,7 +62,7 @@ export class FabricExecutionService {
61
62
  typeErrors: checked.errors,
62
63
  };
63
64
  }
64
- const approval = new ApprovalController(this.config.approvals, options.context);
65
+ const approval = new ApprovalController(this.config.approvals, options.context, this.#sessionApprovals);
65
66
  const audits = [];
66
67
  const phases = [];
67
68
  const workflowSpans = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"execution-service.js","sourceRoot":"","sources":["../src/execution-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-service.js","sourceRoot":"","sources":["../src/execution-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,GAI1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO1D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GAExB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,GAGf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AASpC,IAAI,mBAOS,CAAC;AAEd,MAAM,uBAAuB,GAAG,GAAG,EAAE,CACnC,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC;IAClC,MAAM,CAAC,8BAA8B,CAAC;IACtC,MAAM,CAAC,mCAAmC,CAAC;IAC3C,MAAM,CAAC,2BAA2B,CAAC;IACnC,MAAM,CAAC,0BAA0B,CAAC;CACnC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,cAAc,EAAE,OAAO,CAAC,cAAc;IACtC,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;IAClD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;IAChD,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;CACnD,CAAC,CAAC,CAAC;AAEN,MAAM,+BAA+B,GAAG,CACtC,MAAsC,EACY,EAAE;IACpD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAqCF,MAAM,OAAO,sBAAsB;IAMtB;IACA;IACA;IACA;IARX,QAAQ,CAAkD;IAC1D,YAAY,CAAkD;IACrD,iBAAiB,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAE1D,YACW,QAAwB,EACxB,MAAoB,EACpB,QAA8B,EAC9B,UAAsC;QAHtC,aAAQ,GAAR,QAAQ,CAAgB;QACxB,WAAM,GAAN,MAAM,CAAc;QACpB,aAAQ,GAAR,QAAQ,CAAsB;QAC9B,eAAU,GAAV,UAAU,CAA4B;IAC9C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAA+B;QAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,4BAA4B,EAAE,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,MAAM,uBAAuB,EAAE,CAAC;QACrD,MAAM,qBAAqB,GACzB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;QACpE,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAC9C,OAAO,CAAC,IAAI,EACZ,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAC1D,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;YAC/E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,sBAAsB,CAAC;gBAC/D,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;gBACxC,UAAU,EAAE,OAAO,CAAC,MAAM;aAC3B,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CACrC,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,OAAO,CAAC,OAAO,EACf,IAAI,CAAC,iBAAiB,CACvB,CAAC;QACF,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,GAAG,EAG1B,CAAC;QACJ,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,cAAmD,CAAC;QACxD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,CAAC,EACD,IAAI,CAAC,GAAG,CACN,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAC9D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CACtC,CACF,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAQ,EAAE;YAC3C,IACE,GAAG,KAAK,YAAY;gBACpB,GAAG,KAAK,gBAAgB;gBACxB,GAAG,KAAK,cAAc;gBACtB,GAAG,KAAK,eAAe;gBACvB,OAAO;YACT,UAAU,EAAE,CAAC;YACb,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,aAAa,iBAAiB,CAAC,CAAC;YACpF,CAAC;QACH,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAmC,EAAE;YAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACnE,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAQ,EAAE;YAC7C,IAAI,qBAAqB;gBAAE,OAAO;YAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,MAAM,IAAI,KAAK,CACb,2CAA2C,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,qCAAqC,CACvI,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,eAAmC,CAAC;QACxC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,SAAqC,CAAC;QAC1C,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,WAAW,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,SAAS,CAAC;gBAChB,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;gBACtB,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;gBACtB,QAAQ,EAAE,eAAe;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,SAAS,GAAG,SAAS,CAAC;YACtB,IAAI,WAAW;gBAAE,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC;QACF,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC;YACvD,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACpB,SAAS,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,SAAS,GAAG,SAAS,CAAC;gBACtB,IAAI,WAAW;oBAAE,OAAO,EAAE,CAAC;YAC7B,CAAC,EAAE,UAAU,CAAC,CAAC;YACf,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,OAAe,EAAQ,EAAE;YACvC,eAAe,GAAG,OAAO,CAAC;YAC1B,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;QACF,MAAM,iBAAiB,GAAG,CAAC,KAAkC,EAAQ,EAAE;YACrE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBAC3D,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACxC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjF,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,IAAI,EAAE,CAAC;QACxC,CAAC,CAAC;QACF,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,WAAW;YACxD,gBAAgB,EAAE,OAAO,CAAC,OAAO;YACjC,MAAM;SACP,CAAC;QACF,qEAAqE;QACrE,uEAAuE;QACvE,0EAA0E;QAC1E,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAChC,CAAC;QACF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5D,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QACnC,MAAM,2BAA2B,GAAG,CAClC,GAAW,EACX,IAA6B,EACT,EAAE;YACtB,MAAM,SAAS,GACb,GAAG,KAAK,cAAc,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1E,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC7D,MAAM,UAAU,GACd,GAAG,KAAK,cAAc;gBACtB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAC7B,IAAI,CAAC,IAAI,KAAK,IAAI;gBAClB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAE,IAAI,CAAC,IAAgC;gBACxC,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,kBAAkB,GACtB,SAAS,KAAK,YAAY;gBAC1B,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ;gBACxC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;gBACnC,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,uBAAuB,EACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC,CACpE;gBACH,CAAC,CAAC,CAAC,CAAC;YACR,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QAC9D,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,KAAK,EACxB,GAAW,EACX,IAA6B,EAC7B,MAAmB,EACnB,GAAiF,EACrE,EAAE;YACd,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,KAAK,GAAkC,QAAQ,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;oBACpC,KAAK,GAAG,SAAS,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBACvE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,KAAK,EACxB,GAAW,EACX,IAA6B,EAC7B,WAAyD,EACvC,EAAE;YACpB,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACtB,cAAc,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,cAAc,CAAC,IAAI,CACjB,OAAO,EACP,KAAK,EACL,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CACrD,CAAC;gBACF,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;gBACrC,GAAG,WAAW;gBACd,GAAG,CAAC,GAAG,KAAK,gBAAgB;oBAC1B,CAAC,CAAC;wBACE,YAAY,CAAC,OAAgC;4BAC3C,IAAI,cAAc,EAAE,CAAC;gCACnB,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;4BACJ,CAAC;4BACD,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;4BAC1C,OAAO;gCACL,SAAS,EAAE,IAAI;gCACf,MAAM,EAAE,UAAU;gCAClB,QAAQ,EAAE,iBAAiB;6BAC5B,CAAC;wBACJ,CAAC;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,UAAU;oBACjB,CAAC,CAAC;wBACE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,IAAI,CAAC,UAAW,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC;qBACnE;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;oBACxB,IAAI,MAAM,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;wBACnC,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;wBACrD,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;wBACvD,OAAO;oBACT,CAAC;oBACD,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM;gBACN,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB;gBACzD,cAAc;gBACd,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,aAAkC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;gBACxD,IAAI,CAAC,QAAQ,GAAG,WAAW,KAAK,cAAc;oBAC5C,CAAC,CAAC,IAAI,YAAY,CAAC,kBAAkB,EAAE;oBACvC,CAAC,CAAC,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;gBACtC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAClC,CAAC;YACD,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CACzC,OAAO,CAAC,IAAI,EACZ,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;gBACjC,MAAM,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;gBAC9D,QAAQ,GAAG,EAAE,CAAC;oBACZ,KAAK,mBAAmB;wBACtB,OAAO,YAAY,CACjB,4BAA4B,EAC5B,IAAI,EACJ,aAAa,EACb,GAAG,EAAE,CACH,IAAI,CAAC,QAAQ;6BACV,SAAS,EAAE;6BACX,MAAM,CACL,CAAC,QAAQ,EAAE,EAAE,CAAC,qBAAqB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CACxE,CACN,CAAC;oBACJ,KAAK,iBAAiB;wBACpB,OAAO,YAAY,CACjB,0BAA0B,EAC1B,IAAI,EACJ,aAAa,EACb,KAAK,EAAE,QAAQ,EAAE,EAAE;4BACjB,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;4BAC/E,QAAQ,CAAC,OAAO,CAAC,CAAC;4BAClB,IAAI,QAAQ;gCAAE,gBAAgB,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC;4BAChD,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;4BAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE;gCACxC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACjC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAChE,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;6BAC5E,CAAC,CAAC;wBACL,CAAC,CACF,CAAC;oBACJ,KAAK,iBAAiB;wBACpB,OAAO,YAAY,CACjB,0BAA0B,EAC1B,IAAI,EACJ,aAAa,EACb,KAAK,EAAE,QAAQ,EAAE,EAAE;4BACjB,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;4BAC/E,QAAQ,CAAC,OAAO,CAAC,CAAC;4BAClB,IAAI,QAAQ;gCAAE,gBAAgB,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC;4BAChD,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;4BAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE;gCACxC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACjC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAChE,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;6BAC5E,CAAC,CAAC;wBACL,CAAC,CACF,CAAC;oBACJ,KAAK,gBAAgB,CAAC,CAAC,CAAC;wBACtB,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;wBAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;wBAC/C,IAAI,CAAC;4BACH,MAAM,SAAS,GACb,OAAO,QAAQ,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC9E,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gCACvC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;gCAChC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gCACpB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gCACpC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE;6BACrC,CAAC,CAAC,CAAC;4BACJ,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC7B,OAAO,MAAM,CAAC;wBAChB,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,SAAS,CAAC,IAAI,CACZ,QAAQ,EACR,KAAK,EACL,yBAAyB,CAAC,KAAK,EAAE,aAAa,CAAC,CAChD,CAAC;4BACF,OAAO,EAAE,CAAC;wBACZ,CAAC;oBACH,CAAC;oBACD,KAAK,cAAc;wBACjB,OAAO,YAAY,CACjB,uBAAuB,EACvB,IAAI,EACJ,aAAa,EACb,KAAK,EAAE,QAAQ,EAAE,EAAE;4BACjB,QAAQ,CAAC,OAAO,CAAC,CAAC;4BAClB,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACtC,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;4BACzC,CAAC;4BACD,QAAQ,CACN,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;gCACpE,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,QAAQ,CACb,CAAC;4BACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACtC;gCACE,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACzE,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC5E,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAChE,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BACjE,EACD,WAAW,CACZ,CAAC;4BACF,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxE,CAAC;wBACJ,CAAC,CACF,CAAC;oBACJ,KAAK,gBAAgB;wBACnB,OAAO,YAAY,CACjB,yBAAyB,EACzB,IAAI,EACJ,aAAa,EACb,KAAK,IAAI,EAAE;4BACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CACxC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EACxB,WAAW,EACX,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CACxD,CAAC;4BACF,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxE,CAAC;wBACJ,CAAC,CACF,CAAC;oBACJ,KAAK,kBAAkB;wBACrB,OAAO,YAAY,CACjB,2BAA2B,EAC3B,IAAI,EACJ,aAAa,EACb,KAAK,EAAE,QAAQ,EAAE,EAAE;4BACjB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;4BACzC,QAAQ,CAAC,OAAO,CAAC,CAAC;4BAClB,gBAAgB,CAAC,SAAS,CAAC,CAAC;4BAC5B,QAAQ,CAAC,SAAS,CAAC,CAAC;4BACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;wBACxD,CAAC,CACF,CAAC;oBACJ,KAAK,cAAc,CAAC,CAAC,CAAC;wBACpB,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;4BAC9E,CAAC,CAAE,IAAI,CAAC,IAAgC;4BACxC,CAAC,CAAC,EAAE,CAAC;wBACT,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;wBACzC,OAAO,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBACxD,CAAC;oBACD,KAAK,kBAAkB;wBACrB,OAAO,YAAY,CACjB,0BAA0B,EAC1B,IAAI,EACJ,aAAa,EACb,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAChD,CAAC;oBACJ,KAAK,mBAAmB;wBACtB,OAAO,YAAY,CACjB,2BAA2B,EAC3B,IAAI,EACJ,aAAa,EACb,GAAG,EAAE;4BACH,MAAM,OAAO,GAAqB;gCAChC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC7D,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BACnF,CAAC;4BACF,OAAO,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC;wBAChF,CAAC,CACF,CAAC;oBACJ,KAAK,eAAe;wBAClB,OAAO,YAAY,CACjB,uBAAuB,EACvB,IAAI,EACJ,aAAa,EACb,CAAC,QAAQ,EAAE,EAAE;4BACX,QAAQ,CAAC,UAAU,CAAC,CAAC;4BACrB,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACxD,IAAI,CAAC,IAAI;gCAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;4BAC7E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAClB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;4BACrC,MAAM,UAAU,GAAqB;gCACnC,IAAI;gCACJ,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACvD,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAClF,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BACjE,CAAC;4BACF,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BACnB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;4BACjF,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;4BACzB,OAAO;gCACL,IAAI;gCACJ,KAAK,EAAE,UAAU;gCACjB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BACnD,CAAC;wBACJ,CAAC,CACF,CAAC;oBACJ,KAAK,cAAc;wBACjB,OAAO,YAAY,CACjB,sBAAsB,EACtB,IAAI,EACJ,aAAa,EACb,GAAG,EAAE;4BACH,MAAM,IAAI,GAAG,IAA0C,CAAC;4BACxD,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;wBAC3E,CAAC,CACF,CAAC;oBACJ,KAAK,eAAe;wBAClB,OAAO,YAAY,CACjB,uBAAuB,EACvB,IAAI,EACJ,aAAa,EACb,GAAG,EAAE;4BACH,MAAM,KAAK,GAAG,IAA2C,CAAC;4BAC1D,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;wBACxD,CAAC,CACF,CAAC;oBACJ,KAAK,mBAAmB,CAAC,CAAC,CAAC;wBACzB,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACvB,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;4BACxD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;wBAC1D,CAAC;wBACD,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;4BAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;wBAC/E,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,mBAAmB,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;wBAC3E,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;wBAC3C,OAAO,SAAS,CAAC;oBACnB,CAAC;oBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACnC,IAAI,CAAC,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;wBAC7D,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACzB,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW;4BAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;6BAC/D,CAAC;4BACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,QAAQ,EACR,SAAS,EACT,yBAAyB,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE,aAAa,CAAC,CAC5E,CAAC;wBACJ,CAAC;wBACD,OAAO,SAAS,CAAC;oBACnB,CAAC;oBACD;wBACE,OAAO,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC,EACD;gBACE,SAAS,EAAE,kBAAkB;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB;gBACvD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc;gBAChD,2BAA2B;gBAC3B,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC5D,SAAS,EAAE,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,+BAA+B,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,UAAU,KAAK,WAAW,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAChF,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,MAAM;YACN,MAAM;YACN,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;YAClE,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;YACxC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;IACJ,CAAC;CACF"}
@@ -209,8 +209,8 @@ Fabric risk classes are `read`, `write`, `execute`, `network`, and `agent`; appr
209
209
  - Captured tools default to the conservative `execute` risk because Pi tool definitions do not declare effects. Add exact tool-name overrides under `capture.risks`.
210
210
  - Set `capture.hideFromModel` to `false` to index non-core extension tools without hiding them.
211
211
  - `capture.keepVisible` names stay in both Fabric and Pi's direct registry, except that Pi core names are always Fabric-owned in full code mode.
212
- - An `ask` policy is fail-closed in headless modes without interactive UI.
213
- - Approval is cached by risk class for one `fabric_exec` execution.
212
+ - An `ask` policy emits a warning notification and opens an explicit **Allow once** / **Allow for this session** / **Deny** permission prompt, matching Claude-style approval scopes. **Allow once** authorizes only the requested action. **Allow for this session** authorizes that risk class until the current Pi session ends. The TUI uses an inline wizard; RPC clients receive the equivalent `select` dialog.
213
+ - Concurrent requests are serialized so a one-time approval never silently widens to sibling calls. Escape, dismissal, unavailable interactive UI, and session restart all fail closed.
214
214
 
215
215
  ## Subagents
216
216
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-fabric",
3
- "version": "0.25.1",
3
+ "version": "0.25.3",
4
4
  "description": "A programmable tool and agent runtime for Pi",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",