@indigoai-us/hq-cli 5.71.0 → 5.73.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.
- package/dist/bin/hq-auth-refresh.js +1 -4
- package/dist/cli-version.js +1 -4
- package/dist/commands/__fixtures__/make-tar.js +1 -4
- package/dist/commands/_patterns.js +1 -4
- package/dist/commands/add.js +1 -4
- package/dist/commands/agents.js +1 -4
- package/dist/commands/api-keys.js +1 -4
- package/dist/commands/auth.js +1 -4
- package/dist/commands/billing.js +1 -4
- package/dist/commands/channels.js +1 -4
- package/dist/commands/cloud-demote.js +1 -4
- package/dist/commands/cloud-provision.js +1 -4
- package/dist/commands/cloud.js +1 -4
- package/dist/commands/company.js +1 -4
- package/dist/commands/creators.js +1 -4
- package/dist/commands/crm.js +1 -4
- package/dist/commands/db-migrate.js +1 -4
- package/dist/commands/db-provision.js +1 -4
- package/dist/commands/db-sql.js +1 -4
- package/dist/commands/db-status.js +1 -4
- package/dist/commands/db.js +1 -4
- package/dist/commands/dm.js +1 -4
- package/dist/commands/feedback.js +1 -4
- package/dist/commands/files-browse.js +1 -4
- package/dist/commands/files.js +1 -4
- package/dist/commands/group-grants.js +1 -4
- package/dist/commands/groups.js +1 -4
- package/dist/commands/integrations.js +1 -4
- package/dist/commands/list.js +1 -4
- package/dist/commands/login.js +1 -4
- package/dist/commands/logout.js +1 -4
- package/dist/commands/mcp-registration.js +1 -4
- package/dist/commands/mcp-status.js +1 -4
- package/dist/commands/meetings.js +1 -4
- package/dist/commands/members.js +1 -4
- package/dist/commands/onboard-identity-guard.js +1 -4
- package/dist/commands/onboard-join.js +1 -4
- package/dist/commands/onboard-warning.js +1 -4
- package/dist/commands/onboard.js +1 -4
- package/dist/commands/outposts.d.ts +30 -1
- package/dist/commands/outposts.js +221 -10
- package/dist/commands/pack-install.js +1 -4
- package/dist/commands/packs.js +1 -4
- package/dist/commands/people.js +1 -4
- package/dist/commands/pkg-install.js +1 -4
- package/dist/commands/pkg-list.js +1 -4
- package/dist/commands/pkg-remove.js +1 -4
- package/dist/commands/pkg-update.js +1 -4
- package/dist/commands/publish.js +1 -4
- package/dist/commands/reindex.js +1 -4
- package/dist/commands/rescue.js +1 -4
- package/dist/commands/run.js +1 -4
- package/dist/commands/safe-extract.js +1 -4
- package/dist/commands/secrets-scope.js +1 -4
- package/dist/commands/secrets.js +1 -4
- package/dist/commands/signals.js +1 -4
- package/dist/commands/skill.js +1 -4
- package/dist/commands/sources.js +1 -4
- package/dist/commands/sync-mode.js +1 -4
- package/dist/commands/sync-narrow.js +1 -4
- package/dist/commands/sync.js +1 -4
- package/dist/commands/team-sync.js +1 -4
- package/dist/commands/update.js +1 -4
- package/dist/commands/whoami.js +1 -4
- package/dist/commands/workers.js +1 -4
- package/dist/index.js +1 -4
- package/dist/lib/db/control-plane.js +1 -4
- package/dist/lib/db/local.js +1 -4
- package/dist/lib/db/migrate.js +1 -4
- package/dist/lib/db/paths.js +1 -4
- package/dist/lib/db/remote-engine.js +1 -4
- package/dist/lib/db/remote-sql.js +1 -4
- package/dist/lib/db/sql.js +1 -4
- package/dist/lib/local-tree-diff.js +1 -4
- package/dist/lib/narrow-hint-banner.js +1 -4
- package/dist/main.js +1 -4
- package/dist/node-preflight.js +1 -4
- package/dist/run/discover-schemas.js +1 -4
- package/dist/run/hq-plugin.js +1 -4
- package/dist/sentry-before-send.js +1 -4
- package/dist/sentry-dsn.generated.js +1 -4
- package/dist/sentry.js +1 -4
- package/dist/strategies/link.js +1 -4
- package/dist/strategies/merge.js +1 -4
- package/dist/types.js +1 -4
- package/dist/utils/billing-gate.js +1 -4
- package/dist/utils/breadcrumb-buffer.js +1 -4
- package/dist/utils/cli-telemetry.js +1 -4
- package/dist/utils/cognito-session.js +1 -4
- package/dist/utils/contribution-table.js +1 -4
- package/dist/utils/environmental-error.js +1 -4
- package/dist/utils/epipe.js +1 -4
- package/dist/utils/feedback-diagnostics.js +1 -4
- package/dist/utils/feedback-screenshots.js +1 -4
- package/dist/utils/feedback-versions.js +1 -4
- package/dist/utils/git.js +1 -4
- package/dist/utils/integrity.js +1 -4
- package/dist/utils/intercepted-process-exit.js +1 -4
- package/dist/utils/login-provider.js +1 -4
- package/dist/utils/manifest.js +1 -4
- package/dist/utils/pack-contributions.js +1 -4
- package/dist/utils/people.js +1 -4
- package/dist/utils/registry-client.js +1 -4
- package/dist/utils/registry.js +1 -4
- package/dist/utils/sandbox-runner-client.js +1 -4
- package/dist/utils/secrets-cache.js +1 -4
- package/dist/utils/sentry-identity.js +1 -4
- package/dist/utils/vault-api.js +1 -4
- package/dist/utils/version-check.js +1 -4
- package/dist/utils/version-gate.js +1 -4
- package/package.json +3 -2
- package/scripts/chmod-bins.mjs +49 -0
- package/src/commands/outposts-replica-sync.test.ts +272 -0
- package/src/commands/outposts.test.ts +32 -0
- package/src/commands/outposts.ts +330 -7
- package/src/packaging.test.ts +55 -0
|
@@ -73,6 +73,13 @@ export declare function listOutposts(token: string): Promise<OutpostSummary[]>;
|
|
|
73
73
|
export declare function getOutpostStatus(token: string, outpostId?: string): Promise<Record<string, unknown>>;
|
|
74
74
|
export declare function enableCodex(token: string, outpostId?: string): Promise<Record<string, unknown>>;
|
|
75
75
|
export declare function regenerateLoginUrl(token: string, outpostId?: string): Promise<Record<string, unknown>>;
|
|
76
|
+
/**
|
|
77
|
+
* Hand the box the one-time Claude sign-in code the operator got from the login
|
|
78
|
+
* URL. hq-pro stores it as the row's pending code; the box polls for it, feeds
|
|
79
|
+
* it to `claude`, and flips itself `awaiting-claude-login → ready`. This is the
|
|
80
|
+
* terminal-native equivalent of pasting the code into the web console.
|
|
81
|
+
*/
|
|
82
|
+
export declare function submitLoginCode(token: string, code: string, outpostId?: string): Promise<Record<string, unknown>>;
|
|
76
83
|
export declare function destroyOutpost(token: string, outpostId?: string): Promise<Record<string, unknown>>;
|
|
77
84
|
/** Result of `POST /outpost/exec` — a terminal SSM invocation on the box. */
|
|
78
85
|
export interface OutpostExecResult {
|
|
@@ -188,5 +195,27 @@ export interface SelfDeployDependencies {
|
|
|
188
195
|
defaultHqRoot: () => string;
|
|
189
196
|
invokingUser: () => string;
|
|
190
197
|
}
|
|
191
|
-
|
|
198
|
+
/**
|
|
199
|
+
* The extra local surface `replica-sync` needs on top of the self-deploy set:
|
|
200
|
+
* two filesystem probes for the repos clone. Kept as an extension so the
|
|
201
|
+
* `self-deploy` dependency surface stays minimal.
|
|
202
|
+
*/
|
|
203
|
+
export interface ReplicaSyncDependencies extends SelfDeployDependencies {
|
|
204
|
+
pathExists: (p: string) => boolean;
|
|
205
|
+
mkdirp: (p: string) => void;
|
|
206
|
+
}
|
|
207
|
+
/** One repo entry resolved from `personal/data/repos.yaml`. */
|
|
208
|
+
export interface ReplicaRepo {
|
|
209
|
+
url: string;
|
|
210
|
+
visibility: "public" | "private";
|
|
211
|
+
name: string;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Parse `personal/data/repos.yaml` into a clone list. Pure + exported for
|
|
215
|
+
* tests. Mirrors setup.sh's `clone_repos`: `visibility` defaults to public,
|
|
216
|
+
* `name` defaults to the URL basename. Malformed entries are skipped, never
|
|
217
|
+
* thrown.
|
|
218
|
+
*/
|
|
219
|
+
export declare function parseReposManifest(yamlText: string): ReplicaRepo[];
|
|
220
|
+
export declare function registerOutpostsCommand(program: Command, selfDeployOverrides?: Partial<ReplicaSyncDependencies>): void;
|
|
192
221
|
//# sourceMappingURL=outposts.d.ts.map
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
* web console can't rename them either), so this CLI wraps only the lifecycle
|
|
21
21
|
* and status routes that exist. Renaming an Outpost is not a backend capability.
|
|
22
22
|
*/
|
|
23
|
-
|
|
24
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="839f8f76-584d-5ea8-b86e-a92a55c32a16")}catch(e){}}();
|
|
25
23
|
import chalk from "chalk";
|
|
26
24
|
import { spawnSync } from "node:child_process";
|
|
27
25
|
import * as fs from "node:fs";
|
|
@@ -29,6 +27,7 @@ import * as os from "node:os";
|
|
|
29
27
|
import * as path from "node:path";
|
|
30
28
|
import * as readline from "node:readline";
|
|
31
29
|
import { randomBytes } from "node:crypto";
|
|
30
|
+
import * as yaml from "js-yaml";
|
|
32
31
|
import { loadCachedTokens } from "@indigoai-us/hq-cloud";
|
|
33
32
|
import { ensureCognitoToken } from "../utils/cognito-session.js";
|
|
34
33
|
import { vaultApiFetch } from "../utils/vault-api.js";
|
|
@@ -117,6 +116,21 @@ export async function regenerateLoginUrl(token, outpostId) {
|
|
|
117
116
|
query: outpostId ? { outpostId } : undefined,
|
|
118
117
|
});
|
|
119
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Hand the box the one-time Claude sign-in code the operator got from the login
|
|
121
|
+
* URL. hq-pro stores it as the row's pending code; the box polls for it, feeds
|
|
122
|
+
* it to `claude`, and flips itself `awaiting-claude-login → ready`. This is the
|
|
123
|
+
* terminal-native equivalent of pasting the code into the web console.
|
|
124
|
+
*/
|
|
125
|
+
export async function submitLoginCode(token, code, outpostId) {
|
|
126
|
+
return outpostRequest({
|
|
127
|
+
token,
|
|
128
|
+
path: "/outpost/login-code",
|
|
129
|
+
method: "POST",
|
|
130
|
+
body: { code },
|
|
131
|
+
query: outpostId ? { outpostId } : undefined,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
120
134
|
export async function destroyOutpost(token, outpostId) {
|
|
121
135
|
return outpostRequest({
|
|
122
136
|
token,
|
|
@@ -506,9 +520,161 @@ async function selfDeployOutpost(opts, deps) {
|
|
|
506
520
|
console.log(chalk.dim("Check it with: systemctl status outpost-sync.service"));
|
|
507
521
|
console.log(chalk.dim("It is unregistered and unmanaged by hq-pro (no console entry or remote management)."));
|
|
508
522
|
}
|
|
523
|
+
const defaultReplicaSyncDependencies = {
|
|
524
|
+
...defaultSelfDeployDependencies,
|
|
525
|
+
pathExists: (p) => fs.existsSync(p),
|
|
526
|
+
mkdirp: (p) => {
|
|
527
|
+
fs.mkdirSync(p, { recursive: true });
|
|
528
|
+
},
|
|
529
|
+
};
|
|
530
|
+
function repoNameFromUrl(url) {
|
|
531
|
+
const tail = url.split("/").pop() ?? "";
|
|
532
|
+
return tail.replace(/\.git$/, "").trim();
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* A repo `name` becomes a path segment under repos/<visibility>/. A synced
|
|
536
|
+
* repos.yaml is operator data, but a malformed or hostile name must never
|
|
537
|
+
* escape that directory, so constrain it to a single, non-traversal component.
|
|
538
|
+
*/
|
|
539
|
+
function isSafePathComponent(value) {
|
|
540
|
+
return (value.length > 0 &&
|
|
541
|
+
!value.includes("/") &&
|
|
542
|
+
!value.includes("\\") &&
|
|
543
|
+
value !== "." &&
|
|
544
|
+
value !== "..");
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Parse `personal/data/repos.yaml` into a clone list. Pure + exported for
|
|
548
|
+
* tests. Mirrors setup.sh's `clone_repos`: `visibility` defaults to public,
|
|
549
|
+
* `name` defaults to the URL basename. Malformed entries are skipped, never
|
|
550
|
+
* thrown.
|
|
551
|
+
*/
|
|
552
|
+
export function parseReposManifest(yamlText) {
|
|
553
|
+
let doc;
|
|
554
|
+
try {
|
|
555
|
+
doc = yaml.load(yamlText);
|
|
556
|
+
}
|
|
557
|
+
catch {
|
|
558
|
+
return [];
|
|
559
|
+
}
|
|
560
|
+
const rawRepos = doc?.repos;
|
|
561
|
+
if (!Array.isArray(rawRepos))
|
|
562
|
+
return [];
|
|
563
|
+
const out = [];
|
|
564
|
+
for (const entry of rawRepos) {
|
|
565
|
+
if (!entry || typeof entry !== "object")
|
|
566
|
+
continue;
|
|
567
|
+
const e = entry;
|
|
568
|
+
const url = typeof e.url === "string" ? e.url.trim() : "";
|
|
569
|
+
if (!url)
|
|
570
|
+
continue;
|
|
571
|
+
const visibility = e.visibility === "private" ? "private" : "public";
|
|
572
|
+
const name = typeof e.name === "string" && e.name.trim()
|
|
573
|
+
? e.name.trim()
|
|
574
|
+
: repoNameFromUrl(url);
|
|
575
|
+
if (!isSafePathComponent(name))
|
|
576
|
+
continue;
|
|
577
|
+
out.push({ url, visibility, name });
|
|
578
|
+
}
|
|
579
|
+
return out;
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* Best-effort spawn: log a one-line outcome and carry on. NEVER throws and
|
|
583
|
+
* NEVER echoes child output — the same secret-safety stance as `runChecked`,
|
|
584
|
+
* since these children (auth refresh, secrets exec) touch credentials.
|
|
585
|
+
*/
|
|
586
|
+
function runBestEffort(deps, command, args, description, options) {
|
|
587
|
+
let result;
|
|
588
|
+
try {
|
|
589
|
+
result = deps.spawnSync(command, args, options ?? { stdio: "inherit" });
|
|
590
|
+
}
|
|
591
|
+
catch {
|
|
592
|
+
console.warn(`replica-sync: ${description} could not run — continuing.`);
|
|
593
|
+
return false;
|
|
594
|
+
}
|
|
595
|
+
if (!result || result.error || result.status !== 0) {
|
|
596
|
+
console.warn(`replica-sync: ${description} did not complete cleanly — continuing.`);
|
|
597
|
+
return false;
|
|
598
|
+
}
|
|
599
|
+
return true;
|
|
600
|
+
}
|
|
601
|
+
/**
|
|
602
|
+
* Authenticate `gh` for private clones by streaming GITHUB_TOKEN through the
|
|
603
|
+
* vault into the child's ENV ONLY, unsetting it in-shell, and piping it to
|
|
604
|
+
* `gh auth login --with-token` over stdin. The token never touches argv or
|
|
605
|
+
* this process's logs. Mirrors personal/scripts/setup.sh's `configure_gh`.
|
|
606
|
+
*/
|
|
607
|
+
function authGitHubViaVault(deps) {
|
|
608
|
+
const ghLogin = [
|
|
609
|
+
'TOKEN="$GITHUB_TOKEN"',
|
|
610
|
+
"unset GITHUB_TOKEN",
|
|
611
|
+
'printf "%s" "$TOKEN" | gh auth login --with-token',
|
|
612
|
+
].join("\n");
|
|
613
|
+
const authed = runBestEffort(deps, "hq", ["secrets", "--personal", "exec", "--only", "GITHUB_TOKEN", "--", "bash", "-c", ghLogin], "GitHub auth via vault");
|
|
614
|
+
if (authed) {
|
|
615
|
+
// Let plain `git clone https://github.com/...` reuse gh's token so private
|
|
616
|
+
// repos don't prompt for a username/password.
|
|
617
|
+
runBestEffort(deps, "gh", ["auth", "setup-git"], "gh auth setup-git");
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
/** Clone any repos from `personal/data/repos.yaml` that aren't on disk yet. */
|
|
621
|
+
function replicateRepos(deps, hqRoot) {
|
|
622
|
+
const manifestPath = path.join(hqRoot, "personal", "data", "repos.yaml");
|
|
623
|
+
let manifestText;
|
|
624
|
+
try {
|
|
625
|
+
manifestText = deps.readTextFile(manifestPath);
|
|
626
|
+
}
|
|
627
|
+
catch {
|
|
628
|
+
console.log("replica-sync: no personal/data/repos.yaml — skipping repo clone.");
|
|
629
|
+
return;
|
|
630
|
+
}
|
|
631
|
+
const repos = parseReposManifest(manifestText);
|
|
632
|
+
if (repos.length === 0) {
|
|
633
|
+
console.log("replica-sync: repos.yaml lists no repos — skipping.");
|
|
634
|
+
return;
|
|
635
|
+
}
|
|
636
|
+
const missing = repos.filter((repo) => !deps.pathExists(path.join(hqRoot, "repos", repo.visibility, repo.name, ".git")));
|
|
637
|
+
if (missing.length === 0) {
|
|
638
|
+
console.log("replica-sync: all repos already present.");
|
|
639
|
+
return;
|
|
640
|
+
}
|
|
641
|
+
// Private repos need gh auth first; public-only manifests skip the vault call.
|
|
642
|
+
if (missing.some((repo) => repo.visibility === "private")) {
|
|
643
|
+
authGitHubViaVault(deps);
|
|
644
|
+
}
|
|
645
|
+
for (const repo of missing) {
|
|
646
|
+
deps.mkdirp(path.join(hqRoot, "repos", repo.visibility));
|
|
647
|
+
const dest = path.join(hqRoot, "repos", repo.visibility, repo.name);
|
|
648
|
+
console.log(`replica-sync: cloning ${repo.visibility}/${repo.name}…`);
|
|
649
|
+
runBestEffort(deps, "git", ["clone", "--recurse-submodules", repo.url, dest], `clone ${repo.visibility}/${repo.name}`);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
async function replicaSyncOutpost(opts, deps) {
|
|
653
|
+
const hqRoot = opts.hqRoot ?? deps.defaultHqRoot();
|
|
654
|
+
// Gate: only replicate on a box that has an HQ session. A box that was never
|
|
655
|
+
// signed in has nothing to pull — exit cleanly so the timer stays green.
|
|
656
|
+
const session = deps.loadCachedTokens();
|
|
657
|
+
if (!session?.refreshToken) {
|
|
658
|
+
console.log("replica-sync: no HQ session on this box yet — nothing to replicate.");
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
661
|
+
// Auth refresh gates the run: if the seeded refresh token is dead, every
|
|
662
|
+
// authenticated step below (pull, secrets exec) would just cascade 401s.
|
|
663
|
+
// Stop the cycle cleanly instead — the timer retries next tick.
|
|
664
|
+
if (!runBestEffort(deps, "hq", ["auth", "refresh"], "HQ auth refresh")) {
|
|
665
|
+
console.warn("replica-sync: auth refresh failed — skipping this cycle (token likely expired).");
|
|
666
|
+
return;
|
|
667
|
+
}
|
|
668
|
+
runBestEffort(deps, "hq", ["sync", "pull", "--personal", "--hq-root", hqRoot, "--on-conflict", "keep"], "personal vault pull");
|
|
669
|
+
// rescue lays down the core kernel and expects companies/ to exist.
|
|
670
|
+
deps.mkdirp(path.join(hqRoot, "companies"));
|
|
671
|
+
runBestEffort(deps, "hq", ["rescue", "--hq-root", hqRoot, "--yes"], "HQ kernel rescue");
|
|
672
|
+
replicateRepos(deps, hqRoot);
|
|
673
|
+
console.log("replica-sync: complete.");
|
|
674
|
+
}
|
|
509
675
|
export function registerOutpostsCommand(program, selfDeployOverrides = {}) {
|
|
510
|
-
const
|
|
511
|
-
...
|
|
676
|
+
const deps = {
|
|
677
|
+
...defaultReplicaSyncDependencies,
|
|
512
678
|
...selfDeployOverrides,
|
|
513
679
|
};
|
|
514
680
|
const outposts = program
|
|
@@ -518,15 +684,29 @@ export function registerOutpostsCommand(program, selfDeployOverrides = {}) {
|
|
|
518
684
|
.command("self-deploy", { hidden: true })
|
|
519
685
|
.description("Configure this EC2 host as a locally self-hosted HQ outpost")
|
|
520
686
|
.option("--yes", "Skip the self-hosting confirmation")
|
|
521
|
-
.option("--hq-root <path>", "HQ root to sync",
|
|
687
|
+
.option("--hq-root <path>", "HQ root to sync", deps.defaultHqRoot())
|
|
522
688
|
.action(async (opts) => {
|
|
523
689
|
try {
|
|
524
|
-
await selfDeployOutpost(opts,
|
|
690
|
+
await selfDeployOutpost(opts, deps);
|
|
525
691
|
}
|
|
526
692
|
catch (err) {
|
|
527
693
|
fail(err);
|
|
528
694
|
}
|
|
529
695
|
});
|
|
696
|
+
outposts
|
|
697
|
+
.command("replica-sync", { hidden: true })
|
|
698
|
+
.description("Replicate your full HQ onto this box (personal pull + core rescue + repos). Runs on a timer.")
|
|
699
|
+
.option("--hq-root <path>", "HQ root to replicate into", deps.defaultHqRoot())
|
|
700
|
+
.action(async (opts) => {
|
|
701
|
+
// Best-effort background job: never hard-fail the systemd unit on a
|
|
702
|
+
// transient step. Swallow, log, and exit 0.
|
|
703
|
+
try {
|
|
704
|
+
await replicaSyncOutpost(opts, deps);
|
|
705
|
+
}
|
|
706
|
+
catch (err) {
|
|
707
|
+
console.warn(`replica-sync: unexpected error — ${err instanceof Error ? err.message : String(err)}`);
|
|
708
|
+
}
|
|
709
|
+
});
|
|
530
710
|
outposts
|
|
531
711
|
.command("provision")
|
|
532
712
|
.alias("create")
|
|
@@ -846,8 +1026,40 @@ export function registerOutpostsCommand(program, selfDeployOverrides = {}) {
|
|
|
846
1026
|
process.stdout.write(JSON.stringify(result, null, 2) + "\n");
|
|
847
1027
|
return;
|
|
848
1028
|
}
|
|
849
|
-
console.log(chalk.green("Login-URL regeneration requested. The box mints a fresh URL shortly
|
|
850
|
-
|
|
1029
|
+
console.log(chalk.green("Login-URL regeneration requested. The box mints a fresh URL shortly."));
|
|
1030
|
+
console.log(chalk.dim("Next: `hq outposts status" +
|
|
1031
|
+
(opts.id ? ` --id ${opts.id}` : "") +
|
|
1032
|
+
"` to read the login URL, open it and sign in, then paste the code back with " +
|
|
1033
|
+
"`hq outposts login-code <code>" +
|
|
1034
|
+
(opts.id ? ` --id ${opts.id}` : "") +
|
|
1035
|
+
"`."));
|
|
1036
|
+
}
|
|
1037
|
+
catch (err) {
|
|
1038
|
+
fail(err);
|
|
1039
|
+
}
|
|
1040
|
+
});
|
|
1041
|
+
outposts
|
|
1042
|
+
.command("login-code <code>")
|
|
1043
|
+
.description("Submit the Claude sign-in code for an Outpost that is awaiting login")
|
|
1044
|
+
.option("--id <outpostId>", "Outpost id (defaults to your primary box)")
|
|
1045
|
+
.option("--json", "Emit raw JSON")
|
|
1046
|
+
.action(async function (code, opts) {
|
|
1047
|
+
try {
|
|
1048
|
+
const trimmed = code.trim();
|
|
1049
|
+
if (!trimmed) {
|
|
1050
|
+
console.error(chalk.red("Provide the sign-in code: hq outposts login-code <code>"));
|
|
1051
|
+
process.exit(1);
|
|
1052
|
+
}
|
|
1053
|
+
const token = await ensureCognitoToken();
|
|
1054
|
+
const result = await submitLoginCode(token, trimmed, opts.id);
|
|
1055
|
+
if (opts.json) {
|
|
1056
|
+
process.stdout.write(JSON.stringify(result, null, 2) + "\n");
|
|
1057
|
+
return;
|
|
1058
|
+
}
|
|
1059
|
+
console.log(chalk.green("Code submitted — the box will finish signing in shortly."));
|
|
1060
|
+
console.log(chalk.dim("Track it: `hq outposts status" +
|
|
1061
|
+
(opts.id ? ` --id ${opts.id}` : "") +
|
|
1062
|
+
"` (it flips to `ready` once Claude auth completes)."));
|
|
851
1063
|
}
|
|
852
1064
|
catch (err) {
|
|
853
1065
|
fail(err);
|
|
@@ -885,5 +1097,4 @@ export function registerOutpostsCommand(program, selfDeployOverrides = {}) {
|
|
|
885
1097
|
}
|
|
886
1098
|
});
|
|
887
1099
|
}
|
|
888
|
-
//# sourceMappingURL=outposts.js.map
|
|
889
|
-
//# debugId=839f8f76-584d-5ea8-b86e-a92a55c32a16
|
|
1100
|
+
//# sourceMappingURL=outposts.js.map
|
|
@@ -33,8 +33,6 @@
|
|
|
33
33
|
* registry file under the v12 layout. (`hq update <pack>` re-resolves source
|
|
34
34
|
* from each pack's package.yaml; rationale lives in the layout-fix PR.)
|
|
35
35
|
*/
|
|
36
|
-
|
|
37
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a90272ca-94a1-5905-85f8-af12a01cb58a")}catch(e){}}();
|
|
38
36
|
import * as fs from 'fs';
|
|
39
37
|
import * as os from 'os';
|
|
40
38
|
import * as path from 'path';
|
|
@@ -1699,5 +1697,4 @@ export async function installPack(source, opts = {}) {
|
|
|
1699
1697
|
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
1700
1698
|
}
|
|
1701
1699
|
}
|
|
1702
|
-
//# sourceMappingURL=pack-install.js.map
|
|
1703
|
-
//# debugId=a90272ca-94a1-5905-85f8-af12a01cb58a
|
|
1700
|
+
//# sourceMappingURL=pack-install.js.map
|
package/dist/commands/packs.js
CHANGED
|
@@ -16,8 +16,6 @@
|
|
|
16
16
|
*
|
|
17
17
|
* Spec: knowledge/public/hq-core/package-yaml-spec.md.
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b743f774-8d9b-594b-9ce4-e7f5a44faca0")}catch(e){}}();
|
|
21
19
|
import * as fs from 'fs';
|
|
22
20
|
import * as path from 'path';
|
|
23
21
|
import * as readline from 'readline';
|
|
@@ -469,5 +467,4 @@ export function registerPacksCommand(parent) {
|
|
|
469
467
|
}
|
|
470
468
|
});
|
|
471
469
|
}
|
|
472
|
-
//# sourceMappingURL=packs.js.map
|
|
473
|
-
//# debugId=b743f774-8d9b-594b-9ce4-e7f5a44faca0
|
|
470
|
+
//# sourceMappingURL=packs.js.map
|
package/dist/commands/people.js
CHANGED
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
* roster for exactly ONE company (the active company, or the one named by
|
|
12
12
|
* `--company`); nothing reads across company boundaries.
|
|
13
13
|
*/
|
|
14
|
-
|
|
15
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="555055d9-98e2-5fcd-b736-4b1df12daf4d")}catch(e){}}();
|
|
16
14
|
import * as fs from "fs";
|
|
17
15
|
import { Option } from "commander";
|
|
18
16
|
import chalk from "chalk";
|
|
@@ -292,5 +290,4 @@ export function registerPeopleCommand(program, deps = {}) {
|
|
|
292
290
|
}
|
|
293
291
|
});
|
|
294
292
|
}
|
|
295
|
-
//# sourceMappingURL=people.js.map
|
|
296
|
-
//# debugId=555055d9-98e2-5fcd-b736-4b1df12daf4d
|
|
293
|
+
//# sourceMappingURL=people.js.map
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
* 8. Update packages/registry.yaml
|
|
13
13
|
* 9. Print next-step message
|
|
14
14
|
*/
|
|
15
|
-
|
|
16
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ccc2e70c-f577-5a47-9a29-31a206194392")}catch(e){}}();
|
|
17
15
|
import * as fs from 'fs';
|
|
18
16
|
import * as os from 'os';
|
|
19
17
|
import * as path from 'path';
|
|
@@ -165,5 +163,4 @@ async function installPackage(slug, company) {
|
|
|
165
163
|
}
|
|
166
164
|
}
|
|
167
165
|
}
|
|
168
|
-
//# sourceMappingURL=pkg-install.js.map
|
|
169
|
-
//# debugId=ccc2e70c-f577-5a47-9a29-31a206194392
|
|
166
|
+
//# sourceMappingURL=pkg-install.js.map
|
|
@@ -4,11 +4,8 @@
|
|
|
4
4
|
* Package installs use the content-pack installer, so this command delegates
|
|
5
5
|
* to the same list view as `hq packs list`.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="96eb060c-c1d0-5874-918f-e818f92c6242")}catch(e){}}();
|
|
9
7
|
import { registerPacksListCommand } from './packs.js';
|
|
10
8
|
export function registerPackageListCommand(parent) {
|
|
11
9
|
registerPacksListCommand(parent);
|
|
12
10
|
}
|
|
13
|
-
//# sourceMappingURL=pkg-list.js.map
|
|
14
|
-
//# debugId=96eb060c-c1d0-5874-918f-e818f92c6242
|
|
11
|
+
//# sourceMappingURL=pkg-list.js.map
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
* 2. Remove entry from packages/registry.yaml
|
|
6
6
|
* 3. Print next-step message
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e44da498-3e38-5643-b124-49aa2e91f42b")}catch(e){}}();
|
|
10
8
|
import * as fs from 'fs';
|
|
11
9
|
import * as path from 'path';
|
|
12
10
|
import chalk from 'chalk';
|
|
@@ -52,5 +50,4 @@ async function removePackage(slug) {
|
|
|
52
50
|
console.log(chalk.green(`\nRemoved ${slug}.`));
|
|
53
51
|
console.log(chalk.cyan('Run /package-remove ' + slug + ' in Claude to clean up merged content.'));
|
|
54
52
|
}
|
|
55
|
-
//# sourceMappingURL=pkg-remove.js.map
|
|
56
|
-
//# debugId=e44da498-3e38-5643-b124-49aa2e91f42b
|
|
53
|
+
//# sourceMappingURL=pkg-remove.js.map
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* If no slug: check all installed packages for updates.
|
|
5
5
|
* If slug given: update only that package.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="35fae6a0-f8e1-5fde-90d8-34ae4adb3c1c")}catch(e){}}();
|
|
9
7
|
import * as fs from 'fs';
|
|
10
8
|
import * as os from 'os';
|
|
11
9
|
import * as path from 'path';
|
|
@@ -123,5 +121,4 @@ async function updatePackages(slug) {
|
|
|
123
121
|
}
|
|
124
122
|
console.log(`\n${updatedCount} package(s) updated${updatedCount > 0 ? '.' : ' — everything is current.'}`);
|
|
125
123
|
}
|
|
126
|
-
//# sourceMappingURL=pkg-update.js.map
|
|
127
|
-
//# debugId=35fae6a0-f8e1-5fde-90d8-34ae4adb3c1c
|
|
124
|
+
//# sourceMappingURL=pkg-update.js.map
|
package/dist/commands/publish.js
CHANGED
|
@@ -27,8 +27,6 @@
|
|
|
27
27
|
* - pack-install.ts:validateManifest (the 10 validation rules)
|
|
28
28
|
* - manifest.ts (modules.yaml read/write for provenance)
|
|
29
29
|
*/
|
|
30
|
-
|
|
31
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e2f6607e-188c-57f9-beba-a81488d15225")}catch(e){}}();
|
|
32
30
|
import * as fs from 'fs';
|
|
33
31
|
import * as os from 'os';
|
|
34
32
|
import * as path from 'path';
|
|
@@ -405,5 +403,4 @@ export function registerPublishCommand(program) {
|
|
|
405
403
|
}
|
|
406
404
|
});
|
|
407
405
|
}
|
|
408
|
-
//# sourceMappingURL=publish.js.map
|
|
409
|
-
//# debugId=e2f6607e-188c-57f9-beba-a81488d15225
|
|
406
|
+
//# sourceMappingURL=publish.js.map
|
package/dist/commands/reindex.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="91aee9b3-dd72-5f05-99a8-d23b37f5eabe")}catch(e){}}();
|
|
3
1
|
import { reindex } from '@indigoai-us/hq-cloud';
|
|
4
2
|
export function registerReindexCommand(program) {
|
|
5
3
|
program
|
|
@@ -34,5 +32,4 @@ export function registerReindexCommand(program) {
|
|
|
34
32
|
process.exit(status);
|
|
35
33
|
});
|
|
36
34
|
}
|
|
37
|
-
//# sourceMappingURL=reindex.js.map
|
|
38
|
-
//# debugId=91aee9b3-dd72-5f05-99a8-d23b37f5eabe
|
|
35
|
+
//# sourceMappingURL=reindex.js.map
|
package/dist/commands/rescue.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e0da62c9-7fd5-5514-b2d0-1b5b76ebcd21")}catch(e){}}();
|
|
3
1
|
import { spawnSync } from 'child_process';
|
|
4
2
|
import * as fs from 'fs';
|
|
5
3
|
import * as path from 'path';
|
|
@@ -157,5 +155,4 @@ export function registerRescueCommand(program) {
|
|
|
157
155
|
}
|
|
158
156
|
});
|
|
159
157
|
}
|
|
160
|
-
//# sourceMappingURL=rescue.js.map
|
|
161
|
-
//# debugId=e0da62c9-7fd5-5514-b2d0-1b5b76ebcd21
|
|
158
|
+
//# sourceMappingURL=rescue.js.map
|
package/dist/commands/run.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="26bb7e02-3864-5c66-8232-3abc8fc17dc1")}catch(e){}}();
|
|
3
1
|
import { spawn } from 'node:child_process';
|
|
4
2
|
import * as path from 'node:path';
|
|
5
3
|
import * as fs from 'node:fs';
|
|
@@ -144,5 +142,4 @@ export function registerRunCommand(program) {
|
|
|
144
142
|
}
|
|
145
143
|
});
|
|
146
144
|
}
|
|
147
|
-
//# sourceMappingURL=run.js.map
|
|
148
|
-
//# debugId=26bb7e02-3864-5c66-8232-3abc8fc17dc1
|
|
145
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -32,8 +32,6 @@
|
|
|
32
32
|
* actually written (we do NOT rely solely on the pre-flight scan or on the
|
|
33
33
|
* tar binary's own protections).
|
|
34
34
|
*/
|
|
35
|
-
|
|
36
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="372e4f76-03b2-5287-ac66-249543f88937")}catch(e){}}();
|
|
37
35
|
import { execFileSync } from 'child_process';
|
|
38
36
|
import * as fs from 'fs';
|
|
39
37
|
import * as path from 'path';
|
|
@@ -343,5 +341,4 @@ export function safeExtractTarball(tarballPath, finalDir, opts = {}) {
|
|
|
343
341
|
}
|
|
344
342
|
}
|
|
345
343
|
}
|
|
346
|
-
//# sourceMappingURL=safe-extract.js.map
|
|
347
|
-
//# debugId=372e4f76-03b2-5287-ac66-249543f88937
|
|
344
|
+
//# sourceMappingURL=safe-extract.js.map
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
/** Human label for a secrets scope: "your personal vault" or "company <slug-or-uid>". */
|
|
2
|
-
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="718913a3-f80f-5bff-928e-a7aa9f51dd0d")}catch(e){}}();
|
|
4
2
|
export function describeSecretsScope(ref) {
|
|
5
3
|
if (ref.personal)
|
|
6
4
|
return "your personal vault";
|
|
@@ -15,5 +13,4 @@ export function formatSecretsListHeader(scope) {
|
|
|
15
13
|
export function formatSecretsListEmpty(scope) {
|
|
16
14
|
return `No secrets found for ${scope}.`;
|
|
17
15
|
}
|
|
18
|
-
//# sourceMappingURL=secrets-scope.js.map
|
|
19
|
-
//# debugId=718913a3-f80f-5bff-928e-a7aa9f51dd0d
|
|
16
|
+
//# sourceMappingURL=secrets-scope.js.map
|
package/dist/commands/secrets.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="136bd272-0091-5fce-9a93-a2a375f98b38")}catch(e){}}();
|
|
3
1
|
import chalk from "chalk";
|
|
4
2
|
import * as readline from "node:readline";
|
|
5
3
|
import { spawn } from "node:child_process";
|
|
@@ -1396,5 +1394,4 @@ export function registerSecretsCommand(program) {
|
|
|
1396
1394
|
console.log(chalk.green("Secrets cache cleared."));
|
|
1397
1395
|
});
|
|
1398
1396
|
}
|
|
1399
|
-
//# sourceMappingURL=secrets.js.map
|
|
1400
|
-
//# debugId=136bd272-0091-5fce-9a93-a2a375f98b38
|
|
1397
|
+
//# sourceMappingURL=secrets.js.map
|
package/dist/commands/signals.js
CHANGED
|
@@ -19,8 +19,6 @@
|
|
|
19
19
|
* agents can't fabricate a signal type even if they bypass the CLI's
|
|
20
20
|
* --type flag parsing.
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="395fa417-375a-55e7-b881-e65431742835")}catch(e){}}();
|
|
24
22
|
import * as fs from "node:fs";
|
|
25
23
|
import * as path from "node:path";
|
|
26
24
|
import chalk from "chalk";
|
|
@@ -241,5 +239,4 @@ export function registerSignalsCommand(program) {
|
|
|
241
239
|
.option("--format <fmt>", "Output format: table | json (default: table for TTY, json piped)")
|
|
242
240
|
.action(withErrorHandling(async (options) => runEntities(options)));
|
|
243
241
|
}
|
|
244
|
-
//# sourceMappingURL=signals.js.map
|
|
245
|
-
//# debugId=395fa417-375a-55e7-b881-e65431742835
|
|
242
|
+
//# sourceMappingURL=signals.js.map
|
package/dist/commands/skill.js
CHANGED
|
@@ -32,8 +32,6 @@
|
|
|
32
32
|
* derived `authorPersonUid`; the CLI never sends an author. An optional
|
|
33
33
|
* `--note` rides as `authorNote` (the change's rationale / failure context).
|
|
34
34
|
*/
|
|
35
|
-
|
|
36
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5bdf8a18-3088-5615-b596-9be2c9fdb5cc")}catch(e){}}();
|
|
37
35
|
import * as fs from "node:fs";
|
|
38
36
|
import * as path from "node:path";
|
|
39
37
|
import { createHash } from "node:crypto";
|
|
@@ -589,5 +587,4 @@ export function registerSkillCommand(program, deps = {}) {
|
|
|
589
587
|
});
|
|
590
588
|
return skill;
|
|
591
589
|
}
|
|
592
|
-
//# sourceMappingURL=skill.js.map
|
|
593
|
-
//# debugId=5bdf8a18-3088-5615-b596-9be2c9fdb5cc
|
|
590
|
+
//# sourceMappingURL=skill.js.map
|
package/dist/commands/sources.js
CHANGED
|
@@ -17,8 +17,6 @@
|
|
|
17
17
|
* --format 'table' when stdout is a TTY, 'json' when piped.
|
|
18
18
|
* --limit 50.
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1123e933-4c37-5679-ae51-84cffd42e31b")}catch(e){}}();
|
|
22
20
|
import * as fs from "node:fs";
|
|
23
21
|
import * as path from "node:path";
|
|
24
22
|
import chalk from "chalk";
|
|
@@ -251,5 +249,4 @@ export function registerSourcesCommand(program) {
|
|
|
251
249
|
.option("--format <fmt>", "Output format: table | json (default: table for TTY, json piped)")
|
|
252
250
|
.action(withErrorHandling(async (options) => runEntities(options)));
|
|
253
251
|
}
|
|
254
|
-
//# sourceMappingURL=sources.js.map
|
|
255
|
-
//# debugId=1123e933-4c37-5679-ae51-84cffd42e31b
|
|
252
|
+
//# sourceMappingURL=sources.js.map
|
|
@@ -30,8 +30,6 @@
|
|
|
30
30
|
* in package.json — revert that line to `^5.20.0` (or whatever the
|
|
31
31
|
* published cut is) once US-004 ships to npm.
|
|
32
32
|
*/
|
|
33
|
-
|
|
34
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="534a51ec-53e8-5cde-98c6-5ffc1741d2c1")}catch(e){}}();
|
|
35
33
|
import chalk from "chalk";
|
|
36
34
|
import * as fs from "node:fs";
|
|
37
35
|
import * as path from "node:path";
|
|
@@ -245,5 +243,4 @@ export function registerSyncModeCommand(syncCmd) {
|
|
|
245
243
|
}
|
|
246
244
|
});
|
|
247
245
|
}
|
|
248
|
-
//# sourceMappingURL=sync-mode.js.map
|
|
249
|
-
//# debugId=534a51ec-53e8-5cde-98c6-5ffc1741d2c1
|
|
246
|
+
//# sourceMappingURL=sync-mode.js.map
|
|
@@ -36,8 +36,6 @@
|
|
|
36
36
|
* release is unpublished, hq-cli pins `@indigoai-us/hq-cloud` to
|
|
37
37
|
* `file:../hq-cloud` via `pnpm.overrides`.
|
|
38
38
|
*/
|
|
39
|
-
|
|
40
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8cdf980e-e3cf-585c-b2e5-1615765675a1")}catch(e){}}();
|
|
41
39
|
import chalk from "chalk";
|
|
42
40
|
import * as readline from "node:readline";
|
|
43
41
|
import * as fs from "node:fs";
|
|
@@ -334,5 +332,4 @@ export function registerSyncNarrowCommand(syncCmd) {
|
|
|
334
332
|
}
|
|
335
333
|
});
|
|
336
334
|
}
|
|
337
|
-
//# sourceMappingURL=sync-narrow.js.map
|
|
338
|
-
//# debugId=8cdf980e-e3cf-585c-b2e5-1615765675a1
|
|
335
|
+
//# sourceMappingURL=sync-narrow.js.map
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* hq modules sync command (US-004)
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="abaf6ba7-702e-53e3-9d38-21182f05e529")}catch(e){}}();
|
|
6
4
|
import * as fs from 'fs';
|
|
7
5
|
import * as path from 'path';
|
|
8
6
|
import { findHqRoot, readManifest, readLock, writeLock, getModulesDir, } from '../utils/manifest.js';
|
|
@@ -111,5 +109,4 @@ export function registerSyncCommand(program) {
|
|
|
111
109
|
}
|
|
112
110
|
});
|
|
113
111
|
}
|
|
114
|
-
//# sourceMappingURL=sync.js.map
|
|
115
|
-
//# debugId=abaf6ba7-702e-53e3-9d38-21182f05e529
|
|
112
|
+
//# sourceMappingURL=sync.js.map
|