toolroll 0.9.49 → 0.9.51

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 (61) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cli-http.js +3 -0
  3. package/dist/flow-triggers.js +7 -0
  4. package/dist/mcp-http.js +6 -11
  5. package/dist/mcp-oauth.d.ts +1 -1
  6. package/dist/mcp-oauth.js +8 -23
  7. package/dist/mcp-person.d.ts +0 -9
  8. package/dist/mcp-person.js +2 -1
  9. package/dist/operate.d.ts +1 -1
  10. package/dist/operate.js +9 -2
  11. package/dist/request-budget.d.ts +5 -2
  12. package/dist/request-budget.js +7 -3
  13. package/dist/scope.d.ts +1 -0
  14. package/dist/scope.js +19 -9
  15. package/dist/serve.d.ts +2 -605
  16. package/dist/serve.js +434 -23789
  17. package/dist/server/chat.d.ts +41 -0
  18. package/dist/server/chat.js +1458 -0
  19. package/dist/server/edge-refusal.d.ts +5 -0
  20. package/dist/server/edge-refusal.js +56 -0
  21. package/dist/server/flows.d.ts +12 -0
  22. package/dist/server/flows.js +832 -0
  23. package/dist/server/guards.d.ts +72 -0
  24. package/dist/server/guards.js +357 -0
  25. package/dist/server/handler-context.d.ts +22 -0
  26. package/dist/server/handler-context.js +1 -0
  27. package/dist/server/handler-registry.d.ts +21 -0
  28. package/dist/server/handler-registry.js +34 -0
  29. package/dist/server/pages-assets.d.ts +10 -0
  30. package/dist/server/pages-assets.js +103 -0
  31. package/dist/server/pages.d.ts +11 -0
  32. package/dist/server/pages.js +910 -0
  33. package/dist/server/people-tokens.d.ts +20 -0
  34. package/dist/server/people-tokens.js +693 -0
  35. package/dist/server/remote-hooks.d.ts +29 -0
  36. package/dist/server/remote-hooks.js +130 -0
  37. package/dist/server/remote.d.ts +59 -0
  38. package/dist/server/remote.js +200 -0
  39. package/dist/server/route-policy.d.ts +18 -0
  40. package/dist/server/route-policy.js +30 -0
  41. package/dist/server/route-table.d.ts +74 -0
  42. package/dist/server/route-table.js +350 -0
  43. package/dist/server/runtime.d.ts +280 -0
  44. package/dist/server/runtime.js +25 -0
  45. package/dist/server/settings.d.ts +22 -0
  46. package/dist/server/settings.js +2388 -0
  47. package/dist/server/shared.d.ts +3334 -0
  48. package/dist/server/shared.js +12708 -0
  49. package/dist/server/task-views.d.ts +82 -0
  50. package/dist/server/task-views.js +1099 -0
  51. package/dist/server/tasks.d.ts +87 -0
  52. package/dist/server/tasks.js +3579 -0
  53. package/dist/session-http.js +3 -0
  54. package/dist/sign-in-guard.d.ts +41 -16
  55. package/dist/sign-in-guard.js +147 -24
  56. package/dist/source-key.d.ts +2 -0
  57. package/dist/source-key.js +49 -0
  58. package/dist/team-http.d.ts +8 -1
  59. package/dist/team-http.js +9 -2
  60. package/dist/teams.js +3 -0
  61. package/package.json +1 -1
