@cat-factory/contracts 0.245.0 → 0.247.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/audit.d.ts +100 -0
  2. package/dist/audit.d.ts.map +1 -0
  3. package/dist/audit.js +156 -0
  4. package/dist/audit.js.map +1 -0
  5. package/dist/auth.d.ts +1 -0
  6. package/dist/auth.d.ts.map +1 -1
  7. package/dist/debug-api.d.ts +154 -6
  8. package/dist/debug-api.d.ts.map +1 -1
  9. package/dist/debug-api.js +71 -6
  10. package/dist/debug-api.js.map +1 -1
  11. package/dist/execution.d.ts +8 -0
  12. package/dist/execution.d.ts.map +1 -1
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/judge.d.ts +31 -0
  18. package/dist/judge.d.ts.map +1 -1
  19. package/dist/judge.js +25 -0
  20. package/dist/judge.js.map +1 -1
  21. package/dist/pr-report.d.ts +27 -0
  22. package/dist/pr-report.d.ts.map +1 -1
  23. package/dist/pr-report.js +7 -1
  24. package/dist/pr-report.js.map +1 -1
  25. package/dist/reserved-env-keys.d.ts.map +1 -1
  26. package/dist/reserved-env-keys.js +5 -0
  27. package/dist/reserved-env-keys.js.map +1 -1
  28. package/dist/routes/agent-runs.d.ts +8 -0
  29. package/dist/routes/agent-runs.d.ts.map +1 -1
  30. package/dist/routes/auth.d.ts +72 -0
  31. package/dist/routes/auth.d.ts.map +1 -1
  32. package/dist/routes/auth.js +28 -0
  33. package/dist/routes/auth.js.map +1 -1
  34. package/dist/routes/bug-hunt.d.ts +8 -0
  35. package/dist/routes/bug-hunt.d.ts.map +1 -1
  36. package/dist/routes/debug-api.d.ts +20 -0
  37. package/dist/routes/debug-api.d.ts.map +1 -1
  38. package/dist/routes/execution.d.ts +32 -0
  39. package/dist/routes/execution.d.ts.map +1 -1
  40. package/dist/routes/human-review.d.ts +4 -0
  41. package/dist/routes/human-review.d.ts.map +1 -1
  42. package/dist/routes/human-test.d.ts +20 -0
  43. package/dist/routes/human-test.d.ts.map +1 -1
  44. package/dist/routes/judge.d.ts +8 -0
  45. package/dist/routes/judge.d.ts.map +1 -1
  46. package/dist/routes/public-evidence.d.ts +4 -0
  47. package/dist/routes/public-evidence.d.ts.map +1 -1
  48. package/dist/routes/tool-servers.d.ts +128 -1
  49. package/dist/routes/tool-servers.d.ts.map +1 -1
  50. package/dist/routes/tool-servers.js +48 -1
  51. package/dist/routes/tool-servers.js.map +1 -1
  52. package/dist/routes/visual-confirm.d.ts +12 -0
  53. package/dist/routes/visual-confirm.d.ts.map +1 -1
  54. package/dist/routes/workspaces.d.ts +8 -0
  55. package/dist/routes/workspaces.d.ts.map +1 -1
  56. package/dist/snapshot.d.ts +4 -0
  57. package/dist/snapshot.d.ts.map +1 -1
  58. package/dist/sso.d.ts +70 -0
  59. package/dist/sso.d.ts.map +1 -0
  60. package/dist/sso.js +95 -0
  61. package/dist/sso.js.map +1 -0
  62. package/dist/tool-servers.d.ts +183 -2
  63. package/dist/tool-servers.d.ts.map +1 -1
  64. package/dist/tool-servers.js +104 -0
  65. package/dist/tool-servers.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,100 @@
