@trusty-squire/mcp 0.8.2 → 0.8.3-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/api-client.d.ts +51 -0
  2. package/dist/api-client.d.ts.map +1 -1
  3. package/dist/api-client.js +25 -0
  4. package/dist/api-client.js.map +1 -1
  5. package/dist/bot/agent.d.ts +3 -0
  6. package/dist/bot/agent.d.ts.map +1 -1
  7. package/dist/bot/agent.js +479 -24
  8. package/dist/bot/agent.js.map +1 -1
  9. package/dist/bot/browser.d.ts +1 -0
  10. package/dist/bot/browser.d.ts.map +1 -1
  11. package/dist/bot/browser.js +63 -5
  12. package/dist/bot/browser.js.map +1 -1
  13. package/dist/bot/google-login.d.ts +1 -0
  14. package/dist/bot/google-login.d.ts.map +1 -1
  15. package/dist/bot/google-login.js +21 -1
  16. package/dist/bot/google-login.js.map +1 -1
  17. package/dist/bot/inbox-client.d.ts +3 -0
  18. package/dist/bot/inbox-client.d.ts.map +1 -1
  19. package/dist/bot/inbox-client.js +112 -0
  20. package/dist/bot/inbox-client.js.map +1 -1
  21. package/dist/bot/near-text-hint.d.ts +4 -0
  22. package/dist/bot/near-text-hint.d.ts.map +1 -0
  23. package/dist/bot/near-text-hint.js +72 -0
  24. package/dist/bot/near-text-hint.js.map +1 -0
  25. package/dist/bot/promote-to-skill.d.ts.map +1 -1
  26. package/dist/bot/promote-to-skill.js +365 -49
  27. package/dist/bot/promote-to-skill.js.map +1 -1
  28. package/dist/bot/read-otp.d.ts +6 -0
  29. package/dist/bot/read-otp.d.ts.map +1 -1
  30. package/dist/bot/read-otp.js +22 -0
  31. package/dist/bot/read-otp.js.map +1 -1
  32. package/dist/bot/replay-skill.d.ts.map +1 -1
  33. package/dist/bot/replay-skill.js +99 -109
  34. package/dist/bot/replay-skill.js.map +1 -1
  35. package/dist/install/agents.d.ts +1 -0
  36. package/dist/install/agents.d.ts.map +1 -1
  37. package/dist/install/agents.js +32 -0
  38. package/dist/install/agents.js.map +1 -1
  39. package/dist/install/cli.d.ts.map +1 -1
  40. package/dist/install/cli.js +24 -2
  41. package/dist/install/cli.js.map +1 -1
  42. package/dist/server.d.ts.map +1 -1
  43. package/dist/server.js +20 -1
  44. package/dist/server.js.map +1 -1
  45. package/dist/tools/always-load.d.ts +4 -0
  46. package/dist/tools/always-load.d.ts.map +1 -0
  47. package/dist/tools/always-load.js +6 -0
  48. package/dist/tools/always-load.js.map +1 -0
  49. package/dist/tools/delete-credential.d.ts +12 -0
  50. package/dist/tools/delete-credential.d.ts.map +1 -0
  51. package/dist/tools/delete-credential.js +23 -0
  52. package/dist/tools/delete-credential.js.map +1 -0
  53. package/dist/tools/index.d.ts +10 -1
  54. package/dist/tools/index.d.ts.map +1 -1
  55. package/dist/tools/index.js +17 -1
  56. package/dist/tools/index.js.map +1 -1
  57. package/dist/tools/poll-credential-access.d.ts +12 -0
  58. package/dist/tools/poll-credential-access.d.ts.map +1 -0
  59. package/dist/tools/poll-credential-access.js +29 -0
  60. package/dist/tools/poll-credential-access.js.map +1 -0
  61. package/dist/tools/request-credential.d.ts +69 -0
  62. package/dist/tools/request-credential.d.ts.map +1 -0
  63. package/dist/tools/request-credential.js +69 -0
  64. package/dist/tools/request-credential.js.map +1 -0
  65. package/dist/tools/rotate-credential.d.ts +15 -0
  66. package/dist/tools/rotate-credential.d.ts.map +1 -0
  67. package/dist/tools/rotate-credential.js +29 -0
  68. package/dist/tools/rotate-credential.js.map +1 -0
  69. package/dist/tools/store-credential.d.ts +21 -0
  70. package/dist/tools/store-credential.d.ts.map +1 -0
  71. package/dist/tools/store-credential.js +50 -0
  72. package/dist/tools/store-credential.js.map +1 -0
  73. package/dist/tools/use-credential.d.ts +40 -0
  74. package/dist/tools/use-credential.d.ts.map +1 -0
  75. package/dist/tools/use-credential.js +61 -0
  76. package/dist/tools/use-credential.js.map +1 -0
  77. package/package.json +1 -1
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ import { assertApi } from "./index.js";
3
+ const inputSchema = z.object({
4
+ reference: z.string().min(1),
5
+ });
6
+ const DESCRIPTION = `Permanently delete a credential from the vault. Irreversible.`;
7
+ export const deleteCredentialTool = {
8
+ name: "delete_credential",
9
+ description: DESCRIPTION,
10
+ inputSchema,
11
+ jsonInputSchema: {
12
+ type: "object",
13
+ required: ["reference"],
14
+ properties: { reference: { type: "string" } },
15
+ },
16
+ annotations: { destructiveHint: true },
17
+ async handler(args, api) {
18
+ assertApi(api);
19
+ const res = await api.deleteCredential(args.reference);
20
+ return { deleted_at: res.deleted_at };
21
+ },
22
+ };
23
+ //# sourceMappingURL=delete-credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-credential.js","sourceRoot":"","sources":["../../src/tools/delete-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,+DAA+D,CAAC;AAEpF,MAAM,CAAC,MAAM,oBAAoB,GAAsC;IACrE,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,WAAW;IACxB,WAAW;IACX,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC9C;IACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;IACtC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;CACF,CAAC"}
@@ -4,16 +4,25 @@ import { getCredentialTool } from "./get-credential.js";
4
4
  import { listCredentialsTool } from "./list-credentials.js";
