@specific.dev/cli 0.1.82 → 0.1.83

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 (70) hide show
  1. package/dist/admin/404/index.html +1 -1
  2. package/dist/admin/404.html +1 -1
  3. package/dist/admin/__next.!KGRlZmF1bHQp.__PAGE__.txt +1 -1
  4. package/dist/admin/__next.!KGRlZmF1bHQp.txt +1 -1
  5. package/dist/admin/__next._full.txt +1 -1
  6. package/dist/admin/__next._head.txt +1 -1
  7. package/dist/admin/__next._index.txt +1 -1
  8. package/dist/admin/__next._tree.txt +1 -1
  9. package/dist/admin/_not-found/__next._full.txt +1 -1
  10. package/dist/admin/_not-found/__next._head.txt +1 -1
  11. package/dist/admin/_not-found/__next._index.txt +1 -1
  12. package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +1 -1
  13. package/dist/admin/_not-found/__next._not-found.txt +1 -1
  14. package/dist/admin/_not-found/__next._tree.txt +1 -1
  15. package/dist/admin/_not-found/index.html +1 -1
  16. package/dist/admin/_not-found/index.txt +1 -1
  17. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.__PAGE__.txt +1 -1
  18. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.txt +1 -1
  19. package/dist/admin/databases/__next.!KGRlZmF1bHQp.txt +1 -1
  20. package/dist/admin/databases/__next._full.txt +1 -1
  21. package/dist/admin/databases/__next._head.txt +1 -1
  22. package/dist/admin/databases/__next._index.txt +1 -1
  23. package/dist/admin/databases/__next._tree.txt +1 -1
  24. package/dist/admin/databases/index.html +1 -1
  25. package/dist/admin/databases/index.txt +1 -1
  26. package/dist/admin/fullscreen/__next._full.txt +1 -1
  27. package/dist/admin/fullscreen/__next._head.txt +1 -1
  28. package/dist/admin/fullscreen/__next._index.txt +1 -1
  29. package/dist/admin/fullscreen/__next._tree.txt +1 -1
  30. package/dist/admin/fullscreen/__next.fullscreen.__PAGE__.txt +1 -1
  31. package/dist/admin/fullscreen/__next.fullscreen.txt +1 -1
  32. package/dist/admin/fullscreen/databases/__next._full.txt +1 -1
  33. package/dist/admin/fullscreen/databases/__next._head.txt +1 -1
  34. package/dist/admin/fullscreen/databases/__next._index.txt +1 -1
  35. package/dist/admin/fullscreen/databases/__next._tree.txt +1 -1
  36. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.__PAGE__.txt +1 -1
  37. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.txt +1 -1
  38. package/dist/admin/fullscreen/databases/__next.fullscreen.txt +1 -1
  39. package/dist/admin/fullscreen/databases/index.html +1 -1
  40. package/dist/admin/fullscreen/databases/index.txt +1 -1
  41. package/dist/admin/fullscreen/index.html +1 -1
  42. package/dist/admin/fullscreen/index.txt +1 -1
  43. package/dist/admin/index.html +1 -1
  44. package/dist/admin/index.txt +1 -1
  45. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.__PAGE__.txt +1 -1
  46. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.txt +1 -1
  47. package/dist/admin/mail/__next.!KGRlZmF1bHQp.txt +1 -1
  48. package/dist/admin/mail/__next._full.txt +1 -1
  49. package/dist/admin/mail/__next._head.txt +1 -1
  50. package/dist/admin/mail/__next._index.txt +1 -1
  51. package/dist/admin/mail/__next._tree.txt +1 -1
  52. package/dist/admin/mail/index.html +1 -1
  53. package/dist/admin/mail/index.txt +1 -1
  54. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.txt +1 -1
  55. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.__PAGE__.txt +1 -1
  56. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.txt +1 -1
  57. package/dist/admin/workflows/__next._full.txt +1 -1
  58. package/dist/admin/workflows/__next._head.txt +1 -1
  59. package/dist/admin/workflows/__next._index.txt +1 -1
  60. package/dist/admin/workflows/__next._tree.txt +1 -1
  61. package/dist/admin/workflows/index.html +1 -1
  62. package/dist/admin/workflows/index.txt +1 -1
  63. package/dist/cli.js +7 -4
  64. package/dist/docs/integrations/drizzle.md +5 -3
  65. package/dist/docs/postgres.md +1 -0
  66. package/dist/postinstall.js +1 -1
  67. package/package.json +1 -1
  68. /package/dist/admin/_next/static/{hBmPSh2M5utps8oJiVAZU → ZUhVyT91xXNDSM1fLwCBF}/_buildManifest.js +0 -0
  69. /package/dist/admin/_next/static/{hBmPSh2M5utps8oJiVAZU → ZUhVyT91xXNDSM1fLwCBF}/_clientMiddlewareManifest.json +0 -0
  70. /package/dist/admin/_next/static/{hBmPSh2M5utps8oJiVAZU → ZUhVyT91xXNDSM1fLwCBF}/_ssgManifest.js +0 -0