1
+ import * as v from 'valibot';
2
+ /**
3
+ * The privileged actions an account audit event can describe.
4
+ *
5
+ * Naming is `<subject>.<verb>`, past tense, subject first, so an alphabetical list groups by
6
+ * subject and a filter on a prefix is a filter on a subject. Members are added as the paths
7
+ * that produce them get instrumented, never speculatively: an action in the union that nothing
8
+ * writes reads to an operator as a category their deployment never exercises, which is
9
+ * indistinguishable from a category that is silently broken.
10
+ *
11
+ * What is deliberately NOT here yet, because nothing writes it until the run-lifecycle slice:
12
+ * run start/stop/retry, the notification `act` (which performs a real merge), and API-key
13
+ * mint/revoke.
14
+ */
15
+ export declare const auditActionSchema: v.PicklistSchema<["account.member_added", "account.member_roles_changed", "account.budget_changed", "account.settings_changed", "account.invitation_created", "account.invitation_revoked", "account.invitation_accepted", "workspace.member_added", "workspace.member_role_changed", "workspace.member_removed", "workspace.access_mode_changed"], undefined>;
16
+ export type AuditAction = v.InferOutput<typeof auditActionSchema>;
17
+ /**
18
+ * WHAT KIND of thing an audited action acted on: the type `targetId` is an id WITHIN.
19
+ *
20
+ * Closed for the same reason `action` is, plus one specific to it: the viewer resolves
21
+ * `targetId` against a different table per kind (a user's name, an invitation's email), so a
22
+ * free-form `'users'` beside `'user'` is not a cosmetic typo, it is a row whose subject silently
23
+ * fails to resolve for exactly the admin trying to read it.
24
+ */
25
+ export declare const auditTargetTypeSchema: v.PicklistSchema<["user", "invitation", "workspace", "account"], undefined>;
26
+ export type AuditTargetType = v.InferOutput<typeof auditTargetTypeSchema>;
27
+ /**
28
+ * WHO performed an audited action, as a closed set of principal KINDS.
29
+ *
30
+ * Three kinds rather than a nullable user id, because "the engine did it" and "we failed to
31
+ * resolve who did it" are different facts and an audit log that renders them identically is
32
+ * worse than one that omits the row: a reader concludes a human action was automated. `system`
33
+ * is therefore asserted by an engine-internal caller, never defaulted to when a user id is
34
+ * missing.
35
+ *
36
+ * `apiKey` is its own kind because a public-API key is a distinct principal from the user who
37
+ * minted it: the key's own lifecycle is auditable, and attributing its actions to that user
38
+ * would make a leaked key indistinguishable from the person in the log.
39
+ */
40
+ export declare const auditActorKindSchema: v.PicklistSchema<["user", "apiKey", "system"], undefined>;
41
+ export type AuditActorKind = v.InferOutput<typeof auditActorKindSchema>;
42
+ /**
43
+ * The VALUES an audit event carries beside its action, keyed by action.
44
+ *
45
+ * This is the contract between the writer and the viewer: the backend states what changed as
46
+ * fields, and the SPA interpolates them into a translated sentence per action. Declared here
47
+ * as data rather than left to each writer's discretion so that "which values does this action
48
+ * carry" has ONE answer both sides read, and so a new action cannot ship with fields the copy
49
+ * has no slot for (the `Record` is exhaustive over the picklist, so adding a member fails the
50
+ * build until its keys are named).
51
+ *
52
+ * Every key is a value SAFE TO SHOW: a role, a ceiling, an email, an access mode. Never a
53
+ * credential, never model or prompt text. The audit store is strictly more exposed than the
54
+ * transactional domain (its whole purpose is to be read by humans, and a later slice serves it
55
+ * over HTTP), which is why the boundary is stated once, here, rather than at each call site.
56
+ */
57
+ export declare const AUDIT_ACTION_DETAIL_KEYS: Record<AuditAction, readonly string[]>;
58
+ /**
59
+ * One value inside an event's `details`.
60
+ *
61
+ * Scalars only, deliberately. Every detail exists to be interpolated into one translated
62
+ * sentence, and a bounded set of shapes is what keeps that interpolation TOTAL: a nested object
63
+ * or an array would each need the viewer to decide how to render it, per action, in every
64
+ * locale. A list of roles is therefore joined by its writer (`'admin, developer'`) rather than
65
+ * pushed onto the reader.
66
+ */
67
+ export type AuditDetailValue = string | number | boolean | null;
68
+ /** The machine-readable values an audited action carries. See {@link AUDIT_ACTION_DETAIL_KEYS}. */
69
+ export type AuditEventDetails = Readonly<Record<string, AuditDetailValue>>;
70
+ /**
71
+ * A persisted vocabulary member this build no longer declares.
72
+ *
73
+ * `action` and `targetType` are CLOSED vocabularies that are also PERSISTED, and those two facts
74
+ * together are what makes this shape necessary (CLAUDE.md → "But a break must ARRIVE as one"):
75
+ * retiring a member removes it from the type and NOT from the rows already written, so every
76
+ * exhaustive `Record`/`switch` over it is total against the TYPE and partial against the DATA.
77
+ * A reader that ignores the gap either renders `undefined` at an operator or throws in the
78
+ * viewer itself.
79
+ *
80
+ * So a value that is no longer a member reads back NAMED as retired: never guessed onto a
81
+ * current member (nothing can know which one was meant), and above all never DROPPED, because a
82
+ * missing row is the single failure an audit log must not have.
83
+ */
84
+ export interface RetiredAuditValue {
85
+ retired: string;
86
+ }
87
+ /** Whether a read-back vocabulary value is one this build no longer declares. */
88
+ export declare function isRetiredAuditValue<T extends string>(value: T | RetiredAuditValue): value is RetiredAuditValue;
89
+ /**
90
+ * Whether a stored value is still a member of the action vocabulary — DERIVED from the picklist,
91
+ * so it cannot drift from it the way a hand-written second list would.
92
+ */
93
+ export declare function isAuditAction(value: string): value is AuditAction;
94
+ /** Whether a stored value is still a member of the target-type vocabulary. Derived, as above. */
95
+ export declare function isAuditTargetType(value: string): value is AuditTargetType;
96
+ /** A stored `action` as either a current member or the retired value it is. */
97
+ export declare function readAuditAction(value: string): AuditAction | RetiredAuditValue;
98
+ /** A stored `targetType` as either a current member or the retired value it is. */
99
+ export declare function readAuditTargetType(value: string): AuditTargetType | RetiredAuditValue;
100
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA4B5B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,gWAuB5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,6EAShC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,2DAO/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAY3E,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAE/D,mGAAmG;AACnG,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAE1E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,KAAK,EAAE,CAAC,GAAG,iBAAiB,GAC3B,KAAK,IAAI,iBAAiB,CAE5B;AAKD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEjE;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAEzE;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,iBAAiB,CAE9E;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,iBAAiB,CAEtF"}
package/dist/audit.js ADDED
@@ -0,0 +1,156 @@
1
+ import * as v from 'valibot';
2
+ // ---------------------------------------------------------------------------
3
+ // The ACCOUNT AUDIT vocabulary: what privileged action a recorded audit event describes, who
4
+ // performed it, what kind of thing it acted on, and which VALUES the viewer interpolates.
5
+ //
6
+ // It lives in contracts rather than kernel because both sides must agree about the SAME
7
+ // member lists for different reasons. The backend writes an action when a mutation commits;
8
+ // the SPA's viewer renders each one as human copy, through an exhaustive `Record` over this
9
+ // picklist, so a member added without translated copy fails the SPA's typecheck instead of
10
+ // rendering a raw `account.member_roles_changed` at an operator. A vocabulary kept only on the
11
+ // backend becomes a hand-copied list in the viewer, and the two then drift in the one
12
+ // direction that matters: an action nobody can read is an action nobody audits.
13
+ //
14
+ // The vocabularies are deliberately CLOSED and deliberately COARSE. Closed, because an audit
15
+ // reader filters by action class and a free-form string makes `member.role_changed` and
16
+ // `member.roles_changed` two unrelated actions that look identical in a list. Coarse, because
17
+ // an action names WHAT changed, never the values: the values ride `details` as machine-readable
18
+ // fields (see {@link AUDIT_ACTION_DETAIL_KEYS}), and the ones that are secret never get
19
+ // recorded at all (see `AuditEvent` in kernel).
20
+ //
21
+ // NOTHING here records human-readable PROSE. The backend does not localize (see CLAUDE.md →
22
+ // "Internationalization"), and an audit row is the sharpest case for that rule rather than an
23
+ // exception to it: the row is PERSISTED, so an English sentence written today can never be
24
+ // re-rendered for a reader in another locale. `action` + `details` is what lets slice 4's viewer
25
+ // compose its copy from translated keys, for rows written years earlier.
26
+ // ---------------------------------------------------------------------------
27
+ /**
28
+ * The privileged actions an account audit event can describe.
29
+ *
30
+ * Naming is `<subject>.<verb>`, past tense, subject first, so an alphabetical list groups by
31
+ * subject and a filter on a prefix is a filter on a subject. Members are added as the paths
32
+ * that produce them get instrumented, never speculatively: an action in the union that nothing
33
+ * writes reads to an operator as a category their deployment never exercises, which is
34
+ * indistinguishable from a category that is silently broken.
35
+ *
36
+ * What is deliberately NOT here yet, because nothing writes it until the run-lifecycle slice:
37
+ * run start/stop/retry, the notification `act` (which performs a real merge), and API-key
38
+ * mint/revoke.
39
+ */
40
+ export const auditActionSchema = v.picklist([
41
+ /** A member was added to an account. */
42
+ 'account.member_added',
43
+ /** An existing account member's role set was replaced. */
44
+ 'account.member_roles_changed',
45
+ /** An account's monthly spend ceiling was set, changed, or cleared. */
46
+ 'account.budget_changed',
47
+ /** An account's settings were changed (today: the default cloud provider). */
48
+ 'account.settings_changed',
49
+ /** A teammate was invited to an account by email. */
50
+ 'account.invitation_created',
51
+ /** A pending invitation was revoked before it was accepted. */
52
+ 'account.invitation_revoked',
53
+ /** An invitation was accepted, creating the membership it granted. */
54
+ 'account.invitation_accepted',
55
+ /** A member was added to one workspace (board-level roster, not the account roster). */
56
+ 'workspace.member_added',
57
+ /** A workspace member's role was changed. */
58
+ 'workspace.member_role_changed',
59
+ /** A member was removed from a workspace. */
60
+ 'workspace.member_removed',
61
+ /** A workspace's access mode was changed (open ⇄ restricted). */
62
+ 'workspace.access_mode_changed',
63
+ ]);
64
+ /**
65
+ * WHAT KIND of thing an audited action acted on: the type `targetId` is an id WITHIN.
66
+ *
67
+ * Closed for the same reason `action` is, plus one specific to it: the viewer resolves
68
+ * `targetId` against a different table per kind (a user's name, an invitation's email), so a
69
+ * free-form `'users'` beside `'user'` is not a cosmetic typo, it is a row whose subject silently
70
+ * fails to resolve for exactly the admin trying to read it.
71
+ */
72
+ export const auditTargetTypeSchema = v.picklist([
73
+ /** A user, by internal id (`usr_*`). The account or board roster acted on a person. */
74
+ 'user',
75
+ /** An account invitation, by its own id. */
76
+ 'invitation',
77
+ /** A board, by workspace id. */
78
+ 'workspace',
79
+ /** The account itself (settings, budget). */
80
+ 'account',
81
+ ]);
82
+ /**
83
+ * WHO performed an audited action, as a closed set of principal KINDS.
84
+ *
85
+ * Three kinds rather than a nullable user id, because "the engine did it" and "we failed to
86
+ * resolve who did it" are different facts and an audit log that renders them identically is
87
+ * worse than one that omits the row: a reader concludes a human action was automated. `system`
88
+ * is therefore asserted by an engine-internal caller, never defaulted to when a user id is
89
+ * missing.
90
+ *
91
+ * `apiKey` is its own kind because a public-API key is a distinct principal from the user who
92
+ * minted it: the key's own lifecycle is auditable, and attributing its actions to that user
93
+ * would make a leaked key indistinguishable from the person in the log.
94
+ */
95
+ export const auditActorKindSchema = v.picklist([
96
+ /** A signed-in user acting through the SPA or the API. */
97
+ 'user',
98
+ /** A public-API key acting on behalf of its account. */
99
+ 'apiKey',
100
+ /** The engine itself, with no human in the loop. */
101
+ 'system',
102
+ ]);
103
+ /**
104
+ * The VALUES an audit event carries beside its action, keyed by action.
105
+ *
106
+ * This is the contract between the writer and the viewer: the backend states what changed as
107
+ * fields, and the SPA interpolates them into a translated sentence per action. Declared here
108
+ * as data rather than left to each writer's discretion so that "which values does this action
109
+ * carry" has ONE answer both sides read, and so a new action cannot ship with fields the copy
110
+ * has no slot for (the `Record` is exhaustive over the picklist, so adding a member fails the
111
+ * build until its keys are named).
112
+ *
113
+ * Every key is a value SAFE TO SHOW: a role, a ceiling, an email, an access mode. Never a
114
+ * credential, never model or prompt text. The audit store is strictly more exposed than the
115
+ * transactional domain (its whole purpose is to be read by humans, and a later slice serves it
116
+ * over HTTP), which is why the boundary is stated once, here, rather than at each call site.
117
+ */
118
+ export const AUDIT_ACTION_DETAIL_KEYS = {
119
+ 'account.member_added': ['roles'],
120
+ 'account.member_roles_changed': ['previousRoles', 'roles'],
121
+ 'account.budget_changed': ['limit'],
122
+ 'account.settings_changed': ['defaultCloudProvider'],
123
+ 'account.invitation_created': ['email', 'roles'],
124
+ 'account.invitation_revoked': ['email'],
125
+ 'account.invitation_accepted': ['email', 'roles', 'invitedBy'],
126
+ 'workspace.member_added': ['role'],
127
+ 'workspace.member_role_changed': ['previousRole', 'role'],
128
+ 'workspace.member_removed': ['role'],
129
+ 'workspace.access_mode_changed': ['accessMode'],
130
+ };
131
+ /** Whether a read-back vocabulary value is one this build no longer declares. */
132
+ export function isRetiredAuditValue(value) {
133
+ return typeof value !== 'string';
134
+ }
135
+ const AUDIT_ACTION_SET = new Set(auditActionSchema.options);
136
+ const AUDIT_TARGET_TYPE_SET = new Set(auditTargetTypeSchema.options);
137
+ /**
138
+ * Whether a stored value is still a member of the action vocabulary — DERIVED from the picklist,
139
+ * so it cannot drift from it the way a hand-written second list would.
140
+ */
141
+ export function isAuditAction(value) {
142
+ return AUDIT_ACTION_SET.has(value);
143
+ }
144
+ /** Whether a stored value is still a member of the target-type vocabulary. Derived, as above. */
145
+ export function isAuditTargetType(value) {
146
+ return AUDIT_TARGET_TYPE_SET.has(value);
147
+ }
148
+ /** A stored `action` as either a current member or the retired value it is. */
149
+ export function readAuditAction(value) {
150
+ return isAuditAction(value) ? value : { retired: value };
151
+ }
152
+ /** A stored `targetType` as either a current member or the retired value it is. */
153
+ export function readAuditTargetType(value) {
154
+ return isAuditTargetType(value) ? value : { retired: value };
155
+ }
156
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts CHANGED
@@ -30,6 +30,7 @@ export interface AuthProvidersConfig {
30
30
  github: boolean;
31
31
  password: boolean;
32
32
  google: boolean;
33
+ sso: boolean;
33
34
  };
