@dudousxd/nestjs-agent-store-drizzle 0.14.0 → 0.15.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.
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
2
2
  import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
3
- import { MessageRole, ToolCallRequest, ToolResult, MessageAttachment, MessageUsage, AgentUiComponent, ToolKind, ToolCallStatus, UsagePurpose, AgentStore, ThreadTurnReader, CreateThreadInput, ThreadSummary, ThreadDetail, ThreadTurnQuery, ThreadTurnPage, ToolCallApprovalState, UpdateThreadInput, RecordRunStartInput, AppendMessageInput, StoredMessage, RecordToolCallInput, UpdateToolCallInput, RecordUsageInput, AgentGovernanceQueries, AgentPricingStore, GovernanceRange, ModelSpendRow, ActorSpendRow, ThreadSpendRow, UsageTrendPoint, ToolCallActivityRow, ThreadActivityRow, RunMetrics, RunAgentBreakdownRow, RunErrorBreakdownRow, RunTrendPoint, RecentRunRow, PendingApprovalRow, ToolStatRow, GovernancePageQuery, ToolCallWhere, GovernancePage, ThreadWhere, RunWhere, ApprovalWhere, GovernanceRunDetail, GovernanceThreadDetailQuery, GovernanceThreadDetail, MemoryProvider, ListMemoriesInput, MemoryRecord, ForgetMemoryInput, StoreMemoryInput, ModelPriceInput, CurrentModelPrice } from '@dudousxd/nestjs-agent-core';
3
+ import { MessageRole, ToolCallRequest, ToolResult, MessageAttachment, MessageUsage, AgentUiComponent, MessageFeedback, ToolKind, ToolCallStatus, UsagePurpose, AgentStore, ThreadTurnReader, CreateThreadInput, ThreadSummary, ThreadDetail, ThreadTurnQuery, ThreadTurnPage, ToolCallApprovalState, UpdateThreadInput, RecordRunStartInput, AppendMessageInput, StoredMessage, RecordToolCallInput, UpdateToolCallInput, RecordUsageInput, AgentGovernanceQueries, AgentPricingStore, GovernanceRange, ModelSpendRow, ActorSpendRow, ThreadSpendRow, UsageTrendPoint, ToolCallActivityRow, ThreadActivityRow, RunMetrics, RunAgentBreakdownRow, RunErrorBreakdownRow, RunTrendPoint, RecentRunRow, PendingApprovalRow, ToolStatRow, GovernancePageQuery, ToolCallWhere, GovernancePage, ThreadWhere, RunWhere, ApprovalWhere, GovernanceRunDetail, GovernanceThreadDetailQuery, GovernanceThreadDetail, MemoryProvider, ListMemoriesInput, MemoryRecord, ForgetMemoryInput, StoreMemoryInput, ModelPriceInput, CurrentModelPrice } from '@dudousxd/nestjs-agent-core';
4
4
  export { ThreadTurnPage, ThreadTurnQuery } from '@dudousxd/nestjs-agent-core';
5
5
  import { TablesRelationalConfig, SQL } from 'drizzle-orm';
6
6
  import { OnModuleInit, OnModuleDestroy, Type, DynamicModule } from '@nestjs/common';
@@ -481,6 +481,25 @@ declare const agentMessage: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
481
481
  }, {}, {
482
482
  $type: AgentUiComponent[];
483
483
  }>;
