@refrainai/cli 0.4.1

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 (69) hide show
  1. package/dist/ai-model-FM6GWCID.js +37 -0
  2. package/dist/ai-model-FM6GWCID.js.map +1 -0
  3. package/dist/chunk-2BVDAJZT.js +236 -0
  4. package/dist/chunk-2BVDAJZT.js.map +1 -0
  5. package/dist/chunk-2H7UOFLK.js +11 -0
  6. package/dist/chunk-2H7UOFLK.js.map +1 -0
  7. package/dist/chunk-7UCVPKD4.js +902 -0
  8. package/dist/chunk-7UCVPKD4.js.map +1 -0
  9. package/dist/chunk-AG3CFMYU.js +36 -0
  10. package/dist/chunk-AG3CFMYU.js.map +1 -0
  11. package/dist/chunk-CLYJHKPY.js +1131 -0
  12. package/dist/chunk-CLYJHKPY.js.map +1 -0
  13. package/dist/chunk-D5SI2PHK.js +74 -0
  14. package/dist/chunk-D5SI2PHK.js.map +1 -0
  15. package/dist/chunk-DJVUITRB.js +9084 -0
  16. package/dist/chunk-DJVUITRB.js.map +1 -0
  17. package/dist/chunk-H47NWH7N.js +4427 -0
  18. package/dist/chunk-H47NWH7N.js.map +1 -0
  19. package/dist/chunk-HQDXLWAY.js +109 -0
  20. package/dist/chunk-HQDXLWAY.js.map +1 -0
  21. package/dist/chunk-IGFCYKHC.js +1974 -0
  22. package/dist/chunk-IGFCYKHC.js.map +1 -0
  23. package/dist/chunk-RT664YIO.js +245 -0
  24. package/dist/chunk-RT664YIO.js.map +1 -0
  25. package/dist/chunk-RYIJPYM3.js +164 -0
  26. package/dist/chunk-RYIJPYM3.js.map +1 -0
  27. package/dist/chunk-TDSM3UXI.js +40 -0
  28. package/dist/chunk-TDSM3UXI.js.map +1 -0
  29. package/dist/chunk-UGPXCQY3.js +778 -0
  30. package/dist/chunk-UGPXCQY3.js.map +1 -0
  31. package/dist/chunk-VPK2MQAZ.js +589 -0
  32. package/dist/chunk-VPK2MQAZ.js.map +1 -0
  33. package/dist/chunk-WEYR56ZN.js +953 -0
  34. package/dist/chunk-WEYR56ZN.js.map +1 -0
  35. package/dist/chunk-XMFCXPYU.js +275 -0
  36. package/dist/chunk-XMFCXPYU.js.map +1 -0
  37. package/dist/chunk-Z33FCOTZ.js +251 -0
  38. package/dist/chunk-Z33FCOTZ.js.map +1 -0
  39. package/dist/cli.js +59 -0
  40. package/dist/cli.js.map +1 -0
  41. package/dist/compose-MTSIJY5D.js +547 -0
  42. package/dist/compose-MTSIJY5D.js.map +1 -0
  43. package/dist/config-ZSUNCFXR.js +9 -0
  44. package/dist/config-ZSUNCFXR.js.map +1 -0
  45. package/dist/fix-runbook-ZSBOTLC2.js +294 -0
  46. package/dist/fix-runbook-ZSBOTLC2.js.map +1 -0
  47. package/dist/google-sheets-DRWIVEVC.js +482 -0
  48. package/dist/google-sheets-DRWIVEVC.js.map +1 -0
  49. package/dist/registry-LZLYTNDJ.js +17 -0
  50. package/dist/registry-LZLYTNDJ.js.map +1 -0
  51. package/dist/runbook-data-helpers-KRR2SH76.js +16 -0
  52. package/dist/runbook-data-helpers-KRR2SH76.js.map +1 -0
  53. package/dist/runbook-executor-K7T6RJWJ.js +1480 -0
  54. package/dist/runbook-executor-K7T6RJWJ.js.map +1 -0
  55. package/dist/runbook-generator-MPXJBQ5N.js +800 -0
  56. package/dist/runbook-generator-MPXJBQ5N.js.map +1 -0
  57. package/dist/runbook-schema-3T6TP3JJ.js +35 -0
  58. package/dist/runbook-schema-3T6TP3JJ.js.map +1 -0
  59. package/dist/runbook-store-G5GUOWRR.js +11 -0
  60. package/dist/runbook-store-G5GUOWRR.js.map +1 -0
  61. package/dist/schema-5G6UQSPT.js +91 -0
  62. package/dist/schema-5G6UQSPT.js.map +1 -0
  63. package/dist/server-AG3LXQBI.js +8778 -0
  64. package/dist/server-AG3LXQBI.js.map +1 -0
  65. package/dist/tenant-ai-config-QPFEJUVJ.js +14 -0
  66. package/dist/tenant-ai-config-QPFEJUVJ.js.map +1 -0
  67. package/dist/yaml-patcher-VGUS2JGH.js +15 -0
  68. package/dist/yaml-patcher-VGUS2JGH.js.map +1 -0
  69. package/package.json +37 -0