34
35
  }
35
36
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,eAAO,MAAM,YAAY;;;;IAIvB,6EAA6E;;aAE7E,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAE5D,eAAO,MAAM,mBAAmB;;;aAG9B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE1E,qFAAqF;AACrF,eAAO,MAAM,oBAAoB;;aAE/B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE5E,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;aAG9B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE1E,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAA;CACnE"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,eAAO,MAAM,YAAY;;;;IAIvB,6EAA6E;;aAE7E,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAE5D,eAAO,MAAM,mBAAmB;;;aAG9B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE1E,qFAAqF;AACrF,eAAO,MAAM,oBAAoB;;aAE/B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE5E,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;aAG9B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE1E,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAA;CACjF"}
@@ -248,11 +248,101 @@ export declare const debugSignalSchema: v.ObjectSchema<{
248
248
  readonly stepIndex: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
249
249
  }, undefined>;
250
250
  export type DebugSignal = v.InferOutput<typeof debugSignalSchema>;
251
+ /** The run's tool activity in total. */
252
+ export declare const debugToolCallTotalsSchema: v.ObjectSchema<{
253
+ readonly calls: v.NumberSchema<undefined>;
254
+ /**
255
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
256
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
257
+ * where every one of those turns still reports a healthy model call.
258
+ */
259
+ readonly failures: v.NumberSchema<undefined>;
260
+ /** `failures / calls`, or null when there were no calls. */
261
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
262
+ }, undefined>;
263
+ export type DebugToolCallTotals = v.InferOutput<typeof debugToolCallTotalsSchema>;
264
+ /** One tool's slice of it, folded across the agent kinds that called it. */
265
+ export declare const debugToolInsightSchema: v.ObjectSchema<{
266
+ readonly calls: v.NumberSchema<undefined>;
267
+ /**
268
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
269
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
270
+ * where every one of those turns still reports a healthy model call.
271
+ */
272
+ readonly failures: v.NumberSchema<undefined>;
273
+ /** `failures / calls`, or null when there were no calls. */
274
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
275
+ readonly tool: v.StringSchema<undefined>;
276
+ }, undefined>;
277
+ export type DebugToolInsight = v.InferOutput<typeof debugToolInsightSchema>;
278
+ /** One agent kind's slice of it, folded across the tools it called. */
279
+ export declare const debugToolCallKindInsightSchema: v.ObjectSchema<{
280
+ readonly calls: v.NumberSchema<undefined>;
281
+ /**
282
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
283
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
284
+ * where every one of those turns still reports a healthy model call.
285
+ */
286
+ readonly failures: v.NumberSchema<undefined>;
287
+ /** `failures / calls`, or null when there were no calls. */
288
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
289
+ readonly agentKind: v.StringSchema<undefined>;
290
+ }, undefined>;
291
+ export type DebugToolCallKindInsight = v.InferOutput<typeof debugToolCallKindInsightSchema>;
292
+ /**
293
+ * The run's tool-EXECUTION activity, aggregated in SQL at the `(agentKind, tool)` grain and
294
+ * re-cut along each axis. The counterpart of the `llm` block, and the half of a run's health
295
+ * that block structurally cannot report: a tool that fails inside the container leaves every
296
+ * model call around it looking perfectly healthy.
297
+ *
298
+ * Both breakdowns are folds over ONE aggregate, so they total identically to each other and to
299
+ * `totals` by construction, and both lead with the most-failed row: a run's busiest tool is
300
+ * almost never its broken one, and the caller reading this is looking for the broken one.
301
+ * `GET /debug/runs/:runId/tool-calls?ok=false` is the drill-down into any row of it.
302
+ */
303
+ export declare const debugToolCallRollupSchema: v.ObjectSchema<{
304
+ readonly totals: v.ObjectSchema<{
305
+ readonly calls: v.NumberSchema<undefined>;
306
+ /**
307
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
308
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
309
+ * where every one of those turns still reports a healthy model call.
310
+ */
311
+ readonly failures: v.NumberSchema<undefined>;
312
+ /** `failures / calls`, or null when there were no calls. */
313
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
314
+ }, undefined>;
315
+ readonly byTool: v.ArraySchema<v.ObjectSchema<{
316
+ readonly calls: v.NumberSchema<undefined>;
317
+ /**
318
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
319
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
320
+ * where every one of those turns still reports a healthy model call.
321
+ */
322
+ readonly failures: v.NumberSchema<undefined>;
323
+ /** `failures / calls`, or null when there were no calls. */
324
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
325
+ readonly tool: v.StringSchema<undefined>;
326
+ }, undefined>, undefined>;
327
+ readonly byAgentKind: v.ArraySchema<v.ObjectSchema<{
328
+ readonly calls: v.NumberSchema<undefined>;
329
+ /**
330
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
331
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
332
+ * where every one of those turns still reports a healthy model call.
333
+ */
334
+ readonly failures: v.NumberSchema<undefined>;
335
+ /** `failures / calls`, or null when there were no calls. */
336
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
337
+ readonly agentKind: v.StringSchema<undefined>;
338
+ }, undefined>, undefined>;
339
+ }, undefined>;
340
+ export type DebugToolCallRollup = v.InferOutput<typeof debugToolCallRollupSchema>;
251
341
  /**
252
342
  * The run's diagnostic map: identity, per-step state, what each telemetry sink holds, the
253
- * SQL-aggregated LLM rollups, and the derived signals. Composed from aggregates only — it
254
- * reads no prompt, response or context body, so it stays cheap enough to be the first call a
255
- * debugging client always makes.
343
+ * SQL-aggregated LLM and tool-call rollups, and the derived signals. Composed from aggregates
344
+ * only — it reads no prompt, response or context body, so it stays cheap enough to be the
345
+ * first call a debugging client always makes.
256
346
  */
