@wenathlan/saddle 1.8.13 → 1.8.15

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.
Files changed (75) hide show
  1. package/README.md +47 -9
  2. package/dist/binary/archive.d.ts +27 -0
  3. package/dist/binary/archive.d.ts.map +1 -0
  4. package/dist/binary/archive.js +46 -0
  5. package/dist/binary/archive.js.map +1 -0
  6. package/dist/binary/transform.d.ts +70 -0
  7. package/dist/binary/transform.d.ts.map +1 -0
  8. package/dist/binary/transform.js +105 -0
  9. package/dist/binary/transform.js.map +1 -0
  10. package/dist/delivery/manifest.d.ts +35 -0
  11. package/dist/delivery/manifest.d.ts.map +1 -0
  12. package/dist/delivery/manifest.js +68 -0
  13. package/dist/delivery/manifest.js.map +1 -0
  14. package/dist/index.d.ts +7 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +7 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/memory/planner.d.ts +66 -0
  19. package/dist/memory/planner.d.ts.map +1 -0
  20. package/dist/memory/planner.js +108 -0
  21. package/dist/memory/planner.js.map +1 -0
  22. package/dist/runners/chain.d.ts +125 -0
  23. package/dist/runners/chain.d.ts.map +1 -0
  24. package/dist/runners/chain.js +95 -0
  25. package/dist/runners/chain.js.map +1 -0
  26. package/dist/scrape/robots.js +1 -1
  27. package/dist/storage/index.d.ts +1 -0
  28. package/dist/storage/index.d.ts.map +1 -1
  29. package/dist/storage/index.js +1 -0
  30. package/dist/storage/index.js.map +1 -1
  31. package/dist/storage/memory.js +2 -2
  32. package/dist/storage/memory.js.map +1 -1
  33. package/dist/storage/pool.d.ts +95 -0
  34. package/dist/storage/pool.d.ts.map +1 -0
  35. package/dist/storage/pool.js +202 -0
  36. package/dist/storage/pool.js.map +1 -0
  37. package/dist/surfaces/requirements.d.ts +29 -0
  38. package/dist/surfaces/requirements.d.ts.map +1 -0
  39. package/dist/surfaces/requirements.js +50 -0
  40. package/dist/surfaces/requirements.js.map +1 -0
  41. package/docs/artifactavailability.md +22 -4
  42. package/docs/ecosystemplan.md +1 -1
  43. package/docs/enginearchitecture.md +28 -0
  44. package/docs/plans/00.index.md +2 -2
  45. package/docs/plans/06.dependencies.md +1 -1
  46. package/docs/plans/18.research.content.extraction.md +3 -3
  47. package/docs/plans/22.research.universal.runtime.md +10 -10
  48. package/docs/plans/28.action.plan.md +1 -1
  49. package/docs/plans/35.comparativo.concorrencia.md +10 -10
  50. package/docs/plans/40.npm.publish.md +6 -6
  51. package/docs/plans/41.o.que.falta.md +2 -2
  52. package/docs/plans/42.pesquisa.concorrencia.md +2 -2
  53. package/docs/plans/43.plan.universal.architecture.md +2 -2
  54. package/docs/plans/44.reference.md +1 -1
  55. package/docs/plans/45.robotarchitecture.md +3 -3
  56. package/docs/plans/46.scdnintegration.md +1 -1
  57. package/docs/plans/README.md +2 -2
  58. package/docs/plans/missing-facts.md +1 -1
  59. package/docs/registryresearch.md +3 -3
  60. package/docs/release17notes.md +1 -1
  61. package/docs/releaseassets.md +2 -2
  62. package/docs/releasenotes-1.8.12.md +17 -2
  63. package/docs/releasenotes-1.8.13.md +30 -2
  64. package/docs/releasenotes-1.8.14.md +67 -0
  65. package/docs/releasenotes-1.8.15.md +37 -0
  66. package/docs/talks9/README (2).md +2 -2
  67. package/docs/talks9/README.md +4 -4
  68. package/docs/talks9/Viabilidade do Saddle_ Uma An/303/241lise T/303/251cnica da Transforma/303/247/303/243o de Armazenamento Remoto em Mem/303/263ria Computacional.md" +4 -4
  69. package/docs/talks9/conversa.txt +4 -4
  70. package/docs/todo-1.8.15.md +483 -0
  71. package/docs/todo-1.8.16.md +651 -0
  72. package/docs/todo.md +708 -0
  73. package/extension/README.md +1 -1
  74. package/extension/manifest.json +1 -1
  75. package/package.json +9 -2