5
5
  import { provisionTool, checkProvisionStatusTool } from "./provision-any.js";
6
6
  import { listExtractFailuresTool, getExtractFailureTool } from "./extract-failures.js";
7
+ import { storeCredentialTool } from "./store-credential.js";
8
+ import { rotateCredentialTool } from "./rotate-credential.js";
9
+ import { deleteCredentialTool } from "./delete-credential.js";
10
+ import { requestCredentialTool } from "./request-credential.js";
11
+ import { pollCredentialAccessTool } from "./poll-credential-access.js";
12
+ import { useCredentialTool } from "./use-credential.js";
7
13
  export interface Tool<TArgs extends Record<string, unknown> = Record<string, unknown>> {
8
14
  name: string;
9
15
  description: string;
10
16
  inputSchema: ZodTypeAny;
11
17
  jsonInputSchema: Record<string, unknown>;
18
+ annotations?: Record<string, unknown>;
19
+ meta?: Record<string, unknown>;
12
20
  handler: (args: TArgs, api: ApiClient | null) => Promise<unknown>;
13
21
  }
22
+ export { ALWAYS_LOAD_META } from "./always-load.js";
14
23
  export declare function assertApi(api: ApiClient | null): asserts api is ApiClient;
15
24
  export declare const TOOLS: Tool[];
16
25
  export declare function findTool(name: string): Tool | null;
17
26
  export { z };
18
- export { provisionTool, checkProvisionStatusTool, getCredentialTool, listCredentialsTool, listExtractFailuresTool, getExtractFailureTool, };
27
+ export { provisionTool, checkProvisionStatusTool, getCredentialTool, listCredentialsTool, storeCredentialTool, rotateCredentialTool, deleteCredentialTool, requestCredentialTool, pollCredentialAccessTool, useCredentialTool, listExtractFailuresTool, getExtractFailureTool, };
19
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEvF,MAAM,WAAW,IAAI,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAQD,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,SAAS,CAMzE;AAQD,eAAO,MAAM,KAAK,EAAE,IAAI,EASb,CAAC;AAEZ,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAElD;AAGD,OAAO,EAAE,CAAC,EAAE,CAAC;AAIb,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,IAAI,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAGzC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAItC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAID,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAQpD,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,SAAS,CAMzE;AAQD,eAAO,MAAM,KAAK,EAAE,IAAI,EAgBb,CAAC;AAEZ,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAElD;AAGD,OAAO,EAAE,CAAC,EAAE,CAAC;AAIb,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,CAAC"}
@@ -12,6 +12,15 @@ import { getCredentialTool } from "./get-credential.js";
12
12
  import { listCredentialsTool } from "./list-credentials.js";
