@indigoai-us/hq-cloud 5.48.4 → 6.0.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/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/reindex.d.ts +23 -0
- package/dist/cli/reindex.d.ts.map +1 -0
- package/dist/cli/reindex.js +45 -0
- package/dist/cli/reindex.js.map +1 -0
- package/dist/cli/reindex.test.d.ts +11 -0
- package/dist/cli/reindex.test.d.ts.map +1 -0
- package/dist/cli/{master-sync.test.js → reindex.test.js} +15 -15
- package/dist/cli/reindex.test.js.map +1 -0
- package/dist/cli/rescue.d.ts.map +1 -1
- package/dist/cli/rescue.js +16 -1
- package/dist/cli/rescue.js.map +1 -1
- package/dist/cli/rescue.reindex.test.d.ts +2 -0
- package/dist/cli/rescue.reindex.test.d.ts.map +1 -0
- package/dist/cli/rescue.reindex.test.js +41 -0
- package/dist/cli/rescue.reindex.test.js.map +1 -0
- package/dist/cli/share.test.js +2 -2
- package/dist/cli/share.test.js.map +1 -1
- package/dist/cli/sync.d.ts +9 -0
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +17 -0
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/sync.test.js +20 -0
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/scripts/{master-sync.sh → reindex.sh} +10 -10
- package/scripts/replace-rescue.sh +20 -20
- package/src/cli/index.ts +3 -3
- package/src/cli/{master-sync.test.ts → reindex.test.ts} +14 -14
- package/src/cli/reindex.ts +57 -0
- package/src/cli/rescue.reindex.test.ts +46 -0
- package/src/cli/rescue.ts +15 -1
- package/src/cli/share.test.ts +2 -2
- package/src/cli/sync.test.ts +23 -0
- package/src/cli/sync.ts +27 -0
- package/src/index.ts +3 -3
- package/dist/cli/master-sync.d.ts +0 -22
- package/dist/cli/master-sync.d.ts.map +0 -1
- package/dist/cli/master-sync.js +0 -44
- package/dist/cli/master-sync.js.map +0 -1
- package/dist/cli/master-sync.test.d.ts +0 -11
- package/dist/cli/master-sync.test.d.ts.map +0 -1
- package/dist/cli/master-sync.test.js.map +0 -1
- package/src/cli/master-sync.ts +0 -56
package/dist/cli/index.d.ts
CHANGED
|
@@ -16,8 +16,8 @@ export { accept, parseToken } from "./accept.js";
|
|
|
16
16
|
export type { AcceptOptions, AcceptResult } from "./accept.js";
|
|
17
17
|
export { promote } from "./promote.js";
|
|
18
18
|
export type { PromoteOptions, PromoteResult } from "./promote.js";
|
|
19
|
-
export {
|
|
20
|
-
export type {
|
|
19
|
+
export { reindex, reindexScriptPath } from "./reindex.js";
|
|
20
|
+
export type { ReindexOptions, ReindexResult } from "./reindex.js";
|
|
21
21
|
export { rescue, rescueScriptPath, buildRescueArgs } from "./rescue.js";
|
|
22
22
|
export type { RescueOptions, RescueResult } from "./rescue.js";
|
|
23
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvG,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvG,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -12,8 +12,8 @@ export { invite, listInvites, revokeInvite } from "./invite.js";
|
|
|
12
12
|
export { accept, parseToken } from "./accept.js";
|
|
13
13
|
export { promote } from "./promote.js";
|
|
14
14
|
// Skill/personal-overlay mirroring + workers-registry regen (formerly the
|
|
15
|
-
// hq-core master-sync.sh hook).
|
|
16
|
-
export {
|
|
15
|
+
// hq-core master-sync.sh hook; `hq reindex`).
|
|
16
|
+
export { reindex, reindexScriptPath } from "./reindex.js";
|
|
17
17
|
// Drift-preserving HQ-core re-sync (formerly bundled only inside the HQ Sync
|
|
18
18
|
// menubar app). Now shared between the app and `hq rescue`.
|
|
19
19
|
export { rescue, rescueScriptPath, buildRescueArgs } from "./rescue.js";
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1D,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,0EAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1D,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,0EAA0E;AAC1E,8CAA8C;AAC9C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAG1D,6EAA6E;AAC7E,4DAA4D;AAC5D,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Absolute path to the bundled reindex.sh. From the compiled module at
|
|
3
|
+
* dist/cli/reindex.js, the package root is two levels up; the script lives
|
|
4
|
+
* at <package-root>/scripts/reindex.sh.
|
|
5
|
+
*/
|
|
6
|
+
export declare function reindexScriptPath(): string;
|
|
7
|
+
export interface ReindexOptions {
|
|
8
|
+
/** HQ root to operate on. Defaults to process.cwd(). */
|
|
9
|
+
repoRoot?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ReindexResult {
|
|
12
|
+
/** Exit status of the underlying script (0 = success). */
|
|
13
|
+
status: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Run reindex against an HQ root. Synchronous — the script is cheap and
|
|
17
|
+
* idempotent, and callers (the hook shim, sync/rescue, tests) want the exit
|
|
18
|
+
* status. stdout/stderr from the script are forwarded to stderr so the
|
|
19
|
+
* caller's stdout stays clean (hooks must not emit stdout that the agent
|
|
20
|
+
* interprets).
|
|
21
|
+
*/
|
|
22
|
+
export declare function reindex(opts?: ReindexOptions): ReindexResult;
|
|
23
|
+
//# sourceMappingURL=reindex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.d.ts","sourceRoot":"","sources":["../../src/cli/reindex.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,CAWhE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hq reindex — surfaces namespaced skills as Claude Code skill wrappers,
|
|
3
|
+
* mirrors personal/{knowledge,policies,workers,settings} into core/, prunes
|
|
4
|
+
* orphan wrappers, and regenerates the workers registry.
|
|
5
|
+
*
|
|
6
|
+
* The implementation lives in scripts/reindex.sh, shipped with this package.
|
|
7
|
+
* This module resolves that script relative to the package (dist/cli → package
|
|
8
|
+
* root) and execs it against the caller's HQ root. Historically the script ran
|
|
9
|
+
* directly as a Claude Code hook inside hq-core (named "master-sync"); it now
|
|
10
|
+
* lives here so a single copy is maintained, and the hq-core hook is a thin
|
|
11
|
+
* shim over `hq reindex`.
|
|
12
|
+
*/
|
|
13
|
+
import { spawnSync } from "child_process";
|
|
14
|
+
import { fileURLToPath } from "url";
|
|
15
|
+
import path from "path";
|
|
16
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
+
const __dirname = path.dirname(__filename);
|
|
18
|
+
/**
|
|
19
|
+
* Absolute path to the bundled reindex.sh. From the compiled module at
|
|
20
|
+
* dist/cli/reindex.js, the package root is two levels up; the script lives
|
|
21
|
+
* at <package-root>/scripts/reindex.sh.
|
|
22
|
+
*/
|
|
23
|
+
export function reindexScriptPath() {
|
|
24
|
+
return path.resolve(__dirname, "..", "..", "scripts", "reindex.sh");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Run reindex against an HQ root. Synchronous — the script is cheap and
|
|
28
|
+
* idempotent, and callers (the hook shim, sync/rescue, tests) want the exit
|
|
29
|
+
* status. stdout/stderr from the script are forwarded to stderr so the
|
|
30
|
+
* caller's stdout stays clean (hooks must not emit stdout that the agent
|
|
31
|
+
* interprets).
|
|
32
|
+
*/
|
|
33
|
+
export function reindex(opts = {}) {
|
|
34
|
+
const repoRoot = opts.repoRoot ?? process.cwd();
|
|
35
|
+
const script = reindexScriptPath();
|
|
36
|
+
const res = spawnSync("bash", [script, repoRoot], {
|
|
37
|
+
stdio: ["ignore", "inherit", "inherit"],
|
|
38
|
+
});
|
|
39
|
+
if (res.error) {
|
|
40
|
+
process.stderr.write(`reindex: failed to run ${script}: ${res.error.message}\n`);
|
|
41
|
+
return { status: 1 };
|
|
42
|
+
}
|
|
43
|
+
return { status: res.status ?? 1 };
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=reindex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.js","sourceRoot":"","sources":["../../src/cli/reindex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,OAAuB,EAAE;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;QAChD,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;KACxC,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACjF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for `hq reindex` (the formerly-bash hq-core hook, now shipped
|
|
3
|
+
* in this package and invoked via the CLI).
|
|
4
|
+
*
|
|
5
|
+
* The logic itself lives in scripts/reindex.sh; these tests exercise it via
|
|
6
|
+
* the reindex() wrapper against a temp HQ tree, asserting the observable
|
|
7
|
+
* filesystem outcomes (skill wrappers, personal-overlay mirroring) rather than
|
|
8
|
+
* re-deriving the bash internals.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=reindex.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.test.d.ts","sourceRoot":"","sources":["../../src/cli/reindex.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Unit tests for `hq
|
|
2
|
+
* Unit tests for `hq reindex` (the formerly-bash hq-core hook, now shipped
|
|
3
3
|
* in this package and invoked via the CLI).
|
|
4
4
|
*
|
|
5
|
-
* The logic itself lives in scripts/
|
|
6
|
-
* the
|
|
5
|
+
* The logic itself lives in scripts/reindex.sh; these tests exercise it via
|
|
6
|
+
* the reindex() wrapper against a temp HQ tree, asserting the observable
|
|
7
7
|
* filesystem outcomes (skill wrappers, personal-overlay mirroring) rather than
|
|
8
8
|
* re-deriving the bash internals.
|
|
9
9
|
*/
|
|
@@ -11,15 +11,15 @@ import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
|
11
11
|
import * as fs from "fs";
|
|
12
12
|
import * as path from "path";
|
|
13
13
|
import * as os from "os";
|
|
14
|
-
import {
|
|
15
|
-
describe("
|
|
14
|
+
import { reindex, reindexScriptPath } from "./reindex.js";
|
|
15
|
+
describe("reindexScriptPath", () => {
|
|
16
16
|
it("resolves to the bundled script and the file exists", () => {
|
|
17
|
-
const p =
|
|
18
|
-
expect(p.endsWith(path.join("scripts", "
|
|
17
|
+
const p = reindexScriptPath();
|
|
18
|
+
expect(p.endsWith(path.join("scripts", "reindex.sh"))).toBe(true);
|
|
19
19
|
expect(fs.existsSync(p)).toBe(true);
|
|
20
20
|
});
|
|
21
21
|
});
|
|
22
|
-
describe("
|
|
22
|
+
describe("reindex", () => {
|
|
23
23
|
let root;
|
|
24
24
|
beforeEach(() => {
|
|
25
25
|
root = fs.mkdtempSync(path.join(os.tmpdir(), "ms-test-"));
|
|
@@ -36,7 +36,7 @@ describe("masterSync", () => {
|
|
|
36
36
|
writeSkill("core/skills/demo");
|
|
37
37
|
fs.writeFileSync(path.join(root, "core/skills/demo/helper.md"), "h\n");
|
|
38
38
|
writeSkill("companies/acme/skills/widget");
|
|
39
|
-
const { status } =
|
|
39
|
+
const { status } = reindex({ repoRoot: root });
|
|
40
40
|
expect(status).toBe(0);
|
|
41
41
|
const coreWrapper = path.join(root, ".claude/skills/core:demo");
|
|
42
42
|
expect(fs.lstatSync(path.join(coreWrapper, "SKILL.md")).isSymbolicLink()).toBe(true);
|
|
@@ -49,7 +49,7 @@ describe("masterSync", () => {
|
|
|
49
49
|
it("mirrors the personal overlay into core/<type>/", () => {
|
|
50
50
|
fs.mkdirSync(path.join(root, "personal/policies"), { recursive: true });
|
|
51
51
|
fs.writeFileSync(path.join(root, "personal/policies/myrule.md"), "rule\n");
|
|
52
|
-
const { status } =
|
|
52
|
+
const { status } = reindex({ repoRoot: root });
|
|
53
53
|
expect(status).toBe(0);
|
|
54
54
|
const link = path.join(root, "core/policies/myrule.md");
|
|
55
55
|
expect(fs.lstatSync(link).isSymbolicLink()).toBe(true);
|
|
@@ -57,17 +57,17 @@ describe("masterSync", () => {
|
|
|
57
57
|
});
|
|
58
58
|
it("prunes orphan managed wrappers when the source skill disappears", () => {
|
|
59
59
|
writeSkill("core/skills/demo");
|
|
60
|
-
|
|
60
|
+
reindex({ repoRoot: root });
|
|
61
61
|
expect(fs.existsSync(path.join(root, ".claude/skills/core:demo"))).toBe(true);
|
|
62
62
|
fs.rmSync(path.join(root, "core/skills/demo"), { recursive: true, force: true });
|
|
63
|
-
|
|
63
|
+
reindex({ repoRoot: root });
|
|
64
64
|
expect(fs.existsSync(path.join(root, ".claude/skills/core:demo"))).toBe(false);
|
|
65
65
|
});
|
|
66
66
|
it("is idempotent — a second run is a no-op", () => {
|
|
67
67
|
writeSkill("core/skills/demo");
|
|
68
|
-
expect(
|
|
69
|
-
expect(
|
|
68
|
+
expect(reindex({ repoRoot: root }).status).toBe(0);
|
|
69
|
+
expect(reindex({ repoRoot: root }).status).toBe(0);
|
|
70
70
|
expect(fs.readlinkSync(path.join(root, ".claude/skills/core:demo/SKILL.md"))).toBe("../../../core/skills/demo/SKILL.md");
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
|
-
//# sourceMappingURL=
|
|
73
|
+
//# sourceMappingURL=reindex.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.test.js","sourceRoot":"","sources":["../../src/cli/reindex.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/rescue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rescue.d.ts","sourceRoot":"","sources":["../../src/cli/rescue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rescue.d.ts","sourceRoot":"","sources":["../../src/cli/rescue.ts"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,MAAM,WAAW,aAAa;IAC5B;mDAC+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;yCACqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;+EAC2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;yBACqB;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;uBACmB;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;kCAC8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;kCAC8B;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;qEACiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,aAAkB,GAAG,MAAM,EAAE,CAiBlE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,GAAE,aAAkB,GAAG,YAAY,CA2B7D"}
|
package/dist/cli/rescue.js
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { spawnSync } from "child_process";
|
|
18
18
|
import { fileURLToPath } from "url";
|
|
19
19
|
import path from "path";
|
|
20
|
+
import { reindex } from "./reindex.js";
|
|
20
21
|
const __filename = fileURLToPath(import.meta.url);
|
|
21
22
|
const __dirname = path.dirname(__filename);
|
|
22
23
|
/**
|
|
@@ -83,6 +84,20 @@ export function rescue(opts = {}) {
|
|
|
83
84
|
process.stderr.write(`rescue: failed to run ${script}: ${res.error.message}\n`);
|
|
84
85
|
return { status: 1 };
|
|
85
86
|
}
|
|
86
|
-
|
|
87
|
+
const status = res.status ?? 1;
|
|
88
|
+
// A successful, non-dry-run rescue re-lays-down core/, so refresh the
|
|
89
|
+
// generated skill wrappers, personal-overlay mirrors, and workers registry.
|
|
90
|
+
// Best-effort + idempotent — never overrides the rescue's own exit status.
|
|
91
|
+
// repoRoot falls back to process.cwd() (reindex's default) when hqRoot is
|
|
92
|
+
// omitted, matching the rescue script's own cwd-based default.
|
|
93
|
+
if (status === 0 && !opts.dryRun) {
|
|
94
|
+
try {
|
|
95
|
+
reindex({ repoRoot: opts.hqRoot });
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// best-effort
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return { status };
|
|
87
102
|
}
|
|
88
103
|
//# sourceMappingURL=rescue.js.map
|
package/dist/cli/rescue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rescue.js","sourceRoot":"","sources":["../../src/cli/rescue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"rescue.js","sourceRoot":"","sources":["../../src/cli/rescue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rescue.reindex.test.d.ts","sourceRoot":"","sources":["../../src/cli/rescue.reindex.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wiring tests: `rescue()` runs `reindex()` after a successful, non-dry-run
|
|
3
|
+
* rescue so the generated skill wrappers / personal mirrors / workers registry
|
|
4
|
+
* are refreshed once core/ has been re-laid-down.
|
|
5
|
+
*
|
|
6
|
+
* child_process is mocked so the real replace-rescue.sh never runs, and
|
|
7
|
+
* ./reindex.js is mocked to a spy so we assert the call without spawning.
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
10
|
+
vi.mock("child_process", () => ({
|
|
11
|
+
spawnSync: vi.fn(() => ({ status: 0 })),
|
|
12
|
+
}));
|
|
13
|
+
vi.mock("./reindex.js", () => ({
|
|
14
|
+
reindex: vi.fn(() => ({ status: 0 })),
|
|
15
|
+
}));
|
|
16
|
+
import { spawnSync } from "child_process";
|
|
17
|
+
import { reindex } from "./reindex.js";
|
|
18
|
+
import { rescue } from "./rescue.js";
|
|
19
|
+
describe("rescue → reindex", () => {
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
vi.clearAllMocks();
|
|
22
|
+
spawnSync.mockReturnValue({ status: 0 });
|
|
23
|
+
});
|
|
24
|
+
it("refreshes via reindex after a successful rescue", () => {
|
|
25
|
+
const r = rescue({ hqRoot: "/tmp/hq", assumeYes: true });
|
|
26
|
+
expect(r.status).toBe(0);
|
|
27
|
+
expect(reindex).toHaveBeenCalledTimes(1);
|
|
28
|
+
expect(reindex).toHaveBeenCalledWith({ repoRoot: "/tmp/hq" });
|
|
29
|
+
});
|
|
30
|
+
it("does NOT run reindex on a dry-run", () => {
|
|
31
|
+
rescue({ hqRoot: "/tmp/hq", dryRun: true });
|
|
32
|
+
expect(reindex).not.toHaveBeenCalled();
|
|
33
|
+
});
|
|
34
|
+
it("does NOT run reindex when the rescue script fails", () => {
|
|
35
|
+
spawnSync.mockReturnValueOnce({ status: 1 });
|
|
36
|
+
const r = rescue({ hqRoot: "/tmp/hq", assumeYes: true });
|
|
37
|
+
expect(r.status).toBe(1);
|
|
38
|
+
expect(reindex).not.toHaveBeenCalled();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=rescue.reindex.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rescue.reindex.test.js","sourceRoot":"","sources":["../../src/cli/rescue.reindex.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE9D,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;CACxC,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;CACtC,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QAClB,SAAiD,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC1D,SAAiD,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cli/share.test.js
CHANGED
|
@@ -1899,7 +1899,7 @@ describe("share", () => {
|
|
|
1899
1899
|
// target's bytes under the link's key while a nested symlink was
|
|
1900
1900
|
// silently dropped from every push. The link topology never survived a
|
|
1901
1901
|
// round trip — fresh-machine pulls landed in a state where overlay
|
|
1902
|
-
// symlinks just didn't exist until
|
|
1902
|
+
// symlinks just didn't exist until reindex.sh recreated them
|
|
1903
1903
|
// locally. The fix detects symlinks via lstat / Dirent.isSymbolicLink
|
|
1904
1904
|
// and routes them to a new uploadSymlink primitive that PUTs a
|
|
1905
1905
|
// zero-byte object with x-amz-meta-hq-symlink-target carrying the
|
|
@@ -1933,7 +1933,7 @@ describe("share", () => {
|
|
|
1933
1933
|
const realPolicy = path.join(policiesDir, "real.md");
|
|
1934
1934
|
fs.writeFileSync(realPolicy, "real content");
|
|
1935
1935
|
const linkPolicy = path.join(policiesDir, "link.md");
|
|
1936
|
-
// Mirrors the
|
|
1936
|
+
// Mirrors the reindex.sh overlay shape: relative target pointing
|
|
1937
1937
|
// to a sibling in the same dir.
|
|
1938
1938
|
fs.symlinkSync("real.md", linkPolicy);
|
|
1939
1939
|
const result = await share({
|