@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.
- package/dist/admin/404/index.html +1 -1
- package/dist/admin/404.html +1 -1
- package/dist/admin/__next.!KGRlZmF1bHQp.__PAGE__.txt +1 -1
- package/dist/admin/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/__next._full.txt +1 -1
- package/dist/admin/__next._head.txt +1 -1
- package/dist/admin/__next._index.txt +1 -1
- package/dist/admin/__next._tree.txt +1 -1
- package/dist/admin/_not-found/__next._full.txt +1 -1
- package/dist/admin/_not-found/__next._head.txt +1 -1
- package/dist/admin/_not-found/__next._index.txt +1 -1
- package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/admin/_not-found/__next._not-found.txt +1 -1
- package/dist/admin/_not-found/__next._tree.txt +1 -1
- package/dist/admin/_not-found/index.html +1 -1
- package/dist/admin/_not-found/index.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.__PAGE__.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/databases/__next._full.txt +1 -1
- package/dist/admin/databases/__next._head.txt +1 -1
- package/dist/admin/databases/__next._index.txt +1 -1
- package/dist/admin/databases/__next._tree.txt +1 -1
- package/dist/admin/databases/index.html +1 -1
- package/dist/admin/databases/index.txt +1 -1
- package/dist/admin/fullscreen/__next._full.txt +1 -1
- package/dist/admin/fullscreen/__next._head.txt +1 -1
- package/dist/admin/fullscreen/__next._index.txt +1 -1
- package/dist/admin/fullscreen/__next._tree.txt +1 -1
- package/dist/admin/fullscreen/__next.fullscreen.__PAGE__.txt +1 -1
- package/dist/admin/fullscreen/__next.fullscreen.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._full.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._head.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._index.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._tree.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.databases.__PAGE__.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.databases.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.txt +1 -1
- package/dist/admin/fullscreen/databases/index.html +1 -1
- package/dist/admin/fullscreen/databases/index.txt +1 -1
- package/dist/admin/fullscreen/index.html +1 -1
- package/dist/admin/fullscreen/index.txt +1 -1
- package/dist/admin/index.html +1 -1
- package/dist/admin/index.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.__PAGE__.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/mail/__next._full.txt +1 -1
- package/dist/admin/mail/__next._head.txt +1 -1
- package/dist/admin/mail/__next._index.txt +1 -1
- package/dist/admin/mail/__next._tree.txt +1 -1
- package/dist/admin/mail/index.html +1 -1
- package/dist/admin/mail/index.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.__PAGE__.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.txt +1 -1
- package/dist/admin/workflows/__next._full.txt +1 -1
- package/dist/admin/workflows/__next._head.txt +1 -1
- package/dist/admin/workflows/__next._index.txt +1 -1
- package/dist/admin/workflows/__next._tree.txt +1 -1
- package/dist/admin/workflows/index.html +1 -1
- package/dist/admin/workflows/index.txt +1 -1
- package/dist/cli.js +11 -16
- package/package.json +1 -1
- /package/dist/admin/_next/static/{BOm2VNloUXzWE8sN1MOhy → rjO2iSMpFz_HoesjH1XgE}/_buildManifest.js +0 -0
- /package/dist/admin/_next/static/{BOm2VNloUXzWE8sN1MOhy → rjO2iSMpFz_HoesjH1XgE}/_clientMiddlewareManifest.json +0 -0
- /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)
|
|
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:
|
|
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.
|
|
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.
|
|
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.
|
|
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
/package/dist/admin/_next/static/{BOm2VNloUXzWE8sN1MOhy → rjO2iSMpFz_HoesjH1XgE}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/admin/_next/static/{BOm2VNloUXzWE8sN1MOhy → rjO2iSMpFz_HoesjH1XgE}/_ssgManifest.js
RENAMED
|
File without changes
|