@specific.dev/cli 0.1.37

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 (204) hide show
  1. package/dist/admin/404/index.html +1 -0
  2. package/dist/admin/404.html +1 -0
  3. package/dist/admin/__next.__PAGE__.txt +9 -0
  4. package/dist/admin/__next._full.txt +20 -0
  5. package/dist/admin/__next._head.txt +6 -0
  6. package/dist/admin/__next._index.txt +5 -0
  7. package/dist/admin/__next._tree.txt +4 -0
  8. package/dist/admin/_next/static/0zkv3YeV6IWOWVWE1S1A1/_buildManifest.js +11 -0
  9. package/dist/admin/_next/static/0zkv3YeV6IWOWVWE1S1A1/_clientMiddlewareManifest.json +1 -0
  10. package/dist/admin/_next/static/0zkv3YeV6IWOWVWE1S1A1/_ssgManifest.js +1 -0
  11. package/dist/admin/_next/static/1o2O2QPOKhuZyxcNaCjq8/_buildManifest.js +11 -0
  12. package/dist/admin/_next/static/1o2O2QPOKhuZyxcNaCjq8/_clientMiddlewareManifest.json +1 -0
  13. package/dist/admin/_next/static/1o2O2QPOKhuZyxcNaCjq8/_ssgManifest.js +1 -0
  14. package/dist/admin/_next/static/2ZtqtFX2EkuM82mTM7NWT/_buildManifest.js +11 -0
  15. package/dist/admin/_next/static/2ZtqtFX2EkuM82mTM7NWT/_clientMiddlewareManifest.json +1 -0
  16. package/dist/admin/_next/static/2ZtqtFX2EkuM82mTM7NWT/_ssgManifest.js +1 -0
  17. package/dist/admin/_next/static/2vLF5bo4ZtUfhs8bdQBoF/_buildManifest.js +11 -0
  18. package/dist/admin/_next/static/2vLF5bo4ZtUfhs8bdQBoF/_clientMiddlewareManifest.json +1 -0
  19. package/dist/admin/_next/static/2vLF5bo4ZtUfhs8bdQBoF/_ssgManifest.js +1 -0
  20. package/dist/admin/_next/static/8_8s51m7RbLVvbIechG-b/_buildManifest.js +11 -0
  21. package/dist/admin/_next/static/8_8s51m7RbLVvbIechG-b/_clientMiddlewareManifest.json +1 -0
  22. package/dist/admin/_next/static/8_8s51m7RbLVvbIechG-b/_ssgManifest.js +1 -0
  23. package/dist/admin/_next/static/C4Y44KtLnP684m57gN3Ga/_buildManifest.js +11 -0
  24. package/dist/admin/_next/static/C4Y44KtLnP684m57gN3Ga/_clientMiddlewareManifest.json +1 -0
  25. package/dist/admin/_next/static/C4Y44KtLnP684m57gN3Ga/_ssgManifest.js +1 -0
  26. package/dist/admin/_next/static/DBeh36kAJnZBeBMJSPBW8/_buildManifest.js +11 -0
  27. package/dist/admin/_next/static/DBeh36kAJnZBeBMJSPBW8/_clientMiddlewareManifest.json +1 -0
  28. package/dist/admin/_next/static/DBeh36kAJnZBeBMJSPBW8/_ssgManifest.js +1 -0
  29. package/dist/admin/_next/static/REKEUu6DP2t99jKSAqNOu/_buildManifest.js +11 -0
  30. package/dist/admin/_next/static/REKEUu6DP2t99jKSAqNOu/_clientMiddlewareManifest.json +1 -0
  31. package/dist/admin/_next/static/REKEUu6DP2t99jKSAqNOu/_ssgManifest.js +1 -0
  32. package/dist/admin/_next/static/TDGT3mkKtTe0w_CxujLxI/_buildManifest.js +11 -0
  33. package/dist/admin/_next/static/TDGT3mkKtTe0w_CxujLxI/_clientMiddlewareManifest.json +1 -0
  34. package/dist/admin/_next/static/TDGT3mkKtTe0w_CxujLxI/_ssgManifest.js +1 -0
  35. package/dist/admin/_next/static/ZHMJ-g7mAlAMt_2uCXeEk/_buildManifest.js +11 -0
  36. package/dist/admin/_next/static/ZHMJ-g7mAlAMt_2uCXeEk/_clientMiddlewareManifest.json +1 -0
  37. package/dist/admin/_next/static/ZHMJ-g7mAlAMt_2uCXeEk/_ssgManifest.js +1 -0
  38. package/dist/admin/_next/static/a6JDAB-CdvWPvS4sBgJji/_buildManifest.js +11 -0
  39. package/dist/admin/_next/static/a6JDAB-CdvWPvS4sBgJji/_clientMiddlewareManifest.json +1 -0
  40. package/dist/admin/_next/static/a6JDAB-CdvWPvS4sBgJji/_ssgManifest.js +1 -0
  41. package/dist/admin/_next/static/abFUeBpymhlx-IxygVnM9/_buildManifest.js +11 -0
  42. package/dist/admin/_next/static/abFUeBpymhlx-IxygVnM9/_clientMiddlewareManifest.json +1 -0
  43. package/dist/admin/_next/static/abFUeBpymhlx-IxygVnM9/_ssgManifest.js +1 -0
  44. package/dist/admin/_next/static/chunks/0afa5e999b6c353a.js +1 -0
  45. package/dist/admin/_next/static/chunks/1584f10ea1cebcb2.js +4 -0
  46. package/dist/admin/_next/static/chunks/195bbec70cfcd241.js +2 -0
  47. package/dist/admin/_next/static/chunks/2583656ea9ac4ad6.js +5 -0
  48. package/dist/admin/_next/static/chunks/465f799faf41e6df.js +1 -0
  49. package/dist/admin/_next/static/chunks/4ab079bdcb131778.js +5 -0
  50. package/dist/admin/_next/static/chunks/4b5ae5ebb2087f0d.js +2 -0
  51. package/dist/admin/_next/static/chunks/605800ff25160d05.js +1 -0
  52. package/dist/admin/_next/static/chunks/656b870f0567ed5f.js +1 -0
  53. package/dist/admin/_next/static/chunks/71098a6cd6181738.css +3 -0
  54. package/dist/admin/_next/static/chunks/806bdb8e4a6a9b95.js +4 -0
  55. package/dist/admin/_next/static/chunks/895a6f91f0b479fb.js +2 -0
  56. package/dist/admin/_next/static/chunks/9032f4a1aac1ca5d.css +3 -0
  57. package/dist/admin/_next/static/chunks/a28af2dc6f5fbaad.js +1 -0
  58. package/dist/admin/_next/static/chunks/a6dad97d9634a72d.js +1 -0
  59. package/dist/admin/_next/static/chunks/a6dad97d9634a72d.js.map +1 -0
  60. package/dist/admin/_next/static/chunks/b4205fc2f84bda68.css +3 -0
  61. package/dist/admin/_next/static/chunks/c1a750c25bc8d092.js +1 -0
  62. package/dist/admin/_next/static/chunks/c3d30f6f144dca51.js +2 -0
  63. package/dist/admin/_next/static/chunks/cbf55ce8731457ae.js +2 -0
  64. package/dist/admin/_next/static/chunks/d2be314c3ece3fbe.js +1 -0
  65. package/dist/admin/_next/static/chunks/de6af6d8adf8b50a.js +5 -0
  66. package/dist/admin/_next/static/chunks/f0c001244d275aab.js +5 -0
  67. package/dist/admin/_next/static/chunks/fde89fd76ad6a3d0.css +3 -0
  68. package/dist/admin/_next/static/chunks/ff1a16fafef87110.js +1 -0
  69. package/dist/admin/_next/static/chunks/turbopack-a3d691c83d4b1778.js +4 -0
  70. package/dist/admin/_next/static/chunks/turbopack-e5185af8e7c716ca.js +4 -0
  71. package/dist/admin/_next/static/dcjrfD44GuB6g8bZ6BcFm/_buildManifest.js +11 -0
  72. package/dist/admin/_next/static/dcjrfD44GuB6g8bZ6BcFm/_clientMiddlewareManifest.json +1 -0
  73. package/dist/admin/_next/static/dcjrfD44GuB6g8bZ6BcFm/_ssgManifest.js +1 -0
  74. package/dist/admin/_next/static/fTEa8Scx922n-dMuqN3Vc/_buildManifest.js +11 -0
  75. package/dist/admin/_next/static/fTEa8Scx922n-dMuqN3Vc/_clientMiddlewareManifest.json +1 -0
  76. package/dist/admin/_next/static/fTEa8Scx922n-dMuqN3Vc/_ssgManifest.js +1 -0
  77. package/dist/admin/_next/static/kZNwyhHft01wPtJ_AvqQT/_buildManifest.js +11 -0
  78. package/dist/admin/_next/static/kZNwyhHft01wPtJ_AvqQT/_clientMiddlewareManifest.json +1 -0
  79. package/dist/admin/_next/static/kZNwyhHft01wPtJ_AvqQT/_ssgManifest.js +1 -0
  80. package/dist/admin/_next/static/kyVInC6N3DY6NWnjkLQ4J/_buildManifest.js +11 -0
  81. package/dist/admin/_next/static/kyVInC6N3DY6NWnjkLQ4J/_clientMiddlewareManifest.json +1 -0
  82. package/dist/admin/_next/static/kyVInC6N3DY6NWnjkLQ4J/_ssgManifest.js +1 -0
  83. package/dist/admin/_next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  84. package/dist/admin/_next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  85. package/dist/admin/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  86. package/dist/admin/_next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  87. package/dist/admin/_next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  88. package/dist/admin/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  89. package/dist/admin/_next/static/media/favicon.0b3bf435.ico +0 -0
  90. package/dist/admin/_next/static/twedXBdhyxpjS68UQoNAc/_buildManifest.js +11 -0
  91. package/dist/admin/_next/static/twedXBdhyxpjS68UQoNAc/_clientMiddlewareManifest.json +1 -0
  92. package/dist/admin/_next/static/twedXBdhyxpjS68UQoNAc/_ssgManifest.js +1 -0
  93. package/dist/admin/_not-found/__next._full.txt +14 -0
  94. package/dist/admin/_not-found/__next._head.txt +6 -0
  95. package/dist/admin/_not-found/__next._index.txt +5 -0
  96. package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +5 -0
  97. package/dist/admin/_not-found/__next._not-found.txt +4 -0
  98. package/dist/admin/_not-found/__next._tree.txt +2 -0
  99. package/dist/admin/_not-found/index.html +1 -0
  100. package/dist/admin/_not-found/index.txt +14 -0
  101. package/dist/admin/databases/__next._full.txt +20 -0
  102. package/dist/admin/databases/__next._head.txt +6 -0
  103. package/dist/admin/databases/__next._index.txt +5 -0
  104. package/dist/admin/databases/__next._tree.txt +4 -0
  105. package/dist/admin/databases/__next.databases.__PAGE__.txt +9 -0
  106. package/dist/admin/databases/__next.databases.txt +4 -0
  107. package/dist/admin/databases/index.html +1 -0
  108. package/dist/admin/databases/index.txt +20 -0
  109. package/dist/admin/favicon.ico +0 -0
  110. package/dist/admin/file.svg +1 -0
  111. package/dist/admin/globe.svg +1 -0
  112. package/dist/admin/index.html +1 -0
  113. package/dist/admin/index.txt +20 -0
  114. package/dist/admin/next.svg +1 -0
  115. package/dist/admin/vercel.svg +1 -0
  116. package/dist/admin/window.svg +1 -0
  117. package/dist/cli.d.ts +3 -0
  118. package/dist/cli.d.ts.map +1 -0
  119. package/dist/cli.js +190523 -0
  120. package/dist/cli.js.map +1 -0
  121. package/dist/commands/check.d.ts +2 -0
  122. package/dist/commands/check.d.ts.map +1 -0
  123. package/dist/commands/check.js +104 -0
  124. package/dist/commands/check.js.map +1 -0
  125. package/dist/commands/clean.d.ts +2 -0
  126. package/dist/commands/clean.d.ts.map +1 -0
  127. package/dist/commands/clean.js +70 -0
  128. package/dist/commands/clean.js.map +1 -0
  129. package/dist/commands/deploy.d.ts +2 -0
  130. package/dist/commands/deploy.d.ts.map +1 -0
  131. package/dist/commands/deploy.js +11 -0
  132. package/dist/commands/deploy.js.map +1 -0
  133. package/dist/commands/dev.d.ts +2 -0
  134. package/dist/commands/dev.d.ts.map +1 -0
  135. package/dist/commands/dev.js +398 -0
  136. package/dist/commands/dev.js.map +1 -0
  137. package/dist/commands/docs.d.ts +2 -0
  138. package/dist/commands/docs.d.ts.map +1 -0
  139. package/dist/commands/docs.js +32 -0
  140. package/dist/commands/docs.js.map +1 -0
  141. package/dist/commands/exec.d.ts +2 -0
  142. package/dist/commands/exec.d.ts.map +1 -0
  143. package/dist/commands/exec.js +178 -0
  144. package/dist/commands/exec.js.map +1 -0
  145. package/dist/commands/init.d.ts +2 -0
  146. package/dist/commands/init.d.ts.map +1 -0
  147. package/dist/commands/init.js +339 -0
  148. package/dist/commands/init.js.map +1 -0
  149. package/dist/commands/psql.d.ts +2 -0
  150. package/dist/commands/psql.d.ts.map +1 -0
  151. package/dist/commands/psql.js +53 -0
  152. package/dist/commands/psql.js.map +1 -0
  153. package/dist/commands/secrets.d.ts +3 -0
  154. package/dist/commands/secrets.d.ts.map +1 -0
  155. package/dist/commands/secrets.js +136 -0
  156. package/dist/commands/secrets.js.map +1 -0
  157. package/dist/docs/builds.md +71 -0
  158. package/dist/docs/index.md +30 -0
  159. package/dist/docs/integrations/drizzle.md +83 -0
  160. package/dist/docs/integrations/nextjs.md +45 -0
  161. package/dist/docs/integrations/prisma.md +110 -0
  162. package/dist/docs/postgres.md +41 -0
  163. package/dist/docs/redis.md +33 -0
  164. package/dist/docs/secrets-config.md +141 -0
  165. package/dist/docs/services.md +325 -0
  166. package/dist/docs/storage.md +62 -0
  167. package/dist/docs/sync.md +66 -0
  168. package/dist/lib/dev/database-manager.d.ts +17 -0
  169. package/dist/lib/dev/database-manager.d.ts.map +1 -0
  170. package/dist/lib/dev/database-manager.js +114 -0
  171. package/dist/lib/dev/database-manager.js.map +1 -0
  172. package/dist/lib/dev/env-resolver.d.ts +14 -0
  173. package/dist/lib/dev/env-resolver.d.ts.map +1 -0
  174. package/dist/lib/dev/env-resolver.js +109 -0
  175. package/dist/lib/dev/env-resolver.js.map +1 -0
  176. package/dist/lib/dev/http-proxy.d.ts +11 -0
  177. package/dist/lib/dev/http-proxy.d.ts.map +1 -0
  178. package/dist/lib/dev/http-proxy.js +165 -0
  179. package/dist/lib/dev/http-proxy.js.map +1 -0
  180. package/dist/lib/dev/index.d.ts +11 -0
  181. package/dist/lib/dev/index.d.ts.map +1 -0
  182. package/dist/lib/dev/index.js +7 -0
  183. package/dist/lib/dev/index.js.map +1 -0
  184. package/dist/lib/dev/instance-state.d.ts +45 -0
  185. package/dist/lib/dev/instance-state.d.ts.map +1 -0
  186. package/dist/lib/dev/instance-state.js +213 -0
  187. package/dist/lib/dev/instance-state.js.map +1 -0
  188. package/dist/lib/dev/port-allocator.d.ts +5 -0
  189. package/dist/lib/dev/port-allocator.d.ts.map +1 -0
  190. package/dist/lib/dev/port-allocator.js +21 -0
  191. package/dist/lib/dev/port-allocator.js.map +1 -0
  192. package/dist/lib/dev/service-runner.d.ts +16 -0
  193. package/dist/lib/dev/service-runner.d.ts.map +1 -0
  194. package/dist/lib/dev/service-runner.js +61 -0
  195. package/dist/lib/dev/service-runner.js.map +1 -0
  196. package/dist/lib/secrets/index.d.ts +2 -0
  197. package/dist/lib/secrets/index.d.ts.map +1 -0
  198. package/dist/lib/secrets/index.js +2 -0
  199. package/dist/lib/secrets/index.js.map +1 -0
  200. package/dist/lib/secrets/parser.d.ts +37 -0
  201. package/dist/lib/secrets/parser.d.ts.map +1 -0
  202. package/dist/lib/secrets/parser.js +116 -0
  203. package/dist/lib/secrets/parser.js.map +1 -0
  204. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function docsCommand(path?: string): void;
