artemys 0.2.1 → 0.3.2

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 (184) hide show
  1. package/README.md +111 -175
  2. package/dist/cli/config.d.ts +21 -0
  3. package/dist/cli/config.d.ts.map +1 -0
  4. package/dist/cli/config.js +97 -0
  5. package/dist/cli/config.js.map +1 -0
  6. package/dist/cli/index.d.ts +5 -0
  7. package/dist/cli/index.d.ts.map +1 -1
  8. package/dist/cli/index.js +147 -189
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/init.d.ts +3 -0
  11. package/dist/cli/init.d.ts.map +1 -0
  12. package/dist/cli/init.js +174 -0
  13. package/dist/cli/init.js.map +1 -0
  14. package/dist/coffeeshop/client.d.ts +24 -101
  15. package/dist/coffeeshop/client.d.ts.map +1 -1
  16. package/dist/coffeeshop/client.js +102 -153
  17. package/dist/coffeeshop/client.js.map +1 -1
  18. package/dist/coffeeshop/index.d.ts +2 -1
  19. package/dist/coffeeshop/index.d.ts.map +1 -1
  20. package/dist/coffeeshop/index.js +2 -0
  21. package/dist/coffeeshop/index.js.map +1 -1
  22. package/dist/coffeeshop/schemas.d.ts +146 -0
  23. package/dist/coffeeshop/schemas.d.ts.map +1 -0
  24. package/dist/coffeeshop/schemas.js +115 -0
  25. package/dist/coffeeshop/schemas.js.map +1 -0
  26. package/dist/discovery/agent-card.schema.d.ts +4 -2
  27. package/dist/discovery/agent-card.schema.d.ts.map +1 -1
  28. package/dist/discovery/agent-card.schema.js +10 -2
  29. package/dist/discovery/agent-card.schema.js.map +1 -1
  30. package/dist/discovery/index.d.ts +2 -4
  31. package/dist/discovery/index.d.ts.map +1 -1
  32. package/dist/discovery/index.js +2 -4
  33. package/dist/discovery/index.js.map +1 -1
  34. package/dist/discovery/reserved-handles.d.ts +2 -0
  35. package/dist/discovery/reserved-handles.d.ts.map +1 -0
  36. package/dist/discovery/reserved-handles.js +18 -0
  37. package/dist/discovery/reserved-handles.js.map +1 -0
  38. package/dist/integrations/job-boards/http.d.ts +4 -1
  39. package/dist/integrations/job-boards/http.d.ts.map +1 -1
  40. package/dist/integrations/job-boards/http.js +4 -3
  41. package/dist/integrations/job-boards/http.js.map +1 -1
  42. package/dist/integrations/job-boards/remotive.d.ts.map +1 -1
  43. package/dist/integrations/job-boards/remotive.js +6 -35
  44. package/dist/integrations/job-boards/remotive.js.map +1 -1
  45. package/dist/mcp-server/__tests__/test-fixtures.d.ts +39 -0
  46. package/dist/mcp-server/__tests__/test-fixtures.d.ts.map +1 -0
  47. package/dist/mcp-server/__tests__/test-fixtures.js +87 -0
  48. package/dist/mcp-server/__tests__/test-fixtures.js.map +1 -0
  49. package/dist/mcp-server/index.d.ts +1 -1
  50. package/dist/mcp-server/index.d.ts.map +1 -1
  51. package/dist/mcp-server/index.js +1 -1
  52. package/dist/mcp-server/index.js.map +1 -1
  53. package/dist/mcp-server/persistence.d.ts +0 -4
  54. package/dist/mcp-server/persistence.d.ts.map +1 -1
  55. package/dist/mcp-server/persistence.js +25 -30
  56. package/dist/mcp-server/persistence.js.map +1 -1
  57. package/dist/mcp-server/server.d.ts +2 -3
  58. package/dist/mcp-server/server.d.ts.map +1 -1
  59. package/dist/mcp-server/server.js +16 -6
  60. package/dist/mcp-server/server.js.map +1 -1
  61. package/dist/mcp-server/state.d.ts +0 -1
  62. package/dist/mcp-server/state.d.ts.map +1 -1
  63. package/dist/mcp-server/state.js +0 -4
  64. package/dist/mcp-server/state.js.map +1 -1
  65. package/dist/mcp-server/tools/common.d.ts +1 -199
  66. package/dist/mcp-server/tools/common.d.ts.map +1 -1
  67. package/dist/mcp-server/tools/common.js +1 -3
  68. package/dist/mcp-server/tools/common.js.map +1 -1
  69. package/dist/mcp-server/tools/index.d.ts.map +1 -1
  70. package/dist/mcp-server/tools/index.js +2 -4
  71. package/dist/mcp-server/tools/index.js.map +1 -1
  72. package/dist/mcp-server/tools/messaging.d.ts +14 -0
  73. package/dist/mcp-server/tools/messaging.d.ts.map +1 -0
  74. package/dist/mcp-server/tools/messaging.js +39 -0
  75. package/dist/mcp-server/tools/messaging.js.map +1 -0
  76. package/dist/mcp-server/tools/protocol.d.ts.map +1 -1
  77. package/dist/mcp-server/tools/protocol.js +0 -28
  78. package/dist/mcp-server/tools/protocol.js.map +1 -1
  79. package/dist/mcp-server/tools/talent.d.ts +18 -0
  80. package/dist/mcp-server/tools/talent.d.ts.map +1 -1
  81. package/dist/mcp-server/tools/talent.js +60 -188
  82. package/dist/mcp-server/tools/talent.js.map +1 -1
  83. package/dist/openclaw/skill.js +1 -1
  84. package/dist/openclaw/skill.js.map +1 -1
  85. package/dist/protocol/dialogue.schema.d.ts +26 -6
  86. package/dist/protocol/dialogue.schema.d.ts.map +1 -1
  87. package/dist/protocol/dialogue.schema.js +11 -0
  88. package/dist/protocol/dialogue.schema.js.map +1 -1
  89. package/dist/protocol/envelope.schema.d.ts +11 -5
  90. package/dist/protocol/envelope.schema.d.ts.map +1 -1
  91. package/dist/protocol/envelope.schema.js +4 -2
  92. package/dist/protocol/envelope.schema.js.map +1 -1
  93. package/dist/protocol/handshake.schema.d.ts +4 -2
  94. package/dist/protocol/handshake.schema.d.ts.map +1 -1
  95. package/dist/protocol/index.d.ts +2 -3
  96. package/dist/protocol/index.d.ts.map +1 -1
  97. package/dist/protocol/index.js +2 -3
  98. package/dist/protocol/index.js.map +1 -1
  99. package/dist/protocol/message-types.d.ts +2 -1
  100. package/dist/protocol/message-types.d.ts.map +1 -1
  101. package/dist/protocol/message-types.js +1 -0
  102. package/dist/protocol/message-types.js.map +1 -1
  103. package/dist/protocol/message.schema.d.ts +35 -12
  104. package/dist/protocol/message.schema.d.ts.map +1 -1
  105. package/dist/protocol/message.schema.js +4 -2
  106. package/dist/protocol/message.schema.js.map +1 -1
  107. package/dist/protocol/resolution.schema.d.ts +8 -4
  108. package/dist/protocol/resolution.schema.d.ts.map +1 -1
  109. package/dist/protocol/state-machine.d.ts.map +1 -1
  110. package/dist/protocol/state-machine.js +2 -1
  111. package/dist/protocol/state-machine.js.map +1 -1
  112. package/dist/protocol/talent.schema.d.ts +115 -0
  113. package/dist/protocol/talent.schema.d.ts.map +1 -1
  114. package/dist/protocol/talent.schema.js +61 -3
  115. package/dist/protocol/talent.schema.js.map +1 -1
  116. package/dist/resume/index.d.ts +4 -0
  117. package/dist/resume/index.d.ts.map +1 -0
  118. package/dist/resume/index.js +4 -0
  119. package/dist/resume/index.js.map +1 -0
  120. package/dist/resume/parse-resume.d.ts +8 -0
  121. package/dist/resume/parse-resume.d.ts.map +1 -0
  122. package/dist/resume/parse-resume.js +117 -0
  123. package/dist/resume/parse-resume.js.map +1 -0
  124. package/dist/resume/providers/anthropic.d.ts +2 -0
  125. package/dist/resume/providers/anthropic.d.ts.map +1 -0
  126. package/dist/resume/providers/anthropic.js +26 -0
  127. package/dist/resume/providers/anthropic.js.map +1 -0
  128. package/dist/resume/providers/google.d.ts +2 -0
  129. package/dist/resume/providers/google.d.ts.map +1 -0
  130. package/dist/resume/providers/google.js +24 -0
  131. package/dist/resume/providers/google.js.map +1 -0
  132. package/dist/resume/providers/openai.d.ts +2 -0
  133. package/dist/resume/providers/openai.d.ts.map +1 -0
  134. package/dist/resume/providers/openai.js +25 -0
  135. package/dist/resume/providers/openai.js.map +1 -0
  136. package/dist/resume/to-card.d.ts +7 -0
  137. package/dist/resume/to-card.d.ts.map +1 -0
  138. package/dist/resume/to-card.js +63 -0
  139. package/dist/resume/to-card.js.map +1 -0
  140. package/package.json +11 -6
  141. package/dist/discovery/intro-decision.schema.d.ts +0 -16
  142. package/dist/discovery/intro-decision.schema.d.ts.map +0 -1
  143. package/dist/discovery/intro-decision.schema.js +0 -10
  144. package/dist/discovery/intro-decision.schema.js.map +0 -1
  145. package/dist/discovery/intro-request.schema.d.ts +0 -10
  146. package/dist/discovery/intro-request.schema.d.ts.map +0 -1
  147. package/dist/discovery/intro-request.schema.js +0 -11
  148. package/dist/discovery/intro-request.schema.js.map +0 -1
  149. package/dist/discovery/session-bootstrap.schema.d.ts +0 -97
  150. package/dist/discovery/session-bootstrap.schema.d.ts.map +0 -1
  151. package/dist/discovery/session-bootstrap.schema.js +0 -100
  152. package/dist/discovery/session-bootstrap.schema.js.map +0 -1
  153. package/dist/mcp-server/tools/intro.d.ts +0 -3
  154. package/dist/mcp-server/tools/intro.d.ts.map +0 -1
  155. package/dist/mcp-server/tools/intro.js +0 -53
  156. package/dist/mcp-server/tools/intro.js.map +0 -1
  157. package/dist/protocol/transport.schema.d.ts +0 -27
  158. package/dist/protocol/transport.schema.d.ts.map +0 -1
  159. package/dist/protocol/transport.schema.js +0 -18
  160. package/dist/protocol/transport.schema.js.map +0 -1
  161. package/dist/transport/client.d.ts +0 -32
  162. package/dist/transport/client.d.ts.map +0 -1
  163. package/dist/transport/client.js +0 -155
  164. package/dist/transport/client.js.map +0 -1
  165. package/dist/transport/dedup.d.ts +0 -9
  166. package/dist/transport/dedup.d.ts.map +0 -1
  167. package/dist/transport/dedup.js +0 -36
  168. package/dist/transport/dedup.js.map +0 -1
  169. package/dist/transport/handler.d.ts +0 -9
  170. package/dist/transport/handler.d.ts.map +0 -1
  171. package/dist/transport/handler.js +0 -105
  172. package/dist/transport/handler.js.map +0 -1
  173. package/dist/transport/hmac.d.ts +0 -3
  174. package/dist/transport/hmac.d.ts.map +0 -1
  175. package/dist/transport/hmac.js +0 -43
  176. package/dist/transport/hmac.js.map +0 -1
  177. package/dist/transport/index.d.ts +0 -6
  178. package/dist/transport/index.d.ts.map +0 -1
  179. package/dist/transport/index.js +0 -6
  180. package/dist/transport/index.js.map +0 -1
  181. package/dist/transport/reference-runner.d.ts +0 -37
  182. package/dist/transport/reference-runner.d.ts.map +0 -1
  183. package/dist/transport/reference-runner.js +0 -372
  184. package/dist/transport/reference-runner.js.map +0 -1