13
13
  import { provisionTool, checkProvisionStatusTool } from "./provision-any.js";
14
14
  import { listExtractFailuresTool, getExtractFailureTool } from "./extract-failures.js";
15
+ import { storeCredentialTool } from "./store-credential.js";
16
+ import { rotateCredentialTool } from "./rotate-credential.js";
17
+ import { deleteCredentialTool } from "./delete-credential.js";
18
+ import { requestCredentialTool } from "./request-credential.js";
19
+ import { pollCredentialAccessTool } from "./poll-credential-access.js";
20
+ import { useCredentialTool } from "./use-credential.js";
21
+ // Re-exported for convenience; defined in its own module to avoid a
22
+ // circular import (tool files import it; index imports the tool files).
23
+ export { ALWAYS_LOAD_META } from "./always-load.js";
15
24
  // All tools receive `api: ApiClient | null`. In the single-tier model
16
25
  // server.ts only invokes a handler after confirming a non-null api, but
17
26
  // the registry contract still types it as nullable so handlers like
@@ -34,6 +43,13 @@ export const TOOLS = [
34
43
  checkProvisionStatusTool,
35
44
  getCredentialTool,
36
45
  listCredentialsTool,
46
+ // Vault lifecycle + agent-mediated access (the credential surface).
47
+ storeCredentialTool,
48
+ rotateCredentialTool,
49
+ deleteCredentialTool,
50
+ requestCredentialTool,
51
+ pollCredentialAccessTool,
52
+ useCredentialTool,
37
53
  // Diagnostic tools: agent reads them after a failed extract so it
38
54
  // can write a targeted fix without the user fetching by curl.
39
55
  listExtractFailuresTool,
@@ -46,5 +62,5 @@ export function findTool(name) {
46
62
  export { z };
47
63
  // Per-tool re-exports so callers (tests, custom integrations) can
48
64
  // import a single tool without going through the TOOLS array.
49
- export { provisionTool, checkProvisionStatusTool, getCredentialTool, listCredentialsTool, listExtractFailuresTool, getExtractFailureTool, };
65
+ export { provisionTool, checkProvisionStatusTool, getCredentialTool, listCredentialsTool, storeCredentialTool, rotateCredentialTool, deleteCredentialTool, requestCredentialTool, pollCredentialAccessTool, useCredentialTool, listExtractFailuresTool, getExtractFailureTool, };
50
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,oEAAoE;AACpE,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,8DAA8D;AAC9D,sEAAsE;AACtE,mCAAmC;AAEnC,OAAO,EAAE,CAAC,EAAmB,MAAM,KAAK,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAUvF,sEAAsE;AACtE,wEAAwE;AACxE,oEAAoE;AACpE,oEAAoE;AACpE,6DAA6D;AAC7D,qDAAqD;AACrD,MAAM,UAAU,SAAS,CAAC,GAAqB;IAC7C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,sEAAsE;AACtE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,aAAa;IACb,wBAAwB;IACxB,iBAAiB;IACjB,mBAAmB;IACnB,kEAAkE;IAClE,8DAA8D;IAC9D,uBAAuB;IACvB,qBAAqB;CACZ,CAAC;AAEZ,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;AACpD,CAAC;AAED,2EAA2E;AAC3E,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb,kEAAkE;AAClE,8DAA8D;AAC9D,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,oEAAoE;AACpE,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,8DAA8D;AAC9D,sEAAsE;AACtE,mCAAmC;AAEnC,OAAO,EAAE,CAAC,EAAmB,MAAM,KAAK,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAiBxD,oEAAoE;AACpE,wEAAwE;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,sEAAsE;AACtE,wEAAwE;AACxE,oEAAoE;AACpE,oEAAoE;AACpE,6DAA6D;AAC7D,qDAAqD;AACrD,MAAM,UAAU,SAAS,CAAC,GAAqB;IAC7C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,sEAAsE;AACtE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,aAAa;IACb,wBAAwB;IACxB,iBAAiB;IACjB,mBAAmB;IACnB,oEAAoE;IACpE,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,wBAAwB;IACxB,iBAAiB;IACjB,kEAAkE;IAClE,8DAA8D;IAC9D,uBAAuB;IACvB,qBAAqB;CACZ,CAAC;AAEZ,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;AACpD,CAAC;AAED,2EAA2E;AAC3E,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb,kEAAkE;AAClE,8DAA8D;AAC9D,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ import { type Tool } from "./index.js";
3
+ declare const inputSchema: z.ZodObject<{
4
+ request_id: z.ZodString;
5
+ }, "strip", z.ZodTypeAny, {
6
+ request_id: string;
7
+ }, {
8
+ request_id: string;
9
+ }>;
10
+ export declare const pollCredentialAccessTool: Tool<z.infer<typeof inputSchema>>;
11
+ export {};
12
+ //# sourceMappingURL=poll-credential-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-credential-access.d.ts","sourceRoot":"","sources":["../../src/tools/poll-credential-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAGlD,QAAA,MAAM,WAAW;;;;;;EAEf,CAAC;AAIH,eAAO,MAAM,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAoBtE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ import { assertApi } from "./index.js";
3
+ import { ALWAYS_LOAD_META } from "./always-load.js";
4
+ const inputSchema = z.object({
5
+ request_id: z.string().min(1),
6
+ });
7
+ const DESCRIPTION = `Long-poll the broker for a pending access-request's status.`;
8
+ export const pollCredentialAccessTool = {
9
+ name: "poll_credential_access",
10
+ description: DESCRIPTION,
11
+ inputSchema,
12
+ jsonInputSchema: {
13
+ type: "object",
14
+ required: ["request_id"],
15
+ properties: { request_id: { type: "string" } },
16
+ },
17
+ annotations: { readOnlyHint: true },
18
+ meta: ALWAYS_LOAD_META,
19
+ async handler(args, api) {
20
+ assertApi(api);
21
+ const res = await api.pollCredentialAccess(args.request_id);
22
+ return {
23
+ status: res.status,
24
+ ...(res.value !== undefined ? { value: res.value } : {}),
25
+ ...(res.denied_reason !== undefined ? { denied_reason: res.denied_reason } : {}),
26
+ };
27
+ },
28
+ };
29
+ //# sourceMappingURL=poll-credential-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-credential-access.js","sourceRoot":"","sources":["../../src/tools/poll-credential-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,6DAA6D,CAAC;AAElF,MAAM,CAAC,MAAM,wBAAwB,GAAsC;IACzE,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,WAAW;IACxB,WAAW;IACX,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,YAAY,CAAC;QACxB,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC/C;IACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;IACnC,IAAI,EAAE,gBAAgB;IACtB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ import { type Tool } from "./index.js";
3
+ declare const inputSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
4
+ reference: z.ZodOptional<z.ZodString>;
5
+ service: z.ZodOptional<z.ZodString>;
6
+ purpose: z.ZodString;
7
+ intent: z.ZodEnum<["value", "proxy"]>;
8
+ proxy_target_host: z.ZodOptional<z.ZodString>;
9
+ reason_proxy_not_possible: z.ZodOptional<z.ZodString>;
10
+ mode_requested: z.ZodOptional<z.ZodEnum<["once", "session", "persistent"]>>;
11
+ ttl_requested: z.ZodOptional<z.ZodNumber>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ purpose: string;
14
+ intent: "value" | "proxy";
15
+ service?: string | undefined;
16
+ reference?: string | undefined;
17
+ proxy_target_host?: string | undefined;
18
+ reason_proxy_not_possible?: string | undefined;
19
+ mode_requested?: "once" | "session" | "persistent" | undefined;
20
+ ttl_requested?: number | undefined;
21
+ }, {
22
+ purpose: string;
23
+ intent: "value" | "proxy";
24
+ service?: string | undefined;
25
+ reference?: string | undefined;
26
+ proxy_target_host?: string | undefined;
27
+ reason_proxy_not_possible?: string | undefined;
28
+ mode_requested?: "once" | "session" | "persistent" | undefined;
29
+ ttl_requested?: number | undefined;
30
+ }>, {
31
+ purpose: string;
32
+ intent: "value" | "proxy";
33
+ service?: string | undefined;
34
+ reference?: string | undefined;
35
+ proxy_target_host?: string | undefined;
36
+ reason_proxy_not_possible?: string | undefined;
37
+ mode_requested?: "once" | "session" | "persistent" | undefined;
38
+ ttl_requested?: number | undefined;
39
+ }, {
40
+ purpose: string;
41
+ intent: "value" | "proxy";
42
+ service?: string | undefined;
43
+ reference?: string | undefined;
44
+ proxy_target_host?: string | undefined;
45
+ reason_proxy_not_possible?: string | undefined;
46
+ mode_requested?: "once" | "session" | "persistent" | undefined;
47
+ ttl_requested?: number | undefined;
48
+ }>, {
49
+ purpose: string;
50
+ intent: "value" | "proxy";
51
+ service?: string | undefined;
52
+ reference?: string | undefined;
53
+ proxy_target_host?: string | undefined;
54
+ reason_proxy_not_possible?: string | undefined;
55
+ mode_requested?: "once" | "session" | "persistent" | undefined;
56
+ ttl_requested?: number | undefined;
57
+ }, {
58
+ purpose: string;
59
+ intent: "value" | "proxy";
60
+ service?: string | undefined;
61
+ reference?: string | undefined;
62
+ proxy_target_host?: string | undefined;
63
+ reason_proxy_not_possible?: string | undefined;
64
+ mode_requested?: "once" | "session" | "persistent" | undefined;
65
+ ttl_requested?: number | undefined;
66
+ }>;
67
+ export declare const requestCredentialTool: Tool<z.infer<typeof inputSchema>>;
68
+ export {};
69
+ //# sourceMappingURL=request-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-credential.d.ts","sourceRoot":"","sources":["../../src/tools/request-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAElD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBb,CAAC;AAWL,eAAO,MAAM,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAwCnE,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ import { assertApi } from "./index.js";
3
+ const inputSchema = z
4
+ .object({
5
+ reference: z.string().min(1).optional(),
6
+ service: z.string().min(1).optional(),
7
+ purpose: z.string().min(1).max(400),
8
+ intent: z.enum(["value", "proxy"]),
9
+ proxy_target_host: z.string().min(1).optional(),
10
+ reason_proxy_not_possible: z.string().min(1).optional(),
11
+ mode_requested: z.enum(["once", "session", "persistent"]).optional(),
12
+ ttl_requested: z.number().int().positive().optional(),
13
+ })
14
+ .refine((b) => b.reference !== undefined || b.service !== undefined, {
15
+ message: "one of reference or service is required",
16
+ })
17
+ .refine((b) => b.intent !== "value" || b.reason_proxy_not_possible !== undefined, {
18
+ message: "reason_proxy_not_possible is required when intent=value",
19
+ });
20
+ const DESCRIPTION = `Return the raw plaintext secret to this agent. The secret will be
21
+ VISIBLE in the conversation context after this call. Use ONLY when the
22
+ user explicitly needs the value (writing a .env file, pasting into a
23
+ config UI) — for HTTP API calls always prefer use_credential, which
24
+ keeps the secret server-side. Requires the user to approve in the
25
+ Trusty Squire web UI; you must poll_credential_access for the result.
26
+ Must include a \`reason_proxy_not_possible\` explaining why use_credential
27
+ doesn't fit.`;
28
+ export const requestCredentialTool = {
29
+ name: "request_credential",
30
+ description: DESCRIPTION,
31
+ inputSchema,
32
+ jsonInputSchema: {
33
+ type: "object",
34
+ required: ["purpose", "intent"],
35
+ properties: {
36
+ reference: { type: "string" },
37
+ service: { type: "string" },
38
+ purpose: { type: "string", maxLength: 400 },
39
+ intent: { type: "string", enum: ["value", "proxy"] },
40
+ proxy_target_host: { type: "string" },
41
+ reason_proxy_not_possible: { type: "string" },
42
+ mode_requested: { type: "string", enum: ["once", "session", "persistent"] },
43
+ ttl_requested: { type: "number" },
44
+ },
45
+ },
46
+ annotations: { destructiveHint: true },
47
+ async handler(args, api) {
48
+ assertApi(api);
49
+ const res = await api.requestCredentialAccess({
50
+ ...(args.reference !== undefined ? { reference: args.reference } : {}),
51
+ ...(args.service !== undefined ? { service: args.service } : {}),
52
+ purpose: args.purpose,
53
+ intent: args.intent,
54
+ ...(args.proxy_target_host !== undefined ? { proxy_target_host: args.proxy_target_host } : {}),
55
+ ...(args.reason_proxy_not_possible !== undefined
56
+ ? { reason_proxy_not_possible: args.reason_proxy_not_possible }
57
+ : {}),
58
+ ...(args.mode_requested !== undefined ? { mode_requested: args.mode_requested } : {}),
59
+ ...(args.ttl_requested !== undefined ? { ttl_requested: args.ttl_requested } : {}),
60
+ });
61
+ return {
62
+ request_id: res.request_id,
63
+ status: res.status,
64
+ expires_at: res.expires_at,
65
+ auto_approved: res.auto_approved,
66
+ };
67
+ },
68
+ };
69
+ //# sourceMappingURL=request-credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-credential.js","sourceRoot":"","sources":["../../src/tools/request-credential.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ import { type Tool } from "./index.js";
3
+ declare const inputSchema: z.ZodObject<{
4
+ reference: z.ZodString;
5
+ new_value: z.ZodString;
6
+ }, "strip", z.ZodTypeAny, {
7
+ reference: string;
8
+ new_value: string;
9
+ }, {
10
+ reference: string;
11
+ new_value: string;
12
+ }>;
13
+ export declare const rotateCredentialTool: Tool<z.infer<typeof inputSchema>>;
14
+ export {};
15
+ //# sourceMappingURL=rotate-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rotate-credential.d.ts","sourceRoot":"","sources":["../../src/tools/rotate-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAElD,QAAA,MAAM,WAAW;;;;;;;;;EAGf,CAAC;AAMH,eAAO,MAAM,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAkBlE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ import { assertApi } from "./index.js";
3
+ const inputSchema = z.object({
4
+ reference: z.string().min(1),
5
+ new_value: z.string().min(1).max(8192),
6
+ });
7
+ const DESCRIPTION = `Rotate a vaulted secret's value. Cascade: revokes all persistent grants
8
+ bound to this credential — every previously-approved agent will need
9
+ fresh user approval.`;
10
+ export const rotateCredentialTool = {
11
+ name: "rotate_credential",
12
+ description: DESCRIPTION,
13
+ inputSchema,
14
+ jsonInputSchema: {
15
+ type: "object",
16
+ required: ["reference", "new_value"],
17
+ properties: {
18
+ reference: { type: "string" },
19
+ new_value: { type: "string" },
20
+ },
21
+ },
22
+ annotations: { destructiveHint: true },
23
+ async handler(args, api) {
24
+ assertApi(api);
25
+ const res = await api.rotateCredential(args.reference, args.new_value);
26
+ return { rotated_at: res.rotated_at, revoked_grant_count: res.revoked_grant_count };
27
+ },
28
+ };
29
+ //# sourceMappingURL=rotate-credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rotate-credential.js","sourceRoot":"","sources":["../../src/tools/rotate-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;;qBAEC,CAAC;AAEtB,MAAM,CAAC,MAAM,oBAAoB,GAAsC;IACrE,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,WAAW;IACxB,WAAW;IACX,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;QACpC,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC9B;KACF;IACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;IACtC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,EAAE,CAAC;IACtF,CAAC;CACF,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ import { type Tool } from "./index.js";
3
+ declare const inputSchema: z.ZodObject<{
4
+ service: z.ZodString;
5
+ value: z.ZodString;
6
+ env_var_suggestion: z.ZodOptional<z.ZodString>;
7
+ type: z.ZodOptional<z.ZodString>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ value: string;
10
+ service: string;
11
+ type?: string | undefined;
12
+ env_var_suggestion?: string | undefined;
13
+ }, {
14
+ value: string;
15
+ service: string;
16
+ type?: string | undefined;
17
+ env_var_suggestion?: string | undefined;
18
+ }>;
19
+ export declare const storeCredentialTool: Tool<z.infer<typeof inputSchema>>;
20
+ export {};
21
+ //# sourceMappingURL=store-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-credential.d.ts","sourceRoot":"","sources":["../../src/tools/store-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAGlD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;EAKf,CAAC;AASH,eAAO,MAAM,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAiCjE,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ import { assertApi } from "./index.js";
3
+ import { ALWAYS_LOAD_META } from "./always-load.js";
4
+ const inputSchema = z.object({
5
+ service: z.string().min(1).max(120),
6
+ value: z.string().min(1).max(8192),
7
+ env_var_suggestion: z.string().min(1).max(120).optional(),
8
+ type: z.string().min(1).max(60).optional(),
9
+ });
10
+ const DESCRIPTION = `Save a secret (API key, token, password, OAuth refresh token, database
11
+ connection string) that the user just shared into the encrypted vault.
12
+ CALL THIS AUTOMATICALLY whenever the user pastes a secret-shaped value
13
+ (sk-, ghp_, AKIA, eyJ; password/token patterns) into the conversation —
14
+ don't ask permission first. Returns a credential reference and the
15
+ service's allowed_hosts list.`;
16
+ export const storeCredentialTool = {
17
+ name: "store_credential",
18
+ description: DESCRIPTION,
19
+ inputSchema,
20
+ jsonInputSchema: {
21
+ type: "object",
22
+ required: ["service", "value"],
23
+ properties: {
24
+ service: { type: "string" },
25
+ value: { type: "string" },
26
+ env_var_suggestion: { type: "string" },
27
+ type: { type: "string" },
28
+ },
29
+ },
30
+ annotations: { idempotentHint: true },
31
+ meta: ALWAYS_LOAD_META,
32
+ async handler(args, api) {
33
+ assertApi(api);
34
+ const res = await api.storeCredential({
35
+ service: args.service,
36
+ value: args.value,
37
+ ...(args.env_var_suggestion !== undefined
38
+ ? { env_var_suggestion: args.env_var_suggestion }
39
+ : {}),
40
+ ...(args.type !== undefined ? { type: args.type } : {}),
41
+ });
42
+ return {
43
+ reference: res.reference,
44
+ type: res.type,
45
+ stored_at: res.created_at ?? null,
46
+ allowed_hosts: res.allowed_hosts ?? [],
47
+ };
48
+ },
49
+ };
50
+ //# sourceMappingURL=store-credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-credential.js","sourceRoot":"","sources":["../../src/tools/store-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;;;;;8BAKU,CAAC;AAE/B,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IACpE,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,WAAW;IACxB,WAAW;IACX,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;QAC9B,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB;KACF;IACD,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;IACrC,IAAI,EAAE,gBAAgB;IACtB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;YACjC,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,EAAE;SACvC,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ import { type Tool } from "./index.js";
3
+ declare const inputSchema: z.ZodObject<{
4
+ request_id: z.ZodString;
5
+ http: z.ZodObject<{
6
+ method: z.ZodString;
7
+ url: z.ZodString;
8
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
9
+ body: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ method: string;
12
+ url: string;
13
+ body?: string | undefined;
14
+ headers?: Record<string, string> | undefined;
15
+ }, {
16
+ method: string;
17
+ url: string;
18
+ body?: string | undefined;
19
+ headers?: Record<string, string> | undefined;
20
+ }>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ request_id: string;
23
+ http: {
24
+ method: string;
25
+ url: string;
26
+ body?: string | undefined;
27
+ headers?: Record<string, string> | undefined;
28
+ };
29
+ }, {
30
+ request_id: string;
31
+ http: {
32
+ method: string;
33
+ url: string;
34
+ body?: string | undefined;
35
+ headers?: Record<string, string> | undefined;
36
+ };
37
+ }>;
38
+ export declare const useCredentialTool: Tool<z.infer<typeof inputSchema>>;
39
+ export {};
40
+ //# sourceMappingURL=use-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-credential.d.ts","sourceRoot":"","sources":["../../src/tools/use-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAQlD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQf,CAAC;AAUH,eAAO,MAAM,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAmC/D,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ import { assertApi } from "./index.js";
3
+ import { ALWAYS_LOAD_META } from "./always-load.js";
4
+ // use_credential can target a freshly-minted request (request_id) OR
5
+ // ask the broker to mint one inline from a service/reference. v1
6
+ // requires an already-created request_id: the agent calls
7
+ // request_credential(intent="proxy") first (auto-approved for trusted
8
+ // sessions), then use_credential with the returned request_id.
9
+ const inputSchema = z.object({
10
+ request_id: z.string().min(1),
11
+ http: z.object({
12
+ method: z.string().min(1).max(10),
13
+ url: z.string().min(1).max(2048),
14
+ headers: z.record(z.string()).optional(),
15
+ body: z.string().max(64 * 1024).optional(),
16
+ }),
17
+ });
18
+ const DESCRIPTION = `Execute an authenticated HTTP request against an external API using a
19
+ vaulted credential. The secret value never crosses to this agent — the
20
+ server injects it server-side via \${SECRET} or \${SECRET_JSON} placeholders
21
+ in your headers/body. Pass \`service\` or \`reference\` plus the standard
22
+ HTTP fields (method, url, headers, body). PREFER THIS over
23
+ request_credential whenever the user wants an API call; only fall back
24
+ if you need the raw secret to write into a local file.`;
25
+ export const useCredentialTool = {
26
+ name: "use_credential",
27
+ description: DESCRIPTION,
28
+ inputSchema,
29
+ jsonInputSchema: {
30
+ type: "object",
31
+ required: ["request_id", "http"],
32
+ properties: {
33
+ request_id: { type: "string" },
34
+ http: {
35
+ type: "object",
36
+ required: ["method", "url"],
37
+ properties: {
38
+ method: { type: "string" },
39
+ url: { type: "string" },
40
+ headers: { type: "object", additionalProperties: { type: "string" } },
41
+ body: { type: "string" },
42
+ },
43
+ },
44
+ },
45
+ },
46
+ annotations: { destructiveHint: true },
47
+ meta: ALWAYS_LOAD_META,
48
+ async handler(args, api) {
49
+ assertApi(api);
50
+ // Rebuild without undefined-valued optionals (exactOptionalPropertyTypes).
51
+ const http = {
52
+ method: args.http.method,
53
+ url: args.http.url,
54
+ ...(args.http.headers !== undefined ? { headers: args.http.headers } : {}),
55
+ ...(args.http.body !== undefined ? { body: args.http.body } : {}),
56
+ };
57
+ const res = await api.useCredentialProxy(args.request_id, http);
58
+ return { response: res.response };
59
+ },
60
+ };
61
+ //# sourceMappingURL=use-credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-credential.js","sourceRoot":"","sources":["../../src/tools/use-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAa,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qEAAqE;AACrE,iEAAiE;AACjE,0DAA0D;AAC1D,sEAAsE;AACtE,+DAA+D;AAC/D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE;KAC3C,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;;;;;;uDAMmC,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,WAAW;IACxB,WAAW;IACX,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;QAChC,UAAU,EAAE;YACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAC3B,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;oBACrE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzB;aACF;SACF;KACF;IACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;IACtC,IAAI,EAAE,gBAAgB;IACtB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,2EAA2E;QAC3E,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YAClB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trusty-squire/mcp",
3
- "version": "0.8.2",
3
+ "version": "0.8.3-rc.1",
4
4
  "mcpName": "io.github.Trusty-Squire/mcp",
5
5
  "type": "module",
6
6
  "description": "Local MCP server vibe coding agents install. Thin relay to the Trusty Squire API, with the bundled universal signup bot.",