@wenathlan/saddle 2.0.151 → 2.0.152
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/README.md +3 -3
- package/biome.jsonc +12 -5
- package/dist/App.d.ts +3 -0
- package/dist/App.js +50 -0
- package/dist/Sol/Sol.d.ts +3 -0
- package/dist/Sol/Sol.js +46 -0
- package/dist/Sol/agentbrowser/agentbrowser.d.ts +9 -0
- package/dist/Sol/agentbrowser/agentbrowser.js +121 -0
- package/dist/Sol/architecture/architecture.d.ts +9 -0
- package/dist/Sol/architecture/architecture.js +93 -0
- package/dist/Sol/compute/compute.d.ts +9 -0
- package/dist/Sol/compute/compute.js +22 -0
- package/dist/Sol/console/console.d.ts +15 -0
- package/dist/Sol/console/console.js +292 -0
- package/dist/Sol/dashboard/dashboard.d.ts +10 -0
- package/dist/Sol/dashboard/dashboard.js +181 -0
- package/dist/Sol/docs/docs.d.ts +9 -0
- package/dist/Sol/docs/docs.js +28 -0
- package/dist/Sol/home/home.d.ts +35 -0
- package/dist/Sol/home/home.js +239 -0
- package/dist/Sol/integrations/integrations.d.ts +9 -0
- package/dist/Sol/integrations/integrations.js +83 -0
- package/dist/Sol/intro/intro.d.ts +7 -0
- package/dist/Sol/intro/intro.js +102 -0
- package/dist/Sol/login/login.d.ts +16 -0
- package/dist/Sol/login/login.js +49 -0
- package/dist/Sol/notfound/notfound.d.ts +9 -0
- package/dist/Sol/notfound/notfound.js +15 -0
- package/dist/Sol/onboarding/onboarding.d.ts +25 -0
- package/dist/Sol/onboarding/onboarding.js +60 -0
- package/dist/Sol/playground/playground.d.ts +9 -0
- package/dist/Sol/playground/playground.js +127 -0
- package/dist/Sol/register/register.d.ts +16 -0
- package/dist/Sol/register/register.js +193 -0
- package/dist/Sol/shell/Shell.d.ts +124 -0
- package/dist/Sol/shell/Shell.js +335 -0
- package/dist/Sol/wingets/ComputeBootladder.d.ts +6 -0
- package/dist/Sol/wingets/ComputeBootladder.js +71 -0
- package/dist/Sol/wingets/ComputeModalitycatalog.d.ts +7 -0
- package/dist/Sol/wingets/ComputeModalitycatalog.js +71 -0
- package/dist/Sol/wingets/ConsoleApibadge.d.ts +7 -0
- package/dist/Sol/wingets/ConsoleApibadge.js +5 -0
- package/dist/Sol/wingets/ConsoleEdgelaw.d.ts +6 -0
- package/dist/Sol/wingets/ConsoleEdgelaw.js +36 -0
- package/dist/Sol/wingets/ConsoleEventstimeline.d.ts +19 -0
- package/dist/Sol/wingets/ConsoleEventstimeline.js +12 -0
- package/dist/Sol/wingets/ConsoleSnapshotcontrols.d.ts +8 -0
- package/dist/Sol/wingets/ConsoleSnapshotcontrols.js +8 -0
- package/dist/Sol/wingets/ConsoleSpecpanel.d.ts +21 -0
- package/dist/Sol/wingets/ConsoleSpecpanel.js +75 -0
- package/dist/Sol/wingets/ConsoleTerminal.d.ts +22 -0
- package/dist/Sol/wingets/ConsoleTerminal.js +77 -0
- package/dist/Sol/wingets/DashboardAccountpanel.d.ts +18 -0
- package/dist/Sol/wingets/DashboardAccountpanel.js +65 -0
- package/dist/Sol/wingets/DashboardAdminpanel.d.ts +6 -0
- package/dist/Sol/wingets/DashboardAdminpanel.js +90 -0
- package/dist/Sol/wingets/DashboardAuditlog.d.ts +8 -0
- package/dist/Sol/wingets/DashboardAuditlog.js +50 -0
- package/dist/Sol/wingets/DashboardCreatesandboxform.d.ts +10 -0
- package/dist/Sol/wingets/DashboardCreatesandboxform.js +71 -0
- package/dist/Sol/wingets/DashboardEventstimeline.d.ts +8 -0
- package/dist/Sol/wingets/DashboardEventstimeline.js +83 -0
- package/dist/Sol/wingets/DashboardGlobalsandboxestable.d.ts +8 -0
- package/dist/Sol/wingets/DashboardGlobalsandboxestable.js +57 -0
- package/dist/Sol/wingets/DashboardMeshnodestable.d.ts +8 -0
- package/dist/Sol/wingets/DashboardMeshnodestable.js +103 -0
- package/dist/Sol/wingets/DashboardSandboxlist.d.ts +10 -0
- package/dist/Sol/wingets/DashboardSandboxlist.js +163 -0
- package/dist/Sol/wingets/DashboardUserstable.d.ts +8 -0
- package/dist/Sol/wingets/DashboardUserstable.js +78 -0
- package/dist/Sol/wingets/HomeEntrygate.d.ts +23 -0
- package/dist/Sol/wingets/HomeEntrygate.js +73 -0
- package/dist/Sol/wingets/HomeMetricstrip.d.ts +9 -0
- package/dist/Sol/wingets/HomeMetricstrip.js +4 -0
- package/dist/Sol/wingets/HomeRuntimediagram.d.ts +1 -0
- package/dist/Sol/wingets/HomeRuntimediagram.js +22 -0
- package/dist/Sol/wingets/LoginForm.d.ts +19 -0
- package/dist/Sol/wingets/LoginForm.js +141 -0
- package/dist/Sol/wingets/RegisterPasswordconfirm.d.ts +13 -0
- package/dist/Sol/wingets/RegisterPasswordconfirm.js +16 -0
- package/dist/Sol/wingets/RegisterPasswordmeter.d.ts +19 -0
- package/dist/Sol/wingets/RegisterPasswordmeter.js +65 -0
- package/dist/Sol/wingets/RegisterUsernamerules.d.ts +11 -0
- package/dist/Sol/wingets/RegisterUsernamerules.js +16 -0
- package/dist/Sol/wingets/index.d.ts +39 -0
- package/dist/Sol/wingets/index.js +39 -0
- package/dist/alternatives.d.ts +508 -0
- package/dist/alternatives.js +950 -0
- package/dist/api.d.ts +154 -0
- package/dist/api.js +174 -0
- package/dist/auth.d.ts +268 -0
- package/dist/auth.js +476 -0
- package/dist/automation.d.ts +425 -0
- package/dist/automation.js +566 -0
- package/dist/browser.d.ts +561 -0
- package/dist/browser.js +1058 -0
- package/dist/capacitor.config.d.ts +45 -0
- package/dist/capacitor.config.js +48 -0
- package/dist/catalog.d.ts +43 -0
- package/dist/catalog.js +44 -0
- package/dist/cli.d.ts +16 -0
- package/dist/cli.js +168 -0
- package/dist/communication.d.ts +181 -0
- package/dist/communication.js +376 -0
- package/dist/compute.d.ts +1160 -0
- package/dist/compute.js +2272 -0
- package/dist/dashboardlib.d.ts +58 -0
- package/dist/dashboardlib.js +161 -0
- package/dist/db.d.ts +569 -0
- package/dist/db.js +1080 -0
- package/dist/distribution.d.ts +528 -0
- package/dist/distribution.js +810 -0
- package/dist/drizzle.config.d.ts +20 -0
- package/dist/drizzle.config.js +18 -0
- package/dist/edgelandes.d.ts +70 -0
- package/dist/edgelandes.host.d.ts +26 -0
- package/dist/edgelandes.host.js +1089 -0
- package/dist/edgelandes.inproc.d.ts +27 -0
- package/dist/edgelandes.inproc.js +952 -0
- package/dist/edgelandes.js +1133 -0
- package/dist/edgelandes.ninety.d.ts +31 -0
- package/dist/edgelandes.ninety.js +174 -0
- package/dist/edgelandes.virtual.d.ts +25 -0
- package/dist/edgelandes.virtual.js +629 -0
- package/dist/edgeplane.d.ts +114 -0
- package/dist/edgeplane.js +305 -0
- package/dist/examplelocaljob.d.ts +1 -0
- package/{docs/example-localjob.ts → dist/examplelocaljob.js} +0 -1
- package/dist/execution.d.ts +529 -0
- package/dist/execution.js +760 -0
- package/dist/family.d.ts +16 -0
- package/dist/family.js +42 -0
- package/dist/familyurl.d.ts +21 -0
- package/dist/familyurl.js +24 -0
- package/dist/format.d.ts +18 -0
- package/dist/format.js +59 -0
- package/dist/foundation.d.ts +172 -0
- package/dist/foundation.js +312 -0
- package/dist/index.d.ts +735 -0
- package/dist/index.js +1020 -0
- package/dist/integration.d.ts +235 -0
- package/dist/integration.js +228 -0
- package/dist/intelligence.d.ts +93 -0
- package/dist/intelligence.js +144 -0
- package/dist/isolation.d.ts +128 -0
- package/dist/isolation.js +95 -0
- package/dist/labels.d.ts +665 -0
- package/dist/labels.js +751 -0
- package/dist/localauth.d.ts +127 -0
- package/dist/localauth.js +413 -0
- package/dist/media.d.ts +343 -0
- package/dist/media.js +985 -0
- package/dist/mesh.d.ts +177 -0
- package/dist/mesh.js +468 -0
- package/dist/modalityregistry.d.ts +109 -0
- package/dist/modalityregistry.js +1386 -0
- package/dist/modes.d.ts +358 -0
- package/dist/modes.js +133 -0
- package/dist/onboardingstate.d.ts +79 -0
- package/dist/onboardingstate.js +282 -0
- package/dist/orchestrator.d.ts +1338 -0
- package/dist/orchestrator.js +4310 -0
- package/dist/packager/targetcli.js +4 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.js +14 -0
- package/dist/performance.d.ts +415 -0
- package/dist/performance.js +826 -0
- package/dist/quantum.d.ts +809 -0
- package/dist/quantum.js +2072 -0
- package/dist/render.d.ts +380 -0
- package/dist/render.js +1072 -0
- package/dist/runall.d.ts +2 -0
- package/dist/runall.js +39 -0
- package/dist/runtimeprobe.d.ts +4 -0
- package/dist/runtimeprobe.js +8 -0
- package/dist/sandbox.d.ts +355 -0
- package/dist/sandbox.js +1721 -0
- package/dist/sandboxenvprofile.d.ts +29 -0
- package/dist/sandboxenvprofile.js +89 -0
- package/dist/sandboxprofile.d.ts +137 -0
- package/dist/sandboxprofile.js +241 -0
- package/dist/sandboxqueue.d.ts +108 -0
- package/dist/sandboxqueue.js +201 -0
- package/dist/sandboxquota.d.ts +121 -0
- package/dist/sandboxquota.js +236 -0
- package/dist/scheduler.d.ts +595 -0
- package/dist/scheduler.js +1258 -0
- package/dist/scriptlanes.d.ts +182 -0
- package/dist/scriptlanes.js +660 -0
- package/dist/scripts.buildengine.d.ts +1 -0
- package/dist/scripts.buildengine.js +39 -0
- package/dist/scripts.securitygate.d.ts +1 -0
- package/dist/scripts.securitygate.js +68 -0
- package/dist/scripts.validateflatnative.d.ts +1 -0
- package/dist/scripts.validateflatnative.js +72 -0
- package/dist/security.d.ts +500 -0
- package/dist/security.js +1169 -0
- package/dist/seedcatalog.d.ts +13 -0
- package/dist/seedcatalog.js +46 -0
- package/dist/server.d.ts +20 -0
- package/dist/server.js +53 -0
- package/dist/speccatalog.d.ts +31 -0
- package/dist/speccatalog.js +163 -0
- package/dist/tiers.d.ts +1001 -0
- package/dist/tiers.js +2169 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.js +5 -0
- package/dist/vaulthandoff.d.ts +141 -0
- package/dist/vaulthandoff.js +444 -0
- package/dist/virtual.d.ts +640 -0
- package/dist/virtual.js +1284 -0
- package/dist/virtualcpu.d.ts +315 -0
- package/dist/virtualcpu.js +1180 -0
- package/dist/virtualgpu.d.ts +344 -0
- package/dist/virtualgpu.js +1000 -0
- package/dist/virtualization.d.ts +606 -0
- package/dist/virtualization.js +1186 -0
- package/dist/virtualmemory.d.ts +817 -0
- package/dist/virtualmemory.js +1795 -0
- package/dist/vite.config.d.ts +3 -0
- package/dist/vite.config.js +43 -0
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +25 -0
- package/dist/webserver.d.ts +166 -0
- package/dist/webserver.js +2226 -0
- package/dist/workloadlaw.d.ts +133 -0
- package/dist/workloadlaw.js +193 -0
- package/docs/artifactavailability.md +2 -2
- package/docs/{containerplatforms-2.1.0.md → containerplatforms.2.1.0.md} +1 -1
- package/docs/{documentmap-1.8.12.md → documentmap.1.8.12.md} +1 -1
- package/docs/ninety.modalities.md +108 -0
- package/docs/planning.ninety.md +391 -0
- package/docs/{releasenotes-1.8.13.md → releasenotes.1.8.13.md} +2 -2
- package/docs/{releasenotes-1.8.14.md → releasenotes.1.8.14.md} +1 -1
- package/docs/{repo-synthesis-1.8.16.md → repo.synthesis.1.8.16.md} +1 -1
- package/docs/{todo-1.8.15.md → todo.1.8.15.md} +1 -1
- package/docs/{todo-1.8.16.md → todo.1.8.16.md} +5 -5
- package/docs/todo.md +2 -2
- package/docs/workloadlaw.md +104 -0
- package/index.ts +1 -1
- package/manifest.json +1 -1
- package/modalityregistry.ts +1371 -34
- package/orchestrator.ts +1 -1
- package/package.json +73 -33
- package/docs/CONVERSA.txt +0 -1523
- package/docs/architecture-1.8.19.png +0 -0
- package/docs/assets/architecture.svg +0 -45
- package/docs/assets/saddle-browser-trace.webp +0 -0
- package/docs/assets/saddle-hero-bridge.webp +0 -0
- package/docs/assets/saddle-mark.webp +0 -0
- package/docs/assets/saddle-runtime-map.webp +0 -0
- package/docs/assets/saddlemark.svg +0 -13
- package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
- /package/docs/{architecture-1.8.19.md → architecture.1.8.19.md} +0 -0
- /package/docs/{architecture-1.8.19.mmd → architecture.1.8.19.mmd} +0 -0
- /package/docs/{artifactresearch-1.8.9.md → artifactresearch.1.8.9.md} +0 -0
- /package/docs/{batches-1816-1820.md → batches.1816.to.1820.md} +0 -0
- /package/docs/{brancharchive-2026-08-18.md → brancharchive.2026.08.18.md} +0 -0
- /package/docs/{containerplatforms-1.8.17.md → containerplatforms.1.8.17.md} +0 -0
- /package/docs/{e2ugh-engine.md → e2ugh.engine.md} +0 -0
- /package/docs/{flatbuildresearch-1.8.11.md → flatbuildresearch.1.8.11.md} +0 -0
- /package/docs/{licenseaudit-1.8.12.md → licenseaudit.1.8.12.md} +0 -0
- /package/docs/{mobileconversionresearch-1.8.10.md → mobileconversionresearch.1.8.10.md} +0 -0
- /package/docs/{native-wrappers.md → native.wrappers.md} +0 -0
- /package/docs/{nativeidentityresearch-1.8.11.md → nativeidentityresearch.1.8.11.md} +0 -0
- /package/docs/{releasenotes-1.8.12.md → releasenotes.1.8.12.md} +0 -0
- /package/docs/{releasenotes-1.8.15.md → releasenotes.1.8.15.md} +0 -0
- /package/docs/{releasenotes-1.8.16.md → releasenotes.1.8.16.md} +0 -0
- /package/docs/{releasenotes-1.8.17.md → releasenotes.1.8.17.md} +0 -0
- /package/docs/{releasenotes-1.8.18.md → releasenotes.1.8.18.md} +0 -0
- /package/docs/{releasenotes-1.8.19.md → releasenotes.1.8.19.md} +0 -0
- /package/docs/{reorganization-1.8.8.md → reorganization.1.8.8.md} +0 -0
- /package/docs/{reorganization-1.8.9.md → reorganization.1.8.9.md} +0 -0
- /package/docs/{repo-analysis-1.8.21.json → repo.analysis.1.8.21.json} +0 -0
- /package/docs/{repo-candidates-1.8.21.jsonl → repo.candidates.1.8.21.jsonl} +0 -0
- /package/docs/{repo-research-1.8.16.md → repo.research.1.8.16.md} +0 -0
- /package/docs/{repo-research-1.8.21.md → repo.research.1.8.21.md} +0 -0
- /package/docs/{repo-selected-1.8.21.json → repo.selected.1.8.21.json} +0 -0
- /package/docs/{repo-synthesis-1.8.21.md → repo.synthesis.1.8.21.md} +0 -0
- /package/docs/{research-1.8.18-isolation.md → research.1.8.18.isolation.md} +0 -0
- /package/docs/{research-1.8.19-virtual-browser.md → research.1.8.19.virtual.browser.md} +0 -0
- /package/docs/{scanningresearch-1.8.11.md → scanningresearch.1.8.11.md} +0 -0
- /package/docs/{securityaudit-1.8.7.md → securityaudit.1.8.7.md} +0 -0
- /package/docs/{securityreferences-1.8.11.md → securityreferences.1.8.11.md} +0 -0
- /package/docs/{securityresearch-1.8.11.md → securityresearch.1.8.11.md} +0 -0
- /package/docs/{signingresearch-1.8.12.md → signingresearch.1.8.12.md} +0 -0
- /package/docs/{tauri-glib-risk-1.8.11.md → tauri.glib.risk.1.8.11.md} +0 -0
- /package/docs/{todo-1.8.18.md → todo.1.8.18.md} +0 -0
- /package/docs/{todo-1.8.19.md → todo.1.8.19.md} +0 -0
- /package/docs/{toolchainresearch-1.8.9.md → toolchainresearch.1.8.9.md} +0 -0
- /package/docs/{web-duplicatecleanup.md → web.duplicatecleanup.md} +0 -0
- /package/docs/{web-ideas.md → web.ideas.md} +0 -0
- /package/docs/{workflowimprovements-2026-08-19.md → workflowimprovements.2026.08.19.md} +0 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* integration.ts — replaceable forge, application, MCP and transport adapters.
|
|
3
|
+
*
|
|
4
|
+
* This file is the v2.0.0 grand-merge consolidation of the former nested
|
|
5
|
+
* folders of the repository (adapters) into the single
|
|
6
|
+
* root-level domain file of the saddle family standard: one optimized
|
|
7
|
+
* TypeScript file per correlated domain, ordinal sections, JSDoc on every
|
|
8
|
+
* block, intra-domain imports dissolved, cross-domain imports rewritten to
|
|
9
|
+
* ./<domain>.js. Every capability of every source file is preserved here;
|
|
10
|
+
* the pure re-export barrels (none in this domain) folded their surface into this file directly.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* transport centralizes timeout retry and jitter without choosing a host or vendor.
|
|
14
|
+
*/
|
|
15
|
+
export declare function transport(options?: {}): {
|
|
16
|
+
request: (url: any, init?: {}) => Promise<any>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* socket adapter keeps realtime optional and accepts a caller supplied websocket constructor.
|
|
20
|
+
*/
|
|
21
|
+
export declare function socketadapter(options?: {}): {
|
|
22
|
+
connect(url: any, protocols: any): {
|
|
23
|
+
socket: any;
|
|
24
|
+
send(value: any): void;
|
|
25
|
+
close(code: any, reason: any): void;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* github adapter uses caller supplied credentials and base url configuration.
|
|
30
|
+
*/
|
|
31
|
+
export declare function githubadapter(options?: {}): {
|
|
32
|
+
health(): Promise<{
|
|
33
|
+
ok: any;
|
|
34
|
+
status: any;
|
|
35
|
+
}>;
|
|
36
|
+
dispatch(owner: any, repository: any, workflow: any, input?: {}): Promise<{
|
|
37
|
+
accepted: boolean;
|
|
38
|
+
status: any;
|
|
39
|
+
}>;
|
|
40
|
+
run(owner: any, repository: any, runid: any): Promise<any>;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* gitlab adapter keeps project addressing and token ownership outside the package.
|
|
44
|
+
*/
|
|
45
|
+
export declare function gitlabadapter(options?: {}): {
|
|
46
|
+
dispatch(spec: any): Promise<{
|
|
47
|
+
accepted: any;
|
|
48
|
+
status: any;
|
|
49
|
+
body: any;
|
|
50
|
+
}>;
|
|
51
|
+
kind: any;
|
|
52
|
+
health(path?: string): Promise<{
|
|
53
|
+
ok: any;
|
|
54
|
+
status: any;
|
|
55
|
+
}>;
|
|
56
|
+
upload(spec: any): Promise<{
|
|
57
|
+
accepted: any;
|
|
58
|
+
status: any;
|
|
59
|
+
}>;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* forge adapter defines the common dispatch and artifact surface for compatible forges.
|
|
63
|
+
*/
|
|
64
|
+
export declare function forgeadapter(options?: {}): {
|
|
65
|
+
kind: any;
|
|
66
|
+
health(path?: string): Promise<{
|
|
67
|
+
ok: any;
|
|
68
|
+
status: any;
|
|
69
|
+
}>;
|
|
70
|
+
dispatch(spec: any): Promise<{
|
|
71
|
+
accepted: any;
|
|
72
|
+
status: any;
|
|
73
|
+
body: any;
|
|
74
|
+
}>;
|
|
75
|
+
upload(spec: any): Promise<{
|
|
76
|
+
accepted: any;
|
|
77
|
+
status: any;
|
|
78
|
+
}>;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* forgejo and gitea can reuse the open forge contract with a caller supplied base url.
|
|
82
|
+
*/
|
|
83
|
+
export declare function forgejoadapter(options?: {}): {
|
|
84
|
+
kind: any;
|
|
85
|
+
health(path?: string): Promise<{
|
|
86
|
+
ok: any;
|
|
87
|
+
status: any;
|
|
88
|
+
}>;
|
|
89
|
+
dispatch(spec: any): Promise<{
|
|
90
|
+
accepted: any;
|
|
91
|
+
status: any;
|
|
92
|
+
body: any;
|
|
93
|
+
}>;
|
|
94
|
+
upload(spec: any): Promise<{
|
|
95
|
+
accepted: any;
|
|
96
|
+
status: any;
|
|
97
|
+
}>;
|
|
98
|
+
};
|
|
99
|
+
export declare function giteaadapter(options?: {}): {
|
|
100
|
+
kind: any;
|
|
101
|
+
health(path?: string): Promise<{
|
|
102
|
+
ok: any;
|
|
103
|
+
status: any;
|
|
104
|
+
}>;
|
|
105
|
+
dispatch(spec: any): Promise<{
|
|
106
|
+
accepted: any;
|
|
107
|
+
status: any;
|
|
108
|
+
body: any;
|
|
109
|
+
}>;
|
|
110
|
+
upload(spec: any): Promise<{
|
|
111
|
+
accepted: any;
|
|
112
|
+
status: any;
|
|
113
|
+
}>;
|
|
114
|
+
};
|
|
115
|
+
export declare function codebergadapter(options?: {}): {
|
|
116
|
+
kind: any;
|
|
117
|
+
health(path?: string): Promise<{
|
|
118
|
+
ok: any;
|
|
119
|
+
status: any;
|
|
120
|
+
}>;
|
|
121
|
+
dispatch(spec: any): Promise<{
|
|
122
|
+
accepted: any;
|
|
123
|
+
status: any;
|
|
124
|
+
body: any;
|
|
125
|
+
}>;
|
|
126
|
+
upload(spec: any): Promise<{
|
|
127
|
+
accepted: any;
|
|
128
|
+
status: any;
|
|
129
|
+
}>;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* hugging face storage remains an explicit adapter with caller supplied repository path.
|
|
133
|
+
*/
|
|
134
|
+
export declare function huggingfaceadapter(options?: {}): {
|
|
135
|
+
kind: any;
|
|
136
|
+
health(path?: string): Promise<{
|
|
137
|
+
ok: any;
|
|
138
|
+
status: any;
|
|
139
|
+
}>;
|
|
140
|
+
dispatch(spec: any): Promise<{
|
|
141
|
+
accepted: any;
|
|
142
|
+
status: any;
|
|
143
|
+
body: any;
|
|
144
|
+
}>;
|
|
145
|
+
upload(spec: any): Promise<{
|
|
146
|
+
accepted: any;
|
|
147
|
+
status: any;
|
|
148
|
+
}>;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* app registry keeps installation, scope and revocation state outside platform credentials.
|
|
152
|
+
*/
|
|
153
|
+
export declare const appstatuses: readonly string[];
|
|
154
|
+
/** Creates a caller-owned app installation registry with explicit scopes. */
|
|
155
|
+
export declare function appregistry(options?: {}): {
|
|
156
|
+
install: (input?: {}) => {
|
|
157
|
+
scopes: unknown[];
|
|
158
|
+
id: string;
|
|
159
|
+
name: string;
|
|
160
|
+
status: any;
|
|
161
|
+
installedat: number;
|
|
162
|
+
updatedat: number;
|
|
163
|
+
metadata: any;
|
|
164
|
+
};
|
|
165
|
+
suspend: (id: any) => any;
|
|
166
|
+
revoke: (id: any) => any;
|
|
167
|
+
restore: (id: any) => any;
|
|
168
|
+
authorize: (id: any, required?: any[]) => {
|
|
169
|
+
allowed: boolean;
|
|
170
|
+
reason: string;
|
|
171
|
+
missing?: undefined;
|
|
172
|
+
appid?: undefined;
|
|
173
|
+
} | {
|
|
174
|
+
reason?: undefined;
|
|
175
|
+
allowed: boolean;
|
|
176
|
+
missing: any[];
|
|
177
|
+
appid: any;
|
|
178
|
+
};
|
|
179
|
+
get: (id: any) => any;
|
|
180
|
+
list: () => any[];
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* mcp transport keeps JSON RPC framing separate from the tool server.
|
|
184
|
+
*/
|
|
185
|
+
/** Creates JSONL and HTTP handlers for the transport agnostic MCP server. */
|
|
186
|
+
export declare function mcptransport(server: any): {
|
|
187
|
+
handleline(line: any): Promise<string>;
|
|
188
|
+
stream(lines: any): AsyncGenerator<any, void, unknown>;
|
|
189
|
+
handlehttp(request: any): Promise<Response>;
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* mcp server implements a small JSON RPC tool surface and remains transport agnostic.
|
|
193
|
+
*/
|
|
194
|
+
export declare function mcpserver(options?: {}): {
|
|
195
|
+
listtools(): {
|
|
196
|
+
name: string;
|
|
197
|
+
description: string;
|
|
198
|
+
}[];
|
|
199
|
+
handle(request: any): Promise<{
|
|
200
|
+
jsonrpc: string;
|
|
201
|
+
id: any;
|
|
202
|
+
result: {
|
|
203
|
+
tools: any;
|
|
204
|
+
content?: undefined;
|
|
205
|
+
};
|
|
206
|
+
error?: undefined;
|
|
207
|
+
} | {
|
|
208
|
+
jsonrpc: string;
|
|
209
|
+
id: any;
|
|
210
|
+
result: {
|
|
211
|
+
tools?: undefined;
|
|
212
|
+
content: {
|
|
213
|
+
type: string;
|
|
214
|
+
text: string;
|
|
215
|
+
}[];
|
|
216
|
+
};
|
|
217
|
+
error?: undefined;
|
|
218
|
+
} | {
|
|
219
|
+
result?: undefined;
|
|
220
|
+
jsonrpc: string;
|
|
221
|
+
id: any;
|
|
222
|
+
error: {
|
|
223
|
+
code: number;
|
|
224
|
+
message: any;
|
|
225
|
+
};
|
|
226
|
+
}>;
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* browser MCP tools expose snapshots and actions only through an injected browser adapter.
|
|
230
|
+
*/
|
|
231
|
+
/** Creates optional browser tools for an MCP server without selecting Playwright or another vendor. */
|
|
232
|
+
export declare function browsertools(browser: any): {
|
|
233
|
+
browser_snapshot: (input?: {}) => Promise<any>;
|
|
234
|
+
browser_action: (input?: {}) => Promise<any>;
|
|
235
|
+
};
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* integration.ts — replaceable forge, application, MCP and transport adapters.
|
|
3
|
+
*
|
|
4
|
+
* This file is the v2.0.0 grand-merge consolidation of the former nested
|
|
5
|
+
* folders of the repository (adapters) into the single
|
|
6
|
+
* root-level domain file of the saddle family standard: one optimized
|
|
7
|
+
* TypeScript file per correlated domain, ordinal sections, JSDoc on every
|
|
8
|
+
* block, intra-domain imports dissolved, cross-domain imports rewritten to
|
|
9
|
+
* ./<domain>.js. Every capability of every source file is preserved here;
|
|
10
|
+
* the pure re-export barrels (none in this domain) folded their surface into this file directly.
|
|
11
|
+
*/
|
|
12
|
+
import { jsondecode, jsonencode } from "./communication.js";
|
|
13
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
14
|
+
/* Section 1: adapters/transport.ts — transport centralizes timeout retry and jitter without choosing a host or vendor. */
|
|
15
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
16
|
+
/**
|
|
17
|
+
* transport centralizes timeout retry and jitter without choosing a host or vendor.
|
|
18
|
+
*/
|
|
19
|
+
export function transport(options = {}) {
|
|
20
|
+
const fetcher = options.fetcher ?? fetch;
|
|
21
|
+
const attempts = options.attempts ?? 3;
|
|
22
|
+
const timeout = options.timeout ?? 30000;
|
|
23
|
+
const retrycodes = new Set(options.retrycodes ?? [408, 409, 429, 500, 502, 503, 504]);
|
|
24
|
+
async function request(url, init = {}) {
|
|
25
|
+
let last;
|
|
26
|
+
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
27
|
+
const controller = new AbortController();
|
|
28
|
+
const timer = setTimeout(() => controller.abort(), timeout);
|
|
29
|
+
try {
|
|
30
|
+
const response = await fetcher(url, { ...init, signal: init.signal ?? controller.signal });
|
|
31
|
+
if (response.ok || !retrycodes.has(response.status) || attempt === attempts - 1)
|
|
32
|
+
return response;
|
|
33
|
+
last = new Error(`request failed with ${response.status}`);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
last = error;
|
|
37
|
+
if (attempt === attempts - 1)
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
}
|
|
43
|
+
await delay(backoff(options, attempt));
|
|
44
|
+
}
|
|
45
|
+
throw last ?? new Error("request failed");
|
|
46
|
+
}
|
|
47
|
+
return { request };
|
|
48
|
+
}
|
|
49
|
+
function backoff(options, attempt) { const base = options.backoff ?? 250; const jitter = options.jitter ?? 0; return base * 2 ** attempt + Math.floor(Math.random() * jitter); }
|
|
50
|
+
function delay(milliseconds) { return new Promise((resolve) => setTimeout(resolve, milliseconds)); }
|
|
51
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
52
|
+
/* Section 2: adapters/socket.ts — socket adapter keeps realtime optional and accepts a caller supplied websocket constructor. */
|
|
53
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
54
|
+
/**
|
|
55
|
+
* socket adapter keeps realtime optional and accepts a caller supplied websocket constructor.
|
|
56
|
+
*/
|
|
57
|
+
export function socketadapter(options = {}) {
|
|
58
|
+
const websocket = options.websocket ?? globalThis.WebSocket;
|
|
59
|
+
if (!websocket)
|
|
60
|
+
throw new Error("websocket implementation is required");
|
|
61
|
+
return {
|
|
62
|
+
connect(url, protocols) {
|
|
63
|
+
if (!url)
|
|
64
|
+
throw new TypeError("socket url is required");
|
|
65
|
+
const socket = new websocket(url, protocols);
|
|
66
|
+
return { socket, send(value) { socket.send(typeof value === "string" ? value : JSON.stringify(value)); }, close(code, reason) { socket.close(code, reason); } };
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
71
|
+
/* Section 3: adapters/github.ts — github adapter uses caller supplied credentials and base url configuration. */
|
|
72
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
73
|
+
/**
|
|
74
|
+
* github adapter uses caller supplied credentials and base url configuration.
|
|
75
|
+
*/
|
|
76
|
+
export function githubadapter(options = {}) {
|
|
77
|
+
if (!options.baseurl || typeof options.token !== "function")
|
|
78
|
+
throw new TypeError("github adapter requires baseurl and token function");
|
|
79
|
+
const client = transport({ fetcher: options.fetcher, attempts: options.attempts, timeout: options.timeout });
|
|
80
|
+
async function call(path, init = {}) {
|
|
81
|
+
const token = await options.token();
|
|
82
|
+
const headers = { accept: "application/vnd.github+json", authorization: `Bearer ${token}`, "x-github-api-version": options.apiversion ?? "2022-11-28", ...(init.headers ?? {}) };
|
|
83
|
+
return client.request(new URL(path, options.baseurl), { ...init, headers });
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
async health() { const response = await call("/rate_limit"); return { ok: response.ok, status: response.status }; },
|
|
87
|
+
async dispatch(owner, repository, workflow, input = {}) { const response = await call(`/repos/${owner}/${repository}/actions/workflows/${workflow}/dispatches`, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ ref: input.ref ?? "main", inputs: input.inputs ?? {} }) }); return { accepted: response.status === 204, status: response.status }; },
|
|
88
|
+
async run(owner, repository, runid) { const response = await call(`/repos/${owner}/${repository}/actions/runs/${runid}`); return response.json(); }
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
92
|
+
/* Section 4: adapters/gitlab.ts — gitlab adapter keeps project addressing and token ownership outside the package. */
|
|
93
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
94
|
+
/**
|
|
95
|
+
* gitlab adapter keeps project addressing and token ownership outside the package.
|
|
96
|
+
*/
|
|
97
|
+
export function gitlabadapter(options = {}) {
|
|
98
|
+
const project = encodeURIComponent(options.project ?? "");
|
|
99
|
+
const base = forgeadapter({ ...options, kind: "gitlab" });
|
|
100
|
+
return { ...base, async dispatch(spec) { return base.dispatch({ ...spec, path: spec.path ?? `/api/v4/projects/${project}/pipeline` }); } };
|
|
101
|
+
}
|
|
102
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
103
|
+
/* Section 5: adapters/forge.ts — forge adapter defines the common dispatch and artifact surface for compatible forges. */
|
|
104
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
105
|
+
/**
|
|
106
|
+
* forge adapter defines the common dispatch and artifact surface for compatible forges.
|
|
107
|
+
*/
|
|
108
|
+
export function forgeadapter(options = {}) {
|
|
109
|
+
if (!options.baseurl || typeof options.token !== "function")
|
|
110
|
+
throw new TypeError("forge adapter requires baseurl and token function");
|
|
111
|
+
const client = transport({ fetcher: options.fetcher, attempts: options.attempts, timeout: options.timeout });
|
|
112
|
+
async function call(path, init = {}) { const token = await options.token(); return client.request(new URL(path, options.baseurl), { ...init, headers: { authorization: `Bearer ${token}`, accept: "application/json", ...(init.headers ?? {}) } }); }
|
|
113
|
+
return {
|
|
114
|
+
kind: options.kind ?? "forge",
|
|
115
|
+
async health(path = "/") { const response = await call(path); return { ok: response.ok, status: response.status }; },
|
|
116
|
+
async dispatch(spec) { if (!spec?.path || !spec.ref)
|
|
117
|
+
throw new TypeError("forge dispatch requires path and ref"); const response = await call(spec.path, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ ref: spec.ref, inputs: spec.inputs ?? {} }) }); return { accepted: response.ok, status: response.status, body: response.json ? await response.json() : undefined }; },
|
|
118
|
+
async upload(spec) { if (!spec?.path || !spec.data)
|
|
119
|
+
throw new TypeError("forge upload requires path and data"); const response = await call(spec.path, { method: "PUT", headers: { "content-type": spec.contenttype ?? "application/octet-stream" }, body: spec.data }); return { accepted: response.ok, status: response.status }; }
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
123
|
+
/* Section 6: adapters/forgejo.ts — forgejo and gitea can reuse the open forge contract with a caller supplied base url. */
|
|
124
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
125
|
+
/**
|
|
126
|
+
* forgejo and gitea can reuse the open forge contract with a caller supplied base url.
|
|
127
|
+
*/
|
|
128
|
+
export function forgejoadapter(options = {}) { return forgeadapter({ ...options, kind: "forgejo" }); }
|
|
129
|
+
export function giteaadapter(options = {}) { return forgeadapter({ ...options, kind: "gitea" }); }
|
|
130
|
+
export function codebergadapter(options = {}) { return forgeadapter({ ...options, kind: "codeberg" }); }
|
|
131
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
132
|
+
/* Section 7: adapters/huggingface.ts — hugging face storage remains an explicit adapter with caller supplied repository path. */
|
|
133
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
134
|
+
/**
|
|
135
|
+
* hugging face storage remains an explicit adapter with caller supplied repository path.
|
|
136
|
+
*/
|
|
137
|
+
export function huggingfaceadapter(options = {}) { return forgeadapter({ ...options, kind: "huggingface" }); }
|
|
138
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
139
|
+
/* Section 8: adapters/apps.ts — app registry keeps installation, scope and revocation state outside platform credentials. */
|
|
140
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
141
|
+
/**
|
|
142
|
+
* app registry keeps installation, scope and revocation state outside platform credentials.
|
|
143
|
+
*/
|
|
144
|
+
export const appstatuses = Object.freeze(["installed", "suspended", "revoked"]);
|
|
145
|
+
/** Creates a caller-owned app installation registry with explicit scopes. */
|
|
146
|
+
export function appregistry(options = {}) {
|
|
147
|
+
const values = new Map(options.apps ? options.apps.map((app) => [app.id, normalize(app)]) : []);
|
|
148
|
+
function install(input = {}) { if (!input.id || !input.name)
|
|
149
|
+
throw new TypeError("app installation requires id and name"); const app = normalize({ ...input, status: "installed", installedat: input.installedat ?? Date.now() }); values.set(app.id, app); return { ...app, scopes: [...app.scopes] }; }
|
|
150
|
+
function suspend(id) { return transition(id, "suspended"); }
|
|
151
|
+
function revoke(id) { return transition(id, "revoked"); }
|
|
152
|
+
function restore(id) { return transition(id, "installed"); }
|
|
153
|
+
function authorize(id, required = []) { const app = requireapp(id); if (app.status !== "installed")
|
|
154
|
+
return { allowed: false, reason: `app-${app.status}` }; const missing = required.filter((scope) => !app.scopes.includes(scope)); return { allowed: missing.length === 0, missing, appid: app.id }; }
|
|
155
|
+
function get(id) { const app = values.get(String(id)); return app ? { ...app, scopes: [...app.scopes] } : null; }
|
|
156
|
+
function list() { return [...values.values()].map((app) => ({ ...app, scopes: [...app.scopes] })); }
|
|
157
|
+
return { install, suspend, revoke, restore, authorize, get, list };
|
|
158
|
+
function requireapp(id) { const app = values.get(String(id)); if (!app)
|
|
159
|
+
throw new Error(`app not found: ${id}`); return app; }
|
|
160
|
+
function transition(id, status) { const app = requireapp(id); if (!appstatuses.includes(status))
|
|
161
|
+
throw new TypeError(`unsupported app status: ${status}`); app.status = status; app.updatedat = Date.now(); return get(id); }
|
|
162
|
+
}
|
|
163
|
+
function normalize(input) { return { id: String(input.id), name: String(input.name), status: input.status ?? "installed", scopes: [...new Set((input.scopes ?? []).map(String))], installedat: Number(input.installedat ?? Date.now()), updatedat: Number(input.updatedat ?? Date.now()), metadata: { ...(input.metadata ?? {}) } }; }
|
|
164
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
165
|
+
/* Section 9: adapters/mcptransport.ts — mcp transport keeps JSON RPC framing separate from the tool server. */
|
|
166
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
167
|
+
/**
|
|
168
|
+
* mcp transport keeps JSON RPC framing separate from the tool server.
|
|
169
|
+
*/
|
|
170
|
+
/** Creates JSONL and HTTP handlers for the transport agnostic MCP server. */
|
|
171
|
+
export function mcptransport(server) {
|
|
172
|
+
if (typeof server?.handle !== "function")
|
|
173
|
+
throw new TypeError("mcp transport requires server");
|
|
174
|
+
return {
|
|
175
|
+
async handleline(line) { const request = jsondecode(line); return jsonencode(await server.handle(request)); },
|
|
176
|
+
async *stream(lines) { for await (const line of lines)
|
|
177
|
+
if (String(line).trim())
|
|
178
|
+
yield await this.handleline(line); },
|
|
179
|
+
async handlehttp(request) { const body = await request.text(); const response = await server.handle(jsondecode(body)); return new Response(jsonencode(response), { status: 200, headers: { "content-type": "application/json" } }); }
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
183
|
+
/* Section 10: adapters/mcpserver.ts — mcp server implements a small JSON RPC tool surface and remains transport agnostic. */
|
|
184
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
185
|
+
/**
|
|
186
|
+
* mcp server implements a small JSON RPC tool surface and remains transport agnostic.
|
|
187
|
+
*/
|
|
188
|
+
export function mcpserver(options = {}) {
|
|
189
|
+
const tools = {
|
|
190
|
+
serialize: async (input) => jsonencode(input.value),
|
|
191
|
+
...(options.browser ? browsertools(options.browser) : {}),
|
|
192
|
+
...(options.tools ?? {})
|
|
193
|
+
};
|
|
194
|
+
return {
|
|
195
|
+
listtools() { return Object.keys(tools).map((name) => ({ name, description: `saddle ${name} tool` })); },
|
|
196
|
+
async handle(request) {
|
|
197
|
+
if (request.method === "tools/list")
|
|
198
|
+
return { jsonrpc: "2.0", id: request.id, result: { tools: this.listtools() } };
|
|
199
|
+
if (request.method === "tools/call") {
|
|
200
|
+
const handler = tools[request.params?.name];
|
|
201
|
+
if (!handler)
|
|
202
|
+
return { jsonrpc: "2.0", id: request.id, error: { code: -32601, message: "tool not found" } };
|
|
203
|
+
try {
|
|
204
|
+
return { jsonrpc: "2.0", id: request.id, result: { content: [{ type: "text", text: JSON.stringify(await handler(request.params.arguments ?? {})) }] } };
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
return { jsonrpc: "2.0", id: request.id, error: { code: -32000, message: error.message } };
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return { jsonrpc: "2.0", id: request.id, error: { code: -32601, message: "method not found" } };
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
215
|
+
/* Section 11: adapters/mcpbrowser.ts — browser MCP tools expose snapshots and actions only through an injected browser adapter. */
|
|
216
|
+
/* ════════════════════════════════════════════════════════════════════ */
|
|
217
|
+
/**
|
|
218
|
+
* browser MCP tools expose snapshots and actions only through an injected browser adapter.
|
|
219
|
+
*/
|
|
220
|
+
/** Creates optional browser tools for an MCP server without selecting Playwright or another vendor. */
|
|
221
|
+
export function browsertools(browser) {
|
|
222
|
+
if (typeof browser?.snapshot !== "function" || typeof browser?.action !== "function")
|
|
223
|
+
throw new TypeError("browser MCP tools require snapshot and action");
|
|
224
|
+
return {
|
|
225
|
+
browser_snapshot: async (input = {}) => browser.snapshot(input),
|
|
226
|
+
browser_action: async (input = {}) => browser.action(input)
|
|
227
|
+
};
|
|
228
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* intelligence.ts — AI planning, provenance, retrieval and observable metrics.
|
|
3
|
+
*
|
|
4
|
+
* This file is the v2.0.0 grand-merge consolidation of the former nested
|
|
5
|
+
* folders of the repository (ai) into the single
|
|
6
|
+
* root-level domain file of the saddle family standard: one optimized
|
|
7
|
+
* TypeScript file per correlated domain, ordinal sections, JSDoc on every
|
|
8
|
+
* block, intra-domain imports dissolved, cross-domain imports rewritten to
|
|
9
|
+
* ./<domain>.js. Every capability of every source file is preserved here;
|
|
10
|
+
* the pure re-export barrels (none in this domain) folded their surface into this file directly.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* context provenance links retrieved chunks to source, query and transformation metadata.
|
|
14
|
+
*/
|
|
15
|
+
/** Creates a serializable retrieval record for an agent context result. */
|
|
16
|
+
export declare function provenance(input?: {}): {
|
|
17
|
+
version: number;
|
|
18
|
+
source: any;
|
|
19
|
+
sourceurl: any;
|
|
20
|
+
documentid: any;
|
|
21
|
+
query: any;
|
|
22
|
+
retrievedat: number;
|
|
23
|
+
chunks: any;
|
|
24
|
+
metadata: any;
|
|
25
|
+
};
|
|
26
|
+
/** Merges provenance records while deduplicating chunk identifiers. */
|
|
27
|
+
export declare function mergeprovenance(records?: any[]): {
|
|
28
|
+
version: number;
|
|
29
|
+
sources: any[];
|
|
30
|
+
chunks: any[];
|
|
31
|
+
mergedat: number;
|
|
32
|
+
};
|
|
33
|
+
export declare function estimatetokens(text: any, model?: string): number;
|
|
34
|
+
export declare function fitscontext(text: any, context: any, model?: string): boolean;
|
|
35
|
+
export declare function tokenbudget(text: any, options?: {}): {
|
|
36
|
+
tokens: number;
|
|
37
|
+
context: any;
|
|
38
|
+
fits: boolean;
|
|
39
|
+
remaining: number;
|
|
40
|
+
};
|
|
41
|
+
export declare function settokenratios(values?: {}): {
|
|
42
|
+
default: 4;
|
|
43
|
+
gpt: 3.5;
|
|
44
|
+
claude: 3.2;
|
|
45
|
+
gemini: 3.5;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* markdown chunking preserves heading paths and uses paragraph boundaries before hard cuts.
|
|
49
|
+
*/
|
|
50
|
+
export declare function chunkmarkdown(markdown: any, options?: {}): any[];
|
|
51
|
+
/**
|
|
52
|
+
* rag manifests connect chunks to embedding stores without forcing a vendor client.
|
|
53
|
+
*/
|
|
54
|
+
export declare function ragmanifest(input?: {}): Promise<{
|
|
55
|
+
documentid: string;
|
|
56
|
+
source: any;
|
|
57
|
+
chunks: any[];
|
|
58
|
+
embeddingmodel: any;
|
|
59
|
+
embeddingdimensions: any;
|
|
60
|
+
createdat: number;
|
|
61
|
+
}>;
|
|
62
|
+
export declare function vectorrecord(chunk: any, vector: any, options?: {}): {
|
|
63
|
+
id: string;
|
|
64
|
+
vector: any;
|
|
65
|
+
metadata: {
|
|
66
|
+
headingpath: any;
|
|
67
|
+
contenthash: any;
|
|
68
|
+
sourceurl: any;
|
|
69
|
+
tokencount: any;
|
|
70
|
+
contenttype: any;
|
|
71
|
+
language: any;
|
|
72
|
+
embeddingmodel: any;
|
|
73
|
+
embeddingdimensions: any;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* llms text generation creates compact absolute links for agent consumption.
|
|
78
|
+
*/
|
|
79
|
+
export declare function llmstxt(options?: {}): string;
|
|
80
|
+
export declare function llmsfull(options?: {}): any;
|
|
81
|
+
/**
|
|
82
|
+
* metrics keeps low-cardinality counters and durations without requiring a telemetry vendor.
|
|
83
|
+
*/
|
|
84
|
+
/** Creates an in-memory metric collector with bounded names and labels. */
|
|
85
|
+
export declare function metricstore(options?: {}): {
|
|
86
|
+
count: (name: any, amount?: number, labels?: {}) => any;
|
|
87
|
+
observe: (name: any, milliseconds: any, labels?: {}) => number;
|
|
88
|
+
snapshot: () => {
|
|
89
|
+
counters: any;
|
|
90
|
+
durations: any;
|
|
91
|
+
};
|
|
92
|
+
reset: () => void;
|
|
93
|
+
};
|