@mastra/factory 0.24.0 → 0.25.0-alpha.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 (181) hide show
  1. package/README.md +36 -9
  2. package/dist/auth.d.ts.map +1 -1
  3. package/dist/auth.js +18 -4
  4. package/dist/auth.js.map +1 -1
  5. package/dist/boards/review.d.ts.map +1 -1
  6. package/dist/boards/review.js +3 -2
  7. package/dist/boards/review.js.map +1 -1
  8. package/dist/factory.d.ts +3 -0
  9. package/dist/factory.d.ts.map +1 -1
  10. package/dist/factory.js +90 -97
  11. package/dist/factory.js.map +1 -1
  12. package/dist/integrations/base.d.ts +14 -1
  13. package/dist/integrations/base.d.ts.map +1 -1
  14. package/dist/integrations/github/integration.d.ts +3 -0
  15. package/dist/integrations/github/integration.d.ts.map +1 -1
  16. package/dist/integrations/github/integration.js +4 -0
  17. package/dist/integrations/github/integration.js.map +1 -1
  18. package/dist/integrations/github/sandbox.d.ts +4 -0
  19. package/dist/integrations/github/sandbox.d.ts.map +1 -1
  20. package/dist/integrations/github/sandbox.js +2 -0
  21. package/dist/integrations/github/sandbox.js.map +1 -1
  22. package/dist/integrations/platform/github/integration.d.ts +3 -0
  23. package/dist/integrations/platform/github/integration.d.ts.map +1 -1
  24. package/dist/integrations/platform/github/integration.js +5 -0
  25. package/dist/integrations/platform/github/integration.js.map +1 -1
  26. package/dist/{session → integrations/slack}/channel-reply-processor.d.ts +4 -3
  27. package/dist/integrations/slack/channel-reply-processor.d.ts.map +1 -0
  28. package/dist/integrations/slack/channel-reply-processor.js +61 -0
  29. package/dist/integrations/slack/channel-reply-processor.js.map +1 -0
  30. package/dist/integrations/slack/channel-session-link-processor.d.ts.map +1 -0
  31. package/dist/{session → integrations/slack}/channel-session-link-processor.js +13 -4
  32. package/dist/integrations/slack/channel-session-link-processor.js.map +1 -0
  33. package/dist/integrations/slack/integration.d.ts +25 -1
  34. package/dist/integrations/slack/integration.d.ts.map +1 -1
  35. package/dist/integrations/slack/integration.js +55 -5
  36. package/dist/integrations/slack/integration.js.map +1 -1
  37. package/dist/integrations/slack/reply-reminder-processor.d.ts +23 -0
  38. package/dist/integrations/slack/reply-reminder-processor.d.ts.map +1 -0
  39. package/dist/integrations/slack/reply-reminder-processor.js +58 -0
  40. package/dist/integrations/slack/reply-reminder-processor.js.map +1 -0
  41. package/dist/integrations/slack/reply-tool.d.ts +31 -0
  42. package/dist/integrations/slack/reply-tool.d.ts.map +1 -0
  43. package/dist/integrations/slack/reply-tool.js +203 -0
  44. package/dist/integrations/slack/reply-tool.js.map +1 -0
  45. package/dist/integrations/slack/share-file-tool.d.ts +45 -0
  46. package/dist/integrations/slack/share-file-tool.d.ts.map +1 -0
  47. package/dist/integrations/slack/share-file-tool.js +106 -0
  48. package/dist/integrations/slack/share-file-tool.js.map +1 -0
  49. package/dist/integrations/slack/slack.d.ts.map +1 -1
  50. package/dist/integrations/slack/slack.js +54 -6
  51. package/dist/integrations/slack/slack.js.map +1 -1
  52. package/dist/mcp/events.d.ts +73 -0
  53. package/dist/mcp/events.d.ts.map +1 -0
  54. package/dist/mcp/events.js +158 -0
  55. package/dist/mcp/events.js.map +1 -0
  56. package/dist/mcp/routes.d.ts +0 -1
  57. package/dist/mcp/routes.d.ts.map +1 -1
  58. package/dist/mcp/routes.js +30 -3
  59. package/dist/mcp/routes.js.map +1 -1
  60. package/dist/packages/_internals/workspace/dist/index.js.map +1 -1
  61. package/dist/platform-auth-host.d.ts.map +1 -1
  62. package/dist/platform-auth-host.js +1 -1
  63. package/dist/platform-auth-host.js.map +1 -1
  64. package/dist/routes/config.d.ts +2 -0
  65. package/dist/routes/config.d.ts.map +1 -1
  66. package/dist/routes/config.js +52 -11
  67. package/dist/routes/config.js.map +1 -1
  68. package/dist/routes/contracts.d.ts +2 -0
  69. package/dist/routes/contracts.d.ts.map +1 -1
  70. package/dist/routes/contracts.js +1 -1
  71. package/dist/routes/contracts.js.map +1 -1
  72. package/dist/routes/session-access.d.ts +7 -2
  73. package/dist/routes/session-access.d.ts.map +1 -1
  74. package/dist/routes/session-access.js +41 -4
  75. package/dist/routes/session-access.js.map +1 -1
  76. package/dist/routes/skills.d.ts.map +1 -1
  77. package/dist/routes/skills.js +4 -3
  78. package/dist/routes/skills.js.map +1 -1
  79. package/dist/routes/source-control-sessions.d.ts +2 -0
  80. package/dist/routes/source-control-sessions.d.ts.map +1 -1
  81. package/dist/routes/source-control-sessions.js +161 -24
  82. package/dist/routes/source-control-sessions.js.map +1 -1
  83. package/dist/routes/surface.d.ts +2 -0
  84. package/dist/routes/surface.d.ts.map +1 -1
  85. package/dist/routes/surface.js +10 -4
  86. package/dist/routes/surface.js.map +1 -1
  87. package/dist/rules/dispatcher.d.ts.map +1 -1
  88. package/dist/rules/dispatcher.js +11 -3
  89. package/dist/rules/dispatcher.js.map +1 -1
  90. package/dist/rules/processor.d.ts +2 -2
  91. package/dist/rules/processor.d.ts.map +1 -1
  92. package/dist/rules/processor.js +3 -3
  93. package/dist/rules/processor.js.map +1 -1
  94. package/dist/sandbox/session-retirement.d.ts +11 -0
  95. package/dist/sandbox/session-retirement.d.ts.map +1 -1
  96. package/dist/sandbox/session-retirement.js +38 -1
  97. package/dist/sandbox/session-retirement.js.map +1 -1
  98. package/dist/sandbox/session-sandbox.d.ts +2 -0
  99. package/dist/sandbox/session-sandbox.d.ts.map +1 -1
  100. package/dist/sandbox/session-sandbox.js +5 -1
  101. package/dist/sandbox/session-sandbox.js.map +1 -1
  102. package/dist/session/credential-policy.d.ts +4 -2
  103. package/dist/session/credential-policy.d.ts.map +1 -1
  104. package/dist/session/credential-policy.js +11 -1
  105. package/dist/session/credential-policy.js.map +1 -1
  106. package/dist/session/factory-session.d.ts.map +1 -1
  107. package/dist/session/factory-session.js +14 -1
  108. package/dist/session/factory-session.js.map +1 -1
  109. package/dist/session/memory-settings-hydration.d.ts +0 -8
  110. package/dist/session/memory-settings-hydration.d.ts.map +1 -1
  111. package/dist/session/memory-settings-hydration.js +1 -19
  112. package/dist/session/memory-settings-hydration.js.map +1 -1
  113. package/dist/session/run-audit.d.ts +1 -0
  114. package/dist/session/run-audit.d.ts.map +1 -1
  115. package/dist/session/run-audit.js +7 -2
  116. package/dist/session/run-audit.js.map +1 -1
  117. package/dist/session/session-threads.d.ts +5 -0
  118. package/dist/session/session-threads.d.ts.map +1 -1
  119. package/dist/session/session-threads.js +8 -1
  120. package/dist/session/session-threads.js.map +1 -1
  121. package/dist/session/thinking-default.d.ts +6 -13
  122. package/dist/session/thinking-default.d.ts.map +1 -1
  123. package/dist/session/thinking-default.js +18 -22
  124. package/dist/session/thinking-default.js.map +1 -1
  125. package/dist/session-owner-signal.d.ts +2 -0
  126. package/dist/session-owner-signal.d.ts.map +1 -0
  127. package/dist/session-owner-signal.js +6 -0
  128. package/dist/session-owner-signal.js.map +1 -0
  129. package/dist/skills/service.d.ts +6 -7
  130. package/dist/skills/service.d.ts.map +1 -1
  131. package/dist/skills/service.js +9 -19
  132. package/dist/skills/service.js.map +1 -1
  133. package/dist/storage/domains/audit/actions.d.ts +1 -0
  134. package/dist/storage/domains/audit/actions.d.ts.map +1 -1
  135. package/dist/storage/domains/audit/actions.js +2 -1
  136. package/dist/storage/domains/audit/actions.js.map +1 -1
  137. package/dist/storage/domains/audit/base.d.ts +18 -2
  138. package/dist/storage/domains/audit/base.d.ts.map +1 -1
  139. package/dist/storage/domains/audit/base.js +22 -4
  140. package/dist/storage/domains/audit/base.js.map +1 -1
  141. package/dist/storage/domains/model-defaults/base.d.ts +8 -0
  142. package/dist/storage/domains/model-defaults/base.d.ts.map +1 -1
  143. package/dist/storage/domains/model-defaults/base.js +18 -0
  144. package/dist/storage/domains/model-defaults/base.js.map +1 -1
  145. package/dist/storage/domains/source-control/base.d.ts +26 -1
  146. package/dist/storage/domains/source-control/base.d.ts.map +1 -1
  147. package/dist/storage/domains/source-control/base.js +69 -5
  148. package/dist/storage/domains/source-control/base.js.map +1 -1
  149. package/dist/storage/domains/source-control/inmemory.d.ts +19 -1
  150. package/dist/storage/domains/source-control/inmemory.d.ts.map +1 -1
  151. package/dist/storage/domains/source-control/inmemory.js +30 -2
  152. package/dist/storage/domains/source-control/inmemory.js.map +1 -1
  153. package/dist/tools/permissions.d.ts.map +1 -1
  154. package/dist/tools/permissions.js +2 -1
  155. package/dist/tools/permissions.js.map +1 -1
  156. package/dist/tools/sandbox-tools.d.ts +12 -0
  157. package/dist/tools/sandbox-tools.d.ts.map +1 -0
  158. package/dist/tools/sandbox-tools.js +40 -0
  159. package/dist/tools/sandbox-tools.js.map +1 -0
  160. package/dist/tools/scope.d.ts.map +1 -1
  161. package/dist/tools/scope.js +2 -5
  162. package/dist/tools/scope.js.map +1 -1
  163. package/dist/tools/session-tools.d.ts.map +1 -1
  164. package/dist/tools/session-tools.js +6 -2
  165. package/dist/tools/session-tools.js.map +1 -1
  166. package/dist/work-item-branch.d.ts +11 -3
  167. package/dist/work-item-branch.d.ts.map +1 -1
  168. package/dist/work-item-branch.js +34 -9
  169. package/dist/work-item-branch.js.map +1 -1
  170. package/dist/workspace.d.ts +2 -1
  171. package/dist/workspace.d.ts.map +1 -1
  172. package/dist/workspace.js +10 -2
  173. package/dist/workspace.js.map +1 -1
  174. package/factory-skills/configure-factory-rules/SKILL.md +2 -2
  175. package/package.json +15 -14
  176. package/dist/session/channel-reply-processor.d.ts.map +0 -1
  177. package/dist/session/channel-reply-processor.js +0 -46
  178. package/dist/session/channel-reply-processor.js.map +0 -1
  179. package/dist/session/channel-session-link-processor.d.ts.map +0 -1
  180. package/dist/session/channel-session-link-processor.js.map +0 -1
  181. /package/dist/{session → integrations/slack}/channel-session-link-processor.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../../../../src/storage/domains/model-defaults/base.ts"],"sourcesContent":["import { FactoryStorageDomain, UniqueViolationError } from '@mastra/core/storage';\nimport type { CollectionSchema, FactoryStorageOps } from '@mastra/core/storage';\n\nexport interface ModelDefaultRecord {\n orgId: string;\n userId: string;\n modelId: string;\n updatedAt: Date;\n}\n\nexport const USER_DEFAULT_MODELS_SCHEMA: CollectionSchema = {\n name: 'user_default_models',\n columns: {\n id: { type: 'uuid-pk' },\n org_id: { type: 'text' },\n user_id: { type: 'text' },\n model_id: { type: 'text' },\n updated_at: { type: 'timestamp' },\n },\n uniqueIndexes: [{ name: 'user_default_models_org_user_key', columns: ['org_id', 'user_id'] }],\n};\n\ninterface ModelDefaultDbRow extends Record<string, unknown> {\n id: string;\n org_id: string;\n user_id: string;\n model_id: string;\n updated_at: Date;\n}\n\nfunction toRecord(row: ModelDefaultDbRow): ModelDefaultRecord {\n return {\n orgId: row.org_id,\n userId: row.user_id,\n modelId: row.model_id,\n updatedAt: row.updated_at,\n };\n}\n\nexport class ModelDefaultsStorage extends FactoryStorageDomain {\n constructor() {\n super('model-defaults');\n }\n\n async init(): Promise<void> {\n await this.ensureCollections([USER_DEFAULT_MODELS_SCHEMA]);\n }\n\n async dangerouslyClearAll(): Promise<void> {\n await this.ops.deleteMany('user_default_models', {});\n }\n\n get #db(): FactoryStorageOps {\n return this.ops;\n }\n\n async get({ orgId, userId }: { orgId: string; userId: string }): Promise<ModelDefaultRecord | null> {\n const row = await this.#db.findOne<ModelDefaultDbRow>('user_default_models', {\n org_id: orgId,\n user_id: userId,\n });\n return row ? toRecord(row) : null;\n }\n\n async set({\n orgId,\n userId,\n modelId,\n }: {\n orgId: string;\n userId: string;\n modelId: string;\n }): Promise<ModelDefaultRecord> {\n const now = new Date();\n const values = { model_id: modelId, updated_at: now };\n const updateExisting = () =>\n this.#db.updateAtomic<ModelDefaultDbRow>('user_default_models', { org_id: orgId, user_id: userId }, () => values);\n\n const updated = await updateExisting();\n if (updated) return toRecord(updated);\n\n try {\n return toRecord(\n await this.#db.insertOne<ModelDefaultDbRow>('user_default_models', {\n org_id: orgId,\n user_id: userId,\n ...values,\n }),\n );\n } catch (error) {\n if (!(error instanceof UniqueViolationError)) throw error;\n const row = await updateExisting();\n if (!row) throw error;\n return toRecord(row);\n }\n }\n\n async clear({ orgId, userId }: { orgId: string; userId: string }): Promise<boolean> {\n return (await this.#db.deleteMany('user_default_models', { org_id: orgId, user_id: userId })) > 0;\n }\n}\n"],"mappings":";;AAUA,MAAa,6BAA+C;CAC1D,MAAM;CACN,SAAS;EACP,IAAI,EAAE,MAAM,UAAU;EACtB,QAAQ,EAAE,MAAM,OAAO;EACvB,SAAS,EAAE,MAAM,OAAO;EACxB,UAAU,EAAE,MAAM,OAAO;EACzB,YAAY,EAAE,MAAM,YAAY;CAClC;CACA,eAAe,CAAC;EAAE,MAAM;EAAoC,SAAS,CAAC,UAAU,SAAS;CAAE,CAAC;AAC9F;AAUA,SAAS,SAAS,KAA4C;CAC5D,OAAO;EACL,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,SAAS,IAAI;EACb,WAAW,IAAI;CACjB;AACF;AAEA,IAAa,uBAAb,cAA0C,qBAAqB;CAC7D,cAAc;EACZ,MAAM,gBAAgB;CACxB;CAEA,MAAM,OAAsB;EAC1B,MAAM,KAAK,kBAAkB,CAAC,0BAA0B,CAAC;CAC3D;CAEA,MAAM,sBAAqC;EACzC,MAAM,KAAK,IAAI,WAAW,uBAAuB,CAAC,CAAC;CACrD;CAEA,IAAI,MAAyB;EAC3B,OAAO,KAAK;CACd;CAEA,MAAM,IAAI,EAAE,OAAO,UAAiF;EAClG,MAAM,MAAM,MAAM,KAAK,IAAI,QAA2B,uBAAuB;GAC3E,QAAQ;GACR,SAAS;EACX,CAAC;EACD,OAAO,MAAM,SAAS,GAAG,IAAI;CAC/B;CAEA,MAAM,IAAI,EACR,OACA,QACA,WAK8B;EAE9B,MAAM,SAAS;GAAE,UAAU;GAAS,4BAAY,IADhC,KACkC;EAAE;EACpD,MAAM,uBACJ,KAAK,IAAI,aAAgC,uBAAuB;GAAE,QAAQ;GAAO,SAAS;EAAO,SAAS,MAAM;EAElH,MAAM,UAAU,MAAM,eAAe;EACrC,IAAI,SAAS,OAAO,SAAS,OAAO;EAEpC,IAAI;GACF,OAAO,SACL,MAAM,KAAK,IAAI,UAA6B,uBAAuB;IACjE,QAAQ;IACR,SAAS;IACT,GAAG;GACL,CAAC,CACH;EACF,SAAS,OAAO;GACd,IAAI,EAAE,iBAAiB,uBAAuB,MAAM;GACpD,MAAM,MAAM,MAAM,eAAe;GACjC,IAAI,CAAC,KAAK,MAAM;GAChB,OAAO,SAAS,GAAG;EACrB;CACF;CAEA,MAAM,MAAM,EAAE,OAAO,UAA+D;EAClF,OAAQ,MAAM,KAAK,IAAI,WAAW,uBAAuB;GAAE,QAAQ;GAAO,SAAS;EAAO,CAAC,IAAK;CAClG;AACF"}
1
+ {"version":3,"file":"base.js","names":[],"sources":["../../../../src/storage/domains/model-defaults/base.ts"],"sourcesContent":["import { isThinkingLevelSetting } from '@mastra/code-sdk/thinking';\nimport type { ThinkingLevelSetting } from '@mastra/code-sdk/thinking';\nimport { FactoryStorageDomain, UniqueViolationError } from '@mastra/core/storage';\nimport type { CollectionSchema, FactoryStorageOps } from '@mastra/core/storage';\n\nexport interface ModelDefaultRecord {\n orgId: string;\n userId: string;\n modelId: string;\n thinkingLevel: ThinkingLevelSetting | null;\n updatedAt: Date;\n}\n\nexport const USER_DEFAULT_MODELS_SCHEMA: CollectionSchema = {\n name: 'user_default_models',\n columns: {\n id: { type: 'uuid-pk' },\n org_id: { type: 'text' },\n user_id: { type: 'text' },\n model_id: { type: 'text' },\n thinking_level: { type: 'text', nullable: true },\n updated_at: { type: 'timestamp' },\n },\n uniqueIndexes: [{ name: 'user_default_models_org_user_key', columns: ['org_id', 'user_id'] }],\n};\n\ninterface ModelDefaultDbRow extends Record<string, unknown> {\n id: string;\n org_id: string;\n user_id: string;\n model_id: string;\n thinking_level: string | null;\n updated_at: Date;\n}\n\nfunction toRecord(row: ModelDefaultDbRow): ModelDefaultRecord {\n return {\n orgId: row.org_id,\n userId: row.user_id,\n modelId: row.model_id,\n thinkingLevel: isThinkingLevelSetting(row.thinking_level) ? row.thinking_level : null,\n updatedAt: row.updated_at,\n };\n}\n\nexport class ModelDefaultsStorage extends FactoryStorageDomain {\n constructor() {\n super('model-defaults');\n }\n\n async init(): Promise<void> {\n await this.ensureCollections([USER_DEFAULT_MODELS_SCHEMA]);\n }\n\n async dangerouslyClearAll(): Promise<void> {\n await this.ops.deleteMany('user_default_models', {});\n }\n\n get #db(): FactoryStorageOps {\n return this.ops;\n }\n\n async get({ orgId, userId }: { orgId: string; userId: string }): Promise<ModelDefaultRecord | null> {\n const row = await this.#db.findOne<ModelDefaultDbRow>('user_default_models', {\n org_id: orgId,\n user_id: userId,\n });\n return row ? toRecord(row) : null;\n }\n\n async set({\n orgId,\n userId,\n modelId,\n }: {\n orgId: string;\n userId: string;\n modelId: string;\n }): Promise<ModelDefaultRecord> {\n const now = new Date();\n const values = { model_id: modelId, updated_at: now };\n const updateExisting = () =>\n this.#db.updateAtomic<ModelDefaultDbRow>('user_default_models', { org_id: orgId, user_id: userId }, () => values);\n\n const updated = await updateExisting();\n if (updated) return toRecord(updated);\n\n try {\n return toRecord(\n await this.#db.insertOne<ModelDefaultDbRow>('user_default_models', {\n org_id: orgId,\n user_id: userId,\n thinking_level: null,\n ...values,\n }),\n );\n } catch (error) {\n if (!(error instanceof UniqueViolationError)) throw error;\n const row = await updateExisting();\n if (!row) throw error;\n return toRecord(row);\n }\n }\n\n /** Null when the user has no personal model: a personal thinking level never exists without one. */\n async setThinkingLevel({\n orgId,\n userId,\n thinkingLevel,\n }: {\n orgId: string;\n userId: string;\n thinkingLevel: ThinkingLevelSetting | null;\n }): Promise<ModelDefaultRecord | null> {\n const updated = await this.#db.updateAtomic<ModelDefaultDbRow>(\n 'user_default_models',\n { org_id: orgId, user_id: userId },\n () => ({ thinking_level: thinkingLevel, updated_at: new Date() }),\n );\n return updated ? toRecord(updated) : null;\n }\n\n async clear({ orgId, userId }: { orgId: string; userId: string }): Promise<boolean> {\n return (await this.#db.deleteMany('user_default_models', { org_id: orgId, user_id: userId })) > 0;\n }\n}\n"],"mappings":";;;AAaA,MAAa,6BAA+C;CAC1D,MAAM;CACN,SAAS;EACP,IAAI,EAAE,MAAM,UAAU;EACtB,QAAQ,EAAE,MAAM,OAAO;EACvB,SAAS,EAAE,MAAM,OAAO;EACxB,UAAU,EAAE,MAAM,OAAO;EACzB,gBAAgB;GAAE,MAAM;GAAQ,UAAU;EAAK;EAC/C,YAAY,EAAE,MAAM,YAAY;CAClC;CACA,eAAe,CAAC;EAAE,MAAM;EAAoC,SAAS,CAAC,UAAU,SAAS;CAAE,CAAC;AAC9F;AAWA,SAAS,SAAS,KAA4C;CAC5D,OAAO;EACL,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,SAAS,IAAI;EACb,eAAe,uBAAuB,IAAI,cAAc,IAAI,IAAI,iBAAiB;EACjF,WAAW,IAAI;CACjB;AACF;AAEA,IAAa,uBAAb,cAA0C,qBAAqB;CAC7D,cAAc;EACZ,MAAM,gBAAgB;CACxB;CAEA,MAAM,OAAsB;EAC1B,MAAM,KAAK,kBAAkB,CAAC,0BAA0B,CAAC;CAC3D;CAEA,MAAM,sBAAqC;EACzC,MAAM,KAAK,IAAI,WAAW,uBAAuB,CAAC,CAAC;CACrD;CAEA,IAAI,MAAyB;EAC3B,OAAO,KAAK;CACd;CAEA,MAAM,IAAI,EAAE,OAAO,UAAiF;EAClG,MAAM,MAAM,MAAM,KAAK,IAAI,QAA2B,uBAAuB;GAC3E,QAAQ;GACR,SAAS;EACX,CAAC;EACD,OAAO,MAAM,SAAS,GAAG,IAAI;CAC/B;CAEA,MAAM,IAAI,EACR,OACA,QACA,WAK8B;EAE9B,MAAM,SAAS;GAAE,UAAU;GAAS,4BAAY,IADhC,KACkC;EAAE;EACpD,MAAM,uBACJ,KAAK,IAAI,aAAgC,uBAAuB;GAAE,QAAQ;GAAO,SAAS;EAAO,SAAS,MAAM;EAElH,MAAM,UAAU,MAAM,eAAe;EACrC,IAAI,SAAS,OAAO,SAAS,OAAO;EAEpC,IAAI;GACF,OAAO,SACL,MAAM,KAAK,IAAI,UAA6B,uBAAuB;IACjE,QAAQ;IACR,SAAS;IACT,gBAAgB;IAChB,GAAG;GACL,CAAC,CACH;EACF,SAAS,OAAO;GACd,IAAI,EAAE,iBAAiB,uBAAuB,MAAM;GACpD,MAAM,MAAM,MAAM,eAAe;GACjC,IAAI,CAAC,KAAK,MAAM;GAChB,OAAO,SAAS,GAAG;EACrB;CACF;;CAGA,MAAM,iBAAiB,EACrB,OACA,QACA,iBAKqC;EACrC,MAAM,UAAU,MAAM,KAAK,IAAI,aAC7B,uBACA;GAAE,QAAQ;GAAO,SAAS;EAAO,UAC1B;GAAE,gBAAgB;GAAe,4BAAY,IAAI,KAAK;EAAE,EACjE;EACA,OAAO,UAAU,SAAS,OAAO,IAAI;CACvC;CAEA,MAAM,MAAM,EAAE,OAAO,UAA+D;EAClF,OAAQ,MAAM,KAAK,IAAI,WAAW,uBAAuB;GAAE,QAAQ;GAAO,SAAS;EAAO,CAAC,IAAK;CAClG;AACF"}
@@ -1,5 +1,15 @@
1
1
  import { FactoryStorageDomain } from '@mastra/core/storage';
2
2
  import type { CollectionSchema, FactoryStorageOps } from '@mastra/core/storage';
3
+ /**
4
+ * The user already holds this branch in a session of the same factory on
5
+ * another repository link, so the insert hit the factory-wide unique index.
6
+ * Reuse is keyed by the link, so that session is not this one to reuse.
7
+ */
8
+ export declare class SessionBranchHeldError extends Error {
9
+ readonly branch: string;
10
+ readonly sessionId: string;
11
+ constructor(branch: string, sessionId: string);
12
+ }
3
13
  /**
4
14
  * The user already holds the branch on this link in a session without this
5
15
  * factory's ownership, left by the factory migration. It is never reused and
@@ -224,6 +234,14 @@ export type SessionBranchKey = {
224
234
  userId: string;
225
235
  branch: string;
226
236
  };
237
+ export type TransferSourceControlSessionOwnerResult = {
238
+ status: 'updated';
239
+ session: SourceControlSession;
240
+ } | {
241
+ status: 'conflict';
242
+ reason: 'stale_owner' | 'branch_owned';
243
+ session: SourceControlSession | null;
244
+ };
227
245
  export interface SourceControlStorageHandle {
228
246
  readonly integrationId: string;
229
247
  readonly installations: {
@@ -374,14 +392,21 @@ export interface SourceControlStorageHandle {
374
392
  sessionId: string;
375
393
  muted: boolean;
376
394
  }): Promise<void>;
377
- /** Change who can see the session. Returns the updated row, or null when it does not exist. */
395
+ /** Change who can see the session while `expectedUserId` still owns it. Null when it does not exist or changed owner. */
378
396
  setVisibility(args: {
379
397
  sessionId: string;
380
398
  visibility: SourceControlSessionVisibility;
399
+ expectedUserId: string;
381
400
  }): Promise<SourceControlSession | null>;
382
401
  /** Keyed by the link (today's callers) or by the factory. */
383
402
  getForBranch(args: SessionBranchKey): Promise<SourceControlSession | null>;
384
403
  create(input: CreateSourceControlSessionInput): Promise<SourceControlSession>;
404
+ /** Move a shared session to `toUserId` while `expectedUserId` still owns it; a private one is a `stale_owner` conflict. */
405
+ transferOwner(args: {
406
+ sessionId: string;
407
+ expectedUserId: string;
408
+ toUserId: string;
409
+ }): Promise<TransferSourceControlSessionOwnerResult>;
385
410
  setSandbox(args: {
386
411
  id: string;
387
412
  sandboxId: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/source-control/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/source-control/base.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,21 @@ const PROJECT_REPOSITORIES = "factory_project_repositories";
9
9
  const SESSIONS = "source_control_sessions";
10
10
  const SESSION_REPOSITORIES = "source_control_session_repositories";
11
11
  /**
12
+ * The user already holds this branch in a session of the same factory on
13
+ * another repository link, so the insert hit the factory-wide unique index.
14
+ * Reuse is keyed by the link, so that session is not this one to reuse.
15
+ */
16
+ var SessionBranchHeldError = class extends Error {
17
+ branch;
18
+ sessionId;
19
+ constructor(branch, sessionId) {
20
+ super(`Branch ${branch} is already held by session ${sessionId} on another repository of this factory. Session branches are unique per user across a factory: name the branch per card, or delete that session.`);
21
+ this.branch = branch;
22
+ this.sessionId = sessionId;
23
+ this.name = "SessionBranchHeldError";
24
+ }
25
+ };
26
+ /**
12
27
  * The user already holds the branch on this link in a session without this
13
28
  * factory's ownership, left by the factory migration. It is never reused and
14
29
  * cannot be replaced while it holds the branch.
@@ -1027,8 +1042,11 @@ var SourceControlStorage = class extends FactoryStorageDomain {
1027
1042
  updated_at: /* @__PURE__ */ new Date()
1028
1043
  }));
