pi-fabric 0.68.0 → 0.70.0
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/actors/types.d.ts +2 -2
- package/dist/actors/types.d.ts.map +1 -1
- package/dist/chunks/{chunk-LVTVYK4E.js → chunk-5XQA7QX2.js} +2 -2
- package/dist/chunks/{chunk-IUBTHPXQ.js → chunk-KJ3XSDAH.js} +2 -2
- package/dist/chunks/{chunk-MC6AUT75.js → chunk-KQEYAV5Z.js} +2 -2
- package/dist/chunks/{chunk-LDZWE6OA.js → chunk-TEGUENKB.js} +201 -20
- package/dist/chunks/chunk-TEGUENKB.js.map +7 -0
- package/dist/chunks/{chunk-ASBRTAJ4.js → chunk-WN4JZMOP.js} +3 -3
- package/dist/chunks/{chunk-C2C4RHVN.js → chunk-WRKD7W34.js} +3 -1
- package/dist/chunks/chunk-WRKD7W34.js.map +7 -0
- package/dist/chunks/{dashboard-6HFBSZQ4.js → dashboard-RPCGC33N.js} +6 -4
- package/dist/chunks/{dashboard-6HFBSZQ4.js.map → dashboard-RPCGC33N.js.map} +2 -2
- package/dist/chunks/{fabric-runtime-state-LG265P3R.js → fabric-runtime-state-NQ7ZXZ6P.js} +6 -6
- package/dist/core/action-registry.d.ts +2 -0
- package/dist/core/action-registry.d.ts.map +1 -1
- package/dist/core/action-registry.js +1 -1
- package/dist/core/action-repair.d.ts +20 -0
- package/dist/core/action-repair.d.ts.map +1 -0
- package/dist/index.js +7 -7
- package/dist/residency/host.js +2 -2
- package/dist/ui/fabric-host-event-selector.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/chunks/chunk-C2C4RHVN.js.map +0 -7
- package/dist/chunks/chunk-LDZWE6OA.js.map +0 -7
- /package/dist/chunks/{chunk-LVTVYK4E.js.map → chunk-5XQA7QX2.js.map} +0 -0
- /package/dist/chunks/{chunk-IUBTHPXQ.js.map → chunk-KJ3XSDAH.js.map} +0 -0
- /package/dist/chunks/{chunk-MC6AUT75.js.map → chunk-KQEYAV5Z.js.map} +0 -0
- /package/dist/chunks/{chunk-ASBRTAJ4.js.map → chunk-WN4JZMOP.js.map} +0 -0
- /package/dist/chunks/{fabric-runtime-state-LG265P3R.js.map → fabric-runtime-state-NQ7ZXZ6P.js.map} +0 -0
package/dist/actors/types.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import type { FabricLogLine, AgentRunRecord, AgentUsage } from "../agents/types.
|
|
|
5
5
|
import type { FabricCapabilityRequirement } from "../components/types.js";
|
|
6
6
|
import type { FabricParticipantResidency } from "../topology/types.js";
|
|
7
7
|
export type FabricActorPiHostEvent = Exclude<ExtensionEvent["type"], "project_trust">;
|
|
8
|
-
export declare const FABRIC_ACTOR_PI_HOST_EVENTS: readonly ["resources_discover", "session_start", "session_info_changed", "session_before_switch", "session_before_fork", "session_before_compact", "session_compact", "session_compact_failed", "session_shutdown", "session_before_tree", "session_tree", "input", "before_agent_start", "agent_start", "agent_end", "agent_settled", "turn_start", "turn_end", "message_start", "message_update", "message_end", "context", "before_provider_headers", "before_provider_request", "after_provider_response", "tool_execution_start", "tool_call", "tool_execution_update", "tool_result", "tool_execution_end", "model_select", "thinking_level_select", "user_bash"];
|
|
9
|
-
export declare const FABRIC_ACTOR_HOST_EVENTS: readonly ["resources_discover", "session_start", "session_info_changed", "session_before_switch", "session_before_fork", "session_before_compact", "session_compact", "session_compact_failed", "session_shutdown", "session_before_tree", "session_tree", "input", "before_agent_start", "agent_start", "agent_end", "agent_settled", "turn_start", "turn_end", "message_start", "message_update", "message_end", "context", "before_provider_headers", "before_provider_request", "after_provider_response", "tool_execution_start", "tool_call", "tool_execution_update", "tool_result", "tool_execution_end", "model_select", "thinking_level_select", "user_bash", "tool_error"];
|
|
8
|
+
export declare const FABRIC_ACTOR_PI_HOST_EVENTS: readonly ["resources_discover", "session_start", "session_info_changed", "session_before_switch", "session_before_fork", "session_before_compact", "session_compact", "session_compact_failed", "session_shutdown", "session_before_tree", "session_tree", "input", "before_agent_start", "agent_start", "agent_end", "agent_settled", "turn_start", "turn_end", "message_start", "message_update", "message_end", "ui_prompt_start", "ui_prompt_end", "context", "before_provider_headers", "before_provider_request", "after_provider_response", "tool_execution_start", "tool_call", "tool_execution_update", "tool_result", "tool_execution_end", "model_select", "thinking_level_select", "user_bash"];
|
|
9
|
+
export declare const FABRIC_ACTOR_HOST_EVENTS: readonly ["resources_discover", "session_start", "session_info_changed", "session_before_switch", "session_before_fork", "session_before_compact", "session_compact", "session_compact_failed", "session_shutdown", "session_before_tree", "session_tree", "input", "before_agent_start", "agent_start", "agent_end", "agent_settled", "turn_start", "turn_end", "message_start", "message_update", "message_end", "ui_prompt_start", "ui_prompt_end", "context", "before_provider_headers", "before_provider_request", "after_provider_response", "tool_execution_start", "tool_call", "tool_execution_update", "tool_result", "tool_execution_end", "model_select", "thinking_level_select", "user_bash", "tool_error"];
|
|
10
10
|
export type FabricActorHostEvent = (typeof FABRIC_ACTOR_HOST_EVENTS)[number];
|
|
11
11
|
export declare const isFabricActorHostEvent: (value: unknown) => value is FabricActorHostEvent;
|
|
12
12
|
export type FabricActorDelivery = "mailbox" | "steer" | "followUp" | "nextTurn";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/actors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;AAQtF,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/actors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;AAQtF,eAAO,MAAM,2BAA2B,6qBAoCtC,CAAC;AAEH,eAAO,MAAM,wBAAwB,2rBAG3B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAI7E,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBACI,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,WAAW,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,UAAU,sBAAuB,SAAQ,qBAAqB;IAC5D,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,0BAA2B,SAAQ,qBAAqB;IAChE,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,qBAAqB,CAAC;IAClC,OAAO,EAAE;QACP,wBAAwB,EAAE,MAAM,CAAC;QACjC,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,2BAA2B,CAAC,EAAE,CAAC;IAC7D,4EAA4E;IAC5E,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,YAAY,EAAE,uBAAuB,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,eAAe,CAAC,EAAE,0BAA0B,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,2BAA2B,EAAE,CAAC;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,aAAa,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAClD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAKlB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,YAAY,EAAE,uBAAuB,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,MAAM,EAAE,iBAAiB,CAAC;CAC3B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readJsonlPageFromDescriptor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WRKD7W34.js";
|
|
4
4
|
|
|
5
5
|
// src/core/call-preview.ts
|
|
6
6
|
var HEADLINE_ARG_KEYS = [
|
|
@@ -1174,4 +1174,4 @@ export {
|
|
|
1174
1174
|
isFabricAgentToolPreview,
|
|
1175
1175
|
recentTranscriptTools
|
|
1176
1176
|
};
|
|
1177
|
-
//# sourceMappingURL=chunk-
|
|
1177
|
+
//# sourceMappingURL=chunk-5XQA7QX2.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
selectPreviewTextLines,
|
|
6
6
|
shouldSkipWriteDiffBytes,
|
|
7
7
|
shouldSkipWriteDiffComplexity
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5XQA7QX2.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveShikiTheme
|
|
11
11
|
} from "./chunk-7B55UIZL.js";
|
|
@@ -5070,4 +5070,4 @@ export {
|
|
|
5070
5070
|
isActiveStatus,
|
|
5071
5071
|
orderAgentsByCreation
|
|
5072
5072
|
};
|
|
5073
|
-
//# sourceMappingURL=chunk-
|
|
5073
|
+
//# sourceMappingURL=chunk-KJ3XSDAH.js.map
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
import {
|
|
23
23
|
FABRIC_ACTOR_HOST_EVENTS,
|
|
24
24
|
readJsonlPage
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-WRKD7W34.js";
|
|
26
26
|
import {
|
|
27
27
|
DEFAULT_FABRIC_CONFIG,
|
|
28
28
|
MAX_AGENT_TIMEOUT_MS,
|
|
@@ -6255,4 +6255,4 @@ export {
|
|
|
6255
6255
|
residentRoot,
|
|
6256
6256
|
residentDeliveryPrefix
|
|
6257
6257
|
};
|
|
6258
|
-
//# sourceMappingURL=chunk-
|
|
6258
|
+
//# sourceMappingURL=chunk-KQEYAV5Z.js.map
|
|
@@ -21,6 +21,126 @@ import {
|
|
|
21
21
|
import { randomUUID as randomUUID2 } from "node:crypto";
|
|
22
22
|
import { Value } from "typebox/value";
|
|
23
23
|
|
|
24
|
+
// src/core/action-repair.ts
|
|
25
|
+
var ACTION_SYNONYM_CLASSES = [
|
|
26
|
+
// memory.recall and its spilled search verbs.
|
|
27
|
+
["recall", "search", "find", "query", "lookup", "grep", "scan", "locate"],
|
|
28
|
+
// memory.expand / read-one-entry verbs.
|
|
29
|
+
["expand", "get", "read", "fetch", "load", "view", "show", "hydrate"],
|
|
30
|
+
// memory.sessions and list-style catalog reads.
|
|
31
|
+
["sessions", "list", "ls", "enumerate", "index"],
|
|
32
|
+
// state.transition / mesh.put write verbs.
|
|
33
|
+
["transition", "write", "put", "set", "save", "update", "store", "upsert", "append", "post"],
|
|
34
|
+
// agents.create family.
|
|
35
|
+
["create", "spawn", "new", "add", "make", "register"],
|
|
36
|
+
// mesh.publish family ("post" deliberately also sits in the write class,
|
|
37
|
+
// so mesh.post stays ambiguous between publish and put).
|
|
38
|
+
["publish", "send", "emit", "notify"],
|
|
39
|
+
// teardown verbs.
|
|
40
|
+
["delete", "remove", "rm", "destroy", "drop", "clear"],
|
|
41
|
+
// components.reload family.
|
|
42
|
+
["reload", "restart", "refresh", "rebuild", "reboot"],
|
|
43
|
+
// status/introspection reads ("get" is deliberately shared with the
|
|
44
|
+
// expand class: memory.get expands an entry, components.get is status).
|
|
45
|
+
["status", "info", "inspect", "health", "describe", "get"],
|
|
46
|
+
// execution verbs.
|
|
47
|
+
["run", "execute", "exec", "invoke", "call", "start", "go"],
|
|
48
|
+
// cancellation verbs.
|
|
49
|
+
["cancel", "abort", "stop", "kill", "terminate"],
|
|
50
|
+
// verification verbs.
|
|
51
|
+
["verify", "check", "validate", "assert", "confirm", "certify"],
|
|
52
|
+
// timeline reads.
|
|
53
|
+
["history", "log", "journal", "events", "timeline", "transitions"],
|
|
54
|
+
// subscription verbs.
|
|
55
|
+
["subscribe", "watch", "listen", "observe", "follow"],
|
|
56
|
+
// compact.request family.
|
|
57
|
+
["request", "begin", "initiate", "trigger", "schedule"],
|
|
58
|
+
// schema.commit family.
|
|
59
|
+
["commit", "apply", "finalize"],
|
|
60
|
+
// agents messaging pair (both declare, so spilled verbs here stay
|
|
61
|
+
// ambiguous and the failure tier enumerates ask vs tell).
|
|
62
|
+
["ask", "tell", "say", "chat"]
|
|
63
|
+
];
|
|
64
|
+
var normalizeActionForm = (name) => name.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
65
|
+
var ACTION_CLASS_FORMS = ACTION_SYNONYM_CLASSES.map(
|
|
66
|
+
(cls) => new Set(cls.map(normalizeActionForm))
|
|
67
|
+
);
|
|
68
|
+
var camelTokens = (name) => name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter((token) => token.length > 0);
|
|
69
|
+
var singularActionForm = (form) => form.length > 3 && form.endsWith("s") ? form.slice(0, -1) : form;
|
|
70
|
+
var levenshtein = (left, right) => {
|
|
71
|
+
if (left === right) return 0;
|
|
72
|
+
if (left.length === 0) return right.length;
|
|
73
|
+
if (right.length === 0) return left.length;
|
|
74
|
+
let previous = Array.from({ length: right.length + 1 }, (_, index) => index);
|
|
75
|
+
for (let i = 1; i <= left.length; i++) {
|
|
76
|
+
const current = [i];
|
|
77
|
+
for (let j = 1; j <= right.length; j++) {
|
|
78
|
+
current.push(
|
|
79
|
+
Math.min(
|
|
80
|
+
previous[j] + 1,
|
|
81
|
+
current[j - 1] + 1,
|
|
82
|
+
previous[j - 1] + (left[i - 1] === right[j - 1] ? 0 : 1)
|
|
83
|
+
)
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
previous = current;
|
|
87
|
+
}
|
|
88
|
+
return previous[right.length];
|
|
89
|
+
};
|
|
90
|
+
var editThreshold = (form) => form.length <= 4 ? 1 : Math.max(2, Math.floor(form.length / 4));
|
|
91
|
+
var tokenAligned = (spilled, declared) => {
|
|
92
|
+
if (spilled.length === 0 || spilled.length !== declared.length) return false;
|
|
93
|
+
return spilled.every((token, index) => {
|
|
94
|
+
const other = declared[index];
|
|
95
|
+
if (token === other) return true;
|
|
96
|
+
return token.length >= 3 && other.length >= 3 && (token.startsWith(other) || other.startsWith(token));
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
var sortNames = (names) => [...new Set(names)].sort((left, right) => left.localeCompare(right));
|
|
100
|
+
var repairActionName = (declared, actionName) => {
|
|
101
|
+
const spilledForm = normalizeActionForm(actionName);
|
|
102
|
+
if (spilledForm.length === 0) return { suggestions: [] };
|
|
103
|
+
const rest = declared.filter((name) => name !== actionName);
|
|
104
|
+
if (rest.length === 0) return { suggestions: [] };
|
|
105
|
+
const forms = rest.map((name) => ({ name, form: normalizeActionForm(name) }));
|
|
106
|
+
const classCandidates = ACTION_CLASS_FORMS.filter((classForms) => classForms.has(spilledForm)).flatMap(
|
|
107
|
+
(classForms) => forms.filter((entry) => classForms.has(entry.form)).map((entry) => entry.name)
|
|
108
|
+
);
|
|
109
|
+
if (classCandidates.length === 1) {
|
|
110
|
+
return { repaired: classCandidates[0], suggestions: [classCandidates[0]] };
|
|
111
|
+
}
|
|
112
|
+
if (classCandidates.length > 1) {
|
|
113
|
+
return { suggestions: sortNames(classCandidates) };
|
|
114
|
+
}
|
|
115
|
+
const spilledTokens = camelTokens(actionName);
|
|
116
|
+
const derived = [];
|
|
117
|
+
for (const entry of forms) {
|
|
118
|
+
if (entry.form === spilledForm || singularActionForm(entry.form) === singularActionForm(spilledForm) || spilledTokens.length > 0 && tokenAligned(spilledTokens, camelTokens(entry.name)) || spilledForm.length >= 4 && entry.form.startsWith(spilledForm)) {
|
|
119
|
+
derived.push(entry.name);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (derived.length === 1) return { repaired: derived[0], suggestions: [derived[0]] };
|
|
123
|
+
if (derived.length > 1) return { suggestions: sortNames(derived) };
|
|
124
|
+
const distances = forms.map((entry) => ({
|
|
125
|
+
name: entry.name,
|
|
126
|
+
distance: levenshtein(spilledForm, entry.form)
|
|
127
|
+
}));
|
|
128
|
+
const min = Math.min(...distances.map((entry) => entry.distance));
|
|
129
|
+
const threshold = editThreshold(spilledForm);
|
|
130
|
+
if (min <= threshold) {
|
|
131
|
+
const nearest = sortNames(
|
|
132
|
+
distances.filter((entry) => entry.distance === min).map((entry) => entry.name)
|
|
133
|
+
);
|
|
134
|
+
if (nearest.length === 1) return { repaired: nearest[0], suggestions: [nearest[0]] };
|
|
135
|
+
return { suggestions: nearest };
|
|
136
|
+
}
|
|
137
|
+
const suggestions = distances.filter((entry) => entry.distance <= Math.max(3, Math.floor(spilledForm.length / 2))).sort(
|
|
138
|
+
(left, right) => left.distance - right.distance || left.name.localeCompare(right.name)
|
|
139
|
+
).slice(0, 3).map((entry) => entry.name);
|
|
140
|
+
return { suggestions: sortNames(suggestions) };
|
|
141
|
+
};
|
|
142
|
+
var formatUnknownActionMessage = (ref, suggestions) => suggestions.length > 0 ? `Unknown Fabric action: ${ref} (did you mean: ${suggestions.slice(0, 3).join(", ")}?)` : `Unknown Fabric action: ${ref}`;
|
|
143
|
+
|
|
24
144
|
// src/core/provider-bindings.ts
|
|
25
145
|
import { randomUUID } from "node:crypto";
|
|
26
146
|
var snapshot = (binding) => ({
|
|
@@ -677,9 +797,16 @@ var ActionRegistry = class {
|
|
|
677
797
|
ref,
|
|
678
798
|
context.capabilityView
|
|
679
799
|
);
|
|
680
|
-
const
|
|
681
|
-
|
|
682
|
-
|
|
800
|
+
const resolved = await this.#resolveActionDescriptor(
|
|
801
|
+
provider,
|
|
802
|
+
actionName,
|
|
803
|
+
context,
|
|
804
|
+
context.capabilityView === void 0
|
|
805
|
+
);
|
|
806
|
+
if (!resolved.action) {
|
|
807
|
+
throw new FabricResolutionError(formatUnknownActionMessage(ref, resolved.suggestions));
|
|
808
|
+
}
|
|
809
|
+
const action = resolved.action;
|
|
683
810
|
if (expectedDescriptorHash && actionDescriptorHash(action) !== expectedDescriptorHash) {
|
|
684
811
|
throw new FabricResolutionError(`Fabric capability descriptor changed: ${ref}`);
|
|
685
812
|
}
|
|
@@ -701,6 +828,7 @@ var ActionRegistry = class {
|
|
|
701
828
|
throw new FabricResolutionError(`Unknown Fabric action in committed view: ${ref}`);
|
|
702
829
|
}
|
|
703
830
|
const matches = [];
|
|
831
|
+
const declaredNames = [];
|
|
704
832
|
for (const provider of this.#providerBindings.providers()) {
|
|
705
833
|
let descriptors;
|
|
706
834
|
try {
|
|
@@ -709,6 +837,7 @@ var ActionRegistry = class {
|
|
|
709
837
|
continue;
|
|
710
838
|
}
|
|
711
839
|
for (const descriptor of descriptors) {
|
|
840
|
+
declaredNames.push(descriptor.name);
|
|
712
841
|
if (descriptor.name === ref) matches.push(resolveDescriptor(provider, descriptor));
|
|
713
842
|
}
|
|
714
843
|
}
|
|
@@ -718,7 +847,8 @@ var ActionRegistry = class {
|
|
|
718
847
|
`"${ref}" matches ${matches.length} Fabric actions; qualify with provider.action: ` + matches.map((match) => match.ref).sort().join(", ")
|
|
719
848
|
);
|
|
720
849
|
}
|
|
721
|
-
|
|
850
|
+
const repair = repairActionName(declaredNames, ref);
|
|
851
|
+
throw new FabricResolutionError(formatUnknownActionMessage(ref, repair.suggestions));
|
|
722
852
|
}
|
|
723
853
|
async acquireScoped(ref, args, context) {
|
|
724
854
|
const { binding, provider, actionName, expectedDescriptorHash } = this.#parseRef(
|
|
@@ -729,12 +859,17 @@ var ActionRegistry = class {
|
|
|
729
859
|
const releaseBinding = this.#providerBindings.retain([binding.id]);
|
|
730
860
|
let retentionTransferred = false;
|
|
731
861
|
try {
|
|
732
|
-
const
|
|
733
|
-
|
|
734
|
-
|
|
862
|
+
const resolved = await this.#resolveActionDescriptor(
|
|
863
|
+
provider,
|
|
864
|
+
actionName,
|
|
865
|
+
context,
|
|
866
|
+
context.capabilityView === void 0
|
|
735
867
|
);
|
|
736
|
-
if (!
|
|
737
|
-
|
|
868
|
+
if (!resolved.action) {
|
|
869
|
+
throw new FabricResolutionError(formatUnknownActionMessage(ref, resolved.suggestions));
|
|
870
|
+
}
|
|
871
|
+
const action = resolved.action;
|
|
872
|
+
const providerActionName = resolved.repairedFrom === void 0 ? actionName : action.name;
|
|
738
873
|
if (expectedDescriptorHash && actionDescriptorHash(action) !== expectedDescriptorHash) {
|
|
739
874
|
throw new FabricResolutionError(`Fabric capability descriptor changed: ${ref}`);
|
|
740
875
|
}
|
|
@@ -746,7 +881,7 @@ var ActionRegistry = class {
|
|
|
746
881
|
}
|
|
747
882
|
const preparedArgs = provider.prepareArguments ? await runAbortable(
|
|
748
883
|
context.signal,
|
|
749
|
-
() => provider.prepareArguments(
|
|
884
|
+
() => provider.prepareArguments(providerActionName, args, context)
|
|
750
885
|
) : args;
|
|
751
886
|
if (typeof preparedArgs !== "object" || preparedArgs === null || Array.isArray(preparedArgs)) {
|
|
752
887
|
throw new Error(`Argument preparation for ${ref} did not return an object`);
|
|
@@ -755,7 +890,7 @@ var ActionRegistry = class {
|
|
|
755
890
|
if (invalid) throw new Error(`Invalid arguments for ${ref}: ${invalid}`);
|
|
756
891
|
const acquired = await runAbortable(
|
|
757
892
|
context.signal,
|
|
758
|
-
() => provider.acquire(
|
|
893
|
+
() => provider.acquire(providerActionName, preparedArgs, context)
|
|
759
894
|
);
|
|
760
895
|
if (!acquired || typeof acquired.dispose !== "function") {
|
|
761
896
|
throw new Error(`Scoped acquisition ${ref} did not return a disposer`);
|
|
@@ -792,12 +927,17 @@ var ActionRegistry = class {
|
|
|
792
927
|
context.capabilityView
|
|
793
928
|
);
|
|
794
929
|
endBindingInvocation = this.#providerBindings.beginInvocation(binding.id);
|
|
795
|
-
const
|
|
796
|
-
|
|
797
|
-
|
|
930
|
+
const resolved = await this.#resolveActionDescriptor(
|
|
931
|
+
provider,
|
|
932
|
+
actionName,
|
|
933
|
+
context,
|
|
934
|
+
context.capabilityView === void 0
|
|
798
935
|
);
|
|
799
|
-
if (!
|
|
800
|
-
|
|
936
|
+
if (!resolved.action) {
|
|
937
|
+
throw new FabricResolutionError(formatUnknownActionMessage(ref, resolved.suggestions));
|
|
938
|
+
}
|
|
939
|
+
const action = resolved.action;
|
|
940
|
+
const providerActionName = resolved.repairedFrom === void 0 ? actionName : action.name;
|
|
801
941
|
if (expectedDescriptorHash && actionDescriptorHash(action) !== expectedDescriptorHash) {
|
|
802
942
|
throw new FabricResolutionError(`Fabric capability descriptor changed: ${ref}`);
|
|
803
943
|
}
|
|
@@ -814,7 +954,7 @@ var ActionRegistry = class {
|
|
|
814
954
|
failureStage = "prepare";
|
|
815
955
|
const preparedArgs = provider.prepareArguments ? await runAbortable(
|
|
816
956
|
context.signal,
|
|
817
|
-
() => provider.prepareArguments(
|
|
957
|
+
() => provider.prepareArguments(providerActionName, args, context)
|
|
818
958
|
) : args;
|
|
819
959
|
if (typeof preparedArgs !== "object" || preparedArgs === null || Array.isArray(preparedArgs)) {
|
|
820
960
|
throw new FabricTraceSafeError(`Argument preparation for ${ref} did not return an object`);
|
|
@@ -853,7 +993,8 @@ var ActionRegistry = class {
|
|
|
853
993
|
argsPreview,
|
|
854
994
|
MAX_AUDIT_VALUE_CHARS
|
|
855
995
|
),
|
|
856
|
-
...effectConflicts.length > 0 ? { effectConflicts } : {}
|
|
996
|
+
...effectConflicts.length > 0 ? { effectConflicts } : {},
|
|
997
|
+
...resolved.repairedFrom !== void 0 ? { repairedFrom: resolved.repairedFrom } : {}
|
|
857
998
|
};
|
|
858
999
|
audit = activeAudit;
|
|
859
1000
|
invocationActive = true;
|
|
@@ -900,7 +1041,7 @@ var ActionRegistry = class {
|
|
|
900
1041
|
providerInvoked = true;
|
|
901
1042
|
providerValue = await runAbortable(
|
|
902
1043
|
context.signal,
|
|
903
|
-
() => provider.invoke(
|
|
1044
|
+
() => provider.invoke(providerActionName, preparedArgs, {
|
|
904
1045
|
...context,
|
|
905
1046
|
nestedToolCallId,
|
|
906
1047
|
update(message) {
|
|
@@ -1154,6 +1295,46 @@ var ActionRegistry = class {
|
|
|
1154
1295
|
await Promise.allSettled(temporaryReleases.map((release) => release()));
|
|
1155
1296
|
}
|
|
1156
1297
|
}
|
|
1298
|
+
async #declaredActionNames(provider, context) {
|
|
1299
|
+
try {
|
|
1300
|
+
const descriptors = await runAbortable(context.signal, () => provider.list({}, context));
|
|
1301
|
+
return descriptors.map((descriptor) => descriptor.name);
|
|
1302
|
+
} catch {
|
|
1303
|
+
return [];
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1306
|
+
// Resolve a provider action descriptor, repairing a near-miss action name
|
|
1307
|
+
// (mirroring arg-normalization's prepare-stage argument repair) when the
|
|
1308
|
+
// caller is not pinned to a committed capability view. Committed views are
|
|
1309
|
+
// exact contracts: a pinned miss keeps the plain resolution error.
|
|
1310
|
+
async #resolveActionDescriptor(provider, actionName, context, allowRepair) {
|
|
1311
|
+
const descriptor = await runAbortable(
|
|
1312
|
+
context.signal,
|
|
1313
|
+
() => provider.describe(actionName, context)
|
|
1314
|
+
);
|
|
1315
|
+
if (descriptor) return { action: resolveDescriptor(provider, descriptor), suggestions: [] };
|
|
1316
|
+
if (!allowRepair) return { suggestions: [] };
|
|
1317
|
+
const repair = repairActionName(
|
|
1318
|
+
await this.#declaredActionNames(provider, context),
|
|
1319
|
+
actionName
|
|
1320
|
+
);
|
|
1321
|
+
if (repair.repaired !== void 0) {
|
|
1322
|
+
const repairedDescriptor = await runAbortable(
|
|
1323
|
+
context.signal,
|
|
1324
|
+
() => provider.describe(repair.repaired, context)
|
|
1325
|
+
);
|
|
1326
|
+
if (repairedDescriptor) {
|
|
1327
|
+
return {
|
|
1328
|
+
action: resolveDescriptor(provider, repairedDescriptor),
|
|
1329
|
+
suggestions: [],
|
|
1330
|
+
repairedFrom: actionName
|
|
1331
|
+
};
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
return {
|
|
1335
|
+
suggestions: repair.suggestions.map((name) => `${provider.name}.${name}`)
|
|
1336
|
+
};
|
|
1337
|
+
}
|
|
1157
1338
|
#parseRef(ref, view) {
|
|
1158
1339
|
const separator = ref.indexOf(".");
|
|
1159
1340
|
if (separator <= 0 || separator === ref.length - 1) {
|
|
@@ -1201,4 +1382,4 @@ export {
|
|
|
1201
1382
|
NESTED_TOOL_CALL_ID_PREFIX,
|
|
1202
1383
|
ActionRegistry
|
|
1203
1384
|
};
|
|
1204
|
-
//# sourceMappingURL=chunk-
|
|
1385
|
+
//# sourceMappingURL=chunk-TEGUENKB.js.map
|