257
347
  export declare const debugRunOverviewSchema: v.ObjectSchema<{
258
348
  /** Schema marker so a consuming model knows the shape without external docs. */
@@ -472,6 +562,47 @@ export declare const debugRunOverviewSchema: v.ObjectSchema<{
472
562
  */
473
563
  readonly costCurrency: v.NullableSchema<v.StringSchema<undefined>, undefined>;
474
564
  }, undefined>;
565
+ /**
566
+ * What the run's agents DID with their tools, and how much of it failed. Counted from the
567
+ * same rows `sinks.toolCalls` counts, in the same pass, so the two can never disagree.
568
+ */
569
+ readonly toolCalls: v.ObjectSchema<{
570
+ readonly totals: v.ObjectSchema<{
571
+ readonly calls: v.NumberSchema<undefined>;
572
+ /**
573
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
574
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
575
+ * where every one of those turns still reports a healthy model call.
576
+ */
577
+ readonly failures: v.NumberSchema<undefined>;
578
+ /** `failures / calls`, or null when there were no calls. */
579
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
580
+ }, undefined>;
581
+ readonly byTool: v.ArraySchema<v.ObjectSchema<{
582
+ readonly calls: v.NumberSchema<undefined>;
583
+ /**
584
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
585
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
586
+ * where every one of those turns still reports a healthy model call.
587
+ */
588
+ readonly failures: v.NumberSchema<undefined>;
589
+ /** `failures / calls`, or null when there were no calls. */
590
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
591
+ readonly tool: v.StringSchema<undefined>;
592
+ }, undefined>, undefined>;
593
+ readonly byAgentKind: v.ArraySchema<v.ObjectSchema<{
594
+ readonly calls: v.NumberSchema<undefined>;
595
+ /**
596
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
597
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
598
+ * where every one of those turns still reports a healthy model call.
599
+ */
600
+ readonly failures: v.NumberSchema<undefined>;
601
+ /** `failures / calls`, or null when there were no calls. */
602
+ readonly failureRate: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
603
+ readonly agentKind: v.StringSchema<undefined>;
604
+ }, undefined>, undefined>;
605
+ }, undefined>;
475
606
  readonly signals: v.ArraySchema<v.ObjectSchema<{
476
607
  readonly code: v.StringSchema<undefined>;
477
608
  readonly severity: v.PicklistSchema<["info", "warning", "error"], undefined>;
@@ -1398,16 +1529,33 @@ export type DebugSearchQueryList = v.InferOutput<typeof debugSearchQueryListSche
1398
1529
  export declare const toolCallOrderSchema: v.PicklistSchema<["recent", "trajectory"], undefined>;
1399
1530
  export type ToolCallOrder = v.InferOutput<typeof toolCallOrderSchema>;
1400
1531
  /**
1401
- * Query params for the tool-call trajectory list. It takes the small-row page params plus two
1402
- * of its own: the {@link toolCallOrderSchema order}, and a dispatch filter, because a run's step
1532
+ * Whether to narrow a tool-call page to the calls that FAILED or the ones that worked.
1533
+ *
1534
+ * A string enum rather than a wire boolean, because it is a query parameter: `?ok=false`
1535
+ * arrives as text either way, and the enum says so in the spec instead of declaring a type the
1536
+ * transport cannot carry.
1537
+ *
1538
+ * Applied in SQL, like every other narrowing here. A caller filtering a page itself has already
1539
+ * paid for the rows it throws away and has spent the page's `limit` on them, which on this list
1540
+ * is worse than elsewhere: the failures it asked for fall off the end of a page filled with the
1541
+ * calls that worked.
1542
+ */
1543
+ export declare const toolCallOkFilterSchema: v.PicklistSchema<["true", "false"], undefined>;
1544
+ export type ToolCallOkFilter = v.InferOutput<typeof toolCallOkFilterSchema>;
1545
+ /**
1546
+ * Query params for the tool-call trajectory list. It takes the small-row page params plus three
1547
+ * of its own: the {@link toolCallOrderSchema order}; a dispatch filter, because a run's step
1403
1548
  * can dispatch more than once (a re-run, a gate's fixer rounds, a Ralph iteration) and "what did
1404
- * the third ci-fixer round actually do" is a different question from "what did this run do".
1549
+ * the third ci-fixer round actually do" is a different question from "what did this run do"; and
1550
+ * the {@link toolCallOkFilterSchema outcome} filter, which is how the overview's failure counts
1551
+ * are turned into the rows behind them.
1405
1552
  */
1406
1553
  export declare const listDebugToolCallsQuerySchema: v.ObjectSchema<{
1407
1554
  readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "Must be a whole number">, v.TransformAction<any, number>, v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 100, undefined>]>, undefined>;
1408
1555
  readonly cursor: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
1409
1556
  readonly jobId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1410
1557
  readonly order: v.OptionalSchema<v.PicklistSchema<["recent", "trajectory"], undefined>, undefined>;
1558
+ readonly ok: v.OptionalSchema<v.PicklistSchema<["true", "false"], undefined>, undefined>;
1411
1559
  }, undefined>;
1412
1560
  export type ListDebugToolCallsQuery = v.InferOutput<typeof listDebugToolCallsQuerySchema>;
1413
1561
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"debug-api.d.ts","sourceRoot":"","sources":["../src/debug-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug-api.d.ts","sourceRoot":"","sources":["../src/debug-api.ts"],"names":[],"mappings":"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"}
package/dist/debug-api.js CHANGED
@@ -245,11 +245,55 @@ export const debugSignalSchema = v.object({
245
245
  /** The step index the signal is about, when it is scoped to one. */
246
246
  stepIndex: v.nullable(v.number()),
247
247
  });
248
+ /**
249
+ * What every level of the tool-call rollup counts, plus the ratio the counts only mean
250
+ * something as.
251
+ *
252
+ * `failureRate` is null where nothing was called, never 0: a run that made no tool calls has
253
+ * no failure rate, and a clean 0% would file it beside a run whose every call worked — the
254
+ * same number for "nothing happened" and "everything worked".
255
+ */
256
+ const toolCallCountsSchema = {
257
+ calls: v.number(),
258
+ /**
259
+ * Calls that came back `ok: false`: the TOOL failed inside the container (a rejected edit,
260
+ * a non-zero command, malformed arguments), which is invisible in the LLM rollup beside it,
261
+ * where every one of those turns still reports a healthy model call.
262
+ */
263
+ failures: v.number(),
264
+ /** `failures / calls`, or null when there were no calls. */
265
+ failureRate: v.nullable(v.number()),
266
+ };
267
+ /** The run's tool activity in total. */
268
+ export const debugToolCallTotalsSchema = v.object(toolCallCountsSchema);
269
+ /** One tool's slice of it, folded across the agent kinds that called it. */
270
+ export const debugToolInsightSchema = v.object({ tool: v.string(), ...toolCallCountsSchema });
271
+ /** One agent kind's slice of it, folded across the tools it called. */
272
+ export const debugToolCallKindInsightSchema = v.object({
273
+ agentKind: v.string(),
274
+ ...toolCallCountsSchema,
275
+ });
276
+ /**
277
+ * The run's tool-EXECUTION activity, aggregated in SQL at the `(agentKind, tool)` grain and
278
+ * re-cut along each axis. The counterpart of the `llm` block, and the half of a run's health
279
+ * that block structurally cannot report: a tool that fails inside the container leaves every
280
+ * model call around it looking perfectly healthy.
281
+ *
282
+ * Both breakdowns are folds over ONE aggregate, so they total identically to each other and to
283
+ * `totals` by construction, and both lead with the most-failed row: a run's busiest tool is
284
+ * almost never its broken one, and the caller reading this is looking for the broken one.
285
+ * `GET /debug/runs/:runId/tool-calls?ok=false` is the drill-down into any row of it.
286
+ */
287
+ export const debugToolCallRollupSchema = v.object({
288
+ totals: debugToolCallTotalsSchema,
289
+ byTool: v.array(debugToolInsightSchema),
290
+ byAgentKind: v.array(debugToolCallKindInsightSchema),
291
+ });
248
292
  /**
249
293
  * The run's diagnostic map: identity, per-step state, what each telemetry sink holds, the
250
- * SQL-aggregated LLM rollups, and the derived signals. Composed from aggregates only — it
251
- * reads no prompt, response or context body, so it stays cheap enough to be the first call a
252
- * debugging client always makes.
294
+ * SQL-aggregated LLM and tool-call rollups, and the derived signals. Composed from aggregates
295
+ * only — it reads no prompt, response or context body, so it stays cheap enough to be the
296
+ * first call a debugging client always makes.
253
297
  */
254
298
  export const debugRunOverviewSchema = v.object({
255
299
  /** Schema marker so a consuming model knows the shape without external docs. */
@@ -294,6 +338,11 @@ export const debugRunOverviewSchema = v.object({
294
338
  */
295
339
  costCurrency: v.nullable(v.string()),
296
340
  }),
341
+ /**
342
+ * What the run's agents DID with their tools, and how much of it failed. Counted from the
343
+ * same rows `sinks.toolCalls` counts, in the same pass, so the two can never disagree.
344
+ */
345
+ toolCalls: debugToolCallRollupSchema,
297
346
  signals: v.array(debugSignalSchema),
298
347
  });
299
348
  // ---------------------------------------------------------------------------
@@ -598,16 +647,32 @@ export const debugSearchQueryListSchema = v.object({
598
647
  */
599
648
  export const toolCallOrderSchema = v.picklist(['recent', 'trajectory']);
600
649
  /**
601
- * Query params for the tool-call trajectory list. It takes the small-row page params plus two
602
- * of its own: the {@link toolCallOrderSchema order}, and a dispatch filter, because a run's step
650
+ * Whether to narrow a tool-call page to the calls that FAILED or the ones that worked.
651
+ *
652
+ * A string enum rather than a wire boolean, because it is a query parameter: `?ok=false`
653
+ * arrives as text either way, and the enum says so in the spec instead of declaring a type the
654
+ * transport cannot carry.
655
+ *
656
+ * Applied in SQL, like every other narrowing here. A caller filtering a page itself has already
657
+ * paid for the rows it throws away and has spent the page's `limit` on them, which on this list
658
+ * is worse than elsewhere: the failures it asked for fall off the end of a page filled with the
659
+ * calls that worked.
660
+ */
661
+ export const toolCallOkFilterSchema = v.picklist(['true', 'false']);
662
+ /**
663
+ * Query params for the tool-call trajectory list. It takes the small-row page params plus three
664
+ * of its own: the {@link toolCallOrderSchema order}; a dispatch filter, because a run's step
603
665
  * can dispatch more than once (a re-run, a gate's fixer rounds, a Ralph iteration) and "what did
604
- * the third ci-fixer round actually do" is a different question from "what did this run do".
666
+ * the third ci-fixer round actually do" is a different question from "what did this run do"; and
667
+ * the {@link toolCallOkFilterSchema outcome} filter, which is how the overview's failure counts
668
+ * are turned into the rows behind them.
605
669
  */
606
670
  export const listDebugToolCallsQuerySchema = v.object({
607
671
  limit: v.optional(pageLimitSchema),
608
672
  cursor: v.optional(cursorSchema),
609
673
  jobId: v.optional(v.string()),
610
674
  order: v.optional(toolCallOrderSchema),
675
+ ok: v.optional(toolCallOkFilterSchema),
611
676
  });
612
677
  /**
613
678
  * The tool calls the run's agents made: the TRAJECTORY, which is the half of "how did this diff