@@ -0,0 +1,87 @@
1
+ import type { Registration } from './handler-registry.js';
2
+ import { type IncomingMessage, type ServerResponse } from "node:http";
3
+ import { buildPickView } from "../contest.js";
4
+ import { type FormFieldOf, type FormView } from "../contracts/console-api.js";
5
+ import { type AttendedTerms } from "../scope.js";
6
+ import { type Artifact, type Run, type Store } from "../store.js";
7
+ import type { HandlerContext } from './handler-context.js';
8
+ import type { ServerRuntime } from './runtime.js';
9
+ import { type CompletedWorkRow, type PeekAdmission, type RankedReviewRow, type ReviewCockpitView, type Who } from "./shared.js";
10
+ export declare function createTasksHandlers(runtime: ServerRuntime): {
11
+ registrations: Registration[];
12
+ get: (ctx: HandlerContext) => Promise<void>;
13
+ post: (ctx: HandlerContext) => Promise<void>;
14
+ runListPane: (project: string | null, currentId: number | null) => string;
15
+ peekFragment: (runId: number, sessionKey: string, editorMode?: boolean) => Promise<{
16
+ status: number;
17
+ body: string;
18
+ retryAfter?: number;
19
+ }>;
20
+ contestScreen: (response: ServerResponse, who: Who, contestId: number, problem: string | null, status: number) => void;
21
+ routineMutation: (response: ServerResponse, who: Who, routineId: number, verb: string, body: FormView<FormFieldOf<"routine">>, now: Date) => void;
22
+ attendedBeats: (who: Who, request: IncomingMessage, response: ServerResponse, now: Date) => void;
23
+ attendMutation: (response: ServerResponse, who: Who, taskId: string, verb: string, body: FormView<FormFieldOf<"attend">>, now: Date) => Promise<void>;
24
+ taskMutation: (response: ServerResponse, who: Who, taskId: string, verb: string, posted: URLSearchParams, now: Date) => void;
25
+ queueRegionFor: (project: string | null, csrf: string, revision: number, now: Date) => string;
26
+ ciFailingFor: (runId: number | null, prNumber: number | null) => boolean;
27
+ completedRowFor: (taskId: string, project: string | null) => CompletedWorkRow | null;
28
+ attemptRowFor: (taskId: string, runId: number | null, project: string | null) => CompletedWorkRow | null;
29
+ resultRowOf: (task: NonNullable<ReturnType<Store["getTask"]>>, repo: string | null, historyProblem: string | null, run: Run | null) => CompletedWorkRow;
30
+ reviewCockpitViewOf: (row: RankedReviewRow, who: Who, now: Date) => ReviewCockpitView;
31
+ decisionEvidence: (response: ServerResponse, decisionId: number, artifactId: number) => void;
32
+ runEvidence: (response: ServerResponse, runId: number, artifactId: number) => void;
33
+ sendArtifact: (response: ServerResponse, linked: Artifact) => void;
34
+ routinePage: (response: ServerResponse, who: Who, routineId: number, problem: string | null, status: number) => void;
35
+ peekGuards: (runId: number) => {
36
+ ok: true;
37
+ admit: PeekAdmission & {
38
+ entries: NonNullable<PeekAdmission["entries"]>;
39
+ };
40
+ } | {
41
+ ok: false;
42
+ message: string;
43
+ final?: boolean;
44
+ };
45
+ contestData: (contestId: number) => {
46
+ view: NonNullable<ReturnType<typeof buildPickView>>;
47
+ taskId: string;
48
+ taskTitle: string;
49
+ repo: string | null;
50
+ refOrigin: string;
51
+ questions: Map<number, number>;
52
+ liveRuns: Set<number>;
53
+ totalMicrousd: number;
54
+ anyUnknown: boolean;
55
+ rollups: Map<number, {
56
+ costMicrousd: number;
57
+ tokensIn: number;
58
+ tokensOut: number;
59
+ measuredRuns: number;
60
+ totalRuns: number;
61
+ }>;
62
+ } | null;
63
+ liveAttendedTerms: (taskId: string, inputs: {
64
+ minutes: number;
65
+ turns: number;
66
+ budgetMicrousd: number;
67
+ expiry?: string;
68
+ parent?: number;
69
+ followup?: string;
70
+ model?: string;
71
+ posture?: string;
72
+ }, now: Date) => Promise<{
73
+ ok: true;
74
+ terms: AttendedTerms;
75
+ } | {
76
+ ok: false;
77
+ problem: string;
78
+ }>;
79
+ attendConfirmScreen: (response: ServerResponse, who: Who, terms: AttendedTerms, inputs: {
80
+ minutes: number;
81
+ turns: number;
82
+ budgetMicrousd: number;
83
+ model?: string;
84
+ posture?: string;
85
+ }, digest: string, nonce: string, csrf: string) => void;
86
+ liveRunIds: (rows: readonly (Pick<Run, "id" | "outcome" | "leaseId" | "taskRef">)[]) => Set<number>;
87
+ };