@clampd/sdk 0.10.7 → 0.12.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/errors.d.ts +29 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +38 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/taxonomy-data.d.ts +9 -0
- package/dist/generated/taxonomy-data.d.ts.map +1 -0
- package/dist/generated/taxonomy-data.js +104 -0
- package/dist/generated/taxonomy-data.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/register.d.ts +70 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +91 -0
- package/dist/register.js.map +1 -0
- package/dist/taxonomy.d.ts +192 -0
- package/dist/taxonomy.d.ts.map +1 -0
- package/dist/taxonomy.js +63 -0
- package/dist/taxonomy.js.map +1 -0
- package/package.json +1 -1
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error classes exposed by the Clampd SDK that aren't tied to a specific
|
|
3
|
+
* integration module.
|
|
4
|
+
*
|
|
5
|
+
* Notes:
|
|
6
|
+
* - `ClampdBlockedError` lives in `interceptor.ts` and is re-exported
|
|
7
|
+
* from `index.ts`. It belongs to the proxy path and stays there.
|
|
8
|
+
* - This module is for errors that are raised outside of a proxy call
|
|
9
|
+
* — classification errors, config errors, etc.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Thrown when a tool classification fails runtime validation.
|
|
13
|
+
*
|
|
14
|
+
* The primary defence against bad classifications is the
|
|
15
|
+
* `ToolClassification` discriminated union in `taxonomy.ts` — the tsc
|
|
16
|
+
* compiler rejects invalid triples at build time. This error exists for
|
|
17
|
+
* the case where a caller deliberately bypasses the type system (e.g.
|
|
18
|
+
* `as any`, JSON-over-the-wire, dynamic registration) and we still want
|
|
19
|
+
* to reject unknown (category, subcategory, operation) combinations at
|
|
20
|
+
* runtime rather than silently letting them land in the backend as
|
|
21
|
+
* unclassified.
|
|
22
|
+
*/
|
|
23
|
+
export declare class ClampdClassificationError extends Error {
|
|
24
|
+
readonly category: string;
|
|
25
|
+
readonly subcategory: string;
|
|
26
|
+
readonly operation: string;
|
|
27
|
+
constructor(category: string, subcategory: string, operation: string);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAYrE"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error classes exposed by the Clampd SDK that aren't tied to a specific
|
|
3
|
+
* integration module.
|
|
4
|
+
*
|
|
5
|
+
* Notes:
|
|
6
|
+
* - `ClampdBlockedError` lives in `interceptor.ts` and is re-exported
|
|
7
|
+
* from `index.ts`. It belongs to the proxy path and stays there.
|
|
8
|
+
* - This module is for errors that are raised outside of a proxy call
|
|
9
|
+
* — classification errors, config errors, etc.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Thrown when a tool classification fails runtime validation.
|
|
13
|
+
*
|
|
14
|
+
* The primary defence against bad classifications is the
|
|
15
|
+
* `ToolClassification` discriminated union in `taxonomy.ts` — the tsc
|
|
16
|
+
* compiler rejects invalid triples at build time. This error exists for
|
|
17
|
+
* the case where a caller deliberately bypasses the type system (e.g.
|
|
18
|
+
* `as any`, JSON-over-the-wire, dynamic registration) and we still want
|
|
19
|
+
* to reject unknown (category, subcategory, operation) combinations at
|
|
20
|
+
* runtime rather than silently letting them land in the backend as
|
|
21
|
+
* unclassified.
|
|
22
|
+
*/
|
|
23
|
+
export class ClampdClassificationError extends Error {
|
|
24
|
+
category;
|
|
25
|
+
subcategory;
|
|
26
|
+
operation;
|
|
27
|
+
constructor(category, subcategory, operation) {
|
|
28
|
+
super(`Invalid tool classification: { category: "${category}", subcategory: "${subcategory}", operation: "${operation}" } ` +
|
|
29
|
+
"is not present in the taxonomy. " +
|
|
30
|
+
"Check services/crates/ag-common/src/categories.toml for valid triples, " +
|
|
31
|
+
"or use the ToolClassification discriminated union so tsc enforces this at compile time.");
|
|
32
|
+
this.name = "ClampdClassificationError";
|
|
33
|
+
this.category = category;
|
|
34
|
+
this.subcategory = subcategory;
|
|
35
|
+
this.operation = operation;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClC,QAAQ,CAAS;IACjB,WAAW,CAAS;IACpB,SAAS,CAAS;IAElC,YAAY,QAAgB,EAAE,WAAmB,EAAE,SAAiB;QAClE,KAAK,CACH,6CAA6C,QAAQ,oBAAoB,WAAW,kBAAkB,SAAS,MAAM;YACnH,kCAAkC;YAClC,yEAAyE;YACzE,yFAAyF,CAC5F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface SubcategorySpec {
|
|
2
|
+
readonly operations: readonly string[];
|
|
3
|
+
}
|
|
4
|
+
export interface CategorySpec {
|
|
5
|
+
readonly description: string;
|
|
6
|
+
readonly subcategories: Record<string, SubcategorySpec>;
|
|
7
|
+
}
|
|
8
|
+
export declare const TAXONOMY: Record<string, CategorySpec>;
|
|
9
|
+
//# sourceMappingURL=taxonomy-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy-data.d.ts","sourceRoot":"","sources":["../../src/generated/taxonomy-data.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACzD;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAiGjD,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// AUTO-GENERATED FROM services/crates/ag-common/src/categories.toml
|
|
2
|
+
// DO NOT EDIT BY HAND — run `cargo build -p ag-common` to regenerate.
|
|
3
|
+
// Runtime taxonomy table for the TypeScript SDK. The discriminated
|
|
4
|
+
// union `ToolClassification` stays hand-written in `taxonomy.ts` — only
|
|
5
|
+
// this runtime data is regenerated.
|
|
6
|
+
export const TAXONOMY = {
|
|
7
|
+
agent: {
|
|
8
|
+
description: "Agent delegation, A2A handoff, spawn",
|
|
9
|
+
subcategories: {
|
|
10
|
+
a2a: { operations: ["read", "write"] },
|
|
11
|
+
config: { operations: ["read", "write"] },
|
|
12
|
+
delegate: { operations: ["write"] },
|
|
13
|
+
spawn: { operations: ["write"] },
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
auth: {
|
|
17
|
+
description: "Secrets, credentials, tokens, OAuth flows",
|
|
18
|
+
subcategories: {
|
|
19
|
+
credential: { operations: ["read", "write", "delete"] },
|
|
20
|
+
oauth: { operations: ["read", "write"] },
|
|
21
|
+
secret: { operations: ["read", "write", "delete"] },
|
|
22
|
+
token: { operations: ["read", "write", "delete", "refresh"] },
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
browser: {
|
|
26
|
+
description: "Browser automation, page navigation, scraping",
|
|
27
|
+
subcategories: {
|
|
28
|
+
page: { operations: ["read", "write"] },
|
|
29
|
+
screenshot: { operations: ["read"] },
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
cloud: {
|
|
33
|
+
description: "Cloud infra, deploys, IAM, object storage",
|
|
34
|
+
subcategories: {
|
|
35
|
+
deploy: { operations: ["read", "write", "destructive"] },
|
|
36
|
+
iam: { operations: ["read", "write", "delete"] },
|
|
37
|
+
infra: { operations: ["read", "write", "destructive"] },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
comms: {
|
|
41
|
+
description: "Email, chat, SMS, notifications — anything agent says to humans or other systems",
|
|
42
|
+
subcategories: {
|
|
43
|
+
email: { operations: ["read", "send", "delete"] },
|
|
44
|
+
messaging: { operations: ["read", "send", "delete"] },
|
|
45
|
+
notification: { operations: ["send"] },
|
|
46
|
+
slack: { operations: ["read", "send", "delete"] },
|
|
47
|
+
sms: { operations: ["read", "send"] },
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
db: {
|
|
51
|
+
description: "Database queries, mutations, schema operations",
|
|
52
|
+
subcategories: {
|
|
53
|
+
mutate: { operations: ["write", "delete", "destructive"] },
|
|
54
|
+
query: { operations: ["read"] },
|
|
55
|
+
schema: { operations: ["read", "destructive"] },
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
exec: {
|
|
59
|
+
description: "Shell commands, code evaluation, function invocation",
|
|
60
|
+
subcategories: {
|
|
61
|
+
code: { operations: ["run"] },
|
|
62
|
+
function: { operations: ["run"] },
|
|
63
|
+
shell: { operations: ["run", "destructive"] },
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
fs: {
|
|
67
|
+
description: "Filesystem, blob / object storage",
|
|
68
|
+
subcategories: {
|
|
69
|
+
blob: { operations: ["read", "write", "delete"] },
|
|
70
|
+
file: { operations: ["read", "write", "delete"] },
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
llm: {
|
|
74
|
+
description: "LLM prompt / completion, embeddings",
|
|
75
|
+
subcategories: {
|
|
76
|
+
embedding: { operations: ["read", "write"] },
|
|
77
|
+
input: { operations: ["write"] },
|
|
78
|
+
output: { operations: ["read"] },
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
net: {
|
|
82
|
+
description: "HTTP, webhooks, raw-socket, DNS",
|
|
83
|
+
subcategories: {
|
|
84
|
+
dns: { operations: ["read"] },
|
|
85
|
+
http: { operations: ["read", "write"] },
|
|
86
|
+
socket: { operations: ["read", "write"] },
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
payment: {
|
|
90
|
+
description: "Payments, billing, refunds, financial transactions",
|
|
91
|
+
subcategories: {
|
|
92
|
+
billing: { operations: ["read", "write"] },
|
|
93
|
+
invoice: { operations: ["read", "write"] },
|
|
94
|
+
transaction: { operations: ["read", "write", "destructive"] },
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
scm: {
|
|
98
|
+
description: "Git / VCS — push, commit, branch management",
|
|
99
|
+
subcategories: {
|
|
100
|
+
git: { operations: ["read", "write", "delete"] },
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=taxonomy-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy-data.js","sourceRoot":"","sources":["../../src/generated/taxonomy-data.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ import { type OpenAITool } from "./interceptor.js";
|
|
|
22
22
|
import { delegationHeaders } from "./delegation.js";
|
|
23
23
|
import { scanForSchemaInjection } from "./schema-injection.js";
|
|
24
24
|
import { init, _reset, type GuardOptions, type WrapOptions } from "./config.js";
|
|
25
|
+
import { registerTool as _registerTool } from "./register.js";
|
|
25
26
|
export { ClampdBlockedError, type OpenAITool } from "./interceptor.js";
|
|
26
27
|
export { delegationHeaders } from "./delegation.js";
|
|
27
28
|
export { scanForSchemaInjection, type SchemaInjectionWarning } from "./schema-injection.js";
|
|
@@ -30,6 +31,9 @@ export type { ScopeTokenClaims } from "./tool-verify.js";
|
|
|
30
31
|
export { ClampdClient, type ClampdClientOptions } from "./client.js";
|
|
31
32
|
export { makeAgentJwt } from "./auth.js";
|
|
32
33
|
export type { ProxyResponse, ScanResponse, ScanOutputResponse } from "./client.js";
|
|
34
|
+
export { registerTool, type RegisterToolOptions } from "./register.js";
|
|
35
|
+
export { TAXONOMY, validateClassification, computeScope, type ToolClassification, type CategorySpec, type SubcategorySpec, } from "./taxonomy.js";
|
|
36
|
+
export { ClampdClassificationError } from "./errors.js";
|
|
33
37
|
declare function guard<TArgs extends unknown[], TReturn>(fn: (...args: TArgs) => Promise<TReturn>, opts: GuardOptions): (...args: TArgs) => Promise<TReturn>;
|
|
34
38
|
declare function tools(toolDefs: OpenAITool[], opts: WrapOptions): OpenAITool[];
|
|
35
39
|
type AnyFunction = (...args: any[]) => Promise<unknown>;
|
|
@@ -95,6 +99,7 @@ declare const clampd: {
|
|
|
95
99
|
adk: typeof adk;
|
|
96
100
|
vercelAI: typeof vercelAI;
|
|
97
101
|
agent: typeof agent;
|
|
102
|
+
registerTool: typeof _registerTool;
|
|
98
103
|
delegationHeaders: typeof delegationHeaders;
|
|
99
104
|
scanForSchemaInjection: typeof scanForSchemaInjection;
|
|
100
105
|
_reset: typeof _reset;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAiC,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAa,IAAI,EAAE,MAAM,EAAmB,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -26,6 +26,7 @@ import { guardOpenAIStream, guardAnthropicStream } from "./stream-guard.js";
|
|
|
26
26
|
import { setScopeToken, withScopeToken } from "./tool-verify.js";
|
|
27
27
|
import { getClient, init, _reset, sortedStringify } from "./config.js";
|
|
28
28
|
import { inspectResponse, schemaInjectionPreScan, extractOpenAIToolNames, extractAnthropicToolNames, scanInputOpenAI, scanInputAnthropic, scanOutputContent, guardToolCallWithDelegation } from "./guardrails.js";
|
|
29
|
+
import { registerTool as _registerTool } from "./register.js";
|
|
29
30
|
// ── Public API ──────────────────────────────────────────────────────
|
|
30
31
|
export { ClampdBlockedError } from "./interceptor.js";
|
|
31
32
|
export { delegationHeaders } from "./delegation.js";
|
|
@@ -36,6 +37,10 @@ export { verifyScopeToken, requireScope, getCurrentScopeToken, ScopeVerification
|
|
|
36
37
|
// Most users should use the default export (clampd.openai(), clampd.guard(), etc.).
|
|
37
38
|
export { ClampdClient } from "./client.js";
|
|
38
39
|
export { makeAgentJwt } from "./auth.js";
|
|
40
|
+
// ── Explicit tool registration ──────────────────────────────────────
|
|
41
|
+
export { registerTool } from "./register.js";
|
|
42
|
+
export { TAXONOMY, validateClassification, computeScope, } from "./taxonomy.js";
|
|
43
|
+
export { ClampdClassificationError } from "./errors.js";
|
|
39
44
|
/** Recursively freeze an object and all nested objects/arrays. */
|
|
40
45
|
function deepFreeze(obj) {
|
|
41
46
|
Object.freeze(obj);
|
|
@@ -507,6 +512,6 @@ function vercelAI(toolDefs, opts) {
|
|
|
507
512
|
function agent(agentId, fn) {
|
|
508
513
|
return withDelegation(agentId, fn);
|
|
509
514
|
}
|
|
510
|
-
const clampd = { init, guard, tools, openai, anthropic, adk, vercelAI, agent, delegationHeaders, scanForSchemaInjection, _reset };
|
|
515
|
+
const clampd = { init, guard, tools, openai, anthropic, adk, vercelAI, agent, registerTool: _registerTool, delegationHeaders, scanForSchemaInjection, _reset };
|
|
511
516
|
export default clampd;
|
|
512
517
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAuC,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAClN,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAA+B,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGhH,uEAAuE;AACvE,oEAAoE;AACpE,oFAAoF;AACpF,OAAO,EAAE,YAAY,EAA4B,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,uEAAuE;AACvE,OAAO,EAAE,YAAY,EAA4B,MAAM,eAAe,CAAC;AACvE,OAAO,EACL,QAAQ,EACR,sBAAsB,EACtB,YAAY,GAIb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExD,kEAAkE;AAClE,SAAS,UAAU,CAAC,GAA4B;IAC9C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrE,UAAU,CAAC,GAA8B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;AACH,CAAC;AAED,qEAAqE;AAErE,SAAS,KAAK,CACZ,EAAwC,EACxC,IAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,aAAa,EAAE,mBAAmB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAExG,sDAAsD;IACtD,MAAM,SAAS,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,OAAO,KAAK,EAAE,GAAG,IAAW,EAAoB,EAAE;QAChD,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5G,CAAC,CAAE,IAAI,CAAC,CAAC,CAA6B;gBACtC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAEb,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,WAAW,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;YAC3D,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,WAAW,CAAC,WAAW,GAAG;oBACxB,gBAAgB,EAAE,UAAU,CAAC,KAAK;oBAClC,mBAAmB,EAAE,UAAU,CAAC,OAAO;iBACxC,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;gBAC5F,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC3B,UAAU,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjB,iDAAiD;oBACjD,IAAI,QAAQ,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;wBAClC,iCAAiC;oBACnC,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,kBAAkB;oBAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,kBAAkB,CAAC;wBAC1C,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG;wBACpD,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE;qBAChF,CAAC,CAAC;YACL,CAAC;YAED,uFAAuF;YACvF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzE,UAAU,CAAC,IAAI,CAAC,CAAC,CAA4B,CAAC,CAAC;YACjD,CAAC;YAED,uDAAuD;YACvD,iEAAiE;YACjE,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjC,IAAI,mBAAmB,EAAE,CAAC;oBACxB,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACnF,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACf,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,kCAAkC;gBAC7D,OAAO,cAAc,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,qEAAqE;AAErE,SAAS,KAAK,CACZ,QAAsB,EACtB,IAAiB;IAEjB,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEvF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvC,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAEhD,MAAM,OAAO,GAAG,KAAK,EAAE,IAA6B,EAAoB,EAAE;YACxE,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBACnD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;gBACnC,MAAM,WAAW,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;gBACzD,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,WAAW,CAAC,WAAW,GAAG;wBACxB,gBAAgB,EAAE,UAAU,CAAC,KAAK;wBAClC,mBAAmB,EAAE,UAAU,CAAC,OAAO;qBACxC,CAAC;gBACJ,CAAC;gBAED,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;oBAC3E,UAAU,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,QAAQ,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;4BAClC,iCAAiC;wBACnC,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;wBACpC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,kBAAkB;wBAAE,MAAM,CAAC,CAAC;oBAC7C,IAAI,CAAC,QAAQ;wBAAE,MAAM,IAAI,kBAAkB,CAAC;4BAC1C,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG;4BACpD,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE;yBAChF,CAAC,CAAC;gBACL,CAAC;gBAED,gFAAgF;gBAChF,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEjB,IAAI,UAAU,EAAE,CAAC;oBACf,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC;AAiCD,qEAAqE;AAErE,SAAS,MAAM,CACb,MAAS,EACT,IAAiB;IAEjB,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACvF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEpF,MAAM,aAAa,GAAG,KAAK,EAAE,GAAG,IAAe,EAAoB,EAAE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAwC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAExD,kBAAkB;QAClB,6EAA6E;QAC7E,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,kCAAkC;YAClC,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACrB,sBAAsB,CAAC,MAAM,CAAC,QAA0C,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,QAA0C,EAAE,QAAQ,CAAC,CAAC;YACnG,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;YAE7C,0EAA0E;YAC1E,oFAAoF;YACpF,MAAM,QAAQ,GAAI,MAAM,EAAE,KAA+B,EAAE,MAAM,CAAC;YAClE,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAQ,MAAiC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE,CAAC;gBACzG,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;oBAC/B,OAAO,iBAAiB,CAAC,MAAgC,EAAE,YAAY,EAAE;wBACvE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;wBAC3B,SAAS;wBACT,QAAQ;wBACR,eAAe,EAAE,gBAAgB;qBAClC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,kCAAkC;QAClC,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrB,sBAAsB,CAAC,MAAM,CAAC,QAA0C,CAAC,CAAC;QAC5E,CAAC;QAED,wBAAwB;QACxB,IAAI,SAAS,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YAClC,MAAM,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,QAA0C,EAAE,QAAQ,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,IAAI,CAAuB,CAAC;QAErE,yBAAyB;QACzB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACxD,IAAI,OAAO;gBAAE,MAAM,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,MAAM,EAAE,aAAa,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YAClF,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5E,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3C,oCAAoC;YACpC,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACnE,MAAM,OAAO,GAAI,MAAM,EAAE,KAAoD;oBAC3E,EAAE,IAAI,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAE,CAAsC,CAAC,QAAQ,EAAE,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtH,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,EAAE,GAAI,OAAiD,CAAC,QAAQ,CAAC;oBACvE,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,IAAI,eAAe,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;oBACrG,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC/E,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;wBAC7B,MAAM,IAAI,kBAAkB,CAAC;4BAC3B,UAAU,EAAE,qBAAqB;4BACjC,OAAO,EAAE,KAAK;4BACd,UAAU,EAAE,IAAI;4BAChB,aAAa,EAAE,qCAAqC,EAAE,CAAC,QAAQ,CAAC,IAAI,cAAc,QAAQ,SAAS,WAAW,EAAE;4BAChH,UAAU,EAAE,CAAC;4BACb,eAAe,EAAE,EAAE;4BACnB,aAAa,EAAE,EAAE;yBAClB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,QAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,GAAG,OAAO,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ;oBAClD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACnC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAAC,CAAC;YAEtD,MAAM,2BAA2B,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACzI,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,8DAA8D;IAC9D,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;oBAC5B,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY;wBACpC,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;4BAC/B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE;gCACvC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY;oCACpC,IAAI,QAAQ,KAAK,QAAQ;wCAAE,OAAO,aAAa,CAAC;oCAChD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;gCACzD,CAAC;6BACF,CAAC,CAAC;wBACL,CAAC;wBACD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;oBACzD,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,qEAAqE;AAErE,SAAS,SAAS,CAChB,MAAS,EACT,IAAiB;IAEjB,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACvF,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,aAAa,GAAG,KAAK,EAAE,GAAG,IAAe,EAAoB,EAAE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAwC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAE3D,kBAAkB;QAClB,kFAAkF;QAClF,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,kCAAkC;YAClC,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACrB,sBAAsB,CAAC,MAAM,CAAC,QAA0C,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,QAA0C,EAAE,QAAQ,CAAC,CAAC;YACtG,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;YAE7C,0EAA0E;YAC1E,MAAM,QAAQ,GAAI,MAAM,EAAE,KAA+B,EAAE,MAAM,CAAC;YAClE,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAQ,MAAiC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE,CAAC;gBACzG,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;oBAC/B,OAAO,oBAAoB,CAAC,MAAgC,EAAE,YAAY,EAAE;wBAC1E,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;wBAC3B,SAAS;wBACT,QAAQ;wBACR,eAAe,EAAE,gBAAgB;qBAClC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,kCAAkC;QAClC,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrB,sBAAsB,CAAC,MAAM,CAAC,QAA0C,CAAC,CAAC;QAC5E,CAAC;QAED,wBAAwB;QACxB,IAAI,SAAS,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YAClC,MAAM,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,QAA0C,EAAE,QAAQ,CAAC,CAAC;QACtG,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,IAAI,CAA6B,CAAC;QAE3E,yBAAyB;QACzB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,WAAW,GAAG,UAAU;iBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;iBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;iBACnB,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,IAAI,WAAW;gBAAE,MAAM,iBAAiB,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU;YAAE,OAAO,QAAQ,CAAC;QAEzD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,OAAO,QAAmB,CAAC;QAC7B,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,SAAS;YACxC,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAEpE,MAAM,2BAA2B,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,QAAmC,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC3K,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,8DAA8D;IAC9D,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAChC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW;wBACjC,IAAI,OAAO,KAAK,QAAQ;4BAAE,OAAO,aAAa,CAAC;wBAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;oBACtD,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAiBD,SAAS,GAAG,CAAC,IAAgB;IAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAEzE,+DAA+D;IAC/D,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAE,IAA6B,EAAqC,EAAE;QAC9G,eAAe,GAAG,EAAE,CAAC;QACrB,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,WAAW,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;YACzD,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,WAAW,CAAC,WAAW,GAAG;oBACxB,gBAAgB,EAAE,UAAU,CAAC,KAAK;oBAClC,mBAAmB,EAAE,UAAU,CAAC,OAAO;iBACxC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACnC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC/B,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC;gBACpC,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,QAAQ,IAAI,GAAG,CAAC,aAAa;wBAAE,OAAO,IAAI,CAAC;oBAC/C,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,aAAa,IAAI,2BAA2B,EAAE,CAAC;gBACrE,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;oBACpC,OAAO,EAAE,KAAK,EAAG,CAAwB,CAAC,QAAQ,CAAC,aAAa,IAAI,2BAA2B,EAAE,CAAC;gBACpG,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,KAAK,EAAE,yBAAyB,CAAC,EAAE,EAAE,CAAC;gBACjD,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,MAAM,GAAiB,EAAE,UAAU,EAAE,CAAC;IAE5C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,GAAG,KAAK,EAAE,QAAgB,EAAE,QAAiB,EAAqC,EAAE;YAClG,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC/D,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,IAAI,SAAS,CAAC,CAAC;oBAC9F,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;wBACjB,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,aAAa,IAAI,oCAAoC,EAAE,CAAC;oBAC9E,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;wBACpC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,IAAI,oCAAoC,EAAE,CAAC;oBACrF,CAAC;oBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,OAAO,EAAE,KAAK,EAAE,qCAAqC,CAAC,EAAE,EAAE,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAWD,SAAS,QAAQ,CACf,QAAW,EACX,IAAiB;IAEjB,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,aAAa,EAAE,mBAAmB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAE9F,MAAM,OAAO,GAAG,EAAkC,CAAC;IAEnD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACzB,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QAErC,MAAM,cAAc,GAAG,KAAK,EAAE,IAA6B,EAAoB,EAAE;YAC/E,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBACnD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;gBACnC,MAAM,WAAW,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;gBACzD,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,WAAW,CAAC,WAAW,GAAG;wBACxB,gBAAgB,EAAE,UAAU,CAAC,KAAK;wBAClC,mBAAmB,EAAE,UAAU,CAAC,OAAO;qBACxC,CAAC;gBACJ,CAAC;gBAED,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;oBACjE,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC;oBAC3B,UAAU,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;wBACjB,MAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,kBAAkB;wBAAE,MAAM,CAAC,CAAC;oBAC7C,IAAI,CAAC,QAAQ;wBAAE,MAAM,IAAI,kBAAkB,CAAC;4BAC1C,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG;4BACpD,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE;yBAChF,CAAC,CAAC;gBACL,CAAC;gBAED,gFAAgF;gBAChF,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEjB,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;oBACnC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC3C,IAAI,mBAAmB,EAAE,CAAC;wBACxB,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;oBACnF,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC;gBAEF,IAAI,UAAU,EAAE,CAAC;oBACf,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,cAAc,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;gBACvD,CAAC;gBACD,OAAO,iBAAiB,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO,OAAY,CAAC;AACtB,CAAC;AAED,mEAAmE;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,SAAS,KAAK,CAAI,OAAe,EAAE,EAAoB;IACrD,OAAO,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAMD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC;AAC/J,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clampd.registerTool()` — explicit tool registration at import time.
|
|
3
|
+
*
|
|
4
|
+
* Problem this solves: the existing SDK discovers tools lazily via
|
|
5
|
+
* guardrail wrappers, which means the backend sees a tool for the first
|
|
6
|
+
* time when it's already in flight. That puts the tool in the default-deny
|
|
7
|
+
* "unclassified" bucket until a dashboard operator approves it.
|
|
8
|
+
*
|
|
9
|
+
* `registerTool` flips the flow: the tool author classifies at import
|
|
10
|
+
* time, the SDK POSTs the already-classified descriptor to the backend,
|
|
11
|
+
* and the tool skips the dashboard approval queue entirely.
|
|
12
|
+
*
|
|
13
|
+
* API shape choice: the `classification` argument is a single
|
|
14
|
+
* `ToolClassification` discriminated-union object rather than three
|
|
15
|
+
* independent string params. This lets the tsc compiler narrow the valid
|
|
16
|
+
* `operation` values based on the (`category`, `subcategory`) pair the
|
|
17
|
+
* caller selects — e.g. after writing `category: "db", subcategory:
|
|
18
|
+
* "query"`, the only valid `operation` is `"read"`. That compile-time
|
|
19
|
+
* narrowing is the whole point of the feature and would be lost if we
|
|
20
|
+
* took three separate strings.
|
|
21
|
+
*/
|
|
22
|
+
import { type ToolClassification } from "./taxonomy.js";
|
|
23
|
+
export interface RegisterToolOptions {
|
|
24
|
+
/** Tool name as it will appear in proxy requests (e.g. "db.query"). */
|
|
25
|
+
name: string;
|
|
26
|
+
/**
|
|
27
|
+
* Pre-classified (category, subcategory, operation) triple. Using the
|
|
28
|
+
* discriminated union here means mis-classification is a compile-time
|
|
29
|
+
* error — `{ category: "comms", subcategory: "shell" }` will not
|
|
30
|
+
* typecheck.
|
|
31
|
+
*/
|
|
32
|
+
classification: ToolClassification;
|
|
33
|
+
/** Optional human description surfaced in the dashboard. */
|
|
34
|
+
description?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Organisation id the descriptor belongs to. Falls back to the
|
|
37
|
+
* `CLAMPD_ORG_ID` env var if unset. Required by the backend route
|
|
38
|
+
* `/v1/orgs/{orgId}/tool-descriptors/register`.
|
|
39
|
+
*/
|
|
40
|
+
orgId?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Dashboard API base URL. Falls back to `CLAMPD_DASHBOARD_URL`, then
|
|
43
|
+
* the gateway URL registered via `init()`, then
|
|
44
|
+
* `http://localhost:3000`.
|
|
45
|
+
*/
|
|
46
|
+
dashboardUrl?: string;
|
|
47
|
+
/** API key for dashboard auth. Falls back to `CLAMPD_API_KEY`. */
|
|
48
|
+
apiKey?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Register a classified tool descriptor with the Clampd backend.
|
|
52
|
+
*
|
|
53
|
+
* Behaviour:
|
|
54
|
+
* 1. Runtime-validates the classification even though the type system
|
|
55
|
+
* already enforces it — callers who bypass `ToolClassification` via
|
|
56
|
+
* `as any` will get a `ClampdClassificationError`.
|
|
57
|
+
* 2. POSTs `{ name, category, subcategory, operation, description,
|
|
58
|
+
* source: "sdk" }` to
|
|
59
|
+
* `/v1/orgs/{orgId}/tool-descriptors/register` on the dashboard
|
|
60
|
+
* API.
|
|
61
|
+
* 3. Never throws on network failure — logs a warning and returns.
|
|
62
|
+
* App startup must not be blocked by a dashboard outage.
|
|
63
|
+
*
|
|
64
|
+
* Backend endpoint status: the dashboard API does not yet expose a
|
|
65
|
+
* `/register` route. See the report in the PR that introduces this
|
|
66
|
+
* function; until the backend catches up, calls will log the warning
|
|
67
|
+
* path and be no-ops.
|
|
68
|
+
*/
|
|
69
|
+
export declare function registerTool(opts: RegisterToolOptions): Promise<void>;
|
|
70
|
+
//# sourceMappingURL=register.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAMvB,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,cAAc,EAAE,kBAAkB,CAAC;IACnC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE3E"}
|
package/dist/register.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clampd.registerTool()` — explicit tool registration at import time.
|
|
3
|
+
*
|
|
4
|
+
* Problem this solves: the existing SDK discovers tools lazily via
|
|
5
|
+
* guardrail wrappers, which means the backend sees a tool for the first
|
|
6
|
+
* time when it's already in flight. That puts the tool in the default-deny
|
|
7
|
+
* "unclassified" bucket until a dashboard operator approves it.
|
|
8
|
+
*
|
|
9
|
+
* `registerTool` flips the flow: the tool author classifies at import
|
|
10
|
+
* time, the SDK POSTs the already-classified descriptor to the backend,
|
|
11
|
+
* and the tool skips the dashboard approval queue entirely.
|
|
12
|
+
*
|
|
13
|
+
* API shape choice: the `classification` argument is a single
|
|
14
|
+
* `ToolClassification` discriminated-union object rather than three
|
|
15
|
+
* independent string params. This lets the tsc compiler narrow the valid
|
|
16
|
+
* `operation` values based on the (`category`, `subcategory`) pair the
|
|
17
|
+
* caller selects — e.g. after writing `category: "db", subcategory:
|
|
18
|
+
* "query"`, the only valid `operation` is `"read"`. That compile-time
|
|
19
|
+
* narrowing is the whole point of the feature and would be lost if we
|
|
20
|
+
* took three separate strings.
|
|
21
|
+
*/
|
|
22
|
+
import { computeScope, validateClassification, } from "./taxonomy.js";
|
|
23
|
+
import { ClampdClassificationError } from "./errors.js";
|
|
24
|
+
import { sharedConfig } from "./config.js";
|
|
25
|
+
// ── Implementation ──────────────────────────────────────────────────
|
|
26
|
+
/**
|
|
27
|
+
* Register a classified tool descriptor with the Clampd backend.
|
|
28
|
+
*
|
|
29
|
+
* Behaviour:
|
|
30
|
+
* 1. Runtime-validates the classification even though the type system
|
|
31
|
+
* already enforces it — callers who bypass `ToolClassification` via
|
|
32
|
+
* `as any` will get a `ClampdClassificationError`.
|
|
33
|
+
* 2. POSTs `{ name, category, subcategory, operation, description,
|
|
34
|
+
* source: "sdk" }` to
|
|
35
|
+
* `/v1/orgs/{orgId}/tool-descriptors/register` on the dashboard
|
|
36
|
+
* API.
|
|
37
|
+
* 3. Never throws on network failure — logs a warning and returns.
|
|
38
|
+
* App startup must not be blocked by a dashboard outage.
|
|
39
|
+
*
|
|
40
|
+
* Backend endpoint status: the dashboard API does not yet expose a
|
|
41
|
+
* `/register` route. See the report in the PR that introduces this
|
|
42
|
+
* function; until the backend catches up, calls will log the warning
|
|
43
|
+
* path and be no-ops.
|
|
44
|
+
*/
|
|
45
|
+
export async function registerTool(opts) {
|
|
46
|
+
const { name, classification, description } = opts;
|
|
47
|
+
// Runtime validation — belt and suspenders for callers that bypass
|
|
48
|
+
// the discriminated union via `as any` or dynamic values.
|
|
49
|
+
if (!validateClassification(classification.category, classification.subcategory, classification.operation)) {
|
|
50
|
+
throw new ClampdClassificationError(classification.category, classification.subcategory, classification.operation);
|
|
51
|
+
}
|
|
52
|
+
const orgId = opts.orgId ?? process.env.CLAMPD_ORG_ID ?? "";
|
|
53
|
+
if (!orgId) {
|
|
54
|
+
console.warn("[clampd] registerTool: no orgId provided (and CLAMPD_ORG_ID is unset); skipping backend registration.");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const dashboardUrl = (opts.dashboardUrl ??
|
|
58
|
+
process.env.CLAMPD_DASHBOARD_URL ??
|
|
59
|
+
sharedConfig.gatewayUrl ??
|
|
60
|
+
"http://localhost:3000").replace(/\/$/, "");
|
|
61
|
+
const apiKey = opts.apiKey ?? process.env.CLAMPD_API_KEY ?? "";
|
|
62
|
+
const body = {
|
|
63
|
+
name,
|
|
64
|
+
category: classification.category,
|
|
65
|
+
subcategory: classification.subcategory,
|
|
66
|
+
operation: classification.operation,
|
|
67
|
+
description,
|
|
68
|
+
source: "sdk",
|
|
69
|
+
scope: computeScope(classification),
|
|
70
|
+
};
|
|
71
|
+
const url = `${dashboardUrl}/v1/orgs/${encodeURIComponent(orgId)}/tool-descriptors/register`;
|
|
72
|
+
try {
|
|
73
|
+
const resp = await fetch(url, {
|
|
74
|
+
method: "POST",
|
|
75
|
+
headers: {
|
|
76
|
+
"Content-Type": "application/json",
|
|
77
|
+
"X-AG-Key": apiKey,
|
|
78
|
+
},
|
|
79
|
+
body: JSON.stringify(body),
|
|
80
|
+
});
|
|
81
|
+
if (!resp.ok) {
|
|
82
|
+
const text = await resp.text().catch(() => `HTTP ${resp.status}`);
|
|
83
|
+
console.warn(`[clampd] registerTool: backend returned ${resp.status} for ${name}: ${text}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
88
|
+
console.warn(`[clampd] registerTool: failed to reach dashboard for ${name}: ${msg}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,YAAY,EACZ,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgC3C,uEAAuE;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAyB;IAC1D,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAEnD,mEAAmE;IACnE,0DAA0D;IAC1D,IACE,CAAC,sBAAsB,CACrB,cAAc,CAAC,QAAQ,EACvB,cAAc,CAAC,WAAW,EAC1B,cAAc,CAAC,SAAS,CACzB,EACD,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,cAAc,CAAC,QAAQ,EACvB,cAAc,CAAC,WAAW,EAC1B,cAAc,CAAC,SAAS,CACzB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CACV,uGAAuG,CACxG,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,CACnB,IAAI,CAAC,YAAY;QACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,YAAY,CAAC,UAAU;QACvB,uBAAuB,CACxB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAErB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/D,MAAM,IAAI,GAAG;QACX,IAAI;QACJ,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,WAAW;QACX,MAAM,EAAE,KAAc;QACtB,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC;KACpC,CAAC;IAEF,MAAM,GAAG,GAAG,GAAG,YAAY,YAAY,kBAAkB,CAAC,KAAK,CAAC,4BAA4B,CAAC;IAE7F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,UAAU,EAAE,MAAM;aACnB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CACV,2CAA2C,IAAI,CAAC,MAAM,QAAQ,IAAI,KAAK,IAAI,EAAE,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CACV,wDAAwD,IAAI,KAAK,GAAG,EAAE,CACvE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool classification taxonomy for the Clampd SDK.
|
|
3
|
+
*
|
|
4
|
+
* THE source of truth for this taxonomy is the TOML file at:
|
|
5
|
+
* services/crates/ag-common/src/categories.toml
|
|
6
|
+
*
|
|
7
|
+
* If you change this file, keep it in sync with categories.toml — the Rust
|
|
8
|
+
* gateway loads that TOML at startup and will reject (category, subcategory,
|
|
9
|
+
* operation) triples that don't appear there. Conversely, when the TOML
|
|
10
|
+
* gains a new subcategory or operation, regenerate this file. Consider a
|
|
11
|
+
* build-time codegen step when the taxonomy stabilises; for now the file
|
|
12
|
+
* is hand-maintained and the discriminated union below is the compile-time
|
|
13
|
+
* guard against drift.
|
|
14
|
+
*
|
|
15
|
+
* Shape:
|
|
16
|
+
* - `ToolClassification` — discriminated union, one member per
|
|
17
|
+
* (category, subcategory) pair. The `operation` field is narrowed by
|
|
18
|
+
* the compiler based on (category, subcategory). Misclassifications
|
|
19
|
+
* such as `{ category: "comms", subcategory: "shell" }` are a tsc
|
|
20
|
+
* error, not a runtime surprise.
|
|
21
|
+
* - `TAXONOMY` — flat runtime table mirroring the TOML, for
|
|
22
|
+
* dashboards, validators, and any consumer that can't rely on the
|
|
23
|
+
* static union (e.g. values coming over the wire).
|
|
24
|
+
* - `validateClassification` — runtime belt-and-suspenders check for
|
|
25
|
+
* callers who bypass the union via `as any`.
|
|
26
|
+
* - `computeScope` — canonical `"category:subcategory:operation"`
|
|
27
|
+
* string the gateway expects.
|
|
28
|
+
*/
|
|
29
|
+
export type ToolClassification = {
|
|
30
|
+
category: "comms";
|
|
31
|
+
subcategory: "email";
|
|
32
|
+
operation: "read" | "send" | "delete";
|
|
33
|
+
} | {
|
|
34
|
+
category: "comms";
|
|
35
|
+
subcategory: "slack";
|
|
36
|
+
operation: "read" | "send" | "delete";
|
|
37
|
+
} | {
|
|
38
|
+
category: "comms";
|
|
39
|
+
subcategory: "sms";
|
|
40
|
+
operation: "read" | "send";
|
|
41
|
+
} | {
|
|
42
|
+
category: "comms";
|
|
43
|
+
subcategory: "notification";
|
|
44
|
+
operation: "send";
|
|
45
|
+
} | {
|
|
46
|
+
category: "comms";
|
|
47
|
+
subcategory: "messaging";
|
|
48
|
+
operation: "read" | "send" | "delete";
|
|
49
|
+
} | {
|
|
50
|
+
category: "db";
|
|
51
|
+
subcategory: "query";
|
|
52
|
+
operation: "read";
|
|
53
|
+
} | {
|
|
54
|
+
category: "db";
|
|
55
|
+
subcategory: "mutate";
|
|
56
|
+
operation: "write" | "delete" | "destructive";
|
|
57
|
+
} | {
|
|
58
|
+
category: "db";
|
|
59
|
+
subcategory: "schema";
|
|
60
|
+
operation: "read" | "destructive";
|
|
61
|
+
} | {
|
|
62
|
+
category: "exec";
|
|
63
|
+
subcategory: "shell";
|
|
64
|
+
operation: "run" | "destructive";
|
|
65
|
+
} | {
|
|
66
|
+
category: "exec";
|
|
67
|
+
subcategory: "code";
|
|
68
|
+
operation: "run";
|
|
69
|
+
} | {
|
|
70
|
+
category: "exec";
|
|
71
|
+
subcategory: "function";
|
|
72
|
+
operation: "run";
|
|
73
|
+
} | {
|
|
74
|
+
category: "fs";
|
|
75
|
+
subcategory: "file";
|
|
76
|
+
operation: "read" | "write" | "delete";
|
|
77
|
+
} | {
|
|
78
|
+
category: "fs";
|
|
79
|
+
subcategory: "blob";
|
|
80
|
+
operation: "read" | "write" | "delete";
|
|
81
|
+
} | {
|
|
82
|
+
category: "net";
|
|
83
|
+
subcategory: "http";
|
|
84
|
+
operation: "read" | "write";
|
|
85
|
+
} | {
|
|
86
|
+
category: "net";
|
|
87
|
+
subcategory: "dns";
|
|
88
|
+
operation: "read";
|
|
89
|
+
} | {
|
|
90
|
+
category: "net";
|
|
91
|
+
subcategory: "socket";
|
|
92
|
+
operation: "read" | "write";
|
|
93
|
+
} | {
|
|
94
|
+
category: "auth";
|
|
95
|
+
subcategory: "secret";
|
|
96
|
+
operation: "read" | "write" | "delete";
|
|
97
|
+
} | {
|
|
98
|
+
category: "auth";
|
|
99
|
+
subcategory: "credential";
|
|
100
|
+
operation: "read" | "write" | "delete";
|
|
101
|
+
} | {
|
|
102
|
+
category: "auth";
|
|
103
|
+
subcategory: "token";
|
|
104
|
+
operation: "read" | "write" | "delete" | "refresh";
|
|
105
|
+
} | {
|
|
106
|
+
category: "auth";
|
|
107
|
+
subcategory: "oauth";
|
|
108
|
+
operation: "read" | "write";
|
|
109
|
+
} | {
|
|
110
|
+
category: "llm";
|
|
111
|
+
subcategory: "input";
|
|
112
|
+
operation: "write";
|
|
113
|
+
} | {
|
|
114
|
+
category: "llm";
|
|
115
|
+
subcategory: "output";
|
|
116
|
+
operation: "read";
|
|
117
|
+
} | {
|
|
118
|
+
category: "llm";
|
|
119
|
+
subcategory: "embedding";
|
|
120
|
+
operation: "read" | "write";
|
|
121
|
+
} | {
|
|
122
|
+
category: "cloud";
|
|
123
|
+
subcategory: "infra";
|
|
124
|
+
operation: "read" | "write" | "destructive";
|
|
125
|
+
} | {
|
|
126
|
+
category: "cloud";
|
|
127
|
+
subcategory: "iam";
|
|
128
|
+
operation: "read" | "write" | "delete";
|
|
129
|
+
} | {
|
|
130
|
+
category: "cloud";
|
|
131
|
+
subcategory: "deploy";
|
|
132
|
+
operation: "read" | "write" | "destructive";
|
|
133
|
+
} | {
|
|
134
|
+
category: "scm";
|
|
135
|
+
subcategory: "git";
|
|
136
|
+
operation: "read" | "write" | "delete";
|
|
137
|
+
} | {
|
|
138
|
+
category: "browser";
|
|
139
|
+
subcategory: "page";
|
|
140
|
+
operation: "read" | "write";
|
|
141
|
+
} | {
|
|
142
|
+
category: "browser";
|
|
143
|
+
subcategory: "screenshot";
|
|
144
|
+
operation: "read";
|
|
145
|
+
} | {
|
|
146
|
+
category: "agent";
|
|
147
|
+
subcategory: "delegate";
|
|
148
|
+
operation: "write";
|
|
149
|
+
} | {
|
|
150
|
+
category: "agent";
|
|
151
|
+
subcategory: "spawn";
|
|
152
|
+
operation: "write";
|
|
153
|
+
} | {
|
|
154
|
+
category: "agent";
|
|
155
|
+
subcategory: "a2a";
|
|
156
|
+
operation: "read" | "write";
|
|
157
|
+
} | {
|
|
158
|
+
category: "agent";
|
|
159
|
+
subcategory: "config";
|
|
160
|
+
operation: "read" | "write";
|
|
161
|
+
} | {
|
|
162
|
+
category: "payment";
|
|
163
|
+
subcategory: "transaction";
|
|
164
|
+
operation: "read" | "write" | "destructive";
|
|
165
|
+
} | {
|
|
166
|
+
category: "payment";
|
|
167
|
+
subcategory: "billing";
|
|
168
|
+
operation: "read" | "write";
|
|
169
|
+
} | {
|
|
170
|
+
category: "payment";
|
|
171
|
+
subcategory: "invoice";
|
|
172
|
+
operation: "read" | "write";
|
|
173
|
+
};
|
|
174
|
+
import { TAXONOMY, type CategorySpec, type SubcategorySpec } from "./generated/taxonomy-data.js";
|
|
175
|
+
export { TAXONOMY };
|
|
176
|
+
export type { CategorySpec, SubcategorySpec };
|
|
177
|
+
/**
|
|
178
|
+
* Validate a (category, subcategory, operation) triple against the
|
|
179
|
+
* runtime taxonomy table. Returns `true` if the triple is present in
|
|
180
|
+
* `TAXONOMY`, else `false`.
|
|
181
|
+
*
|
|
182
|
+
* This is a belt-and-suspenders check for callers that bypass the
|
|
183
|
+
* `ToolClassification` discriminated union (e.g. via `as any` or when
|
|
184
|
+
* the values come from JSON over the wire).
|
|
185
|
+
*/
|
|
186
|
+
export declare function validateClassification(category: string, subcategory: string, operation: string): boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Compute the canonical scope string for a classification.
|
|
189
|
+
* Format: `"category:subcategory:operation"` (e.g. `"db:query:read"`).
|
|
190
|
+
*/
|
|
191
|
+
export declare function computeScope(c: ToolClassification): string;
|
|
192
|
+
//# sourceMappingURL=taxonomy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy.d.ts","sourceRoot":"","sources":["../src/taxonomy.ts"],"names":[],"mappings":"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"}
|
package/dist/taxonomy.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool classification taxonomy for the Clampd SDK.
|
|
3
|
+
*
|
|
4
|
+
* THE source of truth for this taxonomy is the TOML file at:
|
|
5
|
+
* services/crates/ag-common/src/categories.toml
|
|
6
|
+
*
|
|
7
|
+
* If you change this file, keep it in sync with categories.toml — the Rust
|
|
8
|
+
* gateway loads that TOML at startup and will reject (category, subcategory,
|
|
9
|
+
* operation) triples that don't appear there. Conversely, when the TOML
|
|
10
|
+
* gains a new subcategory or operation, regenerate this file. Consider a
|
|
11
|
+
* build-time codegen step when the taxonomy stabilises; for now the file
|
|
12
|
+
* is hand-maintained and the discriminated union below is the compile-time
|
|
13
|
+
* guard against drift.
|
|
14
|
+
*
|
|
15
|
+
* Shape:
|
|
16
|
+
* - `ToolClassification` — discriminated union, one member per
|
|
17
|
+
* (category, subcategory) pair. The `operation` field is narrowed by
|
|
18
|
+
* the compiler based on (category, subcategory). Misclassifications
|
|
19
|
+
* such as `{ category: "comms", subcategory: "shell" }` are a tsc
|
|
20
|
+
* error, not a runtime surprise.
|
|
21
|
+
* - `TAXONOMY` — flat runtime table mirroring the TOML, for
|
|
22
|
+
* dashboards, validators, and any consumer that can't rely on the
|
|
23
|
+
* static union (e.g. values coming over the wire).
|
|
24
|
+
* - `validateClassification` — runtime belt-and-suspenders check for
|
|
25
|
+
* callers who bypass the union via `as any`.
|
|
26
|
+
* - `computeScope` — canonical `"category:subcategory:operation"`
|
|
27
|
+
* string the gateway expects.
|
|
28
|
+
*/
|
|
29
|
+
// ── Runtime table ───────────────────────────────────────────────────
|
|
30
|
+
//
|
|
31
|
+
// Mirrors categories.toml for consumers that need to enumerate the
|
|
32
|
+
// taxonomy at runtime (dashboards, validators, docs generation). The
|
|
33
|
+
// data comes from `./generated/taxonomy-data.ts`, which is codegen'd by
|
|
34
|
+
// ag-common's build.rs from `services/crates/ag-common/src/categories.toml`.
|
|
35
|
+
import { TAXONOMY, } from "./generated/taxonomy-data.js";
|
|
36
|
+
export { TAXONOMY };
|
|
37
|
+
// ── Helpers ─────────────────────────────────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* Validate a (category, subcategory, operation) triple against the
|
|
40
|
+
* runtime taxonomy table. Returns `true` if the triple is present in
|
|
41
|
+
* `TAXONOMY`, else `false`.
|
|
42
|
+
*
|
|
43
|
+
* This is a belt-and-suspenders check for callers that bypass the
|
|
44
|
+
* `ToolClassification` discriminated union (e.g. via `as any` or when
|
|
45
|
+
* the values come from JSON over the wire).
|
|
46
|
+
*/
|
|
47
|
+
export function validateClassification(category, subcategory, operation) {
|
|
48
|
+
const cat = TAXONOMY[category];
|
|
49
|
+
if (!cat)
|
|
50
|
+
return false;
|
|
51
|
+
const sub = cat.subcategories[subcategory];
|
|
52
|
+
if (!sub)
|
|
53
|
+
return false;
|
|
54
|
+
return sub.operations.includes(operation);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Compute the canonical scope string for a classification.
|
|
58
|
+
* Format: `"category:subcategory:operation"` (e.g. `"db:query:read"`).
|
|
59
|
+
*/
|
|
60
|
+
export function computeScope(c) {
|
|
61
|
+
return `${c.category}:${c.subcategory}:${c.operation}`;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=taxonomy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy.js","sourceRoot":"","sources":["../src/taxonomy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAqEH,uEAAuE;AACvE,EAAE;AACF,mEAAmE;AACnE,qEAAqE;AACrE,wEAAwE;AACxE,6EAA6E;AAE7E,OAAO,EACL,QAAQ,GAGT,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAGpB,uEAAuE;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,WAAmB,EACnB,SAAiB;IAEjB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,OAAO,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,CAAqB;IAChD,OAAO,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AACzD,CAAC"}
|