@refrainai/cli 0.4.1 → 0.4.3

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 (83) hide show
  1. package/dist/{ai-model-FM6GWCID.js → ai-model-DP5PKGM6.js} +2 -2
  2. package/dist/{chunk-IGFCYKHC.js → chunk-5CKPPEYP.js} +262 -305
  3. package/dist/chunk-5CKPPEYP.js.map +1 -0
  4. package/dist/{chunk-7UCVPKD4.js → chunk-6FGCPMBU.js} +34 -74
  5. package/dist/chunk-6FGCPMBU.js.map +1 -0
  6. package/dist/{chunk-2BVDAJZT.js → chunk-A5X2VF5G.js} +9 -6
  7. package/dist/chunk-A5X2VF5G.js.map +1 -0
  8. package/dist/{chunk-H47NWH7N.js → chunk-AOCGSFRM.js} +611 -73
  9. package/dist/chunk-AOCGSFRM.js.map +1 -0
  10. package/dist/{chunk-CLYJHKPY.js → chunk-CMWLFQXD.js} +43 -42
  11. package/dist/chunk-CMWLFQXD.js.map +1 -0
  12. package/dist/chunk-GC7I5SGK.js +1146 -0
  13. package/dist/chunk-GC7I5SGK.js.map +1 -0
  14. package/dist/{chunk-WEYR56ZN.js → chunk-HHRHHFSK.js} +4 -4
  15. package/dist/chunk-IGJNT457.js +30 -0
  16. package/dist/chunk-IGJNT457.js.map +1 -0
  17. package/dist/{chunk-UGPXCQY3.js → chunk-KFNW4XR2.js} +13 -4
  18. package/dist/chunk-KFNW4XR2.js.map +1 -0
  19. package/dist/{chunk-RT664YIO.js → chunk-LZDZGI4M.js} +3 -1
  20. package/dist/chunk-LZDZGI4M.js.map +1 -0
  21. package/dist/{chunk-RYIJPYM3.js → chunk-MYITSQYV.js} +25 -8
  22. package/dist/chunk-MYITSQYV.js.map +1 -0
  23. package/dist/chunk-NRKZJVPE.js +74 -0
  24. package/dist/chunk-NRKZJVPE.js.map +1 -0
  25. package/dist/chunk-RBZK7T76.js +349 -0
  26. package/dist/chunk-RBZK7T76.js.map +1 -0
  27. package/dist/{chunk-HQDXLWAY.js → chunk-SDV3X5UN.js} +2 -2
  28. package/dist/{chunk-Z33FCOTZ.js → chunk-VVXNFUPL.js} +4 -2
  29. package/dist/chunk-VVXNFUPL.js.map +1 -0
  30. package/dist/chunk-YTVEYQGA.js +64 -0
  31. package/dist/chunk-YTVEYQGA.js.map +1 -0
  32. package/dist/{chunk-DJVUITRB.js → chunk-ZEBQWBEU.js} +898 -1135
  33. package/dist/chunk-ZEBQWBEU.js.map +1 -0
  34. package/dist/cli.js +5 -5
  35. package/dist/{compose-MTSIJY5D.js → compose-AVX5RU67.js} +9 -7
  36. package/dist/{compose-MTSIJY5D.js.map → compose-AVX5RU67.js.map} +1 -1
  37. package/dist/extraction-prompt-VDCKIFLB.js +17 -0
  38. package/dist/extraction-prompt-VDCKIFLB.js.map +1 -0
  39. package/dist/{fix-runbook-ZSBOTLC2.js → fix-runbook-6L5ZMA5G.js} +12 -10
  40. package/dist/{fix-runbook-ZSBOTLC2.js.map → fix-runbook-6L5ZMA5G.js.map} +1 -1
  41. package/dist/prompts-AGUYYIOM.js +13 -0
  42. package/dist/runbook-builder-2ZLE2AEO.js +11 -0
  43. package/dist/{runbook-data-helpers-KRR2SH76.js → runbook-data-helpers-5UAO65TZ.js} +3 -3
  44. package/dist/{runbook-executor-K7T6RJWJ.js → runbook-executor-OJXJTN6A.js} +41 -444
  45. package/dist/runbook-executor-OJXJTN6A.js.map +1 -0
  46. package/dist/{runbook-generator-MPXJBQ5N.js → runbook-generator-UIHWBEYC.js} +61 -136
  47. package/dist/runbook-generator-UIHWBEYC.js.map +1 -0
  48. package/dist/{runbook-schema-3T6TP3JJ.js → runbook-schema-X7DW725O.js} +2 -2
  49. package/dist/runbook-store-S24PXIHD.js +11 -0
  50. package/dist/{schema-5G6UQSPT.js → schema-XFSD5EWN.js} +2 -2
  51. package/dist/{server-AG3LXQBI.js → server-MULT5ZWG.js} +1176 -128
  52. package/dist/server-MULT5ZWG.js.map +1 -0
  53. package/dist/{tenant-ai-config-QPFEJUVJ.js → tenant-ai-config-4NHKRW7O.js} +4 -4
  54. package/dist/tenant-ai-config-4NHKRW7O.js.map +1 -0
  55. package/dist/yaml-patcher-GOCLYKZZ.js +18 -0
  56. package/dist/yaml-patcher-GOCLYKZZ.js.map +1 -0
  57. package/package.json +3 -2
  58. package/dist/chunk-2BVDAJZT.js.map +0 -1
  59. package/dist/chunk-7UCVPKD4.js.map +0 -1
  60. package/dist/chunk-CLYJHKPY.js.map +0 -1
  61. package/dist/chunk-DJVUITRB.js.map +0 -1
  62. package/dist/chunk-H47NWH7N.js.map +0 -1
  63. package/dist/chunk-IGFCYKHC.js.map +0 -1
  64. package/dist/chunk-RT664YIO.js.map +0 -1
  65. package/dist/chunk-RYIJPYM3.js.map +0 -1
  66. package/dist/chunk-UGPXCQY3.js.map +0 -1
  67. package/dist/chunk-VPK2MQAZ.js +0 -589
  68. package/dist/chunk-VPK2MQAZ.js.map +0 -1
  69. package/dist/chunk-Z33FCOTZ.js.map +0 -1
  70. package/dist/runbook-executor-K7T6RJWJ.js.map +0 -1
  71. package/dist/runbook-generator-MPXJBQ5N.js.map +0 -1
  72. package/dist/runbook-store-G5GUOWRR.js +0 -11
  73. package/dist/server-AG3LXQBI.js.map +0 -1
  74. package/dist/yaml-patcher-VGUS2JGH.js +0 -15
  75. /package/dist/{ai-model-FM6GWCID.js.map → ai-model-DP5PKGM6.js.map} +0 -0
  76. /package/dist/{chunk-WEYR56ZN.js.map → chunk-HHRHHFSK.js.map} +0 -0
  77. /package/dist/{chunk-HQDXLWAY.js.map → chunk-SDV3X5UN.js.map} +0 -0
  78. /package/dist/{runbook-data-helpers-KRR2SH76.js.map → prompts-AGUYYIOM.js.map} +0 -0
  79. /package/dist/{runbook-schema-3T6TP3JJ.js.map → runbook-builder-2ZLE2AEO.js.map} +0 -0
  80. /package/dist/{runbook-store-G5GUOWRR.js.map → runbook-data-helpers-5UAO65TZ.js.map} +0 -0
  81. /package/dist/{schema-5G6UQSPT.js.map → runbook-schema-X7DW725O.js.map} +0 -0
  82. /package/dist/{tenant-ai-config-QPFEJUVJ.js.map → runbook-store-S24PXIHD.js.map} +0 -0
  83. /package/dist/{yaml-patcher-VGUS2JGH.js.map → schema-XFSD5EWN.js.map} +0 -0