package/dist/index.js CHANGED
@@ -15,6 +15,7 @@ export * from "./memory/objects.js";
15
15
  export * from "./memory/targets.js";
16
16
  export * from "./memory/transforms.js";
17
17
  export * from "./memory/engine.js";
18
+ export * from "./memory/planner.js";
18
19
  export * from "./runners/inprocess.js";
19
20
  export * from "./runners/scheduler.js";
20
21
  export * from "./runtime/engine.js";
@@ -22,8 +23,10 @@ export * from "./storage/adapter.js";
22
23
  export * from "./storage/cache.js";
23
24
  export * from "./storage/content.js";
24
25
  export * from "./storage/memory.js";
26
+ export * from "./storage/pool.js";
25
27
  export * from "./storage/sync.js";
26
28
  export * from "./runners/health.js";
29
+ export * from "./runners/chain.js";
27
30
  export * from "./runners/heartbeat.js";
28
31
  export * from "./workflow/triggers.js";
29
32
  export * from "./dispatch/resumable.js";
@@ -37,6 +40,7 @@ export * from "./mcp/browser.js";
37
40
  export * from "./apps/registry.js";
38
41
  export * from "./bot/permissions.js";
39
42
  export * from "./webhook/delivery.js";
43
+ export * from "./delivery/manifest.js";
40
44
  export * from "./storage/chunked.js";
41
45
  export * from "./storage/s3compatible.js";
42
46
  export * from "./modes/modes.js";
@@ -98,6 +102,7 @@ export * from "./surfaces/n8n.js";
98
102
  export * from "./surfaces/adapters.js";
99
103
  export * from "./surfaces/controls.js";
100
104
  export * from "./surfaces/operations.js";
105
+ export * from "./surfaces/requirements.js";
101
106
  export * from "./library/public.js";
102
107
  export * from "./runtime/retry.js";
103
108
  export * from "./storage/githubcontents.js";
@@ -108,6 +113,8 @@ export * from "./api/security.js";
108
113
  export * from "./modes/matrix.js";
109
114
  export * from "./modes/resolve.js";
110
115
  export * from "./binary/build.js";
116
+ export * from "./binary/archive.js";
117
+ export * from "./binary/transform.js";
111
118
  export * from "./api/rate.js";
112
119
  export * from "./api/http.js";
113
120
  export * from "./api/service.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * working-set planning keeps host memory operations declarative and caller-executed.
