@cat-factory/node-server 0.168.0 → 0.169.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 (36) hide show
  1. package/dist/container-core-deps.js +1 -0
  2. package/dist/container-core-deps.js.map +1 -1
  3. package/dist/container-executor-deps.d.ts +5 -2
  4. package/dist/container-executor-deps.d.ts.map +1 -1
  5. package/dist/container-executor-deps.js +5 -1
  6. package/dist/container-executor-deps.js.map +1 -1
  7. package/dist/container-run-platform.d.ts +5 -1
  8. package/dist/container-run-platform.d.ts.map +1 -1
  9. package/dist/container-run-platform.js +2 -1
  10. package/dist/container-run-platform.js.map +1 -1
  11. package/dist/container-run-services-deps.d.ts +7 -2
  12. package/dist/container-run-services-deps.d.ts.map +1 -1
  13. package/dist/container-run-services-deps.js +24 -3
  14. package/dist/container-run-services-deps.js.map +1 -1
  15. package/dist/db/tables/observability.d.ts +247 -0
  16. package/dist/db/tables/observability.d.ts.map +1 -1
  17. package/dist/db/tables/observability.js +35 -2
  18. package/dist/db/tables/observability.js.map +1 -1
  19. package/dist/repositories/drizzle/telemetry.d.ts +11 -1
  20. package/dist/repositories/drizzle/telemetry.d.ts.map +1 -1
  21. package/dist/repositories/drizzle/telemetry.js +114 -1
  22. package/dist/repositories/drizzle/telemetry.js.map +1 -1
  23. package/dist/repositories/drizzle.d.ts +2 -1
  24. package/dist/repositories/drizzle.d.ts.map +1 -1
  25. package/dist/repositories/drizzle.js +2 -1
  26. package/dist/repositories/drizzle.js.map +1 -1
  27. package/dist/retention.d.ts +3 -1
  28. package/dist/retention.d.ts.map +1 -1
  29. package/dist/retention.js +2 -0
  30. package/dist/retention.js.map +1 -1
  31. package/dist/server.d.ts.map +1 -1
  32. package/dist/server.js +1 -0
  33. package/dist/server.js.map +1 -1
  34. package/drizzle/20260804183612_familiar_post/migration.sql +23 -0
  35. package/drizzle/20260804183612_familiar_post/snapshot.json +20289 -0
  36. package/package.json +20 -20
@@ -785,6 +785,253 @@ export declare const agentSearchQueries: import("drizzle-orm/pg-core").PgTableWi
785
785
  };
786
786
  dialect: 'pg';
787
787
  }>;