package/dist/cli.js CHANGED
@@ -184669,7 +184669,7 @@ function trackEvent(event, properties) {
184669
184669
  event,
184670
184670
  properties: {
184671
184671
  ...properties,
184672
- cli_version: "0.1.82",
184672
+ cli_version: "0.1.83",
184673
184673
  platform: process.platform,
184674
184674
  node_version: process.version,
184675
184675
  project_id: getProjectId()
@@ -186528,6 +186528,7 @@ function checkCommand() {
186528
186528
  import React6, { useState as useState5, useEffect as useEffect3, useRef } from "react";
186529
186529
  import { render as render4, Text as Text6, Box as Box6, useApp as useApp2, Static, useInput as useInput4 } from "ink";
186530
186530
  import Spinner4 from "ink-spinner";
186531
+ import { Readable as Readable2 } from "stream";
186531
186532
  import * as fs24 from "fs";
186532
186533
  import * as os11 from "os";
186533
186534
  import * as path20 from "path";
@@ -192855,7 +192856,9 @@ Add them to the config block in specific.local`);
192855
192856
  return /* @__PURE__ */ React6.createElement(Box6, { flexDirection: "column" }, /* @__PURE__ */ React6.createElement(Static, { items: staticItems }, (item) => /* @__PURE__ */ React6.createElement(Box6, { key: item.key }, item.content)));
192856
192857
  }
192857
192858
  function devCommand(instanceKey, tunnelEnabled = false) {
192858
- render4(/* @__PURE__ */ React6.createElement(DevUI, { instanceKey, tunnelEnabled }));
192859
+ const options2 = isInteractive() ? {} : { stdin: new Readable2({ read() {
192860
+ } }) };
192861
+ render4(/* @__PURE__ */ React6.createElement(DevUI, { instanceKey, tunnelEnabled }), options2);
192859
192862
  }
192860
192863
 
192861
192864
  // src/lib/dev/git-worktree.ts
@@ -194752,7 +194755,7 @@ function compareVersions(a, b) {
194752
194755
  return 0;
194753
194756
  }
194754
194757
  async function checkForUpdate() {
194755
- const currentVersion = "0.1.82";
194758
+ const currentVersion = "0.1.83";
194756
194759
  const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
194757
194760
  if (!response.ok) {
194758
194761
  throw new Error(`Failed to check for updates: HTTP ${response.status}`);
@@ -194951,7 +194954,7 @@ function updateCommand() {
194951
194954
  var program = new Command();
194952
194955
  var env = "production";
194953
194956
  var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
194954
- program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.82").enablePositionalOptions();
194957
+ program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.83").enablePositionalOptions();
194955
194958
  program.command("init").description("Initialize project for use with a coding agent").option("--agent <name...>", "Agents to configure (cursor, claude, codex, other)").action((options2) => initCommand(options2));
194956
194959
  program.command("docs [topic]").description("Fetch LLM-optimized documentation").action(docsCommand);
194957
194960
  program.command("check").description("Validate specific.hcl configuration").action(checkCommand);
@@ -56,13 +56,15 @@ export default defineConfig({
56
56
 
57
57
  ## Development
58
58
 
59
- Use `specific exec` to push schema changes and generate migrations:
59
+ **`push` vs `migrate`:** `push` applies schema changes directly to the local database without creating migration files — use it only during local development for rapid iteration. `migrate` runs migration files and is used in production (via `pre_deploy`).
60
+
61
+ **`generate` is required:** Always run `drizzle-kit generate` after making any schema changes. This creates the migration files that `drizzle-kit migrate` applies during deployment. Without this step, schema changes won't be deployed.
60
62
 
61
63
  ```bash
62
- # Push schema directly to local database (for rapid iteration)
64
+ # Push schema directly to local database (local dev only, no migration files created)
63
65
  specific exec api -- npx drizzle-kit push
64
66
 
65
- # If user is relying on Drizzle migrations, generate them once done with schema changes
67
+ # Generate migration files ALWAYS run this after schema changes, before committing
66
68
  specific exec api -- npx drizzle-kit generate
67
69
  ```
68
70
 
@@ -41,6 +41,7 @@ postgres "main" {}
41
41
  The following PostgreSQL extensions are available in both development and production (Neon):
42
42
 
43
43
  - **pgvector** (`vector`) - Vector similarity search. Enable with `CREATE EXTENSION vector;` in a migration. See https://github.com/pgvector/pgvector for full documentation.
44
+ - **pg_search** (`pg_search`) - Full-text search with BM25 ranking, powered by ParadeDB. Enable with `CREATE EXTENSION pg_search;` in a migration. See https://docs.paradedb.com/documentation/getting-started/quickstart for full documentation.
44
45
 
45
46
  ## Querying the database
46
47
 
@@ -126,7 +126,7 @@ function trackEvent(event, properties) {
126
126
  event,
127
127
  properties: {
128
128
  ...properties,
129
- cli_version: "0.1.82",
129
+ cli_version: "0.1.83",
130
130
  platform: process.platform,
131
131
  node_version: process.version,
132
132
  project_id: getProjectId()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specific.dev/cli",
3
- "version": "0.1.82",
3
+ "version": "0.1.83",
4
4
  "description": "CLI for Specific infrastructure-as-code",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",