@@ -560,6 +560,47 @@ var jobReviewResults = pgTable("job_review_results", {
560
560
  }).onDelete("cascade"),
561
561
  unique("job_review_results_job_id_unique").on(table.jobId)
562
562
  ]);
563
+ var runbookSteps = pgTable("runbook_steps", {
564
+ id: uuid().defaultRandom().primaryKey().notNull(),
565
+ parentStepId: uuid("parent_step_id"),
566
+ ordinal: integer().notNull(),
567
+ description: text().notNull(),
568
+ actionType: text("action_type", { enum: ["click", "input", "select", "navigate", "scroll", "wait", "hover", "extract", "download", "export", "memory", "key"] }).notNull(),
569
+ url: text(),
570
+ riskLevel: text("risk_level", { enum: ["low", "medium", "high"] }).default("low").notNull(),
571
+ requiresConfirmation: boolean("requires_confirmation").default(false).notNull(),
572
+ value: text(),
573
+ optionText: text("option_text"),
574
+ script: text(),
575
+ keys: text(),
576
+ downloadPath: text("download_path"),
577
+ exportCollection: text("export_collection"),
578
+ exportFormat: text("export_format"),
579
+ exportPath: text("export_path"),
580
+ selector: jsonb(),
581
+ condition: text(),
582
+ captures: jsonb(),
583
+ memoryOperations: jsonb("memory_operations"),
584
+ loopCondition: text("loop_condition"),
585
+ loopForEach: text("loop_for_each"),
586
+ loopItemVariable: text("loop_item_variable"),
587
+ loopIndexVariable: text("loop_index_variable"),
588
+ loopMaxIterations: integer("loop_max_iterations"),
589
+ loopCounterVariable: text("loop_counter_variable"),
590
+ branchValue: text("branch_value"),
591
+ branchCaseMatch: text("branch_case_match"),
592
+ branchIsDefault: boolean("branch_is_default").default(false),
593
+ versionId: uuid("version_id").notNull(),
594
+ extractPrompt: text("extract_prompt")
595
+ }, (table) => [
596
+ index("runbook_steps_parentStepId_idx").using("btree", table.parentStepId.asc().nullsLast().op("uuid_ops")),
597
+ index("runbook_steps_versionId_idx").using("btree", table.versionId.asc().nullsLast().op("uuid_ops")),
598
+ foreignKey({
599
+ columns: [table.versionId],
600
+ foreignColumns: [runbookVersions.id],
601
+ name: "runbook_steps_version_id_runbook_versions_id_fk"
602
+ }).onDelete("cascade")
603
+ ]);
563
604
  var jobReviewedSteps = pgTable("job_reviewed_steps", {
564
605
  id: uuid().defaultRandom().primaryKey().notNull(),
565
606
  reviewResultId: uuid("review_result_id").notNull(),
@@ -625,46 +666,6 @@ var runbookSettings = pgTable("runbook_settings", {
625
666
  }).onDelete("cascade"),
626
667
  unique("runbook_settings_version_id_unique").on(table.versionId)
627
668
  ]);