484
+ feedback: drizzle_orm_sqlite_core.SQLiteColumn<{
485
+ name: "feedback";
486
+ tableName: "agent_message";
487
+ dataType: "json";
488
+ columnType: "SQLiteTextJson";
489
+ data: MessageFeedback;
490
+ driverParam: string;
491
+ notNull: false;
492
+ hasDefault: false;
493
+ isPrimaryKey: false;
494
+ isAutoincrement: false;
495
+ hasRuntimeDefault: false;
496
+ enumValues: undefined;
497
+ baseColumn: never;
498
+ identity: undefined;
499
+ generated: undefined;
500
+ }, {}, {
501
+ $type: MessageFeedback;
502
+ }>;
484
503
  createdAt: drizzle_orm_sqlite_core.SQLiteColumn<{
485
504
  name: "created_at";
486
505
  tableName: "agent_message";
@@ -2413,6 +2432,25 @@ declare const agentSchema: {
2413
2432
  }, {}, {
2414
2433
  $type: AgentUiComponent[];
2415
2434
  }>;
2435
+ feedback: drizzle_orm_sqlite_core.SQLiteColumn<{
2436
+ name: "feedback";
2437
+ tableName: "agent_message";
2438
+ dataType: "json";
2439
+ columnType: "SQLiteTextJson";
2440
+ data: MessageFeedback;
2441
+ driverParam: string;
2442
+ notNull: false;
2443
+ hasDefault: false;
2444
+ isPrimaryKey: false;
2445
+ isAutoincrement: false;
2446
+ hasRuntimeDefault: false;
2447
+ enumValues: undefined;
2448
+ baseColumn: never;
2449
+ identity: undefined;
2450
+ generated: undefined;
2451
+ }, {}, {
2452
+ $type: MessageFeedback;
2453
+ }>;
2416
2454
  createdAt: drizzle_orm_sqlite_core.SQLiteColumn<{
2417
2455
  name: "created_at";
2418
2456
  tableName: "agent_message";
@@ -3934,6 +3972,8 @@ declare class DrizzleAgentStore implements AgentStore, ThreadTurnReader {
3934
3972
  appendMessage(input: AppendMessageInput): Promise<StoredMessage>;
3935
3973
  setMessageToolResults(messageId: string, results: ToolResult[]): Promise<void>;
3936
3974
  setMessageUi(messageId: string, ui: AgentUiComponent[]): Promise<void>;
3975
+ threadOfMessage(messageId: string): Promise<string | null>;
3976
+ setMessageFeedback(messageId: string, feedback: MessageFeedback | null): Promise<void>;
3937
3977
  truncateFrom(threadId: string, messageId: string): Promise<void>;
3938
3978
  recordToolCall(input: RecordToolCallInput): Promise<void>;
3939
3979
  updateToolCall(input: UpdateToolCallInput): Promise<void>;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
2
2
  import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
3
- import { MessageRole, ToolCallRequest, ToolResult, MessageAttachment, MessageUsage, AgentUiComponent, ToolKind, ToolCallStatus, UsagePurpose, AgentStore, ThreadTurnReader, CreateThreadInput, ThreadSummary, ThreadDetail, ThreadTurnQuery, ThreadTurnPage, ToolCallApprovalState, UpdateThreadInput, RecordRunStartInput, AppendMessageInput, StoredMessage, RecordToolCallInput, UpdateToolCallInput, RecordUsageInput, AgentGovernanceQueries, AgentPricingStore, GovernanceRange, ModelSpendRow, ActorSpendRow, ThreadSpendRow, UsageTrendPoint, ToolCallActivityRow, ThreadActivityRow, RunMetrics, RunAgentBreakdownRow, RunErrorBreakdownRow, RunTrendPoint, RecentRunRow, PendingApprovalRow, ToolStatRow, GovernancePageQuery, ToolCallWhere, GovernancePage, ThreadWhere, RunWhere, ApprovalWhere, GovernanceRunDetail, GovernanceThreadDetailQuery, GovernanceThreadDetail, MemoryProvider, ListMemoriesInput, MemoryRecord, ForgetMemoryInput, StoreMemoryInput, ModelPriceInput, CurrentModelPrice } from '@dudousxd/nestjs-agent-core';
3
+ import { MessageRole, ToolCallRequest, ToolResult, MessageAttachment, MessageUsage, AgentUiComponent, MessageFeedback, ToolKind, ToolCallStatus, UsagePurpose, AgentStore, ThreadTurnReader, CreateThreadInput, ThreadSummary, ThreadDetail, ThreadTurnQuery, ThreadTurnPage, ToolCallApprovalState, UpdateThreadInput, RecordRunStartInput, AppendMessageInput, StoredMessage, RecordToolCallInput, UpdateToolCallInput, RecordUsageInput, AgentGovernanceQueries, AgentPricingStore, GovernanceRange, ModelSpendRow, ActorSpendRow, ThreadSpendRow, UsageTrendPoint, ToolCallActivityRow, ThreadActivityRow, RunMetrics, RunAgentBreakdownRow, RunErrorBreakdownRow, RunTrendPoint, RecentRunRow, PendingApprovalRow, ToolStatRow, GovernancePageQuery, ToolCallWhere, GovernancePage, ThreadWhere, RunWhere, ApprovalWhere, GovernanceRunDetail, GovernanceThreadDetailQuery, GovernanceThreadDetail, MemoryProvider, ListMemoriesInput, MemoryRecord, ForgetMemoryInput, StoreMemoryInput, ModelPriceInput, CurrentModelPrice } from '@dudousxd/nestjs-agent-core';
4
4
  export { ThreadTurnPage, ThreadTurnQuery } from '@dudousxd/nestjs-agent-core';
5
5
  import { TablesRelationalConfig, SQL } from 'drizzle-orm';
6
6
  import { OnModuleInit, OnModuleDestroy, Type, DynamicModule } from '@nestjs/common';
@@ -481,6 +481,25 @@ declare const agentMessage: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
481
481
  }, {}, {
482
482
  $type: AgentUiComponent[];
483
483
  }>;
484
+ feedback: drizzle_orm_sqlite_core.SQLiteColumn<{
485
+ name: "feedback";
486
+ tableName: "agent_message";
487
+ dataType: "json";
488
+ columnType: "SQLiteTextJson";
489
+ data: MessageFeedback;
490
+ driverParam: string;
491
+ notNull: false;
492
+ hasDefault: false;
493
+ isPrimaryKey: false;
494
+ isAutoincrement: false;
495
+ hasRuntimeDefault: false;
496
+ enumValues: undefined;
497
+ baseColumn: never;
498
+ identity: undefined;
499
+ generated: undefined;
500
+ }, {}, {
501
+ $type: MessageFeedback;
502
+ }>;
484
503
  createdAt: drizzle_orm_sqlite_core.SQLiteColumn<{
485
504
  name: "created_at";
486
505
  tableName: "agent_message";
@@ -2413,6 +2432,25 @@ declare const agentSchema: {
2413
2432
  }, {}, {
2414
2433
  $type: AgentUiComponent[];
2415
2434
  }>;
2435
+ feedback: drizzle_orm_sqlite_core.SQLiteColumn<{
2436
+ name: "feedback";
2437
+ tableName: "agent_message";
2438
+ dataType: "json";
2439
+ columnType: "SQLiteTextJson";
2440
+ data: MessageFeedback;
2441
+ driverParam: string;
2442
+ notNull: false;
2443
+ hasDefault: false;
2444
+ isPrimaryKey: false;
2445
+ isAutoincrement: false;
2446
+ hasRuntimeDefault: false;
2447
+ enumValues: undefined;
2448
+ baseColumn: never;
2449
+ identity: undefined;
2450
+ generated: undefined;
2451
+ }, {}, {
2452
+ $type: MessageFeedback;
2453
+ }>;
2416
2454
  createdAt: drizzle_orm_sqlite_core.SQLiteColumn<{
2417
2455
  name: "created_at";
2418
2456
  tableName: "agent_message";
@@ -3934,6 +3972,8 @@ declare class DrizzleAgentStore implements AgentStore, ThreadTurnReader {
3934
3972
  appendMessage(input: AppendMessageInput): Promise<StoredMessage>;
3935
3973
  setMessageToolResults(messageId: string, results: ToolResult[]): Promise<void>;
3936
3974
  setMessageUi(messageId: string, ui: AgentUiComponent[]): Promise<void>;
3975
+ threadOfMessage(messageId: string): Promise<string | null>;
3976
+ setMessageFeedback(messageId: string, feedback: MessageFeedback | null): Promise<void>;
3937
3977
  truncateFrom(threadId: string, messageId: string): Promise<void>;
3938
3978
  recordToolCall(input: RecordToolCallInput): Promise<void>;
3939
3979
  updateToolCall(input: UpdateToolCallInput): Promise<void>;
package/dist/index.js CHANGED
@@ -57,6 +57,10 @@ var agentMessage = sqliteTable("agent_message", {
57
57
  ui: text("ui", {
58
58
  mode: "json"
59
59
  }).$type(),
60
+ /** The thread owner's thumbs-up/down (+ comment); `null` when unrated. Not copied on fork. */
61
+ feedback: text("feedback", {
62
+ mode: "json"
63
+ }).$type(),
60
64
  createdAt: integer("created_at", {
61
65
  mode: "timestamp_ms"
62
66
  }).notNull()
@@ -268,6 +272,7 @@ var statements = [
268
272
  reasoning TEXT,
269
273
  reasoning_ms INTEGER,
270
274
  ui TEXT,
275
+ feedback TEXT,
271
276
  created_at INTEGER NOT NULL
272
277
  )`,
273
278
  `CREATE INDEX IF NOT EXISTS agent_message_thread_created_idx
@@ -407,6 +412,11 @@ var additiveColumns = [
407
412
  column: "ui",
408
413
  ddl: "ALTER TABLE agent_message ADD COLUMN ui TEXT"
409
414
  },
415
+ {
416
+ table: "agent_message",
417
+ column: "feedback",
418
+ ddl: "ALTER TABLE agent_message ADD COLUMN feedback TEXT"
419
+ },
410
420
  {
411
421
  table: "agent_tool_call",
412
422
  column: "approver",
@@ -810,6 +820,7 @@ var DrizzleAgentStore = class {
810
820
  reasoning: input.reasoning ?? null,
811
821
  reasoningMs: input.reasoningMs ?? null,
812
822
  ui: input.ui ?? null,
823
+ feedback: null,
813
824
  createdAt: now
814
825
  };
815
826
  await this.db.insert(agentMessage).values(message);
@@ -828,6 +839,17 @@ var DrizzleAgentStore = class {
828
839
  ui: ui.length > 0 ? ui : null
829
840
  }).where(eq(agentMessage.id, messageId));
830
841
  }
842
+ async threadOfMessage(messageId) {
843
+ const [row] = await this.db.select({
844
+ threadId: agentMessage.threadId
845
+ }).from(agentMessage).where(eq(agentMessage.id, messageId)).limit(1);
846
+ return row?.threadId ?? null;
847
+ }
848
+ async setMessageFeedback(messageId, feedback) {
849
+ await this.db.update(agentMessage).set({
850
+ feedback
851
+ }).where(eq(agentMessage.id, messageId));
852
+ }
831
853
  async truncateFrom(threadId, messageId) {
832
854
  const messages = await this.db.select().from(agentMessage).where(eq(agentMessage.threadId, threadId)).orderBy(asc(agentMessage.createdAt), asc(agentMessage.id));
833
855
  const cutoff = messages.findIndex((message) => message.id === messageId);
@@ -994,6 +1016,9 @@ var DrizzleAgentStore = class {
994
1016
  } : {},
995
1017
  ...message.ui != null ? {
996
1018
  ui: message.ui
1019
+ } : {},
1020
+ ...message.feedback != null ? {
1021
+ feedback: message.feedback
997
1022
  } : {}
998
1023
  };
999
1024
  }