@a5c-ai/tasks-mux 5.0.1-staging.04ca6ab00d21

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 (175) hide show
  1. package/README.md +103 -0
  2. package/dist/auth/forge-interface.d.ts +67 -0
  3. package/dist/auth/forge-interface.d.ts.map +1 -0
  4. package/dist/auth/forge-interface.js +69 -0
  5. package/dist/auth/github-app.d.ts +64 -0
  6. package/dist/auth/github-app.d.ts.map +1 -0
  7. package/dist/auth/github-app.js +141 -0
  8. package/dist/auth/github-oauth.d.ts +27 -0
  9. package/dist/auth/github-oauth.d.ts.map +1 -0
  10. package/dist/auth/github-oauth.js +89 -0
  11. package/dist/auth/index.d.ts +8 -0
  12. package/dist/auth/index.d.ts.map +1 -0
  13. package/dist/auth/index.js +14 -0
  14. package/dist/auth/jwt.d.ts +24 -0
  15. package/dist/auth/jwt.d.ts.map +1 -0
  16. package/dist/auth/jwt.js +43 -0
  17. package/dist/auth/middleware.d.ts +22 -0
  18. package/dist/auth/middleware.d.ts.map +1 -0
  19. package/dist/auth/middleware.js +36 -0
  20. package/dist/auth/ssh-keys.d.ts +21 -0
  21. package/dist/auth/ssh-keys.d.ts.map +1 -0
  22. package/dist/auth/ssh-keys.js +59 -0
  23. package/dist/auth/types.d.ts +165 -0
  24. package/dist/auth/types.d.ts.map +1 -0
  25. package/dist/auth/types.js +53 -0
  26. package/dist/backend.d.ts +117 -0
  27. package/dist/backend.d.ts.map +1 -0
  28. package/dist/backend.js +15 -0
  29. package/dist/backends/git-native.d.ts +51 -0
  30. package/dist/backends/git-native.d.ts.map +1 -0
  31. package/dist/backends/git-native.js +324 -0
  32. package/dist/backends/github-issues.d.ts +77 -0
  33. package/dist/backends/github-issues.d.ts.map +1 -0
  34. package/dist/backends/github-issues.js +796 -0
  35. package/dist/backends/index.d.ts +48 -0
  36. package/dist/backends/index.d.ts.map +1 -0
  37. package/dist/backends/index.js +139 -0
  38. package/dist/backends/server.d.ts +41 -0
  39. package/dist/backends/server.d.ts.map +1 -0
  40. package/dist/backends/server.js +298 -0
  41. package/dist/cli/auth-store.d.ts +49 -0
  42. package/dist/cli/auth-store.d.ts.map +1 -0
  43. package/dist/cli/auth-store.js +150 -0
  44. package/dist/cli/client-config.d.ts +10 -0
  45. package/dist/cli/client-config.d.ts.map +1 -0
  46. package/dist/cli/client-config.js +87 -0
  47. package/dist/cli/commands/ask.d.ts +3 -0
  48. package/dist/cli/commands/ask.d.ts.map +1 -0
  49. package/dist/cli/commands/ask.js +171 -0
  50. package/dist/cli/commands/auth.d.ts +3 -0
  51. package/dist/cli/commands/auth.d.ts.map +1 -0
  52. package/dist/cli/commands/auth.js +510 -0
  53. package/dist/cli/commands/breakpoints.d.ts +3 -0
  54. package/dist/cli/commands/breakpoints.d.ts.map +1 -0
  55. package/dist/cli/commands/breakpoints.js +152 -0
  56. package/dist/cli/commands/responder-loop.d.ts +3 -0
  57. package/dist/cli/commands/responder-loop.d.ts.map +1 -0
  58. package/dist/cli/commands/responder-loop.js +78 -0
  59. package/dist/cli/commands/responders.d.ts +3 -0
  60. package/dist/cli/commands/responders.d.ts.map +1 -0
  61. package/dist/cli/commands/responders.js +74 -0
  62. package/dist/cli/commands/server.d.ts +3 -0
  63. package/dist/cli/commands/server.d.ts.map +1 -0
  64. package/dist/cli/commands/server.js +34 -0
  65. package/dist/cli/index.d.ts +4 -0
  66. package/dist/cli/index.d.ts.map +1 -0
  67. package/dist/cli/index.js +9 -0
  68. package/dist/cli/output.d.ts +26 -0
  69. package/dist/cli/output.d.ts.map +1 -0
  70. package/dist/cli/output.js +143 -0
  71. package/dist/cli/program.d.ts +6 -0
  72. package/dist/cli/program.d.ts.map +1 -0
  73. package/dist/cli/program.js +32 -0
  74. package/dist/client/answer-poller.d.ts +52 -0
  75. package/dist/client/answer-poller.d.ts.map +1 -0
  76. package/dist/client/answer-poller.js +199 -0
  77. package/dist/client/auth-client.d.ts +200 -0
  78. package/dist/client/auth-client.d.ts.map +1 -0
  79. package/dist/client/auth-client.js +309 -0
  80. package/dist/client/breakpoint-router.d.ts +45 -0
  81. package/dist/client/breakpoint-router.d.ts.map +1 -0
  82. package/dist/client/breakpoint-router.js +45 -0
  83. package/dist/client/index.d.ts +17 -0
  84. package/dist/client/index.d.ts.map +1 -0
  85. package/dist/client/index.js +16 -0
  86. package/dist/client/profile-validator.d.ts +34 -0
  87. package/dist/client/profile-validator.d.ts.map +1 -0
  88. package/dist/client/profile-validator.js +89 -0
  89. package/dist/client/responder-client.d.ts +39 -0
  90. package/dist/client/responder-client.d.ts.map +1 -0
  91. package/dist/client/responder-client.js +72 -0
  92. package/dist/client/responder-matcher.d.ts +49 -0
  93. package/dist/client/responder-matcher.d.ts.map +1 -0
  94. package/dist/client/responder-matcher.js +226 -0
  95. package/dist/client/server-client.d.ts +124 -0
  96. package/dist/client/server-client.d.ts.map +1 -0
  97. package/dist/client/server-client.js +266 -0
  98. package/dist/client/timeout-manager.d.ts +47 -0
  99. package/dist/client/timeout-manager.d.ts.map +1 -0
  100. package/dist/client/timeout-manager.js +77 -0
  101. package/dist/config.d.ts +20 -0
  102. package/dist/config.d.ts.map +1 -0
  103. package/dist/config.js +93 -0
  104. package/dist/harness/index.d.ts +4 -0
  105. package/dist/harness/index.d.ts.map +1 -0
  106. package/dist/harness/index.js +2 -0
  107. package/dist/harness/interaction-provider.d.ts +71 -0
  108. package/dist/harness/interaction-provider.d.ts.map +1 -0
  109. package/dist/harness/interaction-provider.js +124 -0
  110. package/dist/harness/routing-rules.d.ts +7 -0
  111. package/dist/harness/routing-rules.d.ts.map +1 -0
  112. package/dist/harness/routing-rules.js +37 -0
  113. package/dist/index.d.ts +19 -0
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +26 -0
  116. package/dist/mcp/backend-resolver.d.ts +43 -0
  117. package/dist/mcp/backend-resolver.d.ts.map +1 -0
  118. package/dist/mcp/backend-resolver.js +111 -0
  119. package/dist/mcp/http-transport.d.ts +37 -0
  120. package/dist/mcp/http-transport.d.ts.map +1 -0
  121. package/dist/mcp/http-transport.js +103 -0
  122. package/dist/mcp/index.d.ts +14 -0
  123. package/dist/mcp/index.d.ts.map +1 -0
  124. package/dist/mcp/index.js +11 -0
  125. package/dist/mcp/server.d.ts +20 -0
  126. package/dist/mcp/server.d.ts.map +1 -0
  127. package/dist/mcp/server.js +121 -0
  128. package/dist/mcp/tools/answer-breakpoint.d.ts +32 -0
  129. package/dist/mcp/tools/answer-breakpoint.d.ts.map +1 -0
  130. package/dist/mcp/tools/answer-breakpoint.js +45 -0
  131. package/dist/mcp/tools/ask-breakpoint.d.ts +58 -0
  132. package/dist/mcp/tools/ask-breakpoint.d.ts.map +1 -0
  133. package/dist/mcp/tools/ask-breakpoint.js +78 -0
  134. package/dist/mcp/tools/check-status.d.ts +16 -0
  135. package/dist/mcp/tools/check-status.d.ts.map +1 -0
  136. package/dist/mcp/tools/check-status.js +18 -0
  137. package/dist/mcp/tools/claim-breakpoint.d.ts +18 -0
  138. package/dist/mcp/tools/claim-breakpoint.d.ts.map +1 -0
  139. package/dist/mcp/tools/claim-breakpoint.js +28 -0
  140. package/dist/mcp/tools/list-breakpoints.d.ts +16 -0
  141. package/dist/mcp/tools/list-breakpoints.d.ts.map +1 -0
  142. package/dist/mcp/tools/list-breakpoints.js +14 -0
  143. package/dist/mcp/tools/list-responders.d.ts +18 -0
  144. package/dist/mcp/tools/list-responders.d.ts.map +1 -0
  145. package/dist/mcp/tools/list-responders.js +37 -0
  146. package/dist/mcp/tools/poll-breakpoints.d.ts +18 -0
  147. package/dist/mcp/tools/poll-breakpoints.d.ts.map +1 -0
  148. package/dist/mcp/tools/poll-breakpoints.js +36 -0
  149. package/dist/mcp/tools/verify-answer.d.ts +16 -0
  150. package/dist/mcp/tools/verify-answer.d.ts.map +1 -0
  151. package/dist/mcp/tools/verify-answer.js +38 -0
  152. package/dist/proven/index.d.ts +5 -0
  153. package/dist/proven/index.d.ts.map +1 -0
  154. package/dist/proven/index.js +3 -0
  155. package/dist/proven/keys.d.ts +33 -0
  156. package/dist/proven/keys.d.ts.map +1 -0
  157. package/dist/proven/keys.js +117 -0
  158. package/dist/proven/sign.d.ts +16 -0
  159. package/dist/proven/sign.d.ts.map +1 -0
  160. package/dist/proven/sign.js +60 -0
  161. package/dist/proven/types.d.ts +26 -0
  162. package/dist/proven/types.d.ts.map +1 -0
  163. package/dist/proven/types.js +5 -0
  164. package/dist/proven/verify.d.ts +6 -0
  165. package/dist/proven/verify.d.ts.map +1 -0
  166. package/dist/proven/verify.js +58 -0
  167. package/dist/types.d.ts +4034 -0
  168. package/dist/types.d.ts.map +1 -0
  169. package/dist/types.js +244 -0
  170. package/package.json +95 -0
  171. package/responder/README.md +42 -0
  172. package/responder/backend-responder.json +9 -0
  173. package/responder/devops-responder.json +9 -0
  174. package/responder/frontend-responder.json +9 -0
  175. package/responder/schema.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