628
- var runbookSteps = pgTable("runbook_steps", {
629
- id: uuid().defaultRandom().primaryKey().notNull(),
630
- parentStepId: uuid("parent_step_id"),
631
- ordinal: integer().notNull(),
632
- description: text().notNull(),
633
- actionType: text("action_type", { enum: ["click", "input", "select", "navigate", "scroll", "wait", "hover", "extract", "download", "export", "memory", "key"] }).notNull(),
634
- url: text(),
635
- riskLevel: text("risk_level", { enum: ["low", "medium", "high"] }).default("low").notNull(),
636
- requiresConfirmation: boolean("requires_confirmation").default(false).notNull(),
637
- value: text(),
638
- optionText: text("option_text"),
639
- script: text(),
640
- keys: text(),
641
- downloadPath: text("download_path"),
642
- exportCollection: text("export_collection"),
643
- exportFormat: text("export_format"),
644
- exportPath: text("export_path"),
645
- selector: jsonb(),
646
- condition: text(),
647
- captures: jsonb(),
648
- memoryOperations: jsonb("memory_operations"),
649
- loopCondition: text("loop_condition"),
650
- loopForEach: text("loop_for_each"),
651
- loopItemVariable: text("loop_item_variable"),
652
- loopIndexVariable: text("loop_index_variable"),
653
- loopMaxIterations: integer("loop_max_iterations"),
654
- loopCounterVariable: text("loop_counter_variable"),
655
- branchValue: text("branch_value"),
656
- branchCaseMatch: text("branch_case_match"),
657
- branchIsDefault: boolean("branch_is_default").default(false),
658
- versionId: uuid("version_id").notNull()
659
- }, (table) => [
660
- index("runbook_steps_parentStepId_idx").using("btree", table.parentStepId.asc().nullsLast().op("uuid_ops")),
661
- index("runbook_steps_versionId_idx").using("btree", table.versionId.asc().nullsLast().op("uuid_ops")),
662
- foreignKey({
663
- columns: [table.versionId],
664
- foreignColumns: [runbookVersions.id],
665
- name: "runbook_steps_version_id_runbook_versions_id_fk"
666
- }).onDelete("cascade")
667
- ]);
668
669
  var runbookVariables = pgTable("runbook_variables", {
669
670
  id: uuid().defaultRandom().primaryKey().notNull(),
670
671
  name: text().notNull(),
@@ -1106,11 +1107,11 @@ export {
1106
1107
  jobResults,
1107
1108
  jobResultDiagnostics,
1108
1109
  jobReviewResults,
1110
+ runbookSteps,
1109
1111
  jobReviewedSteps,
1110
1112
  jobVariables,
1111
1113
  runbookSecrets,
1112
1114
  runbookSettings,
1113
- runbookSteps,
1114
1115
  runbookVariables,
1115
1116
  runbookVersionReviews,
1116
1117
  session,
@@ -1128,4 +1129,4 @@ export {
1128
1129
  tenantUsage,
1129
1130
  schema_exports
1130
1131
  };
1131
- //# sourceMappingURL=chunk-CLYJHKPY.js.map
1132
+ //# sourceMappingURL=chunk-CMWLFQXD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/db/schema.ts"],"sourcesContent":["/**\n * Drizzle ORM schema definitions.\n *\n * ⚠️ このファイルは自動生成です。直接編集しないでください。\n * スキーマ変更は schema/schema.sql を編集し、以下を実行:\n * 1. pnpm db:diff <name> — マイグレーション生成\n * 2. pnpm db:apply — マイグレーション適用\n * 3. pnpm db:pull — このファイルを再生成\n */\n\nimport { pgTable, text, timestamp, index, unique, uuid, boolean, foreignKey, uniqueIndex, integer, real, jsonb } from \"drizzle-orm/pg-core\"\nimport { sql } from \"drizzle-orm\"\n\n\n\nexport const dataMigrationHistory = pgTable(\"data_migration_history\", {\n\tname: text().primaryKey().notNull(),\n\texecutedAt: timestamp(\"executed_at\").defaultNow().notNull(),\n});\n\nexport const verification = pgTable(\"verification\", {\n\tid: text().primaryKey().notNull(),\n\tidentifier: text().notNull(),\n\tvalue: text().notNull(),\n\texpiresAt: timestamp(\"expires_at\").notNull(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n}, (table) => [\n\tindex(\"verification_identifier_idx\").using(\"btree\", table.identifier.asc().nullsLast().op(\"text_ops\")),\n]);\n\nexport const tenants = pgTable(\"tenants\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tname: text().notNull(),\n\tslug: text().notNull(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n\ttier: text(\"tier\", { enum: [\"community\",\"pro\",\"team\",\"business\",\"enterprise\"] }).default('community').notNull(),\n\tlocale: text(\"locale\", { enum: [\"en\",\"ja\"] }).default('en').notNull(),\n\tonboardingCompletedAt: timestamp(\"onboarding_completed_at\"),\n}, (table) => [\n\tunique(\"tenants_slug_unique\").on(table.slug),\n]);\n\nexport const user = pgTable(\"user\", {\n\tid: text().primaryKey().notNull(),\n\tname: text().notNull(),\n\temail: text().notNull(),\n\temailVerified: boolean(\"email_verified\").default(false).notNull(),\n\timage: text(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n\tonboardingCompletedAt: timestamp(\"onboarding_completed_at\"),\n}, (table) => [\n\tunique(\"user_email_unique\").on(table.email),\n]);\n\nexport const account = pgTable(\"account\", {\n\tid: text().primaryKey().notNull(),\n\taccountId: text(\"account_id\").notNull(),\n\tproviderId: text(\"provider_id\").notNull(),\n\tuserId: text(\"user_id\").notNull(),\n\taccessToken: text(\"access_token\"),\n\trefreshToken: text(\"refresh_token\"),\n\tidToken: text(\"id_token\"),\n\taccessTokenExpiresAt: timestamp(\"access_token_expires_at\"),\n\trefreshTokenExpiresAt: timestamp(\"refresh_token_expires_at\"),\n\tscope: text(),\n\tpassword: text(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n}, (table) => [\n\tindex(\"account_userId_idx\").using(\"btree\", table.userId.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.userId],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"account_user_id_user_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const apiKeys = pgTable(\"api_keys\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tcreatedBy: text(\"created_by\").notNull(),\n\tname: text().notNull(),\n\tkeyHash: text(\"key_hash\").notNull(),\n\tkeyPrefix: text(\"key_prefix\").notNull(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\trevokedAt: timestamp(\"revoked_at\"),\n\tlastUsedAt: timestamp(\"last_used_at\"),\n}, (table) => [\n\tuniqueIndex(\"api_keys_keyHash_idx\").using(\"btree\", table.keyHash.asc().nullsLast().op(\"text_ops\")),\n\tindex(\"api_keys_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.createdBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"api_keys_created_by_user_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"api_keys_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const invitations = pgTable(\"invitations\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\temail: text().notNull(),\n\trole: text(\"role\", { enum: [\"owner\",\"admin\",\"developer\",\"member\"] }).default('member').notNull(),\n\ttoken: text().notNull(),\n\tinvitedBy: text(\"invited_by\").notNull(),\n\tstatus: text(\"status\", { enum: [\"pending\",\"accepted\",\"declined\",\"cancelled\"] }).default('pending').notNull(),\n\texpiresAt: timestamp(\"expires_at\").notNull(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tacceptedAt: timestamp(\"accepted_at\"),\n}, (table) => [\n\tindex(\"invitations_email_idx\").using(\"btree\", table.email.asc().nullsLast().op(\"text_ops\")),\n\tindex(\"invitations_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.invitedBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"invitations_invited_by_user_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"invitations_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"invitations_token_unique\").on(table.token),\n]);\n\nexport const runbooks = pgTable(\"runbooks\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\ttitle: text().notNull(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n\tcreatedBy: text(\"created_by\"),\n\tactiveVersionId: uuid(\"active_version_id\"),\n\tdisabled: boolean().default(false).notNull(),\n}, (table) => [\n\tindex(\"runbooks_createdAt_idx\").using(\"btree\", table.createdAt.asc().nullsLast().op(\"timestamp_ops\")),\n\tindex(\"runbooks_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.createdBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"runbooks_created_by_user_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"runbooks_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const runbookVersions = pgTable(\"runbook_versions\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\trunbookId: uuid(\"runbook_id\").notNull(),\n\tversionNumber: integer(\"version_number\").notNull(),\n\tstatus: text(\"status\", { enum: [\"draft\",\"pending_verification\",\"pending_approval\",\"active\",\"archived\"] }).default('draft').notNull(),\n\tgoal: text().notNull(),\n\tstartUrl: text(\"start_url\"),\n\tcontext: text(),\n\tgeneratedAt: text(\"generated_at\"),\n\tverificationJobId: uuid(\"verification_job_id\"),\n\tcreatedBy: text(\"created_by\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n\tpublishedAt: timestamp(\"published_at\"),\n\tpublishedBy: text(\"published_by\"),\n\tchangeDescription: text(\"change_description\"),\n}, (table) => [\n\tindex(\"runbook_versions_runbookId_idx\").using(\"btree\", table.runbookId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"runbook_versions_runbookId_versionNumber_idx\").using(\"btree\", table.runbookId.asc().nullsLast().op(\"uuid_ops\"), table.versionNumber.asc().nullsLast().op(\"int4_ops\")),\n\tindex(\"runbook_versions_status_idx\").using(\"btree\", table.status.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.createdBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"runbook_versions_created_by_user_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.publishedBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"runbook_versions_published_by_user_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"runbook_versions_runbook_id_runbooks_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const schedules = pgTable(\"schedules\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\trunbookId: uuid(\"runbook_id\").notNull(),\n\tcron: text(),\n\tenabled: boolean().default(true),\n\tlastRunAt: timestamp(\"last_run_at\"),\n\tnextRunAt: timestamp(\"next_run_at\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n\tcreatedBy: text(\"created_by\"),\n\ttype: text(\"type\", { enum: [\"recurring\",\"once\"] }).default('recurring').notNull(),\n\ttimezone: text().default('UTC').notNull(),\n\tscheduledAt: timestamp(\"scheduled_at\"),\n\tpurpose: text(\"purpose\", { enum: [\"execute\",\"self_heal\"] }).default('execute').notNull(),\n}, (table) => [\n\tindex(\"schedules_nextRunAt_idx\").using(\"btree\", table.nextRunAt.asc().nullsLast().op(\"timestamp_ops\")),\n\tindex(\"schedules_runbookId_idx\").using(\"btree\", table.runbookId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"schedules_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.createdBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"schedules_created_by_user_id_fk\"\n\t\t}),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"schedules_runbook_id_runbooks_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"schedules_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobs = pgTable(\"jobs\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\trunbookId: uuid(\"runbook_id\"),\n\tstatus: text(\"status\", { enum: [\"scheduled\",\"queued\",\"running\",\"waiting_approval\",\"paused\",\"completed\",\"failed\",\"cancelled\",\"exploring\",\"reviewing\"] }).default('queued').notNull(),\n\tcurrentStep: integer(\"current_step\").default(0),\n\ttotalSteps: integer(\"total_steps\").default(0).notNull(),\n\terrorMessage: text(\"error_message\"),\n\tstartedAt: timestamp(\"started_at\"),\n\tcompletedAt: timestamp(\"completed_at\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tcreatedBy: text(\"created_by\"),\n\tpurpose: text(\"purpose\", { enum: [\"verification\",\"scheduled\",\"manual\",\"api\",\"generation\"] }).default('manual').notNull(),\n\tmode: text(\"mode\", { enum: [\"execute\",\"self_heal\",\"generate\"] }).default('execute').notNull(),\n\tstartUrl: text(\"start_url\"),\n\tgoal: text(),\n\tcontext: text(),\n\tadoptedRunbookId: uuid(\"adopted_runbook_id\"),\n\tscheduledAt: timestamp(\"scheduled_at\"),\n\tscheduleId: uuid(\"schedule_id\"),\n\trunbookVersionId: uuid(\"runbook_version_id\"),\n}, (table) => [\n\tindex(\"jobs_createdAt_idx\").using(\"btree\", table.createdAt.asc().nullsLast().op(\"timestamp_ops\")),\n\tindex(\"jobs_mode_idx\").using(\"btree\", table.mode.asc().nullsLast().op(\"text_ops\")),\n\tindex(\"jobs_runbookId_idx\").using(\"btree\", table.runbookId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"jobs_scheduleId_idx\").using(\"btree\", table.scheduleId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"jobs_status_idx\").using(\"btree\", table.status.asc().nullsLast().op(\"text_ops\")),\n\tindex(\"jobs_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.adoptedRunbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"jobs_adopted_runbook_id_runbooks_id_fk\"\n\t\t}),\n\tforeignKey({\n\t\t\tcolumns: [table.createdBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"jobs_created_by_user_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"jobs_runbook_id_runbooks_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookVersionId],\n\t\t\tforeignColumns: [runbookVersions.id],\n\t\t\tname: \"jobs_runbook_version_id_runbook_versions_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.scheduleId],\n\t\t\tforeignColumns: [schedules.id],\n\t\t\tname: \"jobs_schedule_id_schedules_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"jobs_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobAiMetrics = pgTable(\"job_ai_metrics\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\ttotalCalls: integer(\"total_calls\").default(0).notNull(),\n\ttotalInputTokens: integer(\"total_input_tokens\").default(0).notNull(),\n\ttotalOutputTokens: integer(\"total_output_tokens\").default(0).notNull(),\n\ttotalCachedInputTokens: integer(\"total_cached_input_tokens\").default(0).notNull(),\n\ttotalCacheCreationTokens: integer(\"total_cache_creation_tokens\").default(0).notNull(),\n\tcacheHitRate: real(\"cache_hit_rate\").default(0).notNull(),\n\testimatedCostUsd: real(\"estimated_cost_usd\").default(0).notNull(),\n\ttotalDurationMs: integer(\"total_duration_ms\").default(0).notNull(),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_ai_metrics_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"job_ai_metrics_job_id_unique\").on(table.jobId),\n]);\n\nexport const jobApprovalRequests = pgTable(\"job_approval_requests\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tstepOrdinal: integer(\"step_ordinal\").notNull(),\n\tstepDescription: text(\"step_description\"),\n\triskLevel: text(\"risk_level\", { enum: [\"low\",\"medium\",\"high\"] }),\n\tstatus: text(\"status\", { enum: [\"pending\",\"approved\",\"skipped\",\"aborted\",\"timeout\"] }).default('pending').notNull(),\n\trespondedBy: text(\"responded_by\"),\n\trespondedAt: timestamp(\"responded_at\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"job_approval_requests_jobId_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"job_approval_requests_jobId_step_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"int4_ops\"), table.stepOrdinal.asc().nullsLast().op(\"int4_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_approval_requests_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.respondedBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"job_approval_requests_responded_by_user_id_fk\"\n\t\t}),\n]);\n\nexport const jobArtifacts = pgTable(\"job_artifacts\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\ttype: text(\"type\", { enum: [\"screenshot\",\"video\",\"download\",\"export\"] }).notNull(),\n\tfilename: text().notNull(),\n\tstoragePath: text(\"storage_path\").notNull(),\n\tcontentType: text(\"content_type\").notNull(),\n\tsizeBytes: integer(\"size_bytes\").notNull(),\n\tstepOrdinal: integer(\"step_ordinal\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"job_artifacts_job_id_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"job_artifacts_tenant_type_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"text_ops\"), table.type.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_artifacts_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"job_artifacts_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobDebugSuggestions = pgTable(\"job_debug_suggestions\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tstepOrdinal: integer(\"step_ordinal\"),\n\tstepDescription: text(\"step_description\"),\n\terror: text(),\n\trunbookFix: text(\"runbook_fix\"),\n\tcontextFix: text(\"context_fix\"),\n\tseverity: text(),\n\tfailureCategory: text(\"failure_category\"),\n\tsuggestedStrategy: text(\"suggested_strategy\"),\n}, (table) => [\n\tindex(\"job_debug_suggestions_jobId_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_debug_suggestions_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobDebugWarnings = pgTable(\"job_debug_warnings\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tordinal: integer().notNull(),\n\tdescription: text(),\n\tretryCount: integer(\"retry_count\"),\n\tthreshold: integer(),\n}, (table) => [\n\tindex(\"job_debug_warnings_jobId_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_debug_warnings_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobExecutionConfigs = pgTable(\"job_execution_configs\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tdefaultTimeout: integer(\"default_timeout\").notNull(),\n\tpauseBetweenSteps: integer(\"pause_between_steps\").notNull(),\n\tstopOnError: boolean(\"stop_on_error\").notNull(),\n\tstepDelay: integer(\"step_delay\"),\n\tenableSelectorCache: boolean(\"enable_selector_cache\").notNull(),\n\tenableAgentFallback: boolean(\"enable_agent_fallback\").notNull(),\n\tenableVisionFallback: boolean(\"enable_vision_fallback\").notNull(),\n\tmodelId: text(\"model_id\"),\n\tmodelProvider: text(\"model_provider\"),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_execution_configs_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"job_execution_configs_job_id_unique\").on(table.jobId),\n]);\n\nexport const jobGenerateConfigs = pgTable(\"job_generate_configs\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tmaxIterations: integer(\"max_iterations\").default(20).notNull(),\n\tstepDelay: integer(\"step_delay\").default(500).notNull(),\n\theadless: boolean().default(true).notNull(),\n\tsnapshotFilter: boolean(\"snapshot_filter\").default(true).notNull(),\n\tstallCheckInterval: integer(\"stall_check_interval\").default(3).notNull(),\n\thistoryWindow: integer(\"history_window\").default(10).notNull(),\n\tmaxConsecutiveFailures: integer(\"max_consecutive_failures\").default(3).notNull(),\n\tscreenshotDir: text(\"screenshot_dir\"),\n\tvideoDir: text(\"video_dir\"),\n\tstealth: boolean().default(false).notNull(),\n\tproxy: text(),\n\tmodelId: text(\"model_id\"),\n\tmodelProvider: text(\"model_provider\"),\n\tskills: text().array(),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_generate_configs_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"job_generate_configs_job_id_unique\").on(table.jobId),\n]);\n\nexport const jobRecordedSteps = pgTable(\"job_recorded_steps\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tordinal: integer().notNull(),\n\tactionType: text(\"action_type\").notNull(),\n\tselector: text(),\n\tvalue: text(),\n\tdescription: text(),\n\tinputCategory: text(\"input_category\"),\n\tvariableName: text(\"variable_name\"),\n\turl: text(),\n\tsuccess: boolean(),\n\terror: text(),\n\tscreenshotPath: text(\"screenshot_path\"),\n\tfailureCategory: text(\"failure_category\"),\n\tdurationMs: integer(\"duration_ms\"),\n\tsnapshotBefore: text(\"snapshot_before\"),\n\tsuggestedCaptures: jsonb(\"suggested_captures\"),\n\tscript: text(),\n\textractPrompt: text(\"extract_prompt\"),\n\tmemoryCollection: text(\"memory_collection\"),\n\taggregation: jsonb(),\n\tdownloadPath: text(\"download_path\"),\n\texportCollection: text(\"export_collection\"),\n\texportFormat: text(\"export_format\"),\n\texportPath: text(\"export_path\"),\n\tkeys: text(),\n}, (table) => [\n\tindex(\"job_recorded_steps_jobId_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"job_recorded_steps_jobId_ordinal_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"int4_ops\"), table.ordinal.asc().nullsLast().op(\"int4_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_recorded_steps_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobResults = pgTable(\"job_results\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tordinal: integer().notNull(),\n\tdescription: text().notNull(),\n\tstatus: text(\"status\", { enum: [\"success\",\"failed\",\"skipped\"] }).notNull(),\n\tdurationMs: integer(\"duration_ms\").notNull(),\n\terror: text(),\n\tactionType: text(\"action_type\"),\n\tretryCount: integer(\"retry_count\").default(0),\n\tfailureCategory: text(\"failure_category\"),\n\tcapturedValues: jsonb(\"captured_values\"),\n\tconditionSkipped: boolean(\"condition_skipped\").default(false),\n\tloopIterations: integer(\"loop_iterations\"),\n\tbranchMatch: text(\"branch_match\"),\n\tforEachItemCount: integer(\"for_each_item_count\"),\n\textractedData: text(\"extracted_data\"),\n\tdownloadedFile: text(\"downloaded_file\"),\n\texportedFile: text(\"exported_file\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"job_results_jobId_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"job_results_jobId_ordinal_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"int4_ops\"), table.ordinal.asc().nullsLast().op(\"int4_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_results_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobResultDiagnostics = pgTable(\"job_result_diagnostics\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobResultId: uuid(\"job_result_id\").notNull(),\n\tlastSnapshotPreview: text(\"last_snapshot_preview\"),\n\tfailureHistory: jsonb(\"failure_history\"),\n\tlastAiResponseText: text(\"last_ai_response_text\"),\n\trecoveryHint: text(\"recovery_hint\"),\n\tdeterministicResolveResult: text(\"deterministic_resolve_result\"),\n\tvisionFallbackResult: jsonb(\"vision_fallback_result\"),\n\tagentFallbackResult: jsonb(\"agent_fallback_result\"),\n\tvalidationWarnings: jsonb(\"validation_warnings\"),\n\tvalidationErrors: jsonb(\"validation_errors\"),\n\tstepUrl: text(\"step_url\"),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.jobResultId],\n\t\t\tforeignColumns: [jobResults.id],\n\t\t\tname: \"job_result_diagnostics_job_result_id_job_results_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"job_result_diagnostics_job_result_id_unique\").on(table.jobResultId),\n]);\n\nexport const jobReviewResults = pgTable(\"job_review_results\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tsummary: text(),\n\tyamlContent: text(\"yaml_content\"),\n\tgoalAchieved: boolean(\"goal_achieved\"),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_review_results_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"job_review_results_job_id_unique\").on(table.jobId),\n]);\n\nexport const runbookSteps = pgTable(\"runbook_steps\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tparentStepId: uuid(\"parent_step_id\"),\n\tordinal: integer().notNull(),\n\tdescription: text().notNull(),\n\tactionType: text(\"action_type\", { enum: [\"click\",\"input\",\"select\",\"navigate\",\"scroll\",\"wait\",\"hover\",\"extract\",\"download\",\"export\",\"memory\",\"key\"] }).notNull(),\n\turl: text(),\n\triskLevel: text(\"risk_level\", { enum: [\"low\",\"medium\",\"high\"] }).default('low').notNull(),\n\trequiresConfirmation: boolean(\"requires_confirmation\").default(false).notNull(),\n\tvalue: text(),\n\toptionText: text(\"option_text\"),\n\tscript: text(),\n\tkeys: text(),\n\tdownloadPath: text(\"download_path\"),\n\texportCollection: text(\"export_collection\"),\n\texportFormat: text(\"export_format\"),\n\texportPath: text(\"export_path\"),\n\tselector: jsonb(),\n\tcondition: text(),\n\tcaptures: jsonb(),\n\tmemoryOperations: jsonb(\"memory_operations\"),\n\tloopCondition: text(\"loop_condition\"),\n\tloopForEach: text(\"loop_for_each\"),\n\tloopItemVariable: text(\"loop_item_variable\"),\n\tloopIndexVariable: text(\"loop_index_variable\"),\n\tloopMaxIterations: integer(\"loop_max_iterations\"),\n\tloopCounterVariable: text(\"loop_counter_variable\"),\n\tbranchValue: text(\"branch_value\"),\n\tbranchCaseMatch: text(\"branch_case_match\"),\n\tbranchIsDefault: boolean(\"branch_is_default\").default(false),\n\tversionId: uuid(\"version_id\").notNull(),\n\textractPrompt: text(\"extract_prompt\"),\n}, (table) => [\n\tindex(\"runbook_steps_parentStepId_idx\").using(\"btree\", table.parentStepId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"runbook_steps_versionId_idx\").using(\"btree\", table.versionId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.versionId],\n\t\t\tforeignColumns: [runbookVersions.id],\n\t\t\tname: \"runbook_steps_version_id_runbook_versions_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobReviewedSteps = pgTable(\"job_reviewed_steps\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\treviewResultId: uuid(\"review_result_id\").notNull(),\n\toriginalOrdinal: integer(\"original_ordinal\").notNull(),\n\tkeep: boolean().notNull(),\n\tremovalReason: text(\"removal_reason\"),\n\triskLevel: text(\"risk_level\"),\n\trequiresConfirmation: boolean(\"requires_confirmation\"),\n\tconfirmationReason: text(\"confirmation_reason\"),\n}, (table) => [\n\tindex(\"job_reviewed_steps_reviewResultId_idx\").using(\"btree\", table.reviewResultId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.reviewResultId],\n\t\t\tforeignColumns: [jobReviewResults.id],\n\t\t\tname: \"job_reviewed_steps_review_result_id_job_review_results_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const jobVariables = pgTable(\"job_variables\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\tkey: text().notNull(),\n\tvalue: text().notNull(),\n\tsensitive: boolean().default(false).notNull(),\n}, (table) => [\n\tuniqueIndex(\"job_variables_jobId_key_idx\").using(\"btree\", table.jobId.asc().nullsLast().op(\"text_ops\"), table.key.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"job_variables_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const runbookSecrets = pgTable(\"runbook_secrets\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tkey: text().notNull(),\n\tencryptedValue: text(\"encrypted_value\").notNull(),\n\tversionId: uuid(\"version_id\").notNull(),\n}, (table) => [\n\tuniqueIndex(\"runbook_secrets_versionId_key_idx\").using(\"btree\", table.versionId.asc().nullsLast().op(\"text_ops\"), table.key.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.versionId],\n\t\t\tforeignColumns: [runbookVersions.id],\n\t\t\tname: \"runbook_secrets_version_id_runbook_versions_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const runbookSettings = pgTable(\"runbook_settings\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tdefaultTimeout: integer(\"default_timeout\"),\n\tpauseBetweenSteps: integer(\"pause_between_steps\"),\n\tstopOnError: boolean(\"stop_on_error\"),\n\tstepDelay: integer(\"step_delay\"),\n\tenableSelectorCache: boolean(\"enable_selector_cache\"),\n\tenableAgentFallback: boolean(\"enable_agent_fallback\"),\n\tenableVisionFallback: boolean(\"enable_vision_fallback\"),\n\tmodelId: text(\"model_id\"),\n\tmodelProvider: text(\"model_provider\"),\n\tselfHealEnabled: boolean(\"self_heal_enabled\").default(false).notNull(),\n\tversionId: uuid(\"version_id\").notNull(),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.versionId],\n\t\t\tforeignColumns: [runbookVersions.id],\n\t\t\tname: \"runbook_settings_version_id_runbook_versions_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"runbook_settings_version_id_unique\").on(table.versionId),\n]);\n\nexport const runbookVariables = pgTable(\"runbook_variables\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tname: text().notNull(),\n\tsource: text(\"source\", { enum: [\"prompt\",\"fixed\",\"context\",\"env\",\"expression\",\"data\"] }).notNull(),\n\tdescription: text(),\n\trequired: boolean().default(false).notNull(),\n\tsensitive: boolean().default(false).notNull(),\n\tvalue: text(),\n\tversionId: uuid(\"version_id\").notNull(),\n}, (table) => [\n\tindex(\"runbook_variables_versionId_idx\").using(\"btree\", table.versionId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"runbook_variables_versionId_name_idx\").using(\"btree\", table.versionId.asc().nullsLast().op(\"text_ops\"), table.name.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.versionId],\n\t\t\tforeignColumns: [runbookVersions.id],\n\t\t\tname: \"runbook_variables_version_id_runbook_versions_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const runbookVersionReviews = pgTable(\"runbook_version_reviews\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\tversionId: uuid(\"version_id\").notNull(),\n\trequestedBy: text(\"requested_by\").notNull(),\n\trequestedAt: timestamp(\"requested_at\").defaultNow().notNull(),\n\treviewerId: text(\"reviewer_id\"),\n\treviewedAt: timestamp(\"reviewed_at\"),\n\tstatus: text(\"status\", { enum: [\"pending\",\"approved\",\"rejected\"] }).default('pending').notNull(),\n\tcomment: text(),\n}, (table) => [\n\tindex(\"runbook_version_reviews_status_idx\").using(\"btree\", table.status.asc().nullsLast().op(\"text_ops\")),\n\tindex(\"runbook_version_reviews_versionId_idx\").using(\"btree\", table.versionId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.requestedBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"runbook_version_reviews_requested_by_user_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.reviewerId],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"runbook_version_reviews_reviewer_id_user_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.versionId],\n\t\t\tforeignColumns: [runbookVersions.id],\n\t\t\tname: \"runbook_version_reviews_version_id_runbook_versions_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const session = pgTable(\"session\", {\n\tid: text().primaryKey().notNull(),\n\texpiresAt: timestamp(\"expires_at\").notNull(),\n\ttoken: text().notNull(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n\tipAddress: text(\"ip_address\"),\n\tuserAgent: text(\"user_agent\"),\n\tuserId: text(\"user_id\").notNull(),\n}, (table) => [\n\tindex(\"session_userId_idx\").using(\"btree\", table.userId.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.userId],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"session_user_id_user_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"session_token_unique\").on(table.token),\n]);\n\nexport const telemetryFailureEvents = pgTable(\"telemetry_failure_events\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\trunbookId: uuid(\"runbook_id\"),\n\tstepOrdinal: integer(\"step_ordinal\").notNull(),\n\turlPattern: text(\"url_pattern\").notNull(),\n\tselectorHint: text(\"selector_hint\").notNull(),\n\tfailureCategory: text(\"failure_category\").notNull(),\n\tactionType: text(\"action_type\"),\n\tstepDescription: text(\"step_description\"),\n\tstepAction: jsonb(\"step_action\"),\n\terrorMessage: text(\"error_message\"),\n\tfailureHistory: jsonb(\"failure_history\"),\n\tretryCount: integer(\"retry_count\").default(0),\n\tretryDetails: jsonb(\"retry_details\"),\n\tsnapshotPreview: text(\"snapshot_preview\"),\n\tstepUrl: text(\"step_url\"),\n\tdeterministicResult: text(\"deterministic_result\"),\n\tvisionFallback: jsonb(\"vision_fallback\"),\n\tagentFallback: jsonb(\"agent_fallback\"),\n\tresolveMethod: text(\"resolve_method\"),\n\tcontextChunksUsed: integer(\"context_chunks_used\"),\n\tfailureHintsInjected: text(\"failure_hints_injected\"),\n\tvalidationWarnings: jsonb(\"validation_warnings\"),\n\tvalidationErrors: jsonb(\"validation_errors\"),\n\texecutionStrategy: jsonb(\"execution_strategy\"),\n\tdurationMs: integer(\"duration_ms\"),\n\trecoveryHint: text(\"recovery_hint\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"telemetry_failure_events_tenant_category_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.failureCategory.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"telemetry_failure_events_tenant_created_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.createdAt.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"telemetry_failure_events_tenant_pattern_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"text_ops\"), table.urlPattern.asc().nullsLast().op(\"uuid_ops\"), table.selectorHint.asc().nullsLast().op(\"text_ops\")),\n\tindex(\"telemetry_failure_events_tenant_runbook_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.runbookId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"telemetry_failure_events_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"telemetry_failure_events_runbook_id_runbooks_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"telemetry_failure_events_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const telemetryFailurePatterns = pgTable(\"telemetry_failure_patterns\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\trunbookId: uuid(\"runbook_id\"),\n\turlPattern: text(\"url_pattern\").notNull(),\n\tselectorHint: text(\"selector_hint\").notNull(),\n\tfailureCategory: text(\"failure_category\").notNull(),\n\toccurrenceCount: integer(\"occurrence_count\").default(1).notNull(),\n\tlastErrorMessage: text(\"last_error_message\"),\n\tlastSnapshotExcerpt: text(\"last_snapshot_excerpt\"),\n\tsuccessfulRecoveries: jsonb(\"successful_recoveries\"),\n\tlastRecoveryMethod: text(\"last_recovery_method\"),\n\tlastJobId: uuid(\"last_job_id\"),\n\tlastStepOrdinal: integer(\"last_step_ordinal\"),\n\tfirstSeenAt: timestamp(\"first_seen_at\").defaultNow().notNull(),\n\tlastSeenAt: timestamp(\"last_seen_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"telemetry_failure_patterns_tenant_category_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"text_ops\"), table.failureCategory.asc().nullsLast().op(\"text_ops\")),\n\tindex(\"telemetry_failure_patterns_tenant_runbook_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.runbookId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"telemetry_failure_patterns_unique_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"text_ops\"), table.urlPattern.asc().nullsLast().op(\"uuid_ops\"), table.selectorHint.asc().nullsLast().op(\"text_ops\"), table.failureCategory.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"telemetry_failure_patterns_runbook_id_runbooks_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"telemetry_failure_patterns_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const telemetryJobSummaries = pgTable(\"telemetry_job_summaries\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\trunbookId: uuid(\"runbook_id\"),\n\trunbookContentHash: text(\"runbook_content_hash\"),\n\tmode: text(),\n\ttotalSteps: integer(\"total_steps\"),\n\tsucceededSteps: integer(\"succeeded_steps\"),\n\tfailedSteps: integer(\"failed_steps\"),\n\tskippedSteps: integer(\"skipped_steps\"),\n\taborted: boolean(),\n\ttotalDurationMs: integer(\"total_duration_ms\"),\n\tfailureCategoryCounts: jsonb(\"failure_category_counts\"),\n\tretryDistribution: jsonb(\"retry_distribution\"),\n\tresolveMethodCounts: jsonb(\"resolve_method_counts\"),\n\tstepsWithRetries: integer(\"steps_with_retries\").default(0),\n\ttotalRetryCount: integer(\"total_retry_count\").default(0),\n\tvisionFallbackAttempts: integer(\"vision_fallback_attempts\").default(0),\n\tvisionFallbackSuccesses: integer(\"vision_fallback_successes\").default(0),\n\tagentFallbackAttempts: integer(\"agent_fallback_attempts\").default(0),\n\tagentFallbackSuccesses: integer(\"agent_fallback_successes\").default(0),\n\tslowStepsCount: integer(\"slow_steps_count\").default(0),\n\tmaxStepDurationMs: integer(\"max_step_duration_ms\").default(0),\n\taiTotalCalls: integer(\"ai_total_calls\").default(0),\n\taiTotalInputTokens: integer(\"ai_total_input_tokens\").default(0),\n\taiTotalOutputTokens: integer(\"ai_total_output_tokens\").default(0),\n\taiCacheHitRate: real(\"ai_cache_hit_rate\").default(0),\n\taiEstimatedCostUsd: real(\"ai_estimated_cost_usd\").default(0),\n\taiTotalDurationMs: integer(\"ai_total_duration_ms\").default(0),\n\tmodelId: text(\"model_id\"),\n\tmodelProvider: text(\"model_provider\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"telemetry_job_summaries_runbookId_idx\").using(\"btree\", table.runbookId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"telemetry_job_summaries_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"telemetry_job_summaries_tenant_created_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"timestamp_ops\"), table.createdAt.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"telemetry_job_summaries_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"telemetry_job_summaries_runbook_id_runbooks_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"telemetry_job_summaries_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"telemetry_job_summaries_job_id_unique\").on(table.jobId),\n]);\n\nexport const telemetryResolutionOutcomes = pgTable(\"telemetry_resolution_outcomes\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tjobId: uuid(\"job_id\").notNull(),\n\trunbookId: uuid(\"runbook_id\"),\n\tstepOrdinal: integer(\"step_ordinal\").notNull(),\n\tstatus: text().notNull(),\n\tresolveMethod: text(\"resolve_method\"),\n\tretryCount: integer(\"retry_count\").default(0),\n\tdurationMs: integer(\"duration_ms\"),\n\tdeterministicMatchType: text(\"deterministic_match_type\"),\n\tdeterministicConfidence: real(\"deterministic_confidence\"),\n\turlPattern: text(\"url_pattern\"),\n\tselectorHint: text(\"selector_hint\"),\n\tactionType: text(\"action_type\"),\n\taiReasoning: text(\"ai_reasoning\"),\n\tcontextChunksUsed: integer(\"context_chunks_used\").default(0),\n\tworkingMemoryTokens: integer(\"working_memory_tokens\").default(0),\n\tfailureHintsProvided: boolean(\"failure_hints_provided\").default(false),\n\tsnapshotElementCount: integer(\"snapshot_element_count\").default(0),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"telemetry_resolution_outcomes_tenant_job_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.jobId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"telemetry_resolution_outcomes_tenant_match_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.deterministicMatchType.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"telemetry_resolution_outcomes_tenant_method_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"text_ops\"), table.resolveMethod.asc().nullsLast().op(\"text_ops\")),\n\tindex(\"telemetry_resolution_outcomes_tenant_runbook_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.runbookId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.jobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"telemetry_resolution_outcomes_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"telemetry_resolution_outcomes_runbook_id_runbooks_id_fk\"\n\t\t}).onDelete(\"set null\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"telemetry_resolution_outcomes_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const telemetrySuggestionOutcomes = pgTable(\"telemetry_suggestion_outcomes\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\trunbookId: uuid(\"runbook_id\").notNull(),\n\tsuggestionJobId: uuid(\"suggestion_job_id\").notNull(),\n\tstepOrdinal: integer(\"step_ordinal\"),\n\tstepDescription: text(\"step_description\"),\n\tfailureCategory: text(\"failure_category\"),\n\tsuggestedStrategy: text(\"suggested_strategy\"),\n\trunbookFix: text(\"runbook_fix\"),\n\tcontextFix: text(\"context_fix\"),\n\tseverity: text(),\n\tapplied: boolean().default(false).notNull(),\n\tappliedAt: timestamp(\"applied_at\"),\n\tverificationJobId: uuid(\"verification_job_id\"),\n\tverificationSuccess: boolean(\"verification_success\"),\n\tverificationError: text(\"verification_error\"),\n\tverifiedAt: timestamp(\"verified_at\"),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"telemetry_suggestion_outcomes_applied_verification_idx\").using(\"btree\", table.applied.asc().nullsLast().op(\"bool_ops\"), table.verificationJobId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"telemetry_suggestion_outcomes_tenant_job_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.suggestionJobId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"telemetry_suggestion_outcomes_tenant_runbook_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\"), table.runbookId.asc().nullsLast().op(\"uuid_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.runbookId],\n\t\t\tforeignColumns: [runbooks.id],\n\t\t\tname: \"telemetry_suggestion_outcomes_runbook_id_runbooks_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.suggestionJobId],\n\t\t\tforeignColumns: [jobs.id],\n\t\t\tname: \"telemetry_suggestion_outcomes_suggestion_job_id_jobs_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"telemetry_suggestion_outcomes_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const tenantDevelopmentSettings = pgTable(\"tenant_development_settings\", {\n\ttenantId: uuid(\"tenant_id\").primaryKey().notNull(),\n\trequireApprovalBeforePublish: boolean(\"require_approval_before_publish\").default(false).notNull(),\n\tallowSelfApproval: boolean(\"allow_self_approval\").default(false).notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n\tupdatedBy: text(\"updated_by\"),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"tenant_development_settings_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.updatedBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"tenant_development_settings_updated_by_user_id_fk\"\n\t\t}).onDelete(\"set null\"),\n]);\n\nexport const tenantExecutionConfigs = pgTable(\"tenant_execution_configs\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tdefaultTimeout: integer(\"default_timeout\").default(30000).notNull(),\n\tpauseBetweenSteps: integer(\"pause_between_steps\").default(500).notNull(),\n\tstopOnError: boolean(\"stop_on_error\").default(true).notNull(),\n\tstepDelay: integer(\"step_delay\"),\n\tenableSelectorCache: boolean(\"enable_selector_cache\").default(true).notNull(),\n\tenableAgentFallback: boolean(\"enable_agent_fallback\").default(true).notNull(),\n\tenableVisionFallback: boolean(\"enable_vision_fallback\").default(false).notNull(),\n\tmodelId: text(\"model_id\"),\n\tmodelProvider: text(\"model_provider\"),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"tenant_execution_configs_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tunique(\"tenant_execution_configs_tenant_id_unique\").on(table.tenantId),\n]);\n\nexport const tenantExecutionSettings = pgTable(\"tenant_execution_settings\", {\n\ttenantId: uuid(\"tenant_id\").primaryKey().notNull(),\n\theadless: boolean().default(true).notNull(),\n\tstealth: boolean().default(false).notNull(),\n\tproxy: text(),\n\tapprovalMode: text(\"approval_mode\", { enum: [\"web\",\"slack\",\"teams\",\"discord\"] }).default('web').notNull(),\n\tnotifyMode: text(\"notify_mode\", { enum: [\"slack\",\"teams\",\"discord\"] }),\n\tenableSelectorCache: boolean(\"enable_selector_cache\").default(true).notNull(),\n\tenableAgentFallback: boolean(\"enable_agent_fallback\").default(true).notNull(),\n\tenableVisionFallback: boolean(\"enable_vision_fallback\").default(false).notNull(),\n\tskills: text().array().default([\"\"]).notNull(),\n\tapiKey: text(\"api_key\"),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n\tupdatedBy: text(\"updated_by\"),\n\tnotificationCredentials: jsonb(\"notification_credentials\"),\n\tenableScreenshots: boolean(\"enable_screenshots\").default(false).notNull(),\n\tenableVideoRecording: boolean(\"enable_video_recording\").default(false).notNull(),\n}, (table) => [\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"tenant_execution_settings_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.updatedBy],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"tenant_execution_settings_updated_by_user_id_fk\"\n\t\t}),\n]);\n\nexport const tenantMembers = pgTable(\"tenant_members\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tuserId: text(\"user_id\").notNull(),\n\trole: text(\"role\", { enum: [\"owner\",\"admin\",\"developer\",\"member\"] }).default('member').notNull(),\n\tcreatedAt: timestamp(\"created_at\").defaultNow().notNull(),\n}, (table) => [\n\tindex(\"tenant_members_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tindex(\"tenant_members_userId_idx\").using(\"btree\", table.userId.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"tenant_members_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n\tforeignKey({\n\t\t\tcolumns: [table.userId],\n\t\t\tforeignColumns: [user.id],\n\t\t\tname: \"tenant_members_user_id_user_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const tenantModelOverrides = pgTable(\"tenant_model_overrides\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tpurpose: text(\"purpose\", { enum: [\"selector\",\"extraction\",\"exploration\",\"exploration-light\",\"review\",\"fallback\",\"vision\"] }).notNull(),\n\tdescription: text().notNull(),\n\tmodelId: text(\"model_id\").notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n}, (table) => [\n\tindex(\"tenant_model_overrides_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"tenant_model_overrides_tenant_purpose_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"text_ops\"), table.purpose.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"tenant_model_overrides_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const tenantModelProviders = pgTable(\"tenant_model_providers\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tproviderId: text(\"provider_id\", { enum: [\"anthropic\",\"openai\",\"openai-compatible\",\"google\",\"azure\",\"bedrock\",\"vertex\"] }).notNull(),\n\tmodelId: text(\"model_id\").notNull(),\n\tconnected: boolean().default(false).notNull(),\n\tconfig: jsonb().default({}).notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n}, (table) => [\n\tindex(\"tenant_model_providers_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"tenant_model_providers_tenant_provider_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"text_ops\"), table.providerId.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"tenant_model_providers_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n\nexport const tenantUsage = pgTable(\"tenant_usage\", {\n\tid: uuid().defaultRandom().primaryKey().notNull(),\n\ttenantId: uuid(\"tenant_id\").notNull(),\n\tmonth: text().notNull(),\n\tjobCount: integer(\"job_count\").default(0).notNull(),\n\tstepCount: integer(\"step_count\").default(0).notNull(),\n\tupdatedAt: timestamp(\"updated_at\").defaultNow().$onUpdate(() => new Date()).notNull(),\n}, (table) => [\n\tindex(\"tenant_usage_tenantId_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"uuid_ops\")),\n\tuniqueIndex(\"tenant_usage_tenant_month_idx\").using(\"btree\", table.tenantId.asc().nullsLast().op(\"text_ops\"), table.month.asc().nullsLast().op(\"text_ops\")),\n\tforeignKey({\n\t\t\tcolumns: [table.tenantId],\n\t\t\tforeignColumns: [tenants.id],\n\t\t\tname: \"tenant_usage_tenant_id_tenants_id_fk\"\n\t\t}).onDelete(\"cascade\"),\n]);\n"],"mappings":"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","names":[]}