@@ -1,100 +0,0 @@
1
- import { z } from "zod";
2
- function parseTimestampMs(value) {
3
- const parsed = Date.parse(value);
4
- return Number.isFinite(parsed) ? parsed : null;
5
- }
6
- export const SessionBootstrapSharedSecretSchema = z
7
- .object({
8
- secret_id: z.string().min(1),
9
- algorithm: z.literal("hmac-sha256"),
10
- value: z.string().min(32),
11
- issued_at: z.string().datetime(),
12
- rotate_after: z.string().datetime(),
13
- expires_at: z.string().datetime(),
14
- previous_secret_id: z.string().min(1).optional(),
15
- })
16
- .strict()
17
- .superRefine((secret, ctx) => {
18
- const issuedAtMs = parseTimestampMs(secret.issued_at);
19
- const rotateAfterMs = parseTimestampMs(secret.rotate_after);
20
- const expiresAtMs = parseTimestampMs(secret.expires_at);
21
- if (issuedAtMs === null || rotateAfterMs === null || expiresAtMs === null) {
22
- return;
23
- }
24
- if (rotateAfterMs <= issuedAtMs) {
25
- ctx.addIssue({
26
- code: z.ZodIssueCode.custom,
27
- path: ["rotate_after"],
28
- message: "rotate_after must be after issued_at",
29
- });
30
- }
31
- if (expiresAtMs <= rotateAfterMs) {
32
- ctx.addIssue({
33
- code: z.ZodIssueCode.custom,
34
- path: ["expires_at"],
35
- message: "expires_at must be after rotate_after",
36
- });
37
- }
38
- });
39
- export const SessionBootstrapSecretRotationSchema = z
40
- .object({
41
- rotate_url: z.string().url(),
42
- min_interval_seconds: z.number().int().positive(),
43
- grace_period_seconds: z.number().int().nonnegative(),
44
- })
45
- .strict();
46
- const SessionBootstrapRelayDisabledSchema = z
47
- .object({
48
- mode: z.literal("disabled"),
49
- enabled: z.literal(false),
50
- reason: z.enum(["direct_handoff_preferred", "not_supported", "service_not_configured"]),
51
- })
52
- .strict();
53
- const SessionBootstrapRelayEnabledSchema = z
54
- .object({
55
- mode: z.literal("enabled"),
56
- enabled: z.literal(true),
57
- relay_endpoint: z.string().url(),
58
- session_token: z.string().min(16),
59
- expires_at: z.string().datetime(),
60
- })
61
- .strict();
62
- export const SessionBootstrapRelaySchema = z.discriminatedUnion("mode", [
63
- SessionBootstrapRelayDisabledSchema,
64
- SessionBootstrapRelayEnabledSchema,
65
- ]);
66
- export const SessionBootstrapDirectHandoffSchema = z
67
- .object({
68
- transport: z.literal("https+hmac-sha256"),
69
- message_path: z.string().min(1).startsWith("/"),
70
- initiator_endpoint: z.string().url(),
71
- responder_endpoint: z.string().url(),
72
- shared_secret: SessionBootstrapSharedSecretSchema,
73
- secret_rotation: SessionBootstrapSecretRotationSchema,
74
- })
75
- .strict();
76
- export const SessionBootstrapSchema = z
77
- .object({
78
- intro_id: z.string(),
79
- initiator_agent_id: z.string(),
80
- responder_agent_id: z.string(),
81
- relay: SessionBootstrapRelaySchema,
82
- direct_handoff: SessionBootstrapDirectHandoffSchema,
83
- expires_at: z.string().datetime(),
84
- })
85
- .strict()
86
- .superRefine((bootstrap, ctx) => {
87
- const bootstrapExpiryMs = parseTimestampMs(bootstrap.expires_at);
88
- const secretExpiryMs = parseTimestampMs(bootstrap.direct_handoff.shared_secret.expires_at);
89
- if (bootstrapExpiryMs === null || secretExpiryMs === null) {
90
- return;
91
- }
92
- if (bootstrapExpiryMs !== secretExpiryMs) {
93
- ctx.addIssue({
94
- code: z.ZodIssueCode.custom,
95
- path: ["expires_at"],
96
- message: "expires_at must match direct_handoff.shared_secret.expires_at",
97
- });
98
- }
99
- });
100
- //# sourceMappingURL=session-bootstrap.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-bootstrap.schema.js","sourceRoot":"","sources":["../../src/discovery/session-bootstrap.schema.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { McpToolDeps, ToolServer } from "./common.js";
2
- export declare function registerIntroTools(server: ToolServer, deps: McpToolDeps): void;
3
- //# sourceMappingURL=intro.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intro.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/intro.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG1D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAoE9E"}
@@ -1,53 +0,0 @@
1
- import { z } from "zod";
2
- import { IntroDecisionSchema } from "../../discovery/index.js";
3
- import { toToolResponse } from "./common.js";
4
- export function registerIntroTools(server, deps) {
5
- server.registerTool("request_intro", {
6
- description: "Request an intro to another agent",
7
- inputSchema: {
8
- target_agent_id: z.string().min(1),
9
- reason: z.string().min(1),
10
- capabilities: z.array(z.string()).optional(),
11
- idempotency_key: z.string().max(128).optional(),
12
- },
13
- }, async (args) => {
14
- const result = await deps.coffeeShopClient.requestIntro({
15
- requester_agent_id: deps.agentCard.agent_id,
16
- target_agent_id: typeof args.target_agent_id === "string" ? args.target_agent_id : "",
17
- reason: typeof args.reason === "string" ? args.reason : "",
18
- ...(Array.isArray(args.capabilities)
19
- ? {
20
- requested_capabilities: args.capabilities.filter((value) => typeof value === "string"),
21
- }
22
- : {}),
23
- }, {
24
- ...(typeof args.idempotency_key === "string" ? { idempotencyKey: args.idempotency_key } : {}),
25
- });
26
- return toToolResponse(result);
27
- });
28
- server.registerTool("respond_to_intro", {
29
- description: "Accept or decline an intro request",
30
- inputSchema: {
31
- intro_id: z.string().min(1),
32
- decision: z.enum(["accept", "decline"]),
33
- reason: z.string().optional(),
34
- },
35
- }, async (args) => {
36
- const payload = IntroDecisionSchema.parse({
37
- decision: args.decision,
38
- decider_agent_id: deps.agentCard.agent_id,
39
- ...(typeof args.reason === "string" ? { reason: args.reason } : {}),
40
- });
41
- const introId = typeof args.intro_id === "string" ? args.intro_id : "";
42
- const sessionBootstrap = await deps.coffeeShopClient.respondToIntro(introId, payload);
43
- return toToolResponse(sessionBootstrap);
44
- });
45
- server.registerTool("list_pending_intros", {
46
- description: "List pending intro requests for this agent",
47
- inputSchema: {},
48
- }, async () => {
49
- const intros = await deps.coffeeShopClient.listPendingIntros();
50
- return toToolResponse(intros);
51
- });
52
- }
53
- //# sourceMappingURL=intro.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intro.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/intro.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { z } from "zod";
2
- export declare const TransportAckSchema: z.ZodObject<{
3
- received: z.ZodLiteral<true>;
4
- message_id: z.ZodString;
5
- }, z.core.$strip>;
6
- export type TransportAck = z.infer<typeof TransportAckSchema>;
7
- export declare const TransportErrorCodeSchema: z.ZodEnum<{
8
- unauthorized: "unauthorized";
9
- rate_limited: "rate_limited";
10
- bad_request: "bad_request";
11
- conflict: "conflict";
12
- internal_error: "internal_error";
13
- }>;
14
- export type TransportErrorCode = z.infer<typeof TransportErrorCodeSchema>;
15
- export declare const TransportErrorResponseSchema: z.ZodObject<{
16
- error_code: z.ZodEnum<{
17
- unauthorized: "unauthorized";
18
- rate_limited: "rate_limited";
19
- bad_request: "bad_request";
20
- conflict: "conflict";
21
- internal_error: "internal_error";
22
- }>;
23
- message: z.ZodString;
24
- details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
25
- }, z.core.$strip>;
26
- export type TransportErrorResponse = z.infer<typeof TransportErrorResponseSchema>;
27
- //# sourceMappingURL=transport.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.schema.d.ts","sourceRoot":"","sources":["../../src/protocol/transport.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,wBAAwB;;;;;;EAMnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B;;;;;;;;;;iBAIvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { z } from "zod";
2
- export const TransportAckSchema = z.object({
3
- received: z.literal(true),
4
- message_id: z.string().min(1).max(256),
5
- });
6
- export const TransportErrorCodeSchema = z.enum([
7
- "bad_request",
8
- "unauthorized",
9
- "conflict",
10
- "rate_limited",
11
- "internal_error",
12
- ]);
13
- export const TransportErrorResponseSchema = z.object({
14
- error_code: TransportErrorCodeSchema,
15
- message: z.string(),
16
- details: z.record(z.string(), z.unknown()).optional(),
17
- });
18
- //# sourceMappingURL=transport.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.schema.js","sourceRoot":"","sources":["../../src/protocol/transport.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACvC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7C,aAAa;IACb,cAAc;IACd,UAAU;IACV,cAAc;IACd,gBAAgB;CACjB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,UAAU,EAAE,wBAAwB;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
@@ -1,32 +0,0 @@
1
- import { type ProtocolMessage, type TransportAck, type TransportErrorResponse } from "../protocol/index.js";
2
- export type TransportResult = {
3
- ok: true;
4
- ack: TransportAck;
5
- } | {
6
- ok: false;
7
- error: TransportErrorResponse;
8
- status: number;
9
- } | {
10
- ok: false;
11
- error: {
12
- error_code: "network_error";
13
- message: string;
14
- };
15
- };
16
- export interface TransportClientOptions {
17
- agentId: string;
18
- getSharedSecret: (targetAgentId: string) => Promise<string>;
19
- maxRetries?: number;
20
- initialDelayMs?: number;
21
- maxDelayMs?: number;
22
- resolveTargetAgentId?: (endpoint: string, message: ProtocolMessage) => string;
23
- }
24
- export interface TransportSendOptions {
25
- targetAgentId?: string;
26
- }
27
- export declare class ProtocolTransportClient {
28
- private readonly options;
29
- constructor(options: TransportClientOptions);
30
- send(endpoint: string, message: ProtocolMessage, options?: TransportSendOptions): Promise<TransportResult>;
31
- }
32
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/transport/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAA;AAO7B,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE;QAAE,UAAU,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAE1E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,KAAK,MAAM,CAAA;CAC9E;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AA8DD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CACqC;gBAEjD,OAAO,EAAE,sBAAsB;IAcrC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;CA2FrH"}
@@ -1,155 +0,0 @@
1
- import { TransportAckSchema, TransportErrorResponseSchema, parseProtocolMessageSafe, } from "../protocol/index.js";
2
- import { signPayload } from "./hmac.js";
3
- const DEFAULT_MAX_RETRIES = 5;
4
- const DEFAULT_INITIAL_DELAY_MS = 5000;
5
- const DEFAULT_MAX_DELAY_MS = 60000;
6
- function sanitizeTransportError(status, data) {
7
- const parsed = TransportErrorResponseSchema.safeParse(data);
8
- if (parsed.success) {
9
- return parsed.data;
10
- }
11
- if (status === 401) {
12
- return { error_code: "unauthorized", message: "Unauthorized" };
13
- }
14
- if (status === 409) {
15
- return { error_code: "conflict", message: "Duplicate message" };
16
- }
17
- if (status === 429) {
18
- return { error_code: "rate_limited", message: "Rate limited" };
19
- }
20
- return {
21
- error_code: status >= 500 ? "internal_error" : "bad_request",
22
- message: status >= 500 ? "Transport server error" : "Transport request failed",
23
- };
24
- }
25
- async function parseJson(response) {
26
- const text = await response.text();
27
- if (!text) {
28
- return null;
29
- }
30
- try {
31
- return JSON.parse(text);
32
- }
33
- catch {
34
- return null;
35
- }
36
- }
37
- function parseRetryAfterMs(response) {
38
- const header = response.headers.get("retry-after");
39
- if (!header) {
40
- return null;
41
- }
42
- const asSeconds = Number.parseInt(header, 10);
43
- if (Number.isFinite(asSeconds)) {
44
- return Math.max(0, asSeconds * 1000);
45
- }
46
- const asDate = Date.parse(header);
47
- if (Number.isNaN(asDate)) {
48
- return null;
49
- }
50
- return Math.max(0, asDate - Date.now());
51
- }
52
- function sleep(ms) {
53
- return new Promise((resolve) => {
54
- setTimeout(resolve, ms);
55
- });
56
- }
57
- export class ProtocolTransportClient {
58
- options;
59
- constructor(options) {
60
- this.options = {
61
- ...options,
62
- maxRetries: options.maxRetries ?? DEFAULT_MAX_RETRIES,
63
- initialDelayMs: options.initialDelayMs ?? DEFAULT_INITIAL_DELAY_MS,
64
- maxDelayMs: options.maxDelayMs ?? DEFAULT_MAX_DELAY_MS,
65
- resolveTargetAgentId: options.resolveTargetAgentId ??
66
- ((endpoint) => {
67
- return endpoint;
68
- }),
69
- };
70
- }
71
- async send(endpoint, message, options = {}) {
72
- const parsed = parseProtocolMessageSafe(message);
73
- if (!parsed.ok) {
74
- return {
75
- ok: false,
76
- status: 400,
77
- error: {
78
- error_code: "bad_request",
79
- message: parsed.error.message,
80
- },
81
- };
82
- }
83
- if (parsed.message.sender_agent_id !== this.options.agentId) {
84
- return {
85
- ok: false,
86
- status: 400,
87
- error: {
88
- error_code: "bad_request",
89
- message: "message.sender_agent_id must match client agentId",
90
- },
91
- };
92
- }
93
- const body = JSON.stringify(parsed.message);
94
- const timestamp = new Date().toISOString();
95
- const targetAgentId = options.targetAgentId ?? this.options.resolveTargetAgentId(endpoint, parsed.message);
96
- const sharedSecret = await this.options.getSharedSecret(targetAgentId);
97
- const signature = await signPayload(this.options.agentId, timestamp, body, sharedSecret);
98
- let retries = 0;
99
- let delayMs = this.options.initialDelayMs;
100
- while (true) {
101
- try {
102
- const response = await fetch(endpoint, {
103
- method: "POST",
104
- headers: {
105
- "content-type": "application/json",
106
- "x-artemys-message-id": parsed.message.message_id,
107
- "x-artemys-timestamp": timestamp,
108
- "x-artemys-sender-agent-id": this.options.agentId,
109
- "x-artemys-signature": signature,
110
- },
111
- body,
112
- });
113
- if (response.status === 202) {
114
- const json = await parseJson(response);
115
- const ack = TransportAckSchema.parse(json);
116
- return { ok: true, ack };
117
- }
118
- if (response.status === 429 && retries < this.options.maxRetries) {
119
- const retryAfterMs = parseRetryAfterMs(response);
120
- await sleep(retryAfterMs ?? delayMs);
121
- retries += 1;
122
- delayMs = Math.min(this.options.maxDelayMs, delayMs * 2);
123
- continue;
124
- }
125
- if (response.status >= 500 && retries < this.options.maxRetries) {
126
- await sleep(delayMs);
127
- retries += 1;
128
- delayMs = Math.min(this.options.maxDelayMs, delayMs * 2);
129
- continue;
130
- }
131
- const errorJson = await parseJson(response);
132
- return {
133
- ok: false,
134
- status: response.status,
135
- error: sanitizeTransportError(response.status, errorJson),
136
- };
137
- }
138
- catch (error) {
139
- if (retries >= this.options.maxRetries) {
140
- return {
141
- ok: false,
142
- error: {
143
- error_code: "network_error",
144
- message: error instanceof Error ? error.message : "Unknown network error",
145
- },
146
- };
147
- }
148
- await sleep(delayMs);
149
- retries += 1;
150
- delayMs = Math.min(this.options.maxDelayMs, delayMs * 2);
151
- }
152
- }
153
- }
154
- }
155
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/transport/client.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export declare class MessageDeduplicationCache {
2
- private readonly ttlMs;
3
- private readonly entries;
4
- constructor(ttlMs?: number);
5
- has(senderAgentId: string, messageId: string): boolean;
6
- add(senderAgentId: string, messageId: string): void;
7
- private evictExpired;
8
- }
9
- //# sourceMappingURL=dedup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../src/transport/dedup.ts"],"names":[],"mappings":"AAMA,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAExC,KAAK,SAAiB;IAIlC,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAetD,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKnD,OAAO,CAAC,YAAY;CAQrB"}
@@ -1,36 +0,0 @@
1
- const DEFAULT_TTL_MS = 15 * 60 * 1000;
2
- function makeKey(senderAgentId, messageId) {
3
- return `${senderAgentId}:${messageId}`;
4
- }
5
- export class MessageDeduplicationCache {
6
- ttlMs;
7
- entries = new Map();
8
- constructor(ttlMs = DEFAULT_TTL_MS) {
9
- this.ttlMs = ttlMs;
10
- }
11
- has(senderAgentId, messageId) {
12
- const key = makeKey(senderAgentId, messageId);
13
- const expiresAt = this.entries.get(key);
14
- if (!expiresAt) {
15
- return false;
16
- }
17
- if (expiresAt <= Date.now()) {
18
- this.entries.delete(key);
19
- return false;
20
- }
21
- return true;
22
- }
23
- add(senderAgentId, messageId) {
24
- this.evictExpired();
25
- this.entries.set(makeKey(senderAgentId, messageId), Date.now() + this.ttlMs);
26
- }
27
- evictExpired() {
28
- const now = Date.now();
29
- for (const [key, expiresAt] of this.entries.entries()) {
30
- if (expiresAt <= now) {
31
- this.entries.delete(key);
32
- }
33
- }
34
- }
35
- }
36
- //# sourceMappingURL=dedup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../src/transport/dedup.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAErC,SAAS,OAAO,CAAC,aAAqB,EAAE,SAAiB;IACvD,OAAO,GAAG,aAAa,IAAI,SAAS,EAAE,CAAA;AACxC,CAAC;AAED,MAAM,OAAO,yBAAyB;IACnB,KAAK,CAAQ;IACb,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEpD,YAAY,KAAK,GAAG,cAAc;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,GAAG,CAAC,aAAqB,EAAE,SAAiB;QAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,aAAqB,EAAE,SAAiB;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9E,CAAC;IAEO,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,9 +0,0 @@
1
- import { type ProtocolMessage } from "../protocol/index.js";
2
- export interface ProtocolHandlerOptions {
3
- getSharedSecret: (senderAgentId: string) => Promise<string | null>;
4
- onMessage: (message: ProtocolMessage, senderAgentId: string) => Promise<void>;
5
- maxBodySize?: number;
6
- replayWindowMs?: number;
7
- }
8
- export declare function createProtocolHandler(options: ProtocolHandlerOptions): (request: Request) => Promise<Response>;
9
- //# sourceMappingURL=handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/transport/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAA;AAO7B,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAClE,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAwCD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAmF9G"}
@@ -1,105 +0,0 @@
1
- import { TransportAckSchema, parseProtocolMessageSafe, } from "../protocol/index.js";
2
- import { MessageDeduplicationCache } from "./dedup.js";
3
- import { verifyPayload } from "./hmac.js";
4
- const DEFAULT_MAX_BODY_SIZE = 256 * 1024;
5
- const DEFAULT_REPLAY_WINDOW_MS = 5 * 60 * 1000;
6
- function jsonResponse(status, payload) {
7
- return new Response(JSON.stringify(payload), {
8
- status,
9
- headers: { "content-type": "application/json" },
10
- });
11
- }
12
- function errorResponse(status, errorCode, message, details) {
13
- return jsonResponse(status, {
14
- error_code: errorCode,
15
- message,
16
- ...(details ? { details } : {}),
17
- });
18
- }
19
- function requireHeader(request, name) {
20
- const value = request.headers.get(name);
21
- if (!value) {
22
- return null;
23
- }
24
- const trimmed = value.trim();
25
- return trimmed.length > 0 ? trimmed : null;
26
- }
27
- function isTimestampFresh(timestamp, replayWindowMs) {
28
- const parsed = Date.parse(timestamp);
29
- if (Number.isNaN(parsed)) {
30
- return false;
31
- }
32
- return Math.abs(Date.now() - parsed) <= replayWindowMs;
33
- }
34
- export function createProtocolHandler(options) {
35
- const maxBodySize = options.maxBodySize ?? DEFAULT_MAX_BODY_SIZE;
36
- const replayWindowMs = options.replayWindowMs ?? DEFAULT_REPLAY_WINDOW_MS;
37
- const dedupCache = new MessageDeduplicationCache();
38
- return async function protocolHandler(request) {
39
- if (request.method !== "POST") {
40
- return new Response("Method Not Allowed", { status: 405 });
41
- }
42
- try {
43
- const contentLengthHeader = request.headers.get("content-length");
44
- if (contentLengthHeader) {
45
- const contentLength = Number.parseInt(contentLengthHeader, 10);
46
- if (Number.isFinite(contentLength) && contentLength > maxBodySize) {
47
- return errorResponse(400, "bad_request", "Request body exceeds maximum allowed size");
48
- }
49
- }
50
- const body = await request.text();
51
- if (new TextEncoder().encode(body).byteLength > maxBodySize) {
52
- return errorResponse(400, "bad_request", "Request body exceeds maximum allowed size");
53
- }
54
- const senderAgentId = requireHeader(request, "X-Artemys-Sender-Agent-Id");
55
- const timestamp = requireHeader(request, "X-Artemys-Timestamp");
56
- const signature = requireHeader(request, "X-Artemys-Signature");
57
- const headerMessageId = requireHeader(request, "X-Artemys-Message-Id");
58
- if (!senderAgentId || !timestamp || !signature || !headerMessageId) {
59
- return errorResponse(401, "unauthorized", "Missing required authentication headers");
60
- }
61
- if (!isTimestampFresh(timestamp, replayWindowMs)) {
62
- return errorResponse(401, "unauthorized", "Request timestamp is outside replay window");
63
- }
64
- const sharedSecret = await options.getSharedSecret(senderAgentId);
65
- if (!sharedSecret) {
66
- return errorResponse(401, "unauthorized", "Unknown sender");
67
- }
68
- const isValid = await verifyPayload(senderAgentId, timestamp, body, signature, sharedSecret);
69
- if (!isValid) {
70
- return errorResponse(401, "unauthorized", "Invalid signature");
71
- }
72
- if (dedupCache.has(senderAgentId, headerMessageId)) {
73
- return errorResponse(409, "conflict", "Duplicate message_id for sender");
74
- }
75
- let rawMessage;
76
- try {
77
- rawMessage = JSON.parse(body);
78
- }
79
- catch {
80
- return errorResponse(400, "bad_request", "Body is not valid JSON");
81
- }
82
- const parsed = parseProtocolMessageSafe(rawMessage);
83
- if (!parsed.ok) {
84
- return errorResponse(400, "bad_request", parsed.error.message);
85
- }
86
- if (parsed.message.sender_agent_id !== senderAgentId) {
87
- return errorResponse(401, "unauthorized", "sender_agent_id does not match header");
88
- }
89
- if (parsed.message.message_id !== headerMessageId) {
90
- return errorResponse(400, "bad_request", "message_id does not match header");
91
- }
92
- await options.onMessage(parsed.message, senderAgentId);
93
- dedupCache.add(senderAgentId, parsed.message.message_id);
94
- const ack = TransportAckSchema.parse({
95
- received: true,
96
- message_id: parsed.message.message_id,
97
- });
98
- return jsonResponse(202, ack);
99
- }
100
- catch {
101
- return errorResponse(500, "internal_error", "Internal server error");
102
- }
103
- };
104
- }
105
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/transport/handler.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function signPayload(senderAgentId: string, timestamp: string, body: string, secret: string): Promise<string>;
2
- export declare function verifyPayload(senderAgentId: string, timestamp: string, body: string, signature: string, secret: string): Promise<boolean>;
3
- //# sourceMappingURL=hmac.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmac.d.ts","sourceRoot":"","sources":["../../src/transport/hmac.ts"],"names":[],"mappings":"AAuCA,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAalB"}