@agent-native/core 0.59.0 → 0.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/a2a/index.d.ts +2 -0
  2. package/dist/a2a/index.d.ts.map +1 -1
  3. package/dist/a2a/index.js +1 -0
  4. package/dist/a2a/index.js.map +1 -1
  5. package/dist/a2a/invoke.d.ts +63 -0
  6. package/dist/a2a/invoke.d.ts.map +1 -0
  7. package/dist/a2a/invoke.js +157 -0
  8. package/dist/a2a/invoke.js.map +1 -0
  9. package/dist/agent/run-store.d.ts +15 -0
  10. package/dist/agent/run-store.d.ts.map +1 -1
  11. package/dist/agent/run-store.js +28 -0
  12. package/dist/agent/run-store.js.map +1 -1
  13. package/dist/chat-threads/store.d.ts +21 -0
  14. package/dist/chat-threads/store.d.ts.map +1 -1
  15. package/dist/chat-threads/store.js +128 -0
  16. package/dist/chat-threads/store.js.map +1 -1
  17. package/dist/cli/agent.d.ts +23 -0
  18. package/dist/cli/agent.d.ts.map +1 -0
  19. package/dist/cli/agent.js +300 -0
  20. package/dist/cli/agent.js.map +1 -0
  21. package/dist/cli/agents.d.ts +14 -0
  22. package/dist/cli/agents.d.ts.map +1 -0
  23. package/dist/cli/agents.js +95 -0
  24. package/dist/cli/agents.js.map +1 -0
  25. package/dist/cli/code-agent-executor.d.ts.map +1 -1
  26. package/dist/cli/code-agent-executor.js +264 -2
  27. package/dist/cli/code-agent-executor.js.map +1 -1
  28. package/dist/cli/create.d.ts +3 -2
  29. package/dist/cli/create.d.ts.map +1 -1
  30. package/dist/cli/create.js +154 -83
  31. package/dist/cli/create.js.map +1 -1
  32. package/dist/cli/index.js +50 -2
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/invoke.d.ts +26 -0
  35. package/dist/cli/invoke.d.ts.map +1 -0
  36. package/dist/cli/invoke.js +227 -0
  37. package/dist/cli/invoke.js.map +1 -0
  38. package/dist/cli/templates-meta.d.ts +1 -1
  39. package/dist/cli/templates-meta.d.ts.map +1 -1
  40. package/dist/cli/templates-meta.js +9 -8
  41. package/dist/cli/templates-meta.js.map +1 -1
  42. package/dist/cli/workspacify.d.ts +1 -1
  43. package/dist/cli/workspacify.d.ts.map +1 -1
  44. package/dist/cli/workspacify.js +6 -6
  45. package/dist/cli/workspacify.js.map +1 -1
  46. package/dist/client/AgentPanel.js +1 -1
  47. package/dist/client/AgentPanel.js.map +1 -1
  48. package/dist/client/AssistantChat.d.ts.map +1 -1
  49. package/dist/client/AssistantChat.js +8 -2
  50. package/dist/client/AssistantChat.js.map +1 -1
  51. package/dist/client/NewWorkspaceAppFlow.d.ts.map +1 -1
  52. package/dist/client/NewWorkspaceAppFlow.js +5 -4
  53. package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
  54. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  55. package/dist/client/agent-chat-adapter.js +65 -12
  56. package/dist/client/agent-chat-adapter.js.map +1 -1
  57. package/dist/client/blocks/library/diagram.d.ts.map +1 -1
  58. package/dist/client/blocks/library/diagram.js +23 -17
  59. package/dist/client/blocks/library/diagram.js.map +1 -1
  60. package/dist/client/blocks/types.d.ts +2 -0
  61. package/dist/client/blocks/types.d.ts.map +1 -1
  62. package/dist/client/blocks/types.js.map +1 -1
  63. package/dist/client/chat/index.d.ts +1 -1
  64. package/dist/client/chat/index.d.ts.map +1 -1
  65. package/dist/client/chat/index.js.map +1 -1
  66. package/dist/client/extensions/ExtensionViewer.js +1 -1
  67. package/dist/client/extensions/ExtensionViewer.js.map +1 -1
  68. package/dist/client/index.d.ts +1 -1
  69. package/dist/client/index.d.ts.map +1 -1
  70. package/dist/client/index.js.map +1 -1
  71. package/dist/client/notifications/NotificationsBell.d.ts +3 -1
  72. package/dist/client/notifications/NotificationsBell.d.ts.map +1 -1
  73. package/dist/client/notifications/NotificationsBell.js +7 -3
  74. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  75. package/dist/client/use-chat-threads.d.ts +13 -0
  76. package/dist/client/use-chat-threads.d.ts.map +1 -1
  77. package/dist/client/use-chat-threads.js +41 -0
  78. package/dist/client/use-chat-threads.js.map +1 -1
  79. package/dist/integrations/plugin.d.ts.map +1 -1
  80. package/dist/integrations/plugin.js +2 -2
  81. package/dist/integrations/plugin.js.map +1 -1
  82. package/dist/onboarding/default-steps.d.ts.map +1 -1
  83. package/dist/onboarding/default-steps.js +102 -0
  84. package/dist/onboarding/default-steps.js.map +1 -1
  85. package/dist/org/auto-join-domain.d.ts +11 -3
  86. package/dist/org/auto-join-domain.d.ts.map +1 -1
  87. package/dist/org/auto-join-domain.js +7 -6
  88. package/dist/org/auto-join-domain.js.map +1 -1
  89. package/dist/org/context.d.ts.map +1 -1
  90. package/dist/org/context.js +68 -32
  91. package/dist/org/context.js.map +1 -1
  92. package/dist/org/migrations.d.ts.map +1 -1
  93. package/dist/org/migrations.js +6 -0
  94. package/dist/org/migrations.js.map +1 -1
  95. package/dist/provider-api/actions/github-repo-files.d.ts +84 -0
  96. package/dist/provider-api/actions/github-repo-files.d.ts.map +1 -0
  97. package/dist/provider-api/actions/github-repo-files.js +213 -0
  98. package/dist/provider-api/actions/github-repo-files.js.map +1 -0
  99. package/dist/provider-api/github-repo.d.ts +11 -0
  100. package/dist/provider-api/github-repo.d.ts.map +1 -0
  101. package/dist/provider-api/github-repo.js +553 -0
  102. package/dist/provider-api/github-repo.js.map +1 -0
  103. package/dist/provider-api/index.d.ts +184 -11
  104. package/dist/provider-api/index.d.ts.map +1 -1
  105. package/dist/provider-api/index.js +519 -0
  106. package/dist/provider-api/index.js.map +1 -1
  107. package/dist/scripts/docs/search.d.ts.map +1 -1
  108. package/dist/scripts/docs/search.js +38 -13
  109. package/dist/scripts/docs/search.js.map +1 -1
  110. package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
  111. package/dist/secrets/register-framework-secrets.js +11 -0
  112. package/dist/secrets/register-framework-secrets.js.map +1 -1
  113. package/dist/server/agent-chat-plugin.d.ts +32 -0
  114. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  115. package/dist/server/agent-chat-plugin.js +297 -2
  116. package/dist/server/agent-chat-plugin.js.map +1 -1
  117. package/dist/server/auth-marketing.d.ts.map +1 -1
  118. package/dist/server/auth-marketing.js +17 -7
  119. package/dist/server/auth-marketing.js.map +1 -1
  120. package/dist/server/auth.d.ts.map +1 -1
  121. package/dist/server/auth.js +6 -0
  122. package/dist/server/auth.js.map +1 -1
  123. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  124. package/dist/server/core-routes-plugin.js +18 -98
  125. package/dist/server/core-routes-plugin.js.map +1 -1
  126. package/dist/styles/blocks.css +30 -8
  127. package/dist/styles/rich-markdown-editor.css +10 -4
  128. package/dist/templates/{starter-shell-sync.spec.ts → chat-shell-sync.spec.ts} +21 -21
  129. package/dist/templates/default/.agents/skills/actions/SKILL.md +5 -5
  130. package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +63 -0
  131. package/dist/templates/default/AGENTS.md +22 -1
  132. package/dist/templates/default/actions/hello.ts +1 -1
  133. package/dist/templates/default/actions/navigate.ts +1 -1
  134. package/dist/templates/default/actions/view-screen.ts +1 -1
  135. package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +63 -0
  136. package/dist/templates/headless/.env.example +4 -0
  137. package/dist/templates/headless/.prettierrc +5 -0
  138. package/dist/templates/headless/AGENTS.md +58 -0
  139. package/dist/templates/headless/DEVELOPING.md +22 -0
  140. package/dist/templates/headless/_gitignore +36 -0
  141. package/dist/templates/headless/actions/hello.ts +14 -0
  142. package/dist/templates/headless/actions/run.ts +3 -0
  143. package/dist/templates/headless/package.json +22 -0
  144. package/dist/templates/headless/tsconfig.json +7 -0
  145. package/dist/templates/ui-primitives-sync.spec.ts +2 -2
  146. package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +5 -5
  147. package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +63 -0
  148. package/dist/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +9 -0
  149. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +93 -0
  150. package/dist/templates/workspace-core/.agents/skills/context-awareness/SKILL.md +11 -1
  151. package/dist/templates/workspace-core/.agents/skills/secrets/SKILL.md +1 -1
  152. package/dist/templates/workspace-core/AGENTS.md +20 -3
  153. package/dist/templates/workspace-core/src/server/index.ts +1 -1
  154. package/dist/templates/workspace-root/AGENTS.md +25 -5
  155. package/dist/templates/workspace-root/README.md +7 -7
  156. package/dist/triggers/dispatcher.d.ts +2 -3
  157. package/dist/triggers/dispatcher.d.ts.map +1 -1
  158. package/dist/triggers/dispatcher.js +2 -3
  159. package/dist/triggers/dispatcher.js.map +1 -1
  160. package/dist/triggers/routes.d.ts +38 -0
  161. package/dist/triggers/routes.d.ts.map +1 -0
  162. package/dist/triggers/routes.js +202 -0
  163. package/dist/triggers/routes.js.map +1 -0
  164. package/dist/vite/client.d.ts +2 -1
  165. package/dist/vite/client.d.ts.map +1 -1
  166. package/dist/vite/client.js +121 -2
  167. package/dist/vite/client.js.map +1 -1
  168. package/docs/AGENTS.md +57 -0
  169. package/docs/SKILL.md +40 -0
  170. package/docs/content/a2a-protocol.md +1 -1
  171. package/docs/content/actions.md +48 -8
  172. package/docs/content/agent-surfaces.md +76 -14
  173. package/docs/content/cli-adapters.md +1 -1
  174. package/docs/content/cloneable-saas.md +5 -4
  175. package/docs/content/code-agents-ui.md +1 -1
  176. package/docs/content/components.md +1 -1
  177. package/docs/content/context-awareness.md +15 -3
  178. package/docs/content/creating-templates.md +15 -7
  179. package/docs/content/drop-in-agent.md +1 -1
  180. package/docs/content/faq.md +6 -4
  181. package/docs/content/getting-started.md +63 -73
  182. package/docs/content/key-concepts.md +24 -24
  183. package/docs/content/native-chat-ui.md +4 -4
  184. package/docs/content/pure-agent-apps.md +34 -10
  185. package/docs/content/security.md +1 -1
  186. package/docs/content/server.md +1 -1
  187. package/docs/content/template-chat.md +85 -0
  188. package/docs/content/template-dispatch.md +1 -1
  189. package/docs/content/tracking.md +1 -1
  190. package/docs/content/what-is-agent-native.md +7 -6
  191. package/package.json +10 -1
  192. package/src/templates/{starter-shell-sync.spec.ts → chat-shell-sync.spec.ts} +21 -21
  193. package/src/templates/default/.agents/skills/actions/SKILL.md +5 -5
  194. package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +63 -0
  195. package/src/templates/default/AGENTS.md +22 -1
  196. package/src/templates/default/actions/hello.ts +1 -1
  197. package/src/templates/default/actions/navigate.ts +1 -1
  198. package/src/templates/default/actions/view-screen.ts +1 -1
  199. package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +63 -0
  200. package/src/templates/headless/.env.example +4 -0
  201. package/src/templates/headless/.prettierrc +5 -0
  202. package/src/templates/headless/AGENTS.md +58 -0
  203. package/src/templates/headless/DEVELOPING.md +22 -0
  204. package/src/templates/headless/_gitignore +36 -0
  205. package/src/templates/headless/actions/hello.ts +14 -0
  206. package/src/templates/headless/actions/run.ts +3 -0
  207. package/src/templates/headless/package.json +22 -0
  208. package/src/templates/headless/tsconfig.json +7 -0
  209. package/src/templates/ui-primitives-sync.spec.ts +2 -2
  210. package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +5 -5
  211. package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +63 -0
  212. package/src/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +9 -0
  213. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +93 -0
  214. package/src/templates/workspace-core/.agents/skills/context-awareness/SKILL.md +11 -1
  215. package/src/templates/workspace-core/.agents/skills/secrets/SKILL.md +1 -1
  216. package/src/templates/workspace-core/AGENTS.md +20 -3
  217. package/src/templates/workspace-core/src/server/index.ts +1 -1
  218. package/src/templates/workspace-root/AGENTS.md +25 -5
  219. package/src/templates/workspace-root/README.md +7 -7
  220. package/docs/content/template-starter.md +0 -78
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/org/migrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE;;;;;MAKH;KACH;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE;;;;;;;MAOH;KACH;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE;;;;;;;MAOH;KACH;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,wEAAwE;KAC9E;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,oEAAoE;KAC1E;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,gEAAgE;KACtE;IACD;QACE,kEAAkE;QAClE,mEAAmE;QACnE,oEAAoE;QACpE,8CAA8C;QAC9C,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,sFAAsF;KAC5F;CACF,CAAC","sourcesContent":["/**\n * Migration definitions for the org module. Versions are namespaced into a high\n * range (1000+) so they don't collide with template-owned migrations sharing\n * the same `_migrations` table.\n */\nexport const ORG_MIGRATIONS = [\n {\n version: 1001,\n sql: `CREATE TABLE IF NOT EXISTS organizations (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n created_by TEXT NOT NULL,\n created_at INTEGER NOT NULL\n )`,\n },\n {\n version: 1002,\n sql: `CREATE TABLE IF NOT EXISTS org_members (\n id TEXT PRIMARY KEY,\n org_id TEXT NOT NULL,\n email TEXT NOT NULL,\n role TEXT NOT NULL,\n joined_at INTEGER NOT NULL,\n UNIQUE(org_id, email)\n )`,\n },\n {\n version: 1003,\n sql: `CREATE TABLE IF NOT EXISTS org_invitations (\n id TEXT PRIMARY KEY,\n org_id TEXT NOT NULL,\n email TEXT NOT NULL,\n invited_by TEXT NOT NULL,\n created_at INTEGER NOT NULL,\n status TEXT NOT NULL\n )`,\n },\n {\n version: 1004,\n sql: `ALTER TABLE organizations ADD COLUMN IF NOT EXISTS allowed_domain TEXT`,\n },\n {\n version: 1005,\n sql: `ALTER TABLE organizations ADD COLUMN IF NOT EXISTS a2a_secret TEXT`,\n },\n {\n version: 1006,\n sql: `ALTER TABLE org_invitations ADD COLUMN IF NOT EXISTS role TEXT`,\n },\n {\n // Every authenticated request calls `getOrgContext` which queries\n // `WHERE LOWER(m.email) = ?`. Without a supporting index this is a\n // full table scan on every request. A LOWER(email) expression index\n // lets the planner use an index seek instead.\n version: 1007,\n sql: `CREATE INDEX IF NOT EXISTS org_members_lower_email_idx ON org_members (LOWER(email))`,\n },\n];\n"]}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/org/migrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE;;;;;MAKH;KACH;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE;;;;;;;MAOH;KACH;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE;;;;;;;MAOH;KACH;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,wEAAwE;KAC9E;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,oEAAoE;KAC1E;IACD;QACE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,gEAAgE;KACtE;IACD;QACE,kEAAkE;QAClE,mEAAmE;QACnE,oEAAoE;QACpE,8CAA8C;QAC9C,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,sFAAsF;KAC5F;IACD;QACE,gEAAgE;QAChE,yEAAyE;QACzE,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,4GAA4G;KAClH;CACF,CAAC","sourcesContent":["/**\n * Migration definitions for the org module. Versions are namespaced into a high\n * range (1000+) so they don't collide with template-owned migrations sharing\n * the same `_migrations` table.\n */\nexport const ORG_MIGRATIONS = [\n {\n version: 1001,\n sql: `CREATE TABLE IF NOT EXISTS organizations (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n created_by TEXT NOT NULL,\n created_at INTEGER NOT NULL\n )`,\n },\n {\n version: 1002,\n sql: `CREATE TABLE IF NOT EXISTS org_members (\n id TEXT PRIMARY KEY,\n org_id TEXT NOT NULL,\n email TEXT NOT NULL,\n role TEXT NOT NULL,\n joined_at INTEGER NOT NULL,\n UNIQUE(org_id, email)\n )`,\n },\n {\n version: 1003,\n sql: `CREATE TABLE IF NOT EXISTS org_invitations (\n id TEXT PRIMARY KEY,\n org_id TEXT NOT NULL,\n email TEXT NOT NULL,\n invited_by TEXT NOT NULL,\n created_at INTEGER NOT NULL,\n status TEXT NOT NULL\n )`,\n },\n {\n version: 1004,\n sql: `ALTER TABLE organizations ADD COLUMN IF NOT EXISTS allowed_domain TEXT`,\n },\n {\n version: 1005,\n sql: `ALTER TABLE organizations ADD COLUMN IF NOT EXISTS a2a_secret TEXT`,\n },\n {\n version: 1006,\n sql: `ALTER TABLE org_invitations ADD COLUMN IF NOT EXISTS role TEXT`,\n },\n {\n // Every authenticated request calls `getOrgContext` which queries\n // `WHERE LOWER(m.email) = ?`. Without a supporting index this is a\n // full table scan on every request. A LOWER(email) expression index\n // lets the planner use an index seek instead.\n version: 1007,\n sql: `CREATE INDEX IF NOT EXISTS org_members_lower_email_idx ON org_members (LOWER(email))`,\n },\n {\n // Domain join and org resolution query `LOWER(allowed_domain)`.\n // Keep that opt-in lookup indexed before it appears on any request path.\n version: 1008,\n sql: `CREATE INDEX IF NOT EXISTS organizations_lower_allowed_domain_idx ON organizations (LOWER(allowed_domain))`,\n },\n];\n"]}
@@ -0,0 +1,84 @@
1
+ import { z } from "zod";
2
+ import type { ProviderApiRuntime } from "../index.js";
3
+ declare const GitHubRepoFilesActionSchema: z.ZodObject<{
4
+ operation: z.ZodEnum<{
5
+ search: "search";
6
+ list: "list";
7
+ delete: "delete";
8
+ write: "write";
9
+ read: "read";
10
+ }>;
11
+ owner: z.ZodString;
12
+ repo: z.ZodString;
13
+ path: z.ZodOptional<z.ZodString>;
14
+ ref: z.ZodOptional<z.ZodString>;
15
+ recursive: z.ZodOptional<z.ZodBoolean>;
16
+ includeDirectories: z.ZodOptional<z.ZodBoolean>;
17
+ query: z.ZodOptional<z.ZodString>;
18
+ filename: z.ZodOptional<z.ZodString>;
19
+ extension: z.ZodOptional<z.ZodString>;
20
+ language: z.ZodOptional<z.ZodString>;
21
+ page: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
22
+ perPage: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
23
+ maxFiles: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
24
+ includeTextMatches: z.ZodOptional<z.ZodBoolean>;
25
+ content: z.ZodOptional<z.ZodString>;
26
+ message: z.ZodOptional<z.ZodString>;
27
+ branch: z.ZodOptional<z.ZodString>;
28
+ sha: z.ZodOptional<z.ZodString>;
29
+ overwriteExisting: z.ZodOptional<z.ZodBoolean>;
30
+ committer: z.ZodOptional<z.ZodObject<{
31
+ name: z.ZodString;
32
+ email: z.ZodString;
33
+ date: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strip>>;
35
+ author: z.ZodOptional<z.ZodObject<{
36
+ name: z.ZodString;
37
+ email: z.ZodString;
38
+ date: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strip>>;
40
+ connectionId: z.ZodOptional<z.ZodString>;
41
+ timeoutMs: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
42
+ maxBytes: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
43
+ }, z.core.$strip>;
44
+ export interface CreateGitHubRepoFilesActionOptions {
45
+ description?: string;
46
+ requireApprovalForWrites?: boolean;
47
+ }
48
+ export declare function createGitHubRepoFilesAction(runtime: Pick<ProviderApiRuntime, "listGitHubRepositoryFiles" | "searchGitHubRepositoryFiles" | "readGitHubRepositoryFile" | "writeGitHubRepositoryFile" | "deleteGitHubRepositoryFile">, options?: CreateGitHubRepoFilesActionOptions): import("../../action.js").ActionDefinition<{
49
+ operation: "search" | "list" | "delete" | "write" | "read";
50
+ owner: string;
51
+ repo: string;
52
+ path?: string | undefined;
53
+ ref?: string | undefined;
54
+ recursive?: boolean | undefined;
55
+ includeDirectories?: boolean | undefined;
56
+ query?: string | undefined;
57
+ filename?: string | undefined;
58
+ extension?: string | undefined;
59
+ language?: string | undefined;
60
+ page?: unknown;
61
+ perPage?: unknown;
62
+ maxFiles?: unknown;
63
+ includeTextMatches?: boolean | undefined;
64
+ content?: string | undefined;
65
+ message?: string | undefined;
66
+ branch?: string | undefined;
67
+ sha?: string | undefined;
68
+ overwriteExisting?: boolean | undefined;
69
+ committer?: {
70
+ name: string;
71
+ email: string;
72
+ date?: string | undefined;
73
+ } | undefined;
74
+ author?: {
75
+ name: string;
76
+ email: string;
77
+ date?: string | undefined;
78
+ } | undefined;
79
+ connectionId?: string | undefined;
80
+ timeoutMs?: unknown;
81
+ maxBytes?: unknown;
82
+ }, import("../index.js").GitHubRepositoryFileListResult | import("../index.js").GitHubRepositoryFileSearchResult | import("../index.js").GitHubRepositoryFileReadResult | import("../index.js").GitHubRepositoryFileDeleteResult>;
83
+ export { GitHubRepoFilesActionSchema };
84
+ //# sourceMappingURL=github-repo-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-repo-files.d.ts","sourceRoot":"","sources":["../../../src/provider-api/actions/github-repo-files.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAMV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAQrB,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6H/B,CAAC;AAIH,MAAM,WAAW,kCAAkC;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,IAAI,CACX,kBAAkB,EAChB,2BAA2B,GAC3B,6BAA6B,GAC7B,0BAA0B,GAC1B,2BAA2B,GAC3B,4BAA4B,CAC/B,EACD,OAAO,GAAE,kCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kOAsGjD;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,213 @@
1
+ import { defineAction } from "../../action.js";
2
+ import { z } from "zod";
3
+ const GitHubCommitIdentitySchema = z.object({
4
+ name: z.string().min(1).describe("Commit identity name."),
5
+ email: z.string().email().describe("Commit identity email."),
6
+ date: z.string().optional().describe("Optional ISO timestamp."),
7
+ });
8
+ const GitHubRepoFilesActionSchema = z.object({
9
+ operation: z
10
+ .enum(["list", "search", "read", "write", "delete"])
11
+ .describe("Operation to perform: list repository file paths, search code/files, read one file, create/update one file, or delete one file."),
12
+ owner: z.string().min(1).describe("Repository owner or organization."),
13
+ repo: z
14
+ .string()
15
+ .min(1)
16
+ .describe("Repository name, with or without a trailing .git suffix."),
17
+ path: z
18
+ .string()
19
+ .optional()
20
+ .describe("Repository-relative file or directory path. For search without query, this filters matching paths."),
21
+ ref: z
22
+ .string()
23
+ .optional()
24
+ .describe("Branch, tag, or commit-ish for list/read. Code search uses GitHub's default-branch search."),
25
+ recursive: z
26
+ .boolean()
27
+ .optional()
28
+ .describe("For list, read the repository tree recursively."),
29
+ includeDirectories: z
30
+ .boolean()
31
+ .optional()
32
+ .describe("For list, include directory entries along with files."),
33
+ query: z
34
+ .string()
35
+ .optional()
36
+ .describe("For search, a GitHub code-search term. Omit to search/filter file paths from the repository tree."),
37
+ filename: z
38
+ .string()
39
+ .optional()
40
+ .describe("For search, restrict to an exact filename."),
41
+ extension: z
42
+ .string()
43
+ .optional()
44
+ .describe("For search, restrict to a file extension such as ts or md."),
45
+ language: z
46
+ .string()
47
+ .optional()
48
+ .describe("For code search, restrict to a GitHub language qualifier."),
49
+ page: z.coerce
50
+ .number()
51
+ .int()
52
+ .min(1)
53
+ .max(100)
54
+ .optional()
55
+ .describe("For code search, result page to fetch."),
56
+ perPage: z.coerce
57
+ .number()
58
+ .int()
59
+ .min(1)
60
+ .max(100)
61
+ .optional()
62
+ .describe("For code search, results per page."),
63
+ maxFiles: z.coerce
64
+ .number()
65
+ .int()
66
+ .min(1)
67
+ .max(10_000)
68
+ .optional()
69
+ .describe("Maximum file entries to return from list or tree-filter search."),
70
+ includeTextMatches: z
71
+ .boolean()
72
+ .optional()
73
+ .describe("For code search, request GitHub text-match metadata."),
74
+ content: z
75
+ .string()
76
+ .optional()
77
+ .describe("For write, complete replacement UTF-8 file content."),
78
+ message: z.string().optional().describe("For write, commit message."),
79
+ branch: z
80
+ .string()
81
+ .optional()
82
+ .describe("For write, branch to create/update on. Defaults to GitHub's default branch."),
83
+ sha: z
84
+ .string()
85
+ .optional()
86
+ .describe("For write updates, the current blob SHA. The action reads it first by default when omitted."),
87
+ overwriteExisting: z
88
+ .boolean()
89
+ .optional()
90
+ .describe("For write, read the current file SHA first when sha is omitted, then update if it exists. Defaults to true."),
91
+ committer: GitHubCommitIdentitySchema.optional().describe("Optional GitHub contents API committer identity."),
92
+ author: GitHubCommitIdentitySchema.optional().describe("Optional GitHub contents API author identity."),
93
+ connectionId: z
94
+ .string()
95
+ .trim()
96
+ .min(1)
97
+ .optional()
98
+ .describe("Optional workspace GitHub connection id to use."),
99
+ timeoutMs: z.coerce
100
+ .number()
101
+ .int()
102
+ .min(1_000)
103
+ .max(120_000)
104
+ .optional()
105
+ .describe("Request timeout in milliseconds."),
106
+ maxBytes: z.coerce
107
+ .number()
108
+ .int()
109
+ .min(1_000)
110
+ .max(4 * 1024 * 1024)
111
+ .optional()
112
+ .describe("Maximum provider response bytes to read."),
113
+ });
114
+ export function createGitHubRepoFilesAction(runtime, options = {}) {
115
+ const requireApprovalForWrites = options.requireApprovalForWrites ?? true;
116
+ return defineAction({
117
+ description: options.description ??
118
+ "List, search, read, create/update, and delete GitHub repository files through the configured GitHub connector or GITHUB_TOKEN. Uses GitHub REST APIs directly; it does not clone repositories or use a filesystem sandbox.",
119
+ schema: GitHubRepoFilesActionSchema,
120
+ http: false,
121
+ needsApproval: requireApprovalForWrites
122
+ ? (args) => args.operation === "write" || args.operation === "delete"
123
+ : false,
124
+ run: async (args) => {
125
+ if (args.operation === "list") {
126
+ return runtime.listGitHubRepositoryFiles({
127
+ owner: args.owner,
128
+ repo: args.repo,
129
+ path: args.path,
130
+ ref: args.ref,
131
+ recursive: args.recursive,
132
+ includeDirectories: args.includeDirectories,
133
+ maxFiles: args.maxFiles,
134
+ connectionId: args.connectionId,
135
+ timeoutMs: args.timeoutMs,
136
+ maxBytes: args.maxBytes,
137
+ });
138
+ }
139
+ if (args.operation === "search") {
140
+ return runtime.searchGitHubRepositoryFiles({
141
+ owner: args.owner,
142
+ repo: args.repo,
143
+ query: args.query,
144
+ path: args.path,
145
+ filename: args.filename,
146
+ extension: args.extension,
147
+ language: args.language,
148
+ ref: args.ref,
149
+ perPage: args.perPage,
150
+ page: args.page,
151
+ maxFiles: args.maxFiles,
152
+ includeTextMatches: args.includeTextMatches,
153
+ connectionId: args.connectionId,
154
+ timeoutMs: args.timeoutMs,
155
+ maxBytes: args.maxBytes,
156
+ });
157
+ }
158
+ if (args.operation === "read") {
159
+ if (!args.path)
160
+ throw new Error("path is required for read.");
161
+ return runtime.readGitHubRepositoryFile({
162
+ owner: args.owner,
163
+ repo: args.repo,
164
+ path: args.path,
165
+ ref: args.ref,
166
+ connectionId: args.connectionId,
167
+ timeoutMs: args.timeoutMs,
168
+ maxBytes: args.maxBytes,
169
+ });
170
+ }
171
+ if (!args.path) {
172
+ throw new Error(`path is required for ${args.operation}.`);
173
+ }
174
+ if (args.operation === "delete") {
175
+ return runtime.deleteGitHubRepositoryFile({
176
+ owner: args.owner,
177
+ repo: args.repo,
178
+ path: args.path,
179
+ message: args.message ?? `Delete ${args.path}`,
180
+ branch: args.branch,
181
+ sha: args.sha,
182
+ committer: args.committer,
183
+ author: args.author,
184
+ connectionId: args.connectionId,
185
+ timeoutMs: args.timeoutMs,
186
+ maxBytes: args.maxBytes,
187
+ });
188
+ }
189
+ if (args.content === undefined) {
190
+ throw new Error("content is required for write.");
191
+ }
192
+ if (!args.message)
193
+ throw new Error("message is required for write.");
194
+ return runtime.writeGitHubRepositoryFile({
195
+ owner: args.owner,
196
+ repo: args.repo,
197
+ path: args.path,
198
+ content: args.content,
199
+ message: args.message,
200
+ branch: args.branch,
201
+ sha: args.sha,
202
+ overwriteExisting: args.overwriteExisting ?? true,
203
+ committer: args.committer,
204
+ author: args.author,
205
+ connectionId: args.connectionId,
206
+ timeoutMs: args.timeoutMs,
207
+ maxBytes: args.maxBytes,
208
+ });
209
+ },
210
+ });
211
+ }
212
+ export { GitHubRepoFilesActionSchema };
213
+ //# sourceMappingURL=github-repo-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-repo-files.js","sourceRoot":"","sources":["../../../src/provider-api/actions/github-repo-files.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineAction } from \"../../action.js\";\nimport { z } from \"zod\";\nimport type {\n GitHubRepositoryFileDeleteArgs,\n GitHubRepositoryFileListArgs,\n GitHubRepositoryFileReadArgs,\n GitHubRepositoryFileSearchArgs,\n GitHubRepositoryFileWriteArgs,\n ProviderApiRuntime,\n} from \"../index.js\";\n\nconst GitHubCommitIdentitySchema = z.object({\n name: z.string().min(1).describe(\"Commit identity name.\"),\n email: z.string().email().describe(\"Commit identity email.\"),\n date: z.string().optional().describe(\"Optional ISO timestamp.\"),\n});\n\nconst GitHubRepoFilesActionSchema = z.object({\n operation: z\n .enum([\"list\", \"search\", \"read\", \"write\", \"delete\"])\n .describe(\n \"Operation to perform: list repository file paths, search code/files, read one file, create/update one file, or delete one file.\",\n ),\n owner: z.string().min(1).describe(\"Repository owner or organization.\"),\n repo: z\n .string()\n .min(1)\n .describe(\"Repository name, with or without a trailing .git suffix.\"),\n path: z\n .string()\n .optional()\n .describe(\n \"Repository-relative file or directory path. For search without query, this filters matching paths.\",\n ),\n ref: z\n .string()\n .optional()\n .describe(\n \"Branch, tag, or commit-ish for list/read. Code search uses GitHub's default-branch search.\",\n ),\n recursive: z\n .boolean()\n .optional()\n .describe(\"For list, read the repository tree recursively.\"),\n includeDirectories: z\n .boolean()\n .optional()\n .describe(\"For list, include directory entries along with files.\"),\n query: z\n .string()\n .optional()\n .describe(\n \"For search, a GitHub code-search term. Omit to search/filter file paths from the repository tree.\",\n ),\n filename: z\n .string()\n .optional()\n .describe(\"For search, restrict to an exact filename.\"),\n extension: z\n .string()\n .optional()\n .describe(\"For search, restrict to a file extension such as ts or md.\"),\n language: z\n .string()\n .optional()\n .describe(\"For code search, restrict to a GitHub language qualifier.\"),\n page: z.coerce\n .number()\n .int()\n .min(1)\n .max(100)\n .optional()\n .describe(\"For code search, result page to fetch.\"),\n perPage: z.coerce\n .number()\n .int()\n .min(1)\n .max(100)\n .optional()\n .describe(\"For code search, results per page.\"),\n maxFiles: z.coerce\n .number()\n .int()\n .min(1)\n .max(10_000)\n .optional()\n .describe(\n \"Maximum file entries to return from list or tree-filter search.\",\n ),\n includeTextMatches: z\n .boolean()\n .optional()\n .describe(\"For code search, request GitHub text-match metadata.\"),\n content: z\n .string()\n .optional()\n .describe(\"For write, complete replacement UTF-8 file content.\"),\n message: z.string().optional().describe(\"For write, commit message.\"),\n branch: z\n .string()\n .optional()\n .describe(\n \"For write, branch to create/update on. Defaults to GitHub's default branch.\",\n ),\n sha: z\n .string()\n .optional()\n .describe(\n \"For write updates, the current blob SHA. The action reads it first by default when omitted.\",\n ),\n overwriteExisting: z\n .boolean()\n .optional()\n .describe(\n \"For write, read the current file SHA first when sha is omitted, then update if it exists. Defaults to true.\",\n ),\n committer: GitHubCommitIdentitySchema.optional().describe(\n \"Optional GitHub contents API committer identity.\",\n ),\n author: GitHubCommitIdentitySchema.optional().describe(\n \"Optional GitHub contents API author identity.\",\n ),\n connectionId: z\n .string()\n .trim()\n .min(1)\n .optional()\n .describe(\"Optional workspace GitHub connection id to use.\"),\n timeoutMs: z.coerce\n .number()\n .int()\n .min(1_000)\n .max(120_000)\n .optional()\n .describe(\"Request timeout in milliseconds.\"),\n maxBytes: z.coerce\n .number()\n .int()\n .min(1_000)\n .max(4 * 1024 * 1024)\n .optional()\n .describe(\"Maximum provider response bytes to read.\"),\n});\n\ntype GitHubRepoFilesActionArgs = z.infer<typeof GitHubRepoFilesActionSchema>;\n\nexport interface CreateGitHubRepoFilesActionOptions {\n description?: string;\n requireApprovalForWrites?: boolean;\n}\n\nexport function createGitHubRepoFilesAction(\n runtime: Pick<\n ProviderApiRuntime,\n | \"listGitHubRepositoryFiles\"\n | \"searchGitHubRepositoryFiles\"\n | \"readGitHubRepositoryFile\"\n | \"writeGitHubRepositoryFile\"\n | \"deleteGitHubRepositoryFile\"\n >,\n options: CreateGitHubRepoFilesActionOptions = {},\n) {\n const requireApprovalForWrites = options.requireApprovalForWrites ?? true;\n return defineAction({\n description:\n options.description ??\n \"List, search, read, create/update, and delete GitHub repository files through the configured GitHub connector or GITHUB_TOKEN. Uses GitHub REST APIs directly; it does not clone repositories or use a filesystem sandbox.\",\n schema: GitHubRepoFilesActionSchema,\n http: false,\n needsApproval: requireApprovalForWrites\n ? (args: GitHubRepoFilesActionArgs) =>\n args.operation === \"write\" || args.operation === \"delete\"\n : false,\n run: async (args) => {\n if (args.operation === \"list\") {\n return runtime.listGitHubRepositoryFiles({\n owner: args.owner,\n repo: args.repo,\n path: args.path,\n ref: args.ref,\n recursive: args.recursive,\n includeDirectories: args.includeDirectories,\n maxFiles: args.maxFiles,\n connectionId: args.connectionId,\n timeoutMs: args.timeoutMs,\n maxBytes: args.maxBytes,\n } satisfies GitHubRepositoryFileListArgs);\n }\n\n if (args.operation === \"search\") {\n return runtime.searchGitHubRepositoryFiles({\n owner: args.owner,\n repo: args.repo,\n query: args.query,\n path: args.path,\n filename: args.filename,\n extension: args.extension,\n language: args.language,\n ref: args.ref,\n perPage: args.perPage,\n page: args.page,\n maxFiles: args.maxFiles,\n includeTextMatches: args.includeTextMatches,\n connectionId: args.connectionId,\n timeoutMs: args.timeoutMs,\n maxBytes: args.maxBytes,\n } satisfies GitHubRepositoryFileSearchArgs);\n }\n\n if (args.operation === \"read\") {\n if (!args.path) throw new Error(\"path is required for read.\");\n return runtime.readGitHubRepositoryFile({\n owner: args.owner,\n repo: args.repo,\n path: args.path,\n ref: args.ref,\n connectionId: args.connectionId,\n timeoutMs: args.timeoutMs,\n maxBytes: args.maxBytes,\n } satisfies GitHubRepositoryFileReadArgs);\n }\n\n if (!args.path) {\n throw new Error(`path is required for ${args.operation}.`);\n }\n if (args.operation === \"delete\") {\n return runtime.deleteGitHubRepositoryFile({\n owner: args.owner,\n repo: args.repo,\n path: args.path,\n message: args.message ?? `Delete ${args.path}`,\n branch: args.branch,\n sha: args.sha,\n committer: args.committer,\n author: args.author,\n connectionId: args.connectionId,\n timeoutMs: args.timeoutMs,\n maxBytes: args.maxBytes,\n } satisfies GitHubRepositoryFileDeleteArgs);\n }\n\n if (args.content === undefined) {\n throw new Error(\"content is required for write.\");\n }\n if (!args.message) throw new Error(\"message is required for write.\");\n return runtime.writeGitHubRepositoryFile({\n owner: args.owner,\n repo: args.repo,\n path: args.path,\n content: args.content,\n message: args.message,\n branch: args.branch,\n sha: args.sha,\n overwriteExisting: args.overwriteExisting ?? true,\n committer: args.committer,\n author: args.author,\n connectionId: args.connectionId,\n timeoutMs: args.timeoutMs,\n maxBytes: args.maxBytes,\n } satisfies GitHubRepositoryFileWriteArgs);\n },\n });\n}\n\nexport { GitHubRepoFilesActionSchema };\n"]}
@@ -0,0 +1,11 @@
1
+ import type { ActionEntry } from "../agent/production-agent.js";
2
+ import type { CredentialContext } from "../credentials/index.js";
3
+ import { type ProviderApiCredentialResolver } from "./index.js";
4
+ interface GitHubRepoToolOptions {
5
+ appId?: string;
6
+ getCredentialContext?: () => CredentialContext | null;
7
+ resolveCredential?: ProviderApiCredentialResolver;
8
+ }
9
+ export declare function createGitHubRepoToolEntries(options?: GitHubRepoToolOptions): Record<string, ActionEntry>;
10
+ export {};
11
+ //# sourceMappingURL=github-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-repo.d.ts","sourceRoot":"","sources":["../../src/provider-api/github-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAKhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAGL,KAAK,6BAA6B,EAEnC,MAAM,YAAY,CAAC;AAEpB,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;CACnD;AAmfD,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CA2J7B"}