788
+ export declare const agentToolCalls: import("drizzle-orm/pg-core").PgTableWithColumns<{
789
+ name: "agent_tool_calls";
790
+ schema: "telemetry";
791
+ columns: {
792
+ id: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
793
+ name: string;
794
+ tableName: "agent_tool_calls";
795
+ dataType: "string";
796
+ data: string;
797
+ driverParam: string;
798
+ notNull: true;
799
+ hasDefault: false;
800
+ isPrimaryKey: false;
801
+ isAutoincrement: false;
802
+ hasRuntimeDefault: false;
803
+ enumValues: undefined;
804
+ identity: undefined;
805
+ generated: undefined;
806
+ }>;
807
+ workspace_id: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
808
+ name: string;
809
+ tableName: "agent_tool_calls";
810
+ dataType: "string";
811
+ data: string;
812
+ driverParam: string;
813
+ notNull: true;
814
+ hasDefault: false;
815
+ isPrimaryKey: false;
816
+ isAutoincrement: false;
817
+ hasRuntimeDefault: false;
818
+ enumValues: undefined;
819
+ identity: undefined;
820
+ generated: undefined;
821
+ }>;
822
+ execution_id: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
823
+ name: string;
824
+ tableName: "agent_tool_calls";
825
+ dataType: "string";
826
+ data: string;
827
+ driverParam: string;
828
+ notNull: true;
829
+ hasDefault: false;
830
+ isPrimaryKey: false;
831
+ isAutoincrement: false;
832
+ hasRuntimeDefault: false;
833
+ enumValues: undefined;
834
+ identity: undefined;
835
+ generated: undefined;
836
+ }>;
837
+ agent_kind: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
838
+ name: string;
839
+ tableName: "agent_tool_calls";
840
+ dataType: "string";
841
+ data: string;
842
+ driverParam: string;
843
+ notNull: true;
844
+ hasDefault: false;
845
+ isPrimaryKey: false;
846
+ isAutoincrement: false;
847
+ hasRuntimeDefault: false;
848
+ enumValues: undefined;
849
+ identity: undefined;
850
+ generated: undefined;
851
+ }>;
852
+ job_id: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
853
+ name: string;
854
+ tableName: "agent_tool_calls";
855
+ dataType: "string";
856
+ data: string;
857
+ driverParam: string;
858
+ notNull: true;
859
+ hasDefault: false;
860
+ isPrimaryKey: false;
861
+ isAutoincrement: false;
862
+ hasRuntimeDefault: false;
863
+ enumValues: undefined;
864
+ identity: undefined;
865
+ generated: undefined;
866
+ }>;
867
+ seq: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>, {
868
+ name: string;
869
+ tableName: "agent_tool_calls";
870
+ dataType: "number int32";
871
+ data: number;
872
+ driverParam: string | number;
873
+ notNull: true;
874
+ hasDefault: false;
875
+ isPrimaryKey: false;
876
+ isAutoincrement: false;
877
+ hasRuntimeDefault: false;
878
+ enumValues: undefined;
879
+ identity: undefined;
880
+ generated: undefined;
881
+ }>;
882
+ tool: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
883
+ name: string;
884
+ tableName: "agent_tool_calls";
885
+ dataType: "string";
886
+ data: string;
887
+ driverParam: string;
888
+ notNull: true;
889
+ hasDefault: false;
890
+ isPrimaryKey: false;
891
+ isAutoincrement: false;
892
+ hasRuntimeDefault: false;
893
+ enumValues: undefined;
894
+ identity: undefined;
895
+ generated: undefined;
896
+ }>;
897
+ started_at: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBigInt53Builder>, {
898
+ name: string;
899
+ tableName: "agent_tool_calls";
900
+ dataType: "number int53";
901
+ data: number;
902
+ driverParam: string | number;
903
+ notNull: true;
904
+ hasDefault: false;
905
+ isPrimaryKey: false;
906
+ isAutoincrement: false;
907
+ hasRuntimeDefault: false;
908
+ enumValues: undefined;
909
+ identity: undefined;
910
+ generated: undefined;
911
+ }>;
912
+ ended_at: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBigInt53Builder>, {
913
+ name: string;
914
+ tableName: "agent_tool_calls";
915
+ dataType: "number int53";
916
+ data: number;
917
+ driverParam: string | number;
918
+ notNull: true;
919
+ hasDefault: false;
920
+ isPrimaryKey: false;
921
+ isAutoincrement: false;
922
+ hasRuntimeDefault: false;
923
+ enumValues: undefined;
924
+ identity: undefined;
925
+ generated: undefined;
926
+ }>;
927
+ ok: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>>, {
928
+ name: string;
929
+ tableName: "agent_tool_calls";
930
+ dataType: "number int32";
931
+ data: number;
932
+ driverParam: string | number;
933
+ notNull: true;
934
+ hasDefault: true;
935
+ isPrimaryKey: false;
936
+ isAutoincrement: false;
937
+ hasRuntimeDefault: false;
938
+ enumValues: undefined;
939
+ identity: undefined;
940
+ generated: undefined;
941
+ }>;
942
+ bodies: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>>, {
943
+ name: string;
944
+ tableName: "agent_tool_calls";
945
+ dataType: "string";
946
+ data: string;
947
+ driverParam: string;
948
+ notNull: true;
949
+ hasDefault: true;
950
+ isPrimaryKey: false;
951
+ isAutoincrement: false;
952
+ hasRuntimeDefault: false;
953
+ enumValues: undefined;
954
+ identity: undefined;
955
+ generated: undefined;
956
+ }>;
957
+ args: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>>, {
958
+ name: string;
959
+ tableName: "agent_tool_calls";
960
+ dataType: "string";
961
+ data: string;
962
+ driverParam: string;
963
+ notNull: true;
964
+ hasDefault: true;
965
+ isPrimaryKey: false;
966
+ isAutoincrement: false;
967
+ hasRuntimeDefault: false;
968
+ enumValues: undefined;
969
+ identity: undefined;
970
+ generated: undefined;
971
+ }>;
972
+ result: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>>, {
973
+ name: string;
974
+ tableName: "agent_tool_calls";
975
+ dataType: "string";
976
+ data: string;
977
+ driverParam: string;
978
+ notNull: true;
979
+ hasDefault: true;
980
+ isPrimaryKey: false;
981
+ isAutoincrement: false;
982
+ hasRuntimeDefault: false;
983
+ enumValues: undefined;
984
+ identity: undefined;
985
+ generated: undefined;
986
+ }>;
987
+ args_dropped: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>>, {
988
+ name: string;
989
+ tableName: "agent_tool_calls";
990
+ dataType: "number int32";
991
+ data: number;
992
+ driverParam: string | number;
993
+ notNull: true;
994
+ hasDefault: true;
995
+ isPrimaryKey: false;
996
+ isAutoincrement: false;
997
+ hasRuntimeDefault: false;
998
+ enumValues: undefined;
999
+ identity: undefined;
1000
+ generated: undefined;
1001
+ }>;
1002
+ result_dropped: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>>, {
1003
+ name: string;
1004
+ tableName: "agent_tool_calls";
1005
+ dataType: "number int32";
1006
+ data: number;
1007
+ driverParam: string | number;
1008
+ notNull: true;
1009
+ hasDefault: true;
1010
+ isPrimaryKey: false;
1011
+ isAutoincrement: false;
1012
+ hasRuntimeDefault: false;
1013
+ enumValues: undefined;
1014
+ identity: undefined;
1015
+ generated: undefined;
1016
+ }>;
1017
+ created_at: import("drizzle-orm/pg-core").PgBuildColumn<"agent_tool_calls", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBigInt53Builder>, {
1018
+ name: string;
1019
+ tableName: "agent_tool_calls";
1020
+ dataType: "number int53";
1021
+ data: number;
1022
+ driverParam: string | number;
1023
+ notNull: true;
1024
+ hasDefault: false;
1025
+ isPrimaryKey: false;
1026
+ isAutoincrement: false;
1027
+ hasRuntimeDefault: false;
1028
+ enumValues: undefined;
1029
+ identity: undefined;
1030
+ generated: undefined;
1031
+ }>;
1032
+ };
1033
+ dialect: 'pg';
1034
+ }>;
788
1035
  /**
789
1036
  * One flat row per SETTLED polling gate, so the gate / CI-fixer attempt statistics are an
790
1037
  * ordinary aggregate over columns rather than a `jsonb_array_elements` expansion of the run's
@@ -1 +1 @@
1
- {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../src/db/tables/observability.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,SAAS,qDAAwB,CAAA;AAM9C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgD1B,CAAA;AAQD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBjC,CAAA;AAMD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB9B,CAAA;AAOD;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBxB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc3B,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAA"}
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../src/db/tables/observability.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,SAAS,qDAAwB,CAAA;AAM9C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgD1B,CAAA;AAQD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBjC,CAAA;AAMD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB9B,CAAA;AAQD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC1B,CAAA;AAOD;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBxB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc3B,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { bigint, index, integer, pgSchema, pgTable, primaryKey, text } from 'drizzle-orm/pg-core';
2
- // The observability schema: the three append-heavy TELEMETRY sinks (one row per model call,
3
- // per dispatched agent context, per web search a container agent performed) plus the two
2
+ // The observability schema: the four append-heavy TELEMETRY sinks (one row per model call,
3
+ // per dispatched agent context, per web search a container agent performed, per tool call it
4
+ // made) plus the two
4
5
  // deployment-level PROJECTIONS the operator dashboard aggregates (settled gates, and the daily
5
6
  // run rollup behind the long windows).
6
7
  //
@@ -108,6 +109,38 @@ export const agentSearchQueries = telemetry.table('agent_search_queries', {
108
109
  index('idx_agent_search_queries_execution').on(t.workspace_id, t.execution_id, t.created_at),
109
110
  index('idx_agent_search_queries_created').on(t.created_at),
110
111
  ]);
112
+ // One tool invocation an agent made, in trajectory order — what the agent DID, beside the
113
+ // per-call cost (`llm_call_metrics`) and the context it was given (`agent_context_snapshots`).
114
+ // The metadata is always recorded; `args`/`result` ride the same LLM_RECORD_PROMPTS +
115
+ // storeAgentContext double gate as the other body-bearing sinks, and `bodies` says which, so a
116
+ // withheld body never reads as a tool that took no arguments. Pruned on the same retention
117
+ // window. Mirrors the D1 agent_tool_calls table column-for-column.
118
+ export const agentToolCalls = telemetry.table('agent_tool_calls', {
119
+ id: text('id').primaryKey(),
120
+ workspace_id: text('workspace_id').notNull(),
121
+ execution_id: text('execution_id').notNull(),
122
+ agent_kind: text('agent_kind').notNull(),
123
+ // The dispatch the call was made in: the drill-down filter, and the scope `seq` is
124
+ // numbered within. It is deliberately NOT the trajectory's sort key — a job id is a
125
+ // string, so ordering by it sorts a run's dispatches by agent-kind spelling.
126
+ job_id: text('job_id').notNull(),
127
+ seq: integer('seq').notNull(),
128
+ tool: text('tool').notNull(),
129
+ started_at: bigint('started_at', { mode: 'number' }).notNull(),
130
+ ended_at: bigint('ended_at', { mode: 'number' }).notNull(),
131
+ ok: integer('ok').notNull().default(1),
132
+ bodies: text('bodies').notNull().default('withheld'),
133
+ args: text('args').notNull().default(''),
134
+ result: text('result').notNull().default(''),
135
+ args_dropped: integer('args_dropped').notNull().default(0),
136
+ result_dropped: integer('result_dropped').notNull().default(0),
137
+ created_at: bigint('created_at', { mode: 'number' }).notNull(),
138
+ }, (t) => [
139
+ index('idx_agent_tool_calls_trajectory').on(t.workspace_id, t.execution_id, t.started_at, t.seq),
140
+ index('idx_agent_tool_calls_execution').on(t.workspace_id, t.execution_id, t.created_at),
141
+ index('idx_agent_tool_calls_job').on(t.workspace_id, t.execution_id, t.job_id, t.created_at),
142
+ index('idx_agent_tool_calls_created').on(t.created_at),
143
+ ]);
111
144
  // ---------------------------------------------------------------------------
112
145
  // Platform-operator observability projections (mirrors D1 migration 0079). Both are read by
113
146
  // the account-scoped dashboard rollups; see the D1 migration for the full rationale.
@@ -1 +1 @@
1
- {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../../src/db/tables/observability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../../src/db/tables/observability.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentContextIndexQuery, AgentContextRunPageQuery, AgentContextSnapshot, AgentContextSnapshotIndex, AgentContextSnapshotRepository, AgentSearchQuery, AgentSearchQueryPageQuery, AgentSearchQueryRepository, BinaryArtifactMetadataStore, BinaryArtifactRecord, LlmCallBodyWindow, LlmCallMetric, LlmCallMetricPage, LlmCallMetricRepository, LlmCallMetricSummary, LlmCallPageQuery, LlmCallRunPageQuery, LlmPromptChainTip, ProvisioningLogQuery, ProvisioningLogRecord, ProvisioningLogRepository, TokenUsageRecord, TokenUsageRepository, TokenUsageTotals, UsageBreakdownRow } from '@cat-factory/kernel';
1
+ import type { AgentContextIndexQuery, AgentContextRunPageQuery, AgentContextSnapshot, AgentContextSnapshotIndex, AgentContextSnapshotRepository, AgentSearchQuery, AgentSearchQueryPageQuery, AgentSearchQueryRepository, AgentToolCall, AgentToolCallPageQuery, AgentToolCallRepository, AgentToolCallTrajectoryQuery, BinaryArtifactMetadataStore, BinaryArtifactRecord, LlmCallBodyWindow, LlmCallMetric, LlmCallMetricPage, LlmCallMetricRepository, LlmCallMetricSummary, LlmCallPageQuery, LlmCallRunPageQuery, LlmPromptChainTip, ProvisioningLogQuery, ProvisioningLogRecord, ProvisioningLogRepository, TokenUsageRecord, TokenUsageRepository, TokenUsageTotals, UsageBreakdownRow } from '@cat-factory/kernel';
2
2
  import type { DrizzleDb } from '../../db/client.js';
3
3
  export declare class DrizzleTokenUsageRepository implements TokenUsageRepository {
4
4
  private readonly db;
@@ -46,6 +46,16 @@ export declare class DrizzleAgentSearchQueryRepository implements AgentSearchQue
46
46
  countByExecution(workspaceId: string, executionId: string): Promise<number>;
47
47
  deleteOlderThan(epochMs: number): Promise<number>;
48
48
  }
49
+ /** Drizzle/Postgres sink for the tool-call trajectory (mirror of D1 migration 0005). */
50
+ export declare class DrizzleAgentToolCallRepository implements AgentToolCallRepository {
51
+ private readonly db;
52
+ constructor(db: DrizzleDb);
53
+ recordMany(calls: AgentToolCall[]): Promise<void>;
54
+ listByExecution(workspaceId: string, query: AgentToolCallTrajectoryQuery): Promise<AgentToolCall[]>;
55
+ listPage(workspaceId: string, query: AgentToolCallPageQuery): Promise<AgentToolCall[]>;
56
+ countByExecution(workspaceId: string, executionId: string): Promise<number>;
57
+ deleteOlderThan(epochMs: number): Promise<number>;
58
+ }
49
59
  /** Drizzle/Postgres metadata store for binary artifacts (mirror of D1 migration 0017). */