1029
1044
  },
1030
- setVisibility: async ({ sessionId, visibility }) => {
1031
- const row = await db().updateAtomic(SESSIONS, { session_id: sessionId }, () => ({
1045
+ setVisibility: async ({ sessionId, visibility, expectedUserId }) => {
1046
+ const row = await db().updateAtomic(SESSIONS, {
1047
+ session_id: sessionId,
1048
+ user_id: expectedUserId
1049
+ }, () => ({
1032
1050
  visibility,
1033
1051
  updated_at: /* @__PURE__ */ new Date()
1034
1052
  }));
@@ -1098,10 +1116,56 @@ var SourceControlStorage = class extends FactoryStorageDomain {
1098
1116
  } catch (error) {
1099
1117
  if (!(error instanceof UniqueViolationError)) throw error;
1100
1118
  const row = await findExisting();
1101
- if (!row) throw error;
1102
- return reuse(row);
1119
+ if (row) return reuse(row);
1120
+ const held = await db().findOne(SESSIONS, {
1121
+ factory_project_id: factoryProjectId,
1122
+ user_id: input.userId,
1123
+ branch: input.branch
1124
+ });
1125
+ if (held) throw new SessionBranchHeldError(input.branch, held.session_id);
1126
+ throw error;
1103
1127
  }
1104
1128
  },
1129
+ transferOwner: async ({ sessionId, expectedUserId, toUserId }) => {
1130
+ let refusedPrivate = false;
1131
+ try {
1132
+ const updated = await db().updateAtomic(SESSIONS, {
1133
+ session_id: sessionId,
1134
+ user_id: expectedUserId
1135
+ }, (current) => {
1136
+ if (current.visibility === "private") {
1137
+ refusedPrivate = true;
1138
+ return null;
1139
+ }
1140
+ return current.user_id === toUserId ? null : {
1141
+ user_id: toUserId,
1142
+ updated_at: /* @__PURE__ */ new Date()
1143
+ };
1144
+ });
1145
+ if (updated) return refusedPrivate ? {
1146
+ status: "conflict",
1147
+ reason: "stale_owner",
1148
+ session: toSession(updated)
1149
+ } : {
1150
+ status: "updated",
1151
+ session: toSession(updated)
1152
+ };
1153
+ } catch (error) {
1154
+ if (!(error instanceof UniqueViolationError)) throw error;
1155
+ const session = await db().findOne(SESSIONS, { session_id: sessionId });
1156
+ return {
1157
+ status: "conflict",
1158
+ reason: "branch_owned",
1159
+ session: session ? toSession(session) : null
1160
+ };
1161
+ }
1162
+ const session = await db().findOne(SESSIONS, { session_id: sessionId });
1163
+ return {
1164
+ status: "conflict",
1165
+ reason: "stale_owner",
1166
+ session: session ? toSession(session) : null
1167
+ };
1168
+ },
1105
1169
  setSandbox: async ({ id, sandboxId, sandboxWorkdir }) => {
1106
1170
  await db().updateMany(SESSIONS, { id }, {
1107
1171
  sandbox_id: sandboxId,
@@ -1186,6 +1250,6 @@ var SourceControlStorage = class extends FactoryStorageDomain {
1186
1250
  }
1187
1251
  };
1188
1252
  //#endregion
1189
- export { SOURCE_CONTROL_SCHEMAS, SessionOwnershipMismatchError, SourceControlConnectionNotFoundError, SourceControlStorage };
1253
+ export { SOURCE_CONTROL_SCHEMAS, SessionBranchHeldError, SessionOwnershipMismatchError, SourceControlConnectionNotFoundError, SourceControlStorage };
1190
1254
 
1191
1255
  //# sourceMappingURL=base.js.map