2
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.tsx"],"names":[],"mappings":"AAOA,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,QAYxC"}
@@ -0,0 +1,32 @@
1
+ import { readFileSync, existsSync } from "fs";
2
+ import { join, dirname } from "path";
3
+ import { fileURLToPath } from "url";
4
+ const __dirname = dirname(fileURLToPath(import.meta.url));
5
+ const docsDir = join(__dirname, "..", "docs");
6
+ export function docsCommand(path) {
7
+ const docPath = resolveDocPath(path);
8
+ if (!docPath) {
9
+ console.error(`Documentation not found: ${path || "index"}\n\nRun 'specific docs' to see available topics.`);
10
+ process.exit(1);
11
+ }
12
+ const content = readFileSync(docPath, "utf-8");
13
+ console.log(content);
14
+ }
15
+ function resolveDocPath(path) {
16
+ if (!path) {
17
+ const indexPath = join(docsDir, "index.md");
18
+ return existsSync(indexPath) ? indexPath : null;
19
+ }
20
+ // Try path.md first
21
+ const directPath = join(docsDir, `${path}.md`);
22
+ if (existsSync(directPath)) {
23
+ return directPath;
24
+ }
25
+ // Try path/index.md for directories
26
+ const indexPath = join(docsDir, path, "index.md");
27
+ if (existsSync(indexPath)) {
28
+ return indexPath;
29
+ }
30
+ return null;
31
+ }
32
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,4BAA4B,IAAI,IAAI,OAAO,kDAAkD,CAC9F,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAED,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oCAAoC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function execCommand(serviceName: string, command: string[]): Promise<void>;
2
+ //# sourceMappingURL=exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/commands/exec.tsx"],"names":[],"mappings":"AA2BA,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,iBAmMvE"}
@@ -0,0 +1,178 @@
1
+ import { spawn } from "child_process";
2
+ import * as fs from "fs";
3
+ import * as path from "path";
4
+ import { parseConfig } from "@specific/config";
5
+ import { PortAllocator, startDatabase, resolveEnvForExec, InstanceStateManager, } from "../lib/dev/index.js";
6
+ import { prepareSecrets } from "../lib/secrets/index.js";
7
+ function findRequiredDatabases(service) {
8
+ const requiredNames = new Set();
9
+ if (service.env) {
10
+ for (const value of Object.values(service.env)) {
11
+ if (typeof value === "object" && value.type === "database") {
12
+ requiredNames.add(value.name);
13
+ }
14
+ }
15
+ }
16
+ return Array.from(requiredNames);
17
+ }
18
+ export async function execCommand(serviceName, command) {
19
+ if (command.length === 0) {
20
+ console.error("Error: No command provided. Usage: specific exec <service> -- <command>");
21
+ process.exit(1);
22
+ }
23
+ const startedDatabases = [];
24
+ let ownsInstances = false;
25
+ let stateManager = null;
26
+ const cleanup = async () => {
27
+ if (ownsInstances) {
28
+ for (const db of startedDatabases) {
29
+ await db.stop().catch(() => { });
30
+ }
31
+ if (stateManager) {
32
+ await stateManager.releaseOwnership().catch(() => { });
33
+ }
34
+ }
35
+ };
36
+ // Load config
37
+ const configPath = path.join(process.cwd(), "specific.hcl");
38
+ if (!fs.existsSync(configPath)) {
39
+ console.error("Error: No specific.hcl found in current directory");
40
+ process.exit(1);
41
+ }
42
+ let config;
43
+ try {
44
+ const hcl = fs.readFileSync(configPath, "utf-8");
45
+ config = await parseConfig(hcl);
46
+ }
47
+ catch (err) {
48
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
49
+ process.exit(1);
50
+ }
51
+ // Find service
52
+ const service = config.services.find((s) => s.name === serviceName);
53
+ if (!service) {
54
+ const available = config.services.map((s) => s.name).join(", ");
55
+ console.error(`Error: Service "${serviceName}" not found. Available services: ${available || "none"}`);
56
+ process.exit(1);
57
+ }
58
+ // Identify required databases
59
+ const requiredDbNames = findRequiredDatabases(service);
60
+ const databases = new Map();
61
+ // Check for existing instances
62
+ stateManager = new InstanceStateManager(process.cwd());
63
+ await stateManager.cleanStaleState();
64
+ const existingInstances = await stateManager.getExistingInstances();
65
+ if (requiredDbNames.length > 0) {
66
+ if (existingInstances) {
67
+ // Use existing instances
68
+ console.error("Using existing database instances...");
69
+ for (const dbName of requiredDbNames) {
70
+ const dbState = existingInstances.databases[dbName];
71
+ if (!dbState) {
72
+ console.error(`Error: Required database "${dbName}" not found in running instances`);
73
+ process.exit(1);
74
+ }
75
+ // Create a DatabaseInstance that doesn't own the underlying database
76
+ databases.set(dbName, {
77
+ name: dbName,
78
+ engine: dbState.engine,
79
+ port: dbState.port,
80
+ host: dbState.host,
81
+ user: dbState.user,
82
+ password: dbState.password,
83
+ dbName: dbState.dbName,
84
+ url: dbState.url,
85
+ async stop() {
86
+ // No-op: we don't own this instance
87
+ },
88
+ });
89
+ }
90
+ }
91
+ else {
92
+ // No existing instances - claim ownership and start our own
93
+ console.error("Starting databases...");
94
+ try {
95
+ await stateManager.claimOwnership("exec");
96
+ ownsInstances = true;
97
+ }
98
+ catch (err) {
99
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
100
+ process.exit(1);
101
+ }
102
+ const portAllocator = new PortAllocator();
103
+ for (const dbName of requiredDbNames) {
104
+ const dbConfig = config.databases.find((d) => d.name === dbName);
105
+ if (!dbConfig) {
106
+ console.error(`Error: Database "${dbName}" referenced by service "${serviceName}" not found in config`);
107
+ await cleanup();
108
+ process.exit(1);
109
+ }
110
+ try {
111
+ const port = portAllocator.allocate();
112
+ const instance = await startDatabase(dbConfig, port);
113
+ databases.set(dbName, instance);
114
+ startedDatabases.push(instance);
115
+ await stateManager.registerDatabase(dbName, {
116
+ engine: instance.engine,
117
+ port: instance.port,
118
+ host: instance.host,
119
+ user: instance.user,
120
+ password: instance.password,
121
+ dbName: instance.dbName,
122
+ url: instance.url,
123
+ });
124
+ }
125
+ catch (err) {
126
+ console.error(`Error: Failed to start database "${dbName}": ${err instanceof Error ? err.message : String(err)}`);
127
+ await cleanup();
128
+ process.exit(1);
129
+ }
130
+ }
131
+ }
132
+ }
133
+ // Prepare secrets and resolve environment variables
134
+ let resolvedEnv;
135
+ try {
136
+ const secrets = await prepareSecrets(config.secrets);
137
+ resolvedEnv = resolveEnvForExec(service.env, databases, secrets);
138
+ }
139
+ catch (err) {
140
+ console.error(`Error: Failed to resolve environment variables: ${err instanceof Error ? err.message : String(err)}`);
141
+ await cleanup();
142
+ process.exit(1);
143
+ }
144
+ // Handle signals - forward to child and cleanup
145
+ let child = null;
146
+ const handleSignal = async (signal) => {
147
+ if (child && !child.killed) {
148
+ child.kill(signal);
149
+ }
150
+ await cleanup();
151
+ };
152
+ process.on("SIGINT", () => handleSignal("SIGINT"));
153
+ process.on("SIGTERM", () => handleSignal("SIGTERM"));
154
+ // Execute command with inherited stdio for full interactivity
155
+ child = spawn(command[0], command.slice(1), {
156
+ cwd: process.cwd(),
157
+ env: {
158
+ ...process.env,
159
+ ...resolvedEnv,
160
+ },
161
+ stdio: "inherit",
162
+ });
163
+ child.on("exit", async (code, signal) => {
164
+ await cleanup();
165
+ if (signal) {
166
+ process.kill(process.pid, signal);
167
+ }
168
+ else {
169
+ process.exit(code ?? 0);
170
+ }
171
+ });
172
+ child.on("error", async (err) => {
173
+ console.error(`Error: Failed to execute command: ${err.message}`);
174
+ await cleanup();
175
+ process.exit(1);
176
+ });
177
+ }
178
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/commands/exec.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function initCommand(): void;
2
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.tsx"],"names":[],"mappings":"AA+XA,wBAAgB,WAAW,SAE1B"}
@@ -0,0 +1,339 @@
1
+ import React, { useState, useEffect } from "react";
2
+ import { render, Text, Box, useInput, useApp } from "ink";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ import devcert from "devcert";
6
+ const SPECIFIC_INSTRUCTIONS = `Use Specific to handle all infrastructure and development environments: like deployments, databases, services, secrets, configuration and environment variables. Run \`specific docs\` to learn how to use Specific. ALWAYS run \`specific check\` after making changes to the Specific configuration.`;
7
+ const CURSOR_MDC_CONTENT = `---
8
+ description: Specific infrastructure rules
9
+ globs:
10
+ alwaysApply: true
11
+ ---
12
+
13
+ ${SPECIFIC_INSTRUCTIONS}
14
+ `;
15
+ const options = [
16
+ { id: "cursor", label: "Cursor" },
17
+ { id: "claude", label: "Claude Code" },
18
+ { id: "codex", label: "Codex / AGENTS.md" },
19
+ ];
20
+ function isGitProject() {
21
+ const gitPath = path.join(process.cwd(), ".git");
22
+ return fs.existsSync(gitPath);
23
+ }
24
+ function detectExistingAgents() {
25
+ const detected = {};
26
+ // Detect Cursor: check if .cursor exists
27
+ const cursorDir = path.join(process.cwd(), ".cursor");
28
+ if (fs.existsSync(cursorDir)) {
29
+ detected["cursor"] = true;
30
+ }
31
+ // Detect Claude Code: check if .claude or CLAUDE.md exists
32
+ const claudeDir = path.join(process.cwd(), ".claude");
33
+ const claudeMd = path.join(process.cwd(), "CLAUDE.md");
34
+ if (fs.existsSync(claudeDir) || fs.existsSync(claudeMd)) {
35
+ detected["claude"] = true;
36
+ }
37
+ // Detect Codex: check if AGENTS.md exists
38
+ const agentsMd = path.join(process.cwd(), "AGENTS.md");
39
+ if (fs.existsSync(agentsMd)) {
40
+ detected["codex"] = true;
41
+ }
42
+ return detected;
43
+ }
44
+ function appendOrCreateFile(filePath, content) {
45
+ if (fs.existsSync(filePath)) {
46
+ const existing = fs.readFileSync(filePath, "utf-8");
47
+ if (existing.includes("specific docs") || existing.includes("specific check")) {
48
+ return "unchanged";
49
+ }
50
+ const separator = existing.endsWith("\n") ? "\n" : "\n\n";
51
+ fs.writeFileSync(filePath, existing + separator + content + "\n");
52
+ return "modified";
53
+ }
54
+ else {
55
+ fs.writeFileSync(filePath, content + "\n");
56
+ return "created";
57
+ }
58
+ }
59
+ function addToGitignore() {
60
+ const gitignorePath = path.join(process.cwd(), ".gitignore");
61
+ const entries = [".specific", "specific.secrets"];
62
+ if (fs.existsSync(gitignorePath)) {
63
+ const existing = fs.readFileSync(gitignorePath, "utf-8");
64
+ const lines = existing.split("\n").map((l) => l.trim());
65
+ const missingEntries = entries.filter((entry) => !lines.includes(entry));
66
+ if (missingEntries.length === 0) {
67
+ return "unchanged";
68
+ }
69
+ const separator = existing.endsWith("\n") ? "" : "\n";
70
+ fs.writeFileSync(gitignorePath, existing + separator + missingEntries.join("\n") + "\n");
71
+ return "modified";
72
+ }
73
+ else {
74
+ fs.writeFileSync(gitignorePath, entries.join("\n") + "\n");
75
+ return "created";
76
+ }
77
+ }
78
+ function configureClaudeCodePermissions() {
79
+ const claudeDir = path.join(process.cwd(), ".claude");
80
+ const settingsPath = path.join(claudeDir, "settings.local.json");
81
+ const permissions = ["Bash(specific docs:*)", "Bash(specific check:*)"];
82
+ if (fs.existsSync(settingsPath)) {
83
+ const existing = JSON.parse(fs.readFileSync(settingsPath, "utf-8"));
84
+ const allowList = existing?.permissions?.allow || [];
85
+ const missingPermissions = permissions.filter((p) => !allowList.includes(p));
86
+ if (missingPermissions.length === 0) {
87
+ return "unchanged";
88
+ }
89
+ if (!existing.permissions) {
90
+ existing.permissions = {};
91
+ }
92
+ if (!existing.permissions.allow) {
93
+ existing.permissions.allow = [];
94
+ }
95
+ existing.permissions.allow.push(...missingPermissions);
96
+ fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2) + "\n");
97
+ return "modified";
98
+ }
99
+ if (!fs.existsSync(claudeDir)) {
100
+ fs.mkdirSync(claudeDir);
101
+ }
102
+ const settings = {
103
+ permissions: {
104
+ allow: permissions,
105
+ },
106
+ };
107
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
108
+ return "created";
109
+ }
110
+ function createCursorRule() {
111
+ const cursorDir = path.join(process.cwd(), ".cursor");
112
+ const rulesDir = path.join(cursorDir, "rules");
113
+ const mdcPath = path.join(rulesDir, "specific.mdc");
114
+ if (fs.existsSync(mdcPath)) {
115
+ const existing = fs.readFileSync(mdcPath, "utf-8");
116
+ if (existing.includes("specific docs") || existing.includes("specific check")) {
117
+ return "unchanged";
118
+ }
119
+ fs.writeFileSync(mdcPath, CURSOR_MDC_CONTENT);
120
+ return "modified";
121
+ }
122
+ if (!fs.existsSync(cursorDir)) {
123
+ fs.mkdirSync(cursorDir);
124
+ }
125
+ if (!fs.existsSync(rulesDir)) {
126
+ fs.mkdirSync(rulesDir);
127
+ }
128
+ fs.writeFileSync(mdcPath, CURSOR_MDC_CONTENT);
129
+ return "created";
130
+ }
131
+ function configureAgents(checked) {
132
+ const agents = {
133
+ filesCreated: [],
134
+ filesModified: [],
135
+ };
136
+ if (checked["cursor"]) {
137
+ const status = createCursorRule();
138
+ if (status === "created")
139
+ agents.filesCreated.push(".cursor/rules/specific.mdc");
140
+ else if (status === "modified")
141
+ agents.filesModified.push(".cursor/rules/specific.mdc");
142
+ }
143
+ if (checked["claude"]) {
144
+ const claudeMdPath = path.join(process.cwd(), "CLAUDE.md");
145
+ const status = appendOrCreateFile(claudeMdPath, SPECIFIC_INSTRUCTIONS);
146
+ if (status === "created")
147
+ agents.filesCreated.push("CLAUDE.md");
148
+ else if (status === "modified")
149
+ agents.filesModified.push("CLAUDE.md");
150
+ const permStatus = configureClaudeCodePermissions();
151
+ if (permStatus === "created")
152
+ agents.filesCreated.push(".claude/settings.local.json");
153
+ else if (permStatus === "modified")
154
+ agents.filesModified.push(".claude/settings.local.json");
155
+ }
156
+ if (checked["codex"]) {
157
+ const agentsMdPath = path.join(process.cwd(), "AGENTS.md");
158
+ const status = appendOrCreateFile(agentsMdPath, SPECIFIC_INSTRUCTIONS);
159
+ if (status === "created")
160
+ agents.filesCreated.push("AGENTS.md");
161
+ else if (status === "modified")
162
+ agents.filesModified.push("AGENTS.md");
163
+ }
164
+ let git = null;
165
+ if (isGitProject()) {
166
+ git = { filesCreated: [], filesModified: [] };
167
+ const status = addToGitignore();
168
+ if (status === "created")
169
+ git.filesCreated.push(".gitignore");
170
+ else if (status === "modified")
171
+ git.filesModified.push(".gitignore");
172
+ }
173
+ return { agents, git };
174
+ }
175
+ function InitUI() {
176
+ const { exit } = useApp();
177
+ const [initialState] = useState(() => {
178
+ const detected = detectExistingAgents();
179
+ const hasDetected = Object.keys(detected).length > 0;
180
+ return {
181
+ detected,
182
+ focusedIndex: hasDetected ? options.length : 0, // Focus submit if any detected
183
+ };
184
+ });
185
+ const [phase, setPhase] = useState("tls");
186
+ const [focusedIndex, setFocusedIndex] = useState(initialState.focusedIndex);
187
+ const [checked, setChecked] = useState(initialState.detected);
188
+ const [result, setResult] = useState(null);
189
+ const [tlsResult, setTlsResult] = useState(null);
190
+ // Run TLS installation on mount
191
+ useEffect(() => {
192
+ let cancelled = false;
193
+ async function installTls() {
194
+ try {
195
+ await devcert.certificateFor("localhost");
196
+ if (!cancelled) {
197
+ setTlsResult({ status: "success" });
198
+ setPhase("agents");
199
+ }
200
+ }
201
+ catch (err) {
202
+ if (!cancelled) {
203
+ setTlsResult({
204
+ status: "error",
205
+ error: err instanceof Error ? err.message : String(err)
206
+ });
207
+ setPhase("agents");
208
+ }
209
+ }
210
+ }
211
+ installTls();
212
+ return () => { cancelled = true; };
213
+ }, []);
214
+ const isSubmitFocused = focusedIndex === options.length;
215
+ useInput((input, key) => {
216
+ if (phase !== "agents")
217
+ return;
218
+ if (key.upArrow || input === "k") {
219
+ setFocusedIndex((prev) => Math.max(0, prev - 1));
220
+ }
221
+ else if (key.downArrow || input === "j") {
222
+ setFocusedIndex((prev) => Math.min(options.length, prev + 1));
223
+ }
224
+ else if (input === " " && !isSubmitFocused) {
225
+ const option = options[focusedIndex];
226
+ setChecked((prev) => ({
227
+ ...prev,
228
+ [option.id]: !prev[option.id],
229
+ }));
230
+ }
231
+ else if ((key.return || input === " ") && isSubmitFocused) {
232
+ const configResult = configureAgents(checked);
233
+ setResult(configResult);
234
+ setPhase("done");
235
+ }
236
+ });
237
+ useEffect(() => {
238
+ if (phase === "done") {
239
+ const timer = setTimeout(() => {
240
+ exit();
241
+ }, 100);
242
+ return () => clearTimeout(timer);
243
+ }
244
+ }, [phase, exit]);
245
+ // TLS phase - show only TLS installation status
246
+ if (phase === "tls") {
247
+ return (React.createElement(Box, { flexDirection: "column" },
248
+ React.createElement(Text, null,
249
+ React.createElement(Text, { dimColor: true }, "\u25CF"),
250
+ " Installing TLS certificates... ",
251
+ React.createElement(Text, { dimColor: true }, "(may require your password)"))));
252
+ }
253
+ // Done phase - show summary
254
+ if (phase === "done") {
255
+ const selectedAgents = Object.entries(checked).filter(([, v]) => v).length;
256
+ const agentChanges = result && (result.agents.filesCreated.length > 0 || result.agents.filesModified.length > 0);
257
+ const gitChanges = result?.git && (result.git.filesCreated.length > 0 || result.git.filesModified.length > 0);
258
+ return (React.createElement(Box, { flexDirection: "column" },
259
+ tlsResult === null && (React.createElement(Text, null,
260
+ React.createElement(Text, { dimColor: true }, "\u25CF"),
261
+ " Installing TLS certificates...")),
262
+ tlsResult?.status === "success" && (React.createElement(Text, null,
263
+ React.createElement(Text, { color: "green" }, "\u2713"),
264
+ " TLS certificates installed")),
265
+ tlsResult?.status === "error" && (React.createElement(React.Fragment, null,
266
+ React.createElement(Text, null,
267
+ React.createElement(Text, { color: "red" }, "\u2717"),
268
+ " Failed to install TLS certificates"),
269
+ React.createElement(Text, { dimColor: true },
270
+ " ",
271
+ tlsResult.error))),
272
+ result && (React.createElement(React.Fragment, null,
273
+ React.createElement(Text, null,
274
+ React.createElement(Text, { color: "green" }, "\u2713"),
275
+ " Coding agents configured"),
276
+ result.agents.filesCreated.length > 0 && (React.createElement(Text, { dimColor: true },
277
+ " Created: ",
278
+ result.agents.filesCreated.join(", "))),
279
+ result.agents.filesModified.length > 0 && (React.createElement(Text, { dimColor: true },
280
+ " Modified: ",
281
+ result.agents.filesModified.join(", "))),
282
+ !agentChanges && selectedAgents > 0 && (React.createElement(Text, { dimColor: true }, " No changes needed (files already configured)")),
283
+ selectedAgents === 0 && (React.createElement(Text, { dimColor: true }, " No agents selected")))),
284
+ result?.git && (React.createElement(React.Fragment, null,
285
+ React.createElement(Text, null,
286
+ React.createElement(Text, { color: "green" }, "\u2713"),
287
+ " Git configured"),
288
+ result.git.filesCreated.length > 0 && (React.createElement(Text, { dimColor: true },
289
+ " Created: ",
290
+ result.git.filesCreated.join(", "))),
291
+ result.git.filesModified.length > 0 && (React.createElement(Text, { dimColor: true },
292
+ " Modified: ",
293
+ result.git.filesModified.join(", "))),
294
+ !gitChanges && (React.createElement(Text, { dimColor: true }, " No changes needed (.gitignore already configured)"))))));
295
+ }
296
+ // Agents selection phase
297
+ const tlsLine = tlsResult === null
298
+ ? React.createElement(Text, null,
299
+ React.createElement(Text, { dimColor: true }, "\u25CF"),
300
+ " Installing TLS certificates... ",
301
+ React.createElement(Text, { dimColor: true }, "(may require your password)"))
302
+ : tlsResult.status === "success"
303
+ ? React.createElement(Text, null,
304
+ React.createElement(Text, { color: "green" }, "\u2713"),
305
+ " TLS certificates installed")
306
+ : React.createElement(Text, null,
307
+ React.createElement(Text, { color: "red" }, "\u2717"),
308
+ " TLS certificates failed ",
309
+ React.createElement(Text, { dimColor: true },
310
+ "(",
311
+ tlsResult.error,
312
+ ")"));
313
+ return (React.createElement(Box, { flexDirection: "column" },
314
+ tlsLine,
315
+ React.createElement(Text, null,
316
+ React.createElement(Text, { dimColor: true }, "\u25CF"),
317
+ " Configure coding agents ",
318
+ React.createElement(Text, { dimColor: true }, "(space to select)")),
319
+ React.createElement(Text, null, " "),
320
+ options.map((option, index) => {
321
+ const isFocused = focusedIndex === index;
322
+ const isChecked = checked[option.id];
323
+ return (React.createElement(Box, { key: option.id },
324
+ React.createElement(Text, { ...(isFocused && { color: "cyan" }) },
325
+ isFocused ? "❯ " : " ",
326
+ isChecked ? "[✓]" : "[ ]",
327
+ " ",
328
+ option.label)));
329
+ }),
330
+ React.createElement(Text, null, " "),
331
+ React.createElement(Box, null,
332
+ React.createElement(Text, { ...(isSubmitFocused && { color: "cyan" }) },
333
+ isSubmitFocused ? "❯ " : " ",
334
+ React.createElement(Text, { inverse: isSubmitFocused, ...(!isSubmitFocused && { backgroundColor: "gray" }) }, " Continue ")))));
335
+ }
336
+ export function initCommand() {
337
+ render(React.createElement(InitUI, null));
338
+ }
339
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function psqlCommand(databaseName?: string): Promise<void>;
2
+ //# sourceMappingURL=psql.d.ts.map