50
60
  export declare class DrizzleBinaryArtifactMetadataStore implements BinaryArtifactMetadataStore {
51
61
  private readonly db;
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/telemetry.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { parseJsonArray } from './_shared.js';
7
7
  import { LLM_WARNING_FINISH_REASONS, escapeLikePattern } from '@cat-factory/kernel';
8
8
  import { isWebSearchProvider } from '@cat-factory/contracts';
9
9
  import { and, asc, count, desc, eq, gt, gte, ilike, inArray, isNull, lt, notInArray, or, sql, } from 'drizzle-orm';
10
- import { agentContextSnapshots, agentSearchQueries, binaryArtifacts, llmCallMetrics, provisioningLog, tokenUsage, } from '../../db/schema.js';
10
+ import { agentContextSnapshots, agentSearchQueries, agentToolCalls, binaryArtifacts, llmCallMetrics, provisioningLog, tokenUsage, } from '../../db/schema.js';
11
11
  export class DrizzleTokenUsageRepository {
12
12
  db;
13
13
  constructor(db) {
@@ -834,6 +834,119 @@ export class DrizzleAgentSearchQueryRepository {
834
834
  return deleted.length;
835
835
  }
836
836
  }
837
+ function rowToAgentToolCall(row) {
838
+ return {
839
+ id: row.id,
840
+ workspaceId: row.workspace_id,
841
+ executionId: row.execution_id,
842
+ agentKind: row.agent_kind,
843
+ jobId: row.job_id,
844
+ seq: row.seq,
845
+ tool: row.tool,
846
+ startedAt: row.started_at,
847
+ endedAt: row.ended_at,
848
+ ok: row.ok === 1,
849
+ // The stored column is free-text; narrow it back to the wire union. Anything else reads as
850
+ // `withheld`, the answer that claims nothing about a body we cannot account for.
851
+ bodies: row.bodies === 'stored' ? 'stored' : 'withheld',
852
+ args: row.args,
853
+ result: row.result,
854
+ argsDropped: row.args_dropped,
855
+ resultDropped: row.result_dropped,
856
+ createdAt: row.created_at,
857
+ };
858
+ }
859
+ /** One tool call as its insert row. */
860
+ function toolCallValues(call) {
861
+ return {
862
+ id: call.id,
863
+ workspace_id: call.workspaceId,
864
+ execution_id: call.executionId,
865
+ agent_kind: call.agentKind,
866
+ job_id: call.jobId,
867
+ seq: call.seq,
868
+ tool: call.tool,
869
+ started_at: call.startedAt,
870
+ ended_at: call.endedAt,
871
+ ok: call.ok ? 1 : 0,
872
+ bodies: call.bodies,
873
+ args: call.args,
874
+ result: call.result,
875
+ args_dropped: call.argsDropped,
876
+ result_dropped: call.resultDropped,
877
+ created_at: call.createdAt,
878
+ };
879
+ }
880
+ /** Drizzle/Postgres sink for the tool-call trajectory (mirror of D1 migration 0005). */
881
+ export class DrizzleAgentToolCallRepository {
882
+ db;
883
+ constructor(db) {
884
+ this.db = db;
885
+ }
886
+ async recordMany(calls) {
887
+ // First write wins, never an upsert: a re-offered call is byte-identical to the stored one
888
+ // (its id derives from `(jobId, seq)`), so a durable replay or a retried ingest is a no-op.
889
+ for (const batch of chunks(calls, INSERT_CHUNK_ROWS)) {
890
+ await this.db
891
+ .insert(agentToolCalls)
892
+ .values(batch.map(toolCallValues))
893
+ .onConflictDoNothing({ target: agentToolCalls.id });
894
+ }
895
+ }
896
+ async listByExecution(workspaceId, query) {
897
+ // Trajectory order: oldest first by the call's own start — `created_at` cannot carry it,
898
+ // since a whole poll window's calls share one stamp, and `job_id` is a string that would
899
+ // sort a run's dispatches alphabetically. `seq` separates the calls sharing a millisecond
900
+ // and `id` makes the order total. The limit takes the OLDEST end, so a truncated read is a
901
+ // prefix of the run rather than a middle slice with no beginning.
902
+ const filters = [
903
+ eq(agentToolCalls.workspace_id, workspaceId),
904
+ eq(agentToolCalls.execution_id, query.executionId),
905
+ ];
906
+ if (query.jobId)
907
+ filters.push(eq(agentToolCalls.job_id, query.jobId));
908
+ const rows = await this.db
909
+ .select()
910
+ .from(agentToolCalls)
911
+ .where(and(...filters))
912
+ .orderBy(asc(agentToolCalls.started_at), asc(agentToolCalls.seq), asc(agentToolCalls.id))
913
+ .limit(query.limit);
914
+ return rows.map(rowToAgentToolCall);
915
+ }
916
+ async listPage(workspaceId, query) {
917
+ const filters = [
918
+ eq(agentToolCalls.workspace_id, workspaceId),
919
+ eq(agentToolCalls.execution_id, query.executionId),
920
+ ];
921
+ if (query.jobId)
922
+ filters.push(eq(agentToolCalls.job_id, query.jobId));
923
+ if (query.cursor) {
924
+ const { createdAt, id } = query.cursor;
925
+ filters.push(or(lt(agentToolCalls.created_at, createdAt), and(eq(agentToolCalls.created_at, createdAt), lt(agentToolCalls.id, id))));
926
+ }
927
+ const rows = await this.db
928
+ .select()
929
+ .from(agentToolCalls)
930
+ .where(and(...filters))
931
+ .orderBy(desc(agentToolCalls.created_at), desc(agentToolCalls.id))
932
+ .limit(query.limit);
933
+ return rows.map(rowToAgentToolCall);
934
+ }
935
+ async countByExecution(workspaceId, executionId) {
936
+ const rows = await this.db
937
+ .select({ n: count() })
938
+ .from(agentToolCalls)
939
+ .where(and(eq(agentToolCalls.workspace_id, workspaceId), eq(agentToolCalls.execution_id, executionId)));
940
+ return Number(rows[0]?.n ?? 0);
941
+ }
942
+ async deleteOlderThan(epochMs) {
943
+ const deleted = await this.db
944
+ .delete(agentToolCalls)
945
+ .where(lt(agentToolCalls.created_at, epochMs))
946
+ .returning({ id: agentToolCalls.id });
947
+ return deleted.length;
948
+ }
949
+ }
837
950
  function rowToBinaryArtifact(row) {
838
951
  return {
839
952
  id: row.id,