@specific.dev/cli 0.1.100 → 0.1.101

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 (67) 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 +11 -16
  64. package/package.json +1 -1
  65. /package/dist/admin/_next/static/{BOm2VNloUXzWE8sN1MOhy → rjO2iSMpFz_HoesjH1XgE}/_buildManifest.js +0 -0
  66. /package/dist/admin/_next/static/{BOm2VNloUXzWE8sN1MOhy → rjO2iSMpFz_HoesjH1XgE}/_clientMiddlewareManifest.json +0 -0
  67. /package/dist/admin/_next/static/{BOm2VNloUXzWE8sN1MOhy → rjO2iSMpFz_HoesjH1XgE}/_ssgManifest.js +0 -0
package/dist/cli.js CHANGED
@@ -368427,6 +368427,9 @@ function parseServices(serviceData) {
368427
368427
  if (fieldObj.command) {
368428
368428
  service.command = String(fieldObj.command);
368429
368429
  }
368430
+ if (service.build && !service.command) {
368431
+ throw new Error(`Service "${name}" has a "build" but no "command". Services with a build must specify a command to run.`);
368432
+ }
368430
368433
  if (fieldObj.root) {
368431
368434
  service.root = String(fieldObj.root);
368432
368435
  }
@@ -368445,9 +368448,6 @@ function parseServices(serviceData) {
368445
368448
  } else {
368446
368449
  service.endpoints = endpoints;
368447
368450
  }
368448
- if (fieldObj.serve) {
368449
- service.serve = String(fieldObj.serve);
368450
- }
368451
368451
  const env2 = parseEnv(fieldObj.env);
368452
368452
  if (env2) {
368453
368453
  service.env = env2;
@@ -372273,7 +372273,6 @@ Add them to the config block in specific.local`
372273
372273
  const serviceEndpoints = /* @__PURE__ */ new Map();
372274
372274
  const serviceEndpointPorts = /* @__PURE__ */ new Map();
372275
372275
  for (const service of config.services) {
372276
- if (service.serve) continue;
372277
372276
  if (!service.command && !service.dev?.command) continue;
372278
372277
  const endpointPorts = /* @__PURE__ */ new Map();
372279
372278
  const endpointInfos = [];
@@ -372347,9 +372346,6 @@ Add them to the config block in specific.local`
372347
372346
  };
372348
372347
  for (const service of config.services) {
372349
372348
  if (this.cancelled) break;
372350
- if (service.serve) {
372351
- continue;
372352
- }
372353
372349
  if (!service.command && !service.dev?.command) {
372354
372350
  continue;
372355
372351
  }
@@ -372400,7 +372396,6 @@ Add them to the config block in specific.local`
372400
372396
  await Promise.all(this.services.map((s) => s.stop()));
372401
372397
  const newServices = [];
372402
372398
  for (const service of config.services) {
372403
- if (service.serve) continue;
372404
372399
  if (!service.command && !service.dev?.command) continue;
372405
372400
  try {
372406
372401
  const endpointPorts = serviceEndpointPorts.get(service.name) || /* @__PURE__ */ new Map();
@@ -372519,13 +372514,13 @@ Add them to the config block in specific.local`
372519
372514
  const getState = () => ({
372520
372515
  status: "running",
372521
372516
  services: config.services.filter(
372522
- (svc) => runningServicePorts.has(svc.name) || svc.serve
372517
+ (svc) => runningServicePorts.has(svc.name)
372523
372518
  ).map((svc) => {
372524
372519
  const build = svc.build ? buildsByName.get(svc.build.name) : void 0;
372525
372520
  return {
372526
372521
  name: svc.name,
372527
372522
  port: runningServicePorts.get(svc.name),
372528
- exposed: !!svc.serve || svc.endpoints.some((e) => e.public),
372523
+ exposed: svc.endpoints.some((e) => e.public),
372529
372524
  env: build?.env ? { ...build.env, ...svc.env } : svc.env
372530
372525
  };
372531
372526
  }),
@@ -373038,7 +373033,7 @@ function trackEvent(event, properties) {
373038
373033
  event,
373039
373034
  properties: {
373040
373035
  ...properties,
373041
- cli_version: "0.1.100",
373036
+ cli_version: "0.1.101",
373042
373037
  platform: process.platform,
373043
373038
  node_version: process.version,
373044
373039
  project_id: getProjectId()
@@ -373883,6 +373878,9 @@ function parseServices2(serviceData) {
373883
373878
  if (fieldObj.command) {
373884
373879
  service.command = String(fieldObj.command);
373885
373880
  }
373881
+ if (service.build && !service.command) {
373882
+ throw new Error(`Service "${name}" has a "build" but no "command". Services with a build must specify a command to run.`);
373883
+ }
373886
373884
  if (fieldObj.root) {
373887
373885
  service.root = String(fieldObj.root);
373888
373886
  }
@@ -373901,9 +373899,6 @@ function parseServices2(serviceData) {
373901
373899
  } else {
373902
373900
  service.endpoints = endpoints;
373903
373901
  }
373904
- if (fieldObj.serve) {
373905
- service.serve = String(fieldObj.serve);
373906
- }
373907
373902
  const env2 = parseEnv2(fieldObj.env);
373908
373903
  if (env2) {
373909
373904
  service.env = env2;
@@ -376530,7 +376525,7 @@ function compareVersions(a, b) {
376530
376525
  return 0;
376531
376526
  }
376532
376527
  async function checkForUpdate() {
376533
- const currentVersion = "0.1.100";
376528
+ const currentVersion = "0.1.101";
376534
376529
  const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
376535
376530
  if (!response.ok) {
376536
376531
  throw new Error(`Failed to check for updates: HTTP ${response.status}`);
@@ -376729,7 +376724,7 @@ function updateCommand() {
376729
376724
  var program = new Command();
376730
376725
  var env = "production";
376731
376726
  var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
376732
- program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.100").enablePositionalOptions();
376727
+ program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.101").enablePositionalOptions();
376733
376728
  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));
376734
376729
  program.command("docs [topic]").description("Fetch LLM-optimized documentation").action(docsCommand);
376735
376730
  program.command("check").description("Validate specific.hcl configuration").action(checkCommand);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specific.dev/cli",
3
- "version": "0.1.100",
3
+ "version": "0.1.101",
4
4
  "description": "CLI for Specific infrastructure-as-code",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",