@@ -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 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 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}, (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 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":[]}
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/context/template-resolver.ts
4
+ var TEMPLATE_RE = /\{\{([\w.]+)\}\}/g;
5
+ var MAX_RESOLVE_DEPTH = 3;
6
+ function resolveTemplate(template, values) {
7
+ let result = template;
8
+ for (let depth = 0; depth < MAX_RESOLVE_DEPTH; depth++) {
9
+ const next = result.replace(TEMPLATE_RE, (match, name) => {
10
+ const v = values.get(name);
11
+ return v !== void 0 ? v : match;
12
+ });
13
+ if (next === result) break;
14
+ result = next;
15
+ }
16
+ return result;
17
+ }
18
+ function extractVariableNames(template) {
19
+ const names = [];
20
+ let match;
21
+ const re = new RegExp(TEMPLATE_RE.source, "g");
22
+ while ((match = re.exec(template)) !== null) {
23
+ if (!names.includes(match[1])) {
24
+ names.push(match[1]);
25
+ }
26
+ }
27
+ return names;
28
+ }
29
+ function scanStepsForTemplates(steps) {
30
+ const names = /* @__PURE__ */ new Set();
31
+ function scan(stepsToScan) {
32
+ for (const step of stepsToScan) {
33
+ const candidates = [
34
+ step.action.value,
35
+ step.action.url,
36
+ step.action.optionText,
37
+ step.condition,
38
+ step.loop?.condition,
39
+ step.loop?.forEach,
40
+ step.branches?.value
41
+ ];
42
+ for (const c of candidates) {
43
+ if (c) {
44
+ for (const name of extractVariableNames(c)) {
45
+ names.add(name);
46
+ }
47
+ }
48
+ }
49
+ if (step.branches) {
50
+ for (const branchCase of step.branches.cases) {
51
+ for (const name of extractVariableNames(branchCase.match)) {
52
+ names.add(name);
53
+ }
54
+ scan(branchCase.steps);
55
+ }
56
+ if (step.branches.default) {
57
+ scan(step.branches.default.steps);
58
+ }
59
+ }
60
+ if (step.steps) {
61
+ scan(step.steps);
62
+ }
63
+ }
64
+ }
65
+ scan(steps);
66
+ return Array.from(names);
67
+ }
68
+
69
+ export {
70
+ resolveTemplate,
71
+ extractVariableNames,
72
+ scanStepsForTemplates
73
+ };
74
+ //# sourceMappingURL=chunk-D5SI2PHK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/context/template-resolver.ts"],"sourcesContent":["/**\n * template-resolver — {{varName}} テンプレート展開エンジン\n *\n * 純粋関数のみ。ブラウザ / AI / IO 依存なし。\n */\n\nimport type { ParsedStep } from \"../runbook-executor/types\";\n\nconst TEMPLATE_RE = /\\{\\{([\\w.]+)\\}\\}/g;\nconst MAX_RESOLVE_DEPTH = 3;\n\n/**\n * テンプレート文字列中の {{varName}} を values で展開する。\n * ネストした参照(expression 内の {{}} )は最大 MAX_RESOLVE_DEPTH 回まで再帰展開。\n */\nexport function resolveTemplate(\n template: string,\n values: Map<string, string>,\n): string {\n let result = template;\n for (let depth = 0; depth < MAX_RESOLVE_DEPTH; depth++) {\n const next = result.replace(TEMPLATE_RE, (match, name: string) => {\n const v = values.get(name);\n return v !== undefined ? v : match; // 未解決はそのまま残す\n });\n if (next === result) break; // 変化なし → 完了\n result = next;\n }\n return result;\n}\n\n/**\n * テンプレート文字列から参照されている変数名の一覧を抽出する。\n */\nexport function extractVariableNames(template: string): string[] {\n const names: string[] = [];\n let match: RegExpExecArray | null;\n const re = new RegExp(TEMPLATE_RE.source, \"g\");\n while ((match = re.exec(template)) !== null) {\n if (!names.includes(match[1])) {\n names.push(match[1]);\n }\n }\n return names;\n}\n\n/**\n * 文字列に {{...}} テンプレート参照を含むか判定する。\n */\nexport function hasTemplateRef(value: string): boolean {\n return TEMPLATE_RE.test(value);\n}\n\n/**\n * 全ステップの value / url / optionText / condition / loop.condition をスキャンし、\n * 参照されている変数名の一覧を返す。サブステップも再帰的にスキャンする。\n */\nexport function scanStepsForTemplates(steps: ParsedStep[]): string[] {\n const names = new Set<string>();\n\n function scan(stepsToScan: ParsedStep[]): void {\n for (const step of stepsToScan) {\n const candidates = [\n step.action.value,\n step.action.url,\n step.action.optionText,\n step.condition,\n step.loop?.condition,\n step.loop?.forEach,\n step.branches?.value,\n ];\n for (const c of candidates) {\n if (c) {\n for (const name of extractVariableNames(c)) {\n names.add(name);\n }\n }\n }\n // branches の match 値と サブステップを再帰スキャン\n if (step.branches) {\n for (const branchCase of step.branches.cases) {\n for (const name of extractVariableNames(branchCase.match)) {\n names.add(name);\n }\n scan(branchCase.steps);\n }\n if (step.branches.default) {\n scan(step.branches.default.steps);\n }\n }\n // サブステップを再帰スキャン\n if (step.steps) {\n scan(step.steps);\n }\n }\n }\n\n scan(steps);\n return Array.from(names);\n}\n"],"mappings":";;;AAQA,IAAM,cAAc;AACpB,IAAM,oBAAoB;AAMnB,SAAS,gBACd,UACA,QACQ;AACR,MAAI,SAAS;AACb,WAAS,QAAQ,GAAG,QAAQ,mBAAmB,SAAS;AACtD,UAAM,OAAO,OAAO,QAAQ,aAAa,CAAC,OAAO,SAAiB;AAChE,YAAM,IAAI,OAAO,IAAI,IAAI;AACzB,aAAO,MAAM,SAAY,IAAI;AAAA,IAC/B,CAAC;AACD,QAAI,SAAS,OAAQ;AACrB,aAAS;AAAA,EACX;AACA,SAAO;AACT;AAKO,SAAS,qBAAqB,UAA4B;AAC/D,QAAM,QAAkB,CAAC;AACzB,MAAI;AACJ,QAAM,KAAK,IAAI,OAAO,YAAY,QAAQ,GAAG;AAC7C,UAAQ,QAAQ,GAAG,KAAK,QAAQ,OAAO,MAAM;AAC3C,QAAI,CAAC,MAAM,SAAS,MAAM,CAAC,CAAC,GAAG;AAC7B,YAAM,KAAK,MAAM,CAAC,CAAC;AAAA,IACrB;AAAA,EACF;AACA,SAAO;AACT;AAaO,SAAS,sBAAsB,OAA+B;AACnE,QAAM,QAAQ,oBAAI,IAAY;AAE9B,WAAS,KAAK,aAAiC;AAC7C,eAAW,QAAQ,aAAa;AAC9B,YAAM,aAAa;AAAA,QACjB,KAAK,OAAO;AAAA,QACZ,KAAK,OAAO;AAAA,QACZ,KAAK,OAAO;AAAA,QACZ,KAAK;AAAA,QACL,KAAK,MAAM;AAAA,QACX,KAAK,MAAM;AAAA,QACX,KAAK,UAAU;AAAA,MACjB;AACA,iBAAW,KAAK,YAAY;AAC1B,YAAI,GAAG;AACL,qBAAW,QAAQ,qBAAqB,CAAC,GAAG;AAC1C,kBAAM,IAAI,IAAI;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAEA,UAAI,KAAK,UAAU;AACjB,mBAAW,cAAc,KAAK,SAAS,OAAO;AAC5C,qBAAW,QAAQ,qBAAqB,WAAW,KAAK,GAAG;AACzD,kBAAM,IAAI,IAAI;AAAA,UAChB;AACA,eAAK,WAAW,KAAK;AAAA,QACvB;AACA,YAAI,KAAK,SAAS,SAAS;AACzB,eAAK,KAAK,SAAS,QAAQ,KAAK;AAAA,QAClC;AAAA,MACF;AAEA,UAAI,KAAK,OAAO;AACd,aAAK,KAAK,KAAK;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAEA,OAAK,KAAK;AACV,SAAO,MAAM,KAAK,KAAK;AACzB;","names":[]}