3
+ */
4
+ /** Validates a serializable working-set capacity budget. */
5
+ export declare function workingbudget(input?: {}): Readonly<{
6
+ maxbytes: number;
7
+ maxentries: number;
8
+ maxage: number;
9
+ }>;
10
+ /** Selects bounded working-set candidates without materializing data or probing a host. */
11
+ export declare function workingadmission(items: any, options?: {}): Readonly<{
12
+ version: 1;
13
+ policy: any;
14
+ budget: Readonly<{
15
+ maxbytes: number;
16
+ maxentries: number;
17
+ maxage: number;
18
+ }>;
19
+ usedbytes: number;
20
+ admitted: readonly any[];
21
+ deferred: readonly any[];
22
+ }>;
23
+ /** Produces a host bridge plan that an explicit privileged adapter may execute. */
24
+ export declare function bridgeplan(input?: {}): Readonly<{
25
+ version: 1;
26
+ operation: string;
27
+ sizebytes: number;
28
+ state: "caller-executes" | "unsupported";
29
+ preconditions: readonly string[];
30
+ cleanup: Readonly<{
31
+ required: boolean;
32
+ owner: "caller";
33
+ }>;
34
+ }>;
35
+ /** Validates a materialized object record without reading storage or the local filesystem. */
36
+ export declare function materializationrecord(input?: {}): Readonly<{
37
+ version: 1;
38
+ id: string;
39
+ sha256: string;
40
+ sizebytes: number;
41
+ tier: any;
42
+ state: any;
43
+ createdat: number;
44
+ }>;
45
+ /** Tracks materialization transitions and emits caller-owned cleanup plans without deleting resources. */
46
+ export declare function materializationledger(input?: {}): Readonly<{
47
+ add: (record: any) => Readonly<{
48
+ version: 1;
49
+ id: string;
50
+ sha256: string;
51
+ sizebytes: number;
52
+ tier: any;
53
+ state: any;
54
+ createdat: number;
55
+ }>;
56
+ transition: (id: any, state: any) => any;
57
+ cleanupplan: (id: any) => Readonly<{
58
+ version: 1;
59
+ id: any;
60
+ sha256: any;
61
+ state: "caller-cleans";
62
+ reason: "already-cleaned" | "release-working-set";
63
+ }>;
64
+ list: () => readonly any[];
65
+ }>;
66
+ //# sourceMappingURL=planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../memory/planner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,KAAK,KAAK;;;;GAEvC;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,KAAK,KAAA,EAAE,OAAO,KAAK;;;;;;;;;;;GAkBnD;AAED,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,KAAK,KAAK;;;;;;;;;;GAOpC;AAED,8FAA8F;AAC9F,wBAAgB,qBAAqB,CAAC,KAAK,KAAK;;;;;;;;GAM/C;AAED,0GAA0G;AAC1G,wBAAgB,qBAAqB,CAAC,KAAK,KAAK;;;;;;;;;;;;;;;;;;;GAO/C"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * working-set planning keeps host memory operations declarative and caller-executed.
3
+ */
4
+ /** Validates a serializable working-set capacity budget. */
5
+ export function workingbudget(input = {}) {
6
+ return Object.freeze({ maxbytes: limit(input.maxbytes, "working-set maxbytes"), maxentries: limit(input.maxentries, "working-set maxentries"), maxage: optionalnonnegative(input.maxage, "working-set maxage") });
7
+ }
8
+ /** Selects bounded working-set candidates without materializing data or probing a host. */
9
+ export function workingadmission(items, options = {}) {
10
+ if (!Array.isArray(items))
11
+ throw new TypeError("working-set items must be an array");
12
+ const budget = workingbudget(options.budget);
13
+ const now = Number(options.now ?? Date.now());
14
+ if (!Number.isFinite(now) || now < 0)
15
+ throw new TypeError("working-set now is invalid");
16
+ const policy = validpolicy(options.policy ?? "lru");
17
+ const normalized = normalizeitems(items);
18
+ const admitted = [];
19
+ const deferred = [];
20
+ let usedbytes = 0;
21
+ for (const item of rank(normalized, policy)) {
22
+ const expired = item.expiresat !== null && item.expiresat <= now;
23
+ const overbytes = usedbytes + item.sizebytes > budget.maxbytes;
24
+ const overentries = admitted.length >= budget.maxentries;
25
+ if (expired || overbytes || overentries)
26
+ deferred.push(Object.freeze({ ...item, reason: expired ? "expired" : overbytes ? "bytebudget" : "entrybudget" }));
27
+ else {
28
+ admitted.push(item);
29
+ usedbytes += item.sizebytes;
30
+ }
31
+ }
32
+ return Object.freeze({ version: 1, policy, budget, usedbytes, admitted: Object.freeze(admitted), deferred: Object.freeze(deferred) });
33
+ }
34
+ /** Produces a host bridge plan that an explicit privileged adapter may execute. */
35
+ export function bridgeplan(input = {}) {
36
+ const operation = String(input.operation ?? "");
37
+ if (!bridgeoperations.includes(operation))
38
+ throw new TypeError("working-set bridge operation is invalid");
39
+ const sizebytes = positive(input.sizebytes, "working-set bridge sizebytes");
40
+ const capabilities = new Set(Array.isArray(input.capabilities) ? input.capabilities.map((value) => String(value)) : []);
41
+ const supported = capabilities.has(operation);
42
+ return Object.freeze({ version: 1, operation, sizebytes, state: supported ? "caller-executes" : "unsupported", preconditions: Object.freeze(supported ? ["explicit-consent", "host-adapter", "rollback-plan", "capacity-check"] : []), cleanup: Object.freeze({ required: supported, owner: "caller" }) });
43
+ }
44
+ /** Validates a materialized object record without reading storage or the local filesystem. */
45
+ export function materializationrecord(input = {}) {
46
+ const id = String(input.id ?? "");
47
+ const sha256 = String(input.sha256 ?? "").toLowerCase();
48
+ if (!id)
49
+ throw new TypeError("working-set materialization id is required");
50
+ if (!/^[a-f0-9]{64}$/.test(sha256))
51
+ throw new TypeError("working-set materialization sha256 is invalid");
52
+ return Object.freeze({ version: 1, id, sha256, sizebytes: positive(input.sizebytes, "working-set materialization sizebytes"), tier: validtier(input.tier ?? "l3"), state: validstate(input.state ?? "planned"), createdat: nonnegative(input.createdat ?? Date.now(), "working-set materialization createdat") });
53
+ }
54
+ /** Tracks materialization transitions and emits caller-owned cleanup plans without deleting resources. */
55
+ export function materializationledger(input = {}) {
56
+ const records = new Map();
57
+ const clock = typeof input.clock === "function" ? input.clock : () => Date.now();
58
+ function add(record) { const normalized = materializationrecord(record); if (records.has(normalized.id))
59
+ throw new TypeError(`working-set materialization id is duplicated: ${normalized.id}`); records.set(normalized.id, normalized); return normalized; }
60
+ function transition(id, state) { const current = records.get(String(id)); if (!current)
61
+ throw new TypeError("working-set materialization is unknown"); const next = validstate(state); if (!allowedtransition(current.state, next))
62
+ throw new TypeError(`working-set materialization transition is invalid: ${current.state} to ${next}`); const output = Object.freeze({ ...current, state: next, updatedat: nonnegative(clock(), "working-set materialization updatedat") }); records.set(output.id, output); return output; }
63
+ function cleanupplan(id) { const current = records.get(String(id)); if (!current)
64
+ throw new TypeError("working-set materialization is unknown"); return Object.freeze({ version: 1, id: current.id, sha256: current.sha256, state: "caller-cleans", reason: current.state === "cleaned" ? "already-cleaned" : "release-working-set" }); }
65
+ return Object.freeze({ add, transition, cleanupplan, list: () => Object.freeze([...records.values()]) });
66
+ }
67
+ const bridgeoperations = Object.freeze(["temporaryfile", "mmap", "tmpfs", "zram", "swap"]);
68
+ const policies = new Set(["lru", "sizeaware", "ttlfirst"]);
69
+ const tiers = new Set(["l1", "l2", "l3", "l4"]);
70
+ const states = new Set(["planned", "prepared", "verified", "released", "cleaned", "failed"]);
71
+ function normalizeitems(input) {
72
+ const ids = new Set();
73
+ return input.map((value, index) => {
74
+ const id = String(value?.id ?? "");
75
+ if (!id || ids.has(id))
76
+ throw new TypeError("working-set item id must be unique");
77
+ ids.add(id);
78
+ return Object.freeze({ id, sizebytes: positive(value.sizebytes, "working-set item sizebytes"), priority: Number(value.priority ?? 0), lastusedat: nonnegative(value.lastusedat ?? 0, "working-set item lastusedat"), expiresat: value.expiresat === undefined ? null : nonnegative(value.expiresat, "working-set item expiresat"), index });
79
+ });
80
+ }
81
+ function rank(items, policy) {
82
+ return [...items].sort((left, right) => {
83
+ if (right.priority !== left.priority)
84
+ return right.priority - left.priority;
85
+ if (policy === "lru" && right.lastusedat !== left.lastusedat)
86
+ return right.lastusedat - left.lastusedat;
87
+ if (policy === "sizeaware" && left.sizebytes !== right.sizebytes)
88
+ return left.sizebytes - right.sizebytes;
89
+ if (policy === "ttlfirst" && (left.expiresat ?? Infinity) !== (right.expiresat ?? Infinity))
90
+ return (left.expiresat ?? Infinity) - (right.expiresat ?? Infinity);
91
+ return left.index - right.index;
92
+ });
93
+ }
94
+ function limit(value, name) { return value === undefined ? Infinity : nonnegative(value, name); }
95
+ function positive(value, name) { const numeric = nonnegative(value, name); if (numeric < 1)
96
+ throw new TypeError(`${name} must be positive`); return numeric; }
97
+ function nonnegative(value, name) { const numeric = Number(value); if (!Number.isSafeInteger(numeric) || numeric < 0)
98
+ throw new TypeError(`${name} must be a non-negative safe integer`); return numeric; }
99
+ function optionalnonnegative(value, name) { return value === undefined ? null : nonnegative(value, name); }
100
+ function validpolicy(value) { if (!policies.has(value))
101
+ throw new TypeError("working-set policy is invalid"); return value; }
102
+ function validtier(value) { if (!tiers.has(value))
103
+ throw new TypeError("working-set tier is invalid"); return value; }
104
+ function validstate(value) { if (!states.has(value))
105
+ throw new TypeError("working-set materialization state is invalid"); return value; }
106
+ function allowedtransition(current, next) { if (next === "failed")
107
+ return current !== "cleaned"; return new Set(["planned:prepared", "prepared:verified", "verified:released", "released:cleaned"]).has(`${current}:${next}`); }
108
+ //# sourceMappingURL=planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../memory/planner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * provider chains rank caller-authorized execution candidates without dispatching remote work.
3
+ */
4
+ /** Creates a stable provider chain over declarative capability reports. */
5
+ export declare function providerchain(input?: {}): Readonly<{
6
+ select(request?: {}): Readonly<{
7
+ version: 1;
8
+ selected: Readonly<{
9
+ id: any;
10
+ priority: any;
11
+ capabilities: readonly any[];
12
+ architecture: any;
13
+ operatingSystem: any;
14
+ networkpolicy: any;
15
+ storagepolicy: any;
16
+ cpu: any;
17
+ memorybytes: any;
18
+ maxmilliseconds: any;
19
+ }>;
20
+ rejected: readonly any[];
21
+ request: Readonly<{
22
+ capabilities: readonly string[];
23
+ preferredids: readonly string[];
24
+ architecture: string;
25
+ operatingSystem: string;
26
+ networkpolicy: string;
27
+ storagepolicy: string;
28
+ mincpu: number;
29
+ minmemorybytes: number;
30
+ minmilliseconds: number;
31
+ }>;
32
+ }>;
33
+ dispatchplan(request?: {}): Readonly<{
34
+ version: 1;
35
+ state: "caller-dispatches";
36
+ provider: Readonly<{
37
+ id: any;
38
+ priority: any;
39
+ capabilities: readonly any[];
40
+ architecture: any;
41
+ operatingSystem: any;
42
+ networkpolicy: any;
43
+ storagepolicy: any;
44
+ cpu: any;
45
+ memorybytes: any;
46
+ maxmilliseconds: any;
47
+ }>;
48
+ request: Readonly<{
49
+ capabilities: readonly string[];
50
+ preferredids: readonly string[];
51
+ architecture: string;
52
+ operatingSystem: string;
53
+ networkpolicy: string;
54
+ storagepolicy: string;
55
+ mincpu: number;
56
+ minmemorybytes: number;
57
+ minmilliseconds: number;
58
+ }>;
59
+ rejected: readonly any[];
60
+ }>;
61
+ providers: () => {
62
+ capabilities: string[];
63
+ id: string;
64
+ priority: number;
65
+ status: string;
66
+ architecture: string;
67
+ operatingSystem: string;
68
+ networkpolicy: string;
69
+ storagepolicy: string;
70
+ cpu: number;
71
+ memorybytes: number;
72
+ maxmilliseconds: number;
73
+ }[];
74
+ }>;
75
+ /** Selects the first eligible provider under stable priority and returns every exclusion reason. */
76
+ export declare function selectprovider(providers: any, request?: {}): Readonly<{
77
+ version: 1;
78
+ selected: Readonly<{
79
+ id: any;
80
+ priority: any;
81
+ capabilities: readonly any[];
82
+ architecture: any;
83
+ operatingSystem: any;
84
+ networkpolicy: any;
85
+ storagepolicy: any;
86
+ cpu: any;
87
+ memorybytes: any;
88
+ maxmilliseconds: any;
89
+ }>;
90
+ rejected: readonly any[];
91
+ request: Readonly<{
92
+ capabilities: readonly string[];
93
+ preferredids: readonly string[];
94
+ architecture: string;
95
+ operatingSystem: string;
96
+ networkpolicy: string;
97
+ storagepolicy: string;
98
+ mincpu: number;
99
+ minmemorybytes: number;
100
+ minmilliseconds: number;
101
+ }>;
102
+ }>;
103
+ /** Produces a verified runner-to-storage handoff record without writing an artifact. */
104
+ export declare function artifacthandoff(input?: {}): Readonly<{
105
+ version: 1;
106
+ key: string;
107
+ sha256: string;
108
+ sizebytes: number;
109
+ providerid: string;
110
+ retention: string;
111
+ state: "caller-transfers";
112
+ }>;
113
+ /** Creates a cancellation intent without claiming that a remote runner has stopped or cleaned up. */
114
+ export declare function cancellationplan(input?: {}): Readonly<{
115
+ version: 1;
116
+ runid: string;
117
+ providerid: string;
118
+ reason: string;
119
+ state: "caller-cancels";
120
+ remotestate: "unknown";
121
+ compensation: "caller-evaluates" | "not-requested";
122
+ }>;
123
+ /** Renders a caller-dispatches plan through an injected forge adapter without sending it. */
124
+ export declare function renderdispatch(plan: any, adapter: any): Promise<any>;
125
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../runners/chain.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,KAAK,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGvC;AAED,oGAAoG;AACpG,wBAAgB,cAAc,CAAC,SAAS,KAAA,EAAE,OAAO,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;GAcrD;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,KAAK,KAAK;;;;;;;;GAMzC;AAED,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,KAAK,KAAK;;;;;;;;GAK1C;AAED,6FAA6F;AAC7F,wBAAsB,cAAc,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,gBAIjD"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * provider chains rank caller-authorized execution candidates without dispatching remote work.
3
+ */
4
+ /** Creates a stable provider chain over declarative capability reports. */
5
+ export function providerchain(input = {}) {
6
+ const providers = normalizeproviders(input.providers);
7
+ return Object.freeze({ select(request = {}) { return selectprovider(providers, request); }, dispatchplan(request = {}) { const selection = selectprovider(providers, request); return Object.freeze({ version: 1, state: "caller-dispatches", provider: selection.selected, request: normalizerequest(request), rejected: selection.rejected }); }, providers: () => providers.map((provider) => ({ ...provider, capabilities: [...provider.capabilities] })) });
8
+ }
9
+ /** Selects the first eligible provider under stable priority and returns every exclusion reason. */
10
+ export function selectprovider(providers, request = {}) {
11
+ const normalized = normalizeproviders(providers);
12
+ const required = normalizerequest(request);
13
+ const rejected = [];
14
+ const accepted = [];
15
+ for (const provider of normalized) {
16
+ const reasons = eligibility(provider, required);
17
+ if (reasons.length)
18
+ rejected.push(Object.freeze({ id: provider.id, reasons: Object.freeze(reasons) }));
19
+ else
20
+ accepted.push(provider);
21
+ }
22
+ if (accepted.length === 0)
23
+ throw chainerror("PROVIDER_CHAIN_UNAVAILABLE", "provider chain has no eligible providers", { request: required, rejected });
24
+ accepted.sort((left, right) => preferenceindex(required.preferredids, left.id) - preferenceindex(required.preferredids, right.id) || left.priority - right.priority || left.id.localeCompare(right.id));
25
+ const selected = accepted[0];
26
+ return Object.freeze({ version: 1, selected: describe(selected), rejected: Object.freeze(rejected), request: required });
27
+ }
28
+ /** Produces a verified runner-to-storage handoff record without writing an artifact. */
29
+ export function artifacthandoff(input = {}) {
30
+ const key = nonempty(input.key, "artifact handoff key");
31
+ const sha256 = digest(input.sha256, "artifact handoff sha256");
32
+ const providerid = nonempty(input.providerid, "artifact handoff providerid");
33
+ const retention = nonempty(input.retention, "artifact handoff retention");
34
+ return Object.freeze({ version: 1, key, sha256, sizebytes: positive(input.sizebytes, "artifact handoff sizebytes"), providerid, retention, state: "caller-transfers" });
35
+ }
36
+ /** Creates a cancellation intent without claiming that a remote runner has stopped or cleaned up. */
37
+ export function cancellationplan(input = {}) {
38
+ const runid = nonempty(input.runid, "provider cancellation runid");
39
+ const providerid = nonempty(input.providerid, "provider cancellation providerid");
40
+ const reason = nonempty(input.reason ?? "caller-requested", "provider cancellation reason");
41
+ return Object.freeze({ version: 1, runid, providerid, reason, state: "caller-cancels", remotestate: "unknown", compensation: input.compensation === true ? "caller-evaluates" : "not-requested" });
42
+ }
43
+ /** Renders a caller-dispatches plan through an injected forge adapter without sending it. */
44
+ export async function renderdispatch(plan, adapter) {
45
+ if (plan?.state !== "caller-dispatches")
46
+ throw new TypeError("provider dispatch plan is invalid");
47
+ if (typeof adapter?.render !== "function")
48
+ throw chainerror("PROVIDER_DISPATCH_RENDER_UNAVAILABLE", "provider dispatch render adapter is required");
49
+ return adapter.render(Object.freeze({ ...plan }));
50
+ }
51
+ function normalizeproviders(input) {
52
+ if (!Array.isArray(input) || input.length === 0)
53
+ throw new TypeError("provider chain providers must be a non-empty array");
54
+ const ids = new Set();
55
+ return Object.freeze(input.map((value, index) => {
56
+ const id = nonempty(value?.id, "provider chain provider id");
57
+ if (ids.has(id))
58
+ throw new TypeError(`provider chain provider id is duplicated: ${id}`);
59
+ ids.add(id);
60
+ const status = String(value.status ?? "available");
61
+ if (!new Set(["available", "busy", "offline", "disabled"]).has(status))
62
+ throw new TypeError(`provider chain provider status is invalid: ${id}`);
63
+ return Object.freeze({ id, priority: nonnegative(value.priority ?? index, "provider chain provider priority"), status, capabilities: Object.freeze(unique(value.capabilities ?? [], "provider chain capability")), architecture: optionalword(value.architecture, "provider chain provider architecture"), operatingSystem: optionalword(value.operatingSystem, "provider chain provider operating system"), networkpolicy: policy(value.networkpolicy ?? "caller", "provider chain network policy"), storagepolicy: policy(value.storagepolicy ?? "caller", "provider chain storage policy"), cpu: nonnegative(value.cpu ?? 0, "provider chain provider cpu"), memorybytes: nonnegative(value.memorybytes ?? 0, "provider chain provider memorybytes"), maxmilliseconds: nonnegative(value.maxmilliseconds ?? 0, "provider chain provider maxmilliseconds") });
64
+ }).sort((left, right) => left.priority - right.priority || left.id.localeCompare(right.id)));
65
+ }
66
+ function normalizerequest(input) { return Object.freeze({ capabilities: Object.freeze(unique(input.capabilities ?? [], "provider chain requested capability")), preferredids: Object.freeze(unique(input.preferredids ?? [], "provider chain preferred id")), architecture: optionalword(input.architecture, "provider chain requested architecture"), operatingSystem: optionalword(input.operatingSystem, "provider chain requested operating system"), networkpolicy: input.networkpolicy === undefined ? null : policy(input.networkpolicy, "provider chain requested network policy"), storagepolicy: input.storagepolicy === undefined ? null : policy(input.storagepolicy, "provider chain requested storage policy"), mincpu: nonnegative(input.mincpu ?? 0, "provider chain minimum cpu"), minmemorybytes: nonnegative(input.minmemorybytes ?? 0, "provider chain minimum memorybytes"), minmilliseconds: nonnegative(input.minmilliseconds ?? 0, "provider chain minimum milliseconds") }); }
67
+ function eligibility(provider, request) { const reasons = []; if (provider.status !== "available")
68
+ reasons.push(`status:${provider.status}`); for (const capability of request.capabilities)
69
+ if (!provider.capabilities.includes(capability))
70
+ reasons.push(`capability:${capability}`); if (request.architecture && provider.architecture !== request.architecture)
71
+ reasons.push("architecture"); if (request.operatingSystem && provider.operatingSystem !== request.operatingSystem)
72
+ reasons.push("operatingSystem"); if (request.networkpolicy && provider.networkpolicy !== request.networkpolicy)
73
+ reasons.push("networkpolicy"); if (request.storagepolicy && provider.storagepolicy !== request.storagepolicy)
74
+ reasons.push("storagepolicy"); if (provider.cpu < request.mincpu)
75
+ reasons.push("cpu"); if (provider.memorybytes < request.minmemorybytes)
76
+ reasons.push("memorybytes"); if (provider.maxmilliseconds < request.minmilliseconds)
77
+ reasons.push("maxmilliseconds"); return reasons; }
78
+ function describe(provider) { return Object.freeze({ id: provider.id, priority: provider.priority, capabilities: Object.freeze([...provider.capabilities]), architecture: provider.architecture, operatingSystem: provider.operatingSystem, networkpolicy: provider.networkpolicy, storagepolicy: provider.storagepolicy, cpu: provider.cpu, memorybytes: provider.memorybytes, maxmilliseconds: provider.maxmilliseconds }); }
79
+ function unique(input, name) { if (!Array.isArray(input))
80
+ throw new TypeError(`${name} values must be an array`); return [...new Set(input.map((value) => nonempty(value, name)))].sort(); }
81
+ function nonempty(value, name) { const output = String(value ?? ""); if (!output)
82
+ throw new TypeError(`${name} is required`); return output; }
83
+ function optionalword(value, name) { if (value === undefined || value === null || value === "")
84
+ return null; return nonempty(value, name); }
85
+ function policy(value, name) { const output = String(value); if (!new Set(["caller", "restricted", "isolated", "none"]).has(output))
86
+ throw new TypeError(`${name} is invalid`); return output; }
87
+ function preferenceindex(preferredids, id) { const index = preferredids.indexOf(id); return index === -1 ? Number.MAX_SAFE_INTEGER : index; }
88
+ function nonnegative(value, name) { const numeric = Number(value); if (!Number.isSafeInteger(numeric) || numeric < 0)
89
+ throw new TypeError(`${name} must be a non-negative safe integer`); return numeric; }
90
+ function positive(value, name) { const numeric = nonnegative(value, name); if (numeric < 1)
91
+ throw new TypeError(`${name} must be positive`); return numeric; }
92
+ function digest(value, name) { const output = String(value ?? "").toLowerCase(); if (!/^[a-f0-9]{64}$/.test(output))
93
+ throw new TypeError(`${name} is invalid`); return output; }
94
+ function chainerror(code, message, detail) { const error = new Error(message); error.code = code; error.detail = detail; return error; }
95
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../runners/chain.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ export function robotsrules(text = "") { const directives = []; const groups = [
43
43
  /** Fetches and caches a site's robots policy without failing the caller's scrape. */
44
44
  export async function fetchRobotsTxt(siteUrl, options = {}) { const base = siteUrl.replace(/\/$/, ""); const robotsUrl = `${base}/robots.txt`; const cached = cache.get(robotsUrl); if (cached && Date.now() - cached.fetchedAt < cachettl)
45
45
  return cached.robots; try {
46
- const response = await fetch(robotsUrl, { headers: { "User-Agent": options.userAgent ?? "Saddle/1.8.13" }, signal: AbortSignal.timeout(options.timeout ?? 5000) });
46
+ const response = await fetch(robotsUrl, { headers: { "User-Agent": options.userAgent ?? "Saddle/1.8.15" }, signal: AbortSignal.timeout(options.timeout ?? 5000) });
47
47
  const robots = response.ok ? robotsrules(await response.text()) : robotsrules();
48
48
  cache.set(robotsUrl, { robots, fetchedAt: Date.now() });
49
49
  return robots;
@@ -7,5 +7,6 @@ export * from "./checksum.js";
7
7
  export * from "./chunked.js";
8
8
  export * from "./content.js";
9
9
  export * from "./memory.js";
10
+ export * from "./pool.js";
10
11
  export * from "./sync.js";
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
@@ -7,5 +7,6 @@ export * from "./checksum.js";
7
7
  export * from "./chunked.js";
8
8
  export * from "./content.js";
9
9
  export * from "./memory.js";
10
+ export * from "./pool.js";
10
11
  export * from "./sync.js";
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
@@ -7,8 +7,8 @@ import { storageadapter } from "./adapter.js";
7
7
  /** Creates a transport-neutral in-memory storage adapter with optional capacity limits. */
8
8
  export function memorystorage(options = {}) {
9
9
  const values = new Map();
10
- const maxbytes = Number(options.maxbytes ?? Number.POSITIVE_INFINITY);
11
- if (!Number.isFinite(maxbytes) || maxbytes < 0)
10
+ const maxbytes = options.maxbytes === undefined ? Number.POSITIVE_INFINITY : Number(options.maxbytes);
11
+ if ((!Number.isFinite(maxbytes) && maxbytes !== Number.POSITIVE_INFINITY) || maxbytes < 0)
12
12
  throw new TypeError("memory storage maxbytes is invalid");
13
13
  let usedbytes = 0;
14
14
  function manifest(key, data, input = {}) { return artifactmanifest({ key, sizebytes: data.byteLength, sha256: sha256(data), contenttype: input.contenttype ?? "application/octet-stream", createdat: input.createdat ?? Date.now(), metadata: input.metadata }); }
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../storage/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../storage/memory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,2FAA2F;AAC3F,MAAM,UAAU,aAAa,CAAC,OAAO,GAAG,EAAE;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtG,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IACrJ,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,SAAS,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,IAAI,OAAO,gBAAgB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,0BAA0B,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAClQ,SAAS,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,SAAS,cAAc,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;QAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAAC,KAAK,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC,CAAC,CAAC;IAEtM,OAAO,cAAc,CAAC;QACpB,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChb,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YAAC,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAC;YAAC,MAAM,KAAK,CAAC;QAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtM,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACnK,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7I,KAAK,KAAK,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC"}