package/dist/types.js ADDED
@@ -0,0 +1,244 @@
1
+ import { z } from "zod";
2
+ import { randomBytes } from "node:crypto";
3
+ // ── Enums ────────────────────────────────────────────────────────────────
4
+ export const BreakpointStatusSchema = z.enum([
5
+ "pending",
6
+ "routed",
7
+ "claimed",
8
+ "answered",
9
+ "completed",
10
+ "expired",
11
+ "cancelled",
12
+ ]);
13
+ export const BreakpointStrategySchema = z.enum([
14
+ "single",
15
+ "first-response-wins",
16
+ "collect-all",
17
+ "quorum",
18
+ ]);
19
+ // ── Urgency ──────────────────────────────────────────────────────────────
20
+ export const UrgencySchema = z.enum(["low", "medium", "high"]);
21
+ // ── InteractionKind ──────────────────────────────────────────────────────
22
+ export const InteractionKindSchema = z.enum([
23
+ "clarification",
24
+ "approval",
25
+ "intervention",
26
+ "notification",
27
+ "handoff",
28
+ ]);
29
+ // ── Code Snippet ─────────────────────────────────────────────────────────
30
+ export const CodeSnippetSchema = z.union([
31
+ z.string(),
32
+ z.object({
33
+ filename: z.string(),
34
+ code: z.string(),
35
+ language: z.string().optional(),
36
+ }),
37
+ ]);
38
+ // ── BreakpointContext ────────────────────────────────────────────────────
39
+ export const BreakpointContextLinkSchema = z.object({
40
+ label: z.string().min(1),
41
+ url: z.string().url(),
42
+ kind: z.enum(["reference", "repo", "artifact", "external"]).optional(),
43
+ }).catchall(z.unknown());
44
+ export const BreakpointContextSectionSchema = z.object({
45
+ title: z.string().min(1),
46
+ markdown: z.string().min(1),
47
+ }).catchall(z.unknown());
48
+ export const BreakpointContextArtifactSchema = z.object({
49
+ label: z.string().min(1),
50
+ url: z.string().url(),
51
+ kind: z.enum(["image", "document", "trace", "log", "build", "external"]).optional(),
52
+ mimeType: z.string().min(1).optional(),
53
+ }).catchall(z.unknown());
54
+ export const BreakpointContextSchema = z.object({
55
+ description: z.string(),
56
+ codeSnippets: z.array(CodeSnippetSchema),
57
+ fileReferences: z.array(z.string()),
58
+ tags: z.array(z.string()),
59
+ title: z.string().optional(),
60
+ summary: z.string().optional(),
61
+ markdown: z.string().optional(),
62
+ domain: z.string().optional(),
63
+ urgency: UrgencySchema.optional(),
64
+ interactionKind: InteractionKindSchema.optional(),
65
+ links: z.array(BreakpointContextLinkSchema).optional(),
66
+ sections: z.array(BreakpointContextSectionSchema).optional(),
67
+ artifacts: z.array(BreakpointContextArtifactSchema).optional(),
68
+ metadata: z.record(z.string(), z.unknown()).optional(),
69
+ }).catchall(z.unknown());
70
+ // ── BreakpointRouting ────────────────────────────────────────────────────
71
+ export const BreakpointRoutingSchema = z.object({
72
+ strategy: BreakpointStrategySchema,
73
+ targetResponders: z.array(z.string()),
74
+ timeoutMs: z.number().positive(),
75
+ presentToUser: z.boolean(),
76
+ breakpointId: z.string().optional(),
77
+ autoApproveAfterN: z.number().int().optional(),
78
+ });
79
+ // ── ResponderProfile ─────────────────────────────────────────────────────
80
+ export const ResponderProfileSchema = z.object({
81
+ id: z.string().min(1),
82
+ name: z.string().min(1),
83
+ title: z.string(),
84
+ domains: z.array(z.string()),
85
+ tags: z.array(z.string()),
86
+ availability: z.boolean(),
87
+ responseTimeSla: z.number().positive(),
88
+ publicKeyFingerprint: z.string().optional(),
89
+ }).strict();
90
+ // ── BreakpointAnswer ─────────────────────────────────────────────────────
91
+ export const BreakpointAnswerRatingSchema = z.object({
92
+ helpful: z.boolean(),
93
+ comment: z.string().optional(),
94
+ ratedAt: z.string().datetime(),
95
+ });
96
+ export const DecisionMemorySchema = z.object({
97
+ applicabilityContext: z.string().min(1),
98
+ reasoning: z.string().min(1),
99
+ enrichedContext: z.string().optional(),
100
+ savedAt: z.string().datetime(),
101
+ });
102
+ export const BreakpointAnswerSchema = z.object({
103
+ id: z.string().min(1),
104
+ breakpointId: z.string().min(1),
105
+ responderId: z.string().min(1),
106
+ responderName: z.string().min(1),
107
+ text: z.string(),
108
+ approved: z.boolean().optional(),
109
+ confidence: z.number().min(0).max(100),
110
+ references: z.array(z.string()),
111
+ followUpQuestions: z.array(z.string()),
112
+ answeredAt: z.string().datetime(),
113
+ rating: BreakpointAnswerRatingSchema.optional(),
114
+ decisionMemory: DecisionMemorySchema.optional(),
115
+ });
116
+ // ── Proven Breakpoint Types ──────────────────────────────────────────────
117
+ export const ProvenBreakpointAnswerSchema = BreakpointAnswerSchema.extend({
118
+ signature: z.string().min(1),
119
+ publicKeyFingerprint: z.string().min(1),
120
+ signedAt: z.string().datetime(),
121
+ signedFields: z.array(z.string()),
122
+ });
123
+ export const BreakpointPublicAnswerSchema = z.union([
124
+ ProvenBreakpointAnswerSchema,
125
+ BreakpointAnswerSchema,
126
+ ]);
127
+ export function isProvenBreakpointAnswer(answer) {
128
+ return ProvenBreakpointAnswerSchema.safeParse(answer).success;
129
+ }
130
+ export const ProvenVerificationResultSchema = z.object({
131
+ valid: z.boolean(),
132
+ publicKeyFingerprint: z.string().optional(),
133
+ responderName: z.string().optional(),
134
+ reason: z.string().optional(),
135
+ verifiedAt: z.string().datetime(),
136
+ });
137
+ // ── Breakpoint ───────────────────────────────────────────────────────────
138
+ export const BreakpointSubmitterSchema = z.object({
139
+ sub: z.string().min(1),
140
+ login: z.string().min(1),
141
+ name: z.string().min(1),
142
+ email: z.string().email().optional(),
143
+ avatarUrl: z.string().url().optional(),
144
+ });
145
+ export const BreakpointSchema = z.object({
146
+ id: z.string().min(1),
147
+ text: z.string().min(1),
148
+ context: BreakpointContextSchema,
149
+ status: BreakpointStatusSchema,
150
+ routing: BreakpointRoutingSchema,
151
+ answers: z.array(BreakpointPublicAnswerSchema),
152
+ selectedAnswer: z.string().optional(),
153
+ projectId: z.string().optional(),
154
+ repoId: z.string().optional(),
155
+ createdBy: BreakpointSubmitterSchema.optional(),
156
+ claimedByResponderId: z.string().min(1).optional(),
157
+ claimedByResponderName: z.string().min(1).optional(),
158
+ createdAt: z.string().datetime(),
159
+ updatedAt: z.string().datetime(),
160
+ expiresAt: z.string().datetime(),
161
+ });
162
+ // ── BreakpointWaitResult ─────────────────────────────────────────────────
163
+ export const BreakpointWaitResultSchema = z.object({
164
+ answered: z.boolean(),
165
+ breakpoint: BreakpointSchema,
166
+ answer: BreakpointPublicAnswerSchema.optional(),
167
+ allAnswers: z.array(BreakpointPublicAnswerSchema),
168
+ resolution: z.string().optional(),
169
+ elapsedMs: z.number().nonnegative(),
170
+ });
171
+ // ── ExpertiseArea ────────────────────────────────────────────────────────
172
+ export const ExpertiseAreaSchema = z.object({
173
+ domain: z.string().min(1),
174
+ topics: z.array(z.string()),
175
+ keywords: z.array(z.string()),
176
+ proficiency: z.number().int().min(1).max(5),
177
+ });
178
+ // ── BreakpointBrowserSession ────────────────────────────────────────────
179
+ export const BreakpointBrowserSessionSchema = z.object({
180
+ breakpointId: z.string().min(1),
181
+ slug: z.string().min(1),
182
+ url: z.string().url(),
183
+ authToken: z.string().min(1),
184
+ expiresAt: z.string().datetime(),
185
+ mode: z.enum(["same-user", "responder"]),
186
+ responderId: z.string().min(1).optional(),
187
+ responderName: z.string().min(1).optional(),
188
+ });
189
+ // ── BreakpointSessionView ───────────────────────────────────────────────
190
+ export const BreakpointSessionViewSchema = z.object({
191
+ breakpoint: BreakpointSchema,
192
+ expiresAt: z.string().datetime(),
193
+ canAnswer: z.boolean(),
194
+ mode: z.enum(["same-user", "responder"]),
195
+ responderId: z.string().min(1).optional(),
196
+ responderName: z.string().min(1).optional(),
197
+ });
198
+ // ── Routing Configuration ────────────────────────────────────────────────
199
+ export const GitNativeBackendConfigSchema = z.object({
200
+ type: z.literal("git-native"),
201
+ breakpointsDir: z.string().optional(),
202
+ pollIntervalMs: z.number().positive().optional(),
203
+ timeoutMs: z.number().positive().optional(),
204
+ });
205
+ export const ServerBackendConfigSchema = z.object({
206
+ type: z.literal("server"),
207
+ url: z.string().min(1),
208
+ authToken: z.string().min(1).optional(),
209
+ });
210
+ export const GitHubIssuesBackendConfigSchema = z.object({
211
+ type: z.literal("github-issues"),
212
+ owner: z.string().min(1),
213
+ repo: z.string().min(1),
214
+ labels: z.array(z.string()).optional(),
215
+ assignees: z.array(z.string()).optional(),
216
+ pollIntervalMs: z.number().positive().optional(),
217
+ timeoutMs: z.number().positive().optional(),
218
+ });
219
+ export const BackendConfigSchema = z.discriminatedUnion("type", [
220
+ GitNativeBackendConfigSchema,
221
+ ServerBackendConfigSchema,
222
+ GitHubIssuesBackendConfigSchema,
223
+ ]);
224
+ export const RoutingRuleSchema = z.object({
225
+ domains: z.array(z.string()).optional(),
226
+ tags: z.array(z.string()).optional(),
227
+ backend: z.string().min(1),
228
+ backendConfig: z.record(z.string(), z.unknown()),
229
+ });
230
+ export const RoutingConfigSchema = z.object({
231
+ defaultBackend: z.string().min(1),
232
+ routes: z.array(RoutingRuleSchema),
233
+ });
234
+ // ── Constants ────────────────────────────────────────────────────────────
235
+ export const DEFAULT_POLL_INTERVAL_MS = 3_000;
236
+ export const DEFAULT_TIMEOUT_MS = 30 * 60 * 1_000; // 30 minutes
237
+ export const BREAKPOINTS_DIR = ".breakpoints";
238
+ export const BREAKPOINTS_KEYS_DIR = ".breakpoints/.keys";
239
+ export const BREAKPOINTS_TRUSTED_KEYS_DIR = ".breakpoints/.keys/trusted";
240
+ export const BREAKPOINTS_PRIVATE_KEYS_DIR = ".breakpoints/.keys/private";
241
+ // ── Utility ──────────────────────────────────────────────────────────────
242
+ export function generateBreakpointId() {
243
+ return randomBytes(12).toString("hex");
244
+ }
package/package.json ADDED
@@ -0,0 +1,95 @@
1
+ {
2
+ "name": "@a5c-ai/tasks-mux",
3
+ "version": "5.0.1-staging.04ca6ab00d21",
4
+ "description": "Serverless breakpoint multiplexing system with pluggable backends and cryptographic signing.",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./backends": {
14
+ "types": "./dist/backends/index.d.ts",
15
+ "default": "./dist/backends/index.js"
16
+ },
17
+ "./proven": {
18
+ "types": "./dist/proven/index.d.ts",
19
+ "default": "./dist/proven/index.js"
20
+ },
21
+ "./mcp": {
22
+ "types": "./dist/mcp/index.d.ts",
23
+ "default": "./dist/mcp/index.js"
24
+ },
25
+ "./harness": {
26
+ "types": "./dist/harness/index.d.ts",
27
+ "default": "./dist/harness/index.js"
28
+ },
29
+ "./auth": {
30
+ "types": "./dist/auth/index.d.ts",
31
+ "default": "./dist/auth/index.js"
32
+ },
33
+ "./config": {
34
+ "types": "./dist/config.d.ts",
35
+ "default": "./dist/config.js"
36
+ }
37
+ },
38
+ "bin": {
39
+ "tasks-mux": "./dist/cli/index.js"
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "responder",
44
+ "README.md"
45
+ ],
46
+ "scripts": {
47
+ "build": "tsc",
48
+ "clean": "rm -rf dist",
49
+ "test": "vitest run",
50
+ "test:watch": "vitest watch",
51
+ "test:packaged-surface-parity": "npm exec --yes --package=tsx@4.19.2 -- tsx src/__tests__/packaged-surface-parity.test.ts",
52
+ "typecheck": "tsc --noEmit",
53
+ "lint": "eslint src/"
54
+ },
55
+ "author": "a5c.ai",
56
+ "license": "MIT",
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "git+https://github.com/a5c-ai/babysitter.git",
60
+ "directory": "packages/tasks-mux"
61
+ },
62
+ "homepage": "https://github.com/a5c-ai/babysitter/tree/main/packages/tasks-mux#readme",
63
+ "bugs": {
64
+ "url": "https://github.com/a5c-ai/babysitter/issues"
65
+ },
66
+ "publishConfig": {
67
+ "access": "public"
68
+ },
69
+ "dependencies": {
70
+ "@octokit/auth-app": "^7.1.4",
71
+ "@octokit/rest": "^21.1.1",
72
+ "commander": "^12.1.0",
73
+ "jsonwebtoken": "^9.0.2",
74
+ "open": "^10.0.3",
75
+ "zod": "^3.23.0"
76
+ },
77
+ "devDependencies": {
78
+ "@types/jsonwebtoken": "^9.0.9",
79
+ "@types/node": "^22.0.0",
80
+ "@typescript-eslint/eslint-plugin": "^8.59.3",
81
+ "@typescript-eslint/parser": "^8.59.3",
82
+ "eslint": "^9.39.4",
83
+ "typescript": "^5.7.3",
84
+ "vitest": "^4.1.6"
85
+ },
86
+ "atlas": {
87
+ "layers": [
88
+ "L9",
89
+ "L14"
90
+ ],
91
+ "muxes": [
92
+ "tasks-mux"
93
+ ]
94
+ }
95
+ }
@@ -0,0 +1,42 @@
1
+ # Responder Profile System
2
+
3
+ This directory contains packaged responder profile examples for `@a5c-ai/tasks-mux`.
4
+
5
+ ## Schema
6
+
7
+ Each profile is a JSON file that conforms to the `ResponderProfile` schema defined in the package runtime. The JSON Schema equivalent is provided in `schema.json`.
8
+
9
+ ### Required Fields
10
+
11
+ | Field | Type | Description |
12
+ |---|---|---|
13
+ | `id` | `string` | Unique identifier for the responder. |
14
+ | `name` | `string` | Display name shown in CLI and API responses. |
15
+ | `title` | `string` | Professional title or role. |
16
+ | `domains` | `string[]` | High-level domains used for routing. |
17
+ | `tags` | `string[]` | Keywords, tools, and specialties used for matching. |
18
+ | `availability` | `boolean` | Whether the responder is available for routing. |
19
+ | `responseTimeSla` | `number` | Expected maximum response time in milliseconds. |
20
+
21
+ ### Optional Fields
22
+
23
+ | Field | Type | Description |
24
+ |---|---|---|
25
+ | `publicKeyFingerprint` | `string` | Fingerprint for provenance-aware responder flows. |
26
+
27
+ ## How to Use
28
+
29
+ 1. Copy one of the example JSON files into your repo's `.a5c/responder/` directory.
30
+ 2. Rename the file to match your responder ID if needed.
31
+ 3. Adjust the `domains`, `tags`, and availability fields to reflect the responder's actual coverage.
32
+ 4. Validate the result with `bmux responders show <id>` or the exported profile-validator helpers.
33
+
34
+ ## Matching Notes
35
+
36
+ The runtime matcher uses:
37
+
38
+ - `domains` for broad routing relevance
39
+ - `tags` for narrower keyword matches
40
+ - `availability` to exclude offline responders
41
+
42
+ The examples in this directory are covered by regression tests and should always remain valid as shipped.
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "backend-responder",
3
+ "name": "Jordan Park",
4
+ "title": "Senior Backend Engineer",
5
+ "domains": ["backend", "database"],
6
+ "tags": ["nodejs", "express", "postgresql", "redis", "api-design", "microservices"],
7
+ "availability": true,
8
+ "responseTimeSla": 1800000
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "devops-responder",
3
+ "name": "Sam Rivera",
4
+ "title": "DevOps Lead",
5
+ "domains": ["devops", "infrastructure"],
6
+ "tags": ["docker", "kubernetes", "cicd", "aws", "terraform", "monitoring"],
7
+ "availability": true,
8
+ "responseTimeSla": 3600000
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "frontend-responder",
3
+ "name": "Alex Chen",
4
+ "title": "Senior Frontend Engineer",
5
+ "domains": ["frontend", "ui"],
6
+ "tags": ["react", "typescript", "css", "accessibility", "performance"],
7
+ "availability": true,
8
+ "responseTimeSla": 1800000
9
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://anthropic.com/bpx/responder-profile.schema.json",
4
+ "title": "ResponderProfile",
5
+ "description": "Schema for a responder profile used by the Breakpoints Mux system.",
6
+ "type": "object",
7
+ "required": ["id", "name", "title", "domains", "tags", "availability", "responseTimeSla"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "id": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "description": "Unique identifier for the responder."
14
+ },
15
+ "name": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "description": "Display name of the responder."
19
+ },
20
+ "title": {
21
+ "type": "string",
22
+ "description": "Professional title or role."
23
+ },
24
+ "domains": {
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ },
29
+ "description": "High-level routing domains for the responder."
30
+ },
31
+ "tags": {
32
+ "type": "array",
33
+ "items": {
34
+ "type": "string"
35
+ },
36
+ "description": "Keywords, technologies, and specialties used for matching."
37
+ },
38
+ "availability": {
39
+ "type": "boolean",
40
+ "description": "Whether the responder is currently available for questions."
41
+ },
42
+ "responseTimeSla": {
43
+ "type": "number",
44
+ "exclusiveMinimum": 0,
45
+ "description": "Maximum expected response time in milliseconds."
46
+ },
47
+ "publicKeyFingerprint": {
48
+ "type": "string",
49
+ "description": "Optional fingerprint for provenance-aware responder flows."
50
+ }
51
+ }
52
+ }