@hivehub/rulebook 5.5.1 → 5.5.2
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/core/claude-settings-manager.d.ts.map +1 -1
- package/dist/core/claude-settings-manager.js +9 -3
- package/dist/core/claude-settings-manager.js.map +1 -1
- package/dist/core/ralph-scripts.d.ts.map +1 -1
- package/dist/core/ralph-scripts.js +7 -6
- package/dist/core/ralph-scripts.js.map +1 -1
- package/dist/utils/file-system.d.ts +22 -0
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +31 -0
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/git-hooks.d.ts.map +1 -1
- package/dist/utils/git-hooks.js +3 -2
- package/dist/utils/git-hooks.js.map +1 -1
- package/package.json +2 -1
- package/templates/hooks/check-context-and-handoff.sh +76 -76
- package/templates/hooks/enforce-team-for-background-agents.sh +55 -55
- package/templates/hooks/on-compact-reinject.sh +34 -34
- package/templates/hooks/resume-from-handoff.sh +61 -61
- package/templates/hooks/terse-activate.sh +197 -197
- package/templates/hooks/terse-mode-tracker.sh +187 -187
- package/templates/ralph/ralph-history.sh +5 -5
- package/templates/ralph/ralph-init.sh +5 -5
- package/templates/ralph/ralph-pause.sh +5 -5
- package/templates/ralph/ralph-run.sh +5 -5
- package/templates/ralph/ralph-status.sh +5 -5
- package/templates/skills/workflows/ralph/install.sh +87 -87
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-settings-manager.d.ts","sourceRoot":"","sources":["../../src/core/claude-settings-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-settings-manager.d.ts","sourceRoot":"","sources":["../../src/core/claude-settings-manager.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAiCD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA2H7C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
-
import { readFile, writeFile, fileExists, ensureDir } from '../utils/file-system.js';
|
|
2
|
+
import { readFile, writeFile, writeShellScript, fileExists, ensureDir, } from '../utils/file-system.js';
|
|
3
3
|
import { getTemplatesDir } from './generator.js';
|
|
4
4
|
const SIGNATURES = {
|
|
5
5
|
teamEnforce: 'enforce-team-for-background-agents',
|
|
@@ -178,8 +178,14 @@ async function installHookScripts(projectRoot, desire) {
|
|
|
178
178
|
const src = path.join(templatesHookDir, name);
|
|
179
179
|
if (!(await fileExists(src)))
|
|
180
180
|
continue; // template not present yet
|
|
181
|
-
const
|
|
182
|
-
|
|
181
|
+
const dest = path.join(destDir, name);
|
|
182
|
+
if (name.endsWith('.sh')) {
|
|
183
|
+
await writeShellScript(dest, { sourcePath: src });
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
const content = await readFile(src);
|
|
187
|
+
await writeFile(dest, content);
|
|
188
|
+
}
|
|
183
189
|
}
|
|
184
190
|
}
|
|
185
191
|
//# sourceMappingURL=claude-settings-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-settings-manager.js","sourceRoot":"","sources":["../../src/core/claude-settings-manager.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"claude-settings-manager.js","sourceRoot":"","sources":["../../src/core/claude-settings-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ralph-scripts.d.ts","sourceRoot":"","sources":["../../src/core/ralph-scripts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ralph-scripts.d.ts","sourceRoot":"","sources":["../../src/core/ralph-scripts.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BhF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
-
import { promises as fs } from 'fs';
|
|
3
2
|
import { fileURLToPath } from 'url';
|
|
4
|
-
import { copyFile, ensureDir } from '../utils/file-system.js';
|
|
3
|
+
import { copyFile, ensureDir, writeShellScript } from '../utils/file-system.js';
|
|
5
4
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
5
|
const __dirname = path.dirname(__filename);
|
|
7
6
|
/** Resolve templates/ralph directory (handles both dev and production). */
|
|
@@ -36,10 +35,12 @@ export async function installRalphScripts(projectRoot) {
|
|
|
36
35
|
const filename = `${scriptName}${ext}`;
|
|
37
36
|
const source = path.join(templatesDir, filename);
|
|
38
37
|
const destination = path.join(scriptsDir, filename);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
if (ext === '.sh') {
|
|
39
|
+
// Normalize line endings to LF and set 0o755 on POSIX.
|
|
40
|
+
await writeShellScript(destination, { sourcePath: source });
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
await copyFile(source, destination);
|
|
43
44
|
}
|
|
44
45
|
installed.push(path.join('.rulebook', 'scripts', filename));
|
|
45
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ralph-scripts.js","sourceRoot":"","sources":["../../src/core/ralph-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ralph-scripts.js","sourceRoot":"","sources":["../../src/core/ralph-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,2EAA2E;AAC3E,SAAS,oBAAoB;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,YAAY;IACZ,WAAW;IACX,cAAc;IACd,aAAa;IACb,eAAe;CACP,CAAC;AAEX,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAElE,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IAE5B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEpD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,uDAAuD;gBACvD,MAAM,gBAAgB,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -2,6 +2,28 @@ export declare function fileExists(filePath: string): Promise<boolean>;
|
|
|
2
2
|
export declare function readFile(filePath: string): Promise<string>;
|
|
3
3
|
export declare function writeFile(filePath: string, content: string): Promise<void>;
|
|
4
4
|
export declare function copyFile(source: string, destination: string): Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Normalize CRLF/CR line endings to LF.
|
|
7
|
+
*
|
|
8
|
+
* Shell scripts written by `rulebook init` MUST have LF endings. On macOS/Linux,
|
|
9
|
+
* bash interprets a trailing `\r` as part of the command and breaks every line
|
|
10
|
+
* (`set -\r u` fails, `function() {\r` fails to parse). A single template file
|
|
11
|
+
* authored on Windows without honoring `.gitattributes` poisons the entire init
|
|
12
|
+
* output. Normalize defensively at the write boundary.
|
|
13
|
+
*/
|
|
14
|
+
export declare function normalizeLineEndings(content: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Write a shell script to disk with LF line endings and (on POSIX) `0o755` mode.
|
|
17
|
+
*
|
|
18
|
+
* Use this for `.sh` / `.bash` files instead of `writeFile` or `copyFile`.
|
|
19
|
+
* Accepts either a string (already-loaded template content) or a source path
|
|
20
|
+
* (the file is read, normalized, and re-written).
|
|
21
|
+
*/
|
|
22
|
+
export declare function writeShellScript(destination: string, contentOrSourcePath: {
|
|
23
|
+
content: string;
|
|
24
|
+
} | {
|
|
25
|
+
sourcePath: string;
|
|
26
|
+
}): Promise<void>;
|
|
5
27
|
export declare function findFiles(pattern: string, cwd?: string): Promise<string[]>;
|
|
6
28
|
export declare function createBackup(filePath: string): Promise<string>;
|
|
7
29
|
export declare function ensureDir(dirPath: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEhE;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhF;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAM/F;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAOzE"}
|
|
1
|
+
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEhE;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhF;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAM/F;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAOzE"}
|
|
@@ -23,6 +23,37 @@ export async function copyFile(source, destination) {
|
|
|
23
23
|
await fs.mkdir(dir, { recursive: true });
|
|
24
24
|
await fs.copyFile(source, destination);
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Normalize CRLF/CR line endings to LF.
|
|
28
|
+
*
|
|
29
|
+
* Shell scripts written by `rulebook init` MUST have LF endings. On macOS/Linux,
|
|
30
|
+
* bash interprets a trailing `\r` as part of the command and breaks every line
|
|
31
|
+
* (`set -\r u` fails, `function() {\r` fails to parse). A single template file
|
|
32
|
+
* authored on Windows without honoring `.gitattributes` poisons the entire init
|
|
33
|
+
* output. Normalize defensively at the write boundary.
|
|
34
|
+
*/
|
|
35
|
+
export function normalizeLineEndings(content) {
|
|
36
|
+
return content.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Write a shell script to disk with LF line endings and (on POSIX) `0o755` mode.
|
|
40
|
+
*
|
|
41
|
+
* Use this for `.sh` / `.bash` files instead of `writeFile` or `copyFile`.
|
|
42
|
+
* Accepts either a string (already-loaded template content) or a source path
|
|
43
|
+
* (the file is read, normalized, and re-written).
|
|
44
|
+
*/
|
|
45
|
+
export async function writeShellScript(destination, contentOrSourcePath) {
|
|
46
|
+
const dir = path.dirname(destination);
|
|
47
|
+
await fs.mkdir(dir, { recursive: true });
|
|
48
|
+
const raw = 'content' in contentOrSourcePath
|
|
49
|
+
? contentOrSourcePath.content
|
|
50
|
+
: await fs.readFile(contentOrSourcePath.sourcePath, 'utf-8');
|
|
51
|
+
const normalized = normalizeLineEndings(raw);
|
|
52
|
+
await fs.writeFile(destination, normalized, 'utf-8');
|
|
53
|
+
if (process.platform !== 'win32') {
|
|
54
|
+
await fs.chmod(destination, 0o755);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
26
57
|
export async function findFiles(pattern, cwd = process.cwd()) {
|
|
27
58
|
return await glob(pattern, {
|
|
28
59
|
cwd,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,WAAmB;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IAC1E,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE;QACzB,GAAG;QACH,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,CAAC,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;KAC/D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,GAAG,QAAQ,WAAW,SAAS,EAAE,CAAC;IACrD,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,QAAgB;IACpD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-hooks.d.ts","sourceRoot":"","sources":["../../src/utils/git-hooks.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"git-hooks.d.ts","sourceRoot":"","sources":["../../src/utils/git-hooks.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAqJD,wBAAsB,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CnF;AAuQD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BlE"}
|
package/dist/utils/git-hooks.js
CHANGED
|
@@ -2,6 +2,7 @@ import { access, mkdir, writeFile, unlink, readFile } from 'fs/promises';
|
|
|
2
2
|
import { readFileSync } from 'fs';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
|
+
import { normalizeLineEndings } from './file-system.js';
|
|
5
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
7
|
const __dirname = path.dirname(__filename);
|
|
7
8
|
const LANGUAGE_HOOK_MAP = {
|
|
@@ -168,13 +169,13 @@ export async function installGitHooks(options) {
|
|
|
168
169
|
const { shellScript, nodeScript } = await generatePreCommitHook(languages, cwd);
|
|
169
170
|
const preCommitShellPath = path.join(hooksDir, 'pre-commit');
|
|
170
171
|
const preCommitNodePath = path.join(hooksDir, 'pre-commit.js');
|
|
171
|
-
await writeFile(preCommitShellPath, shellScript, { mode: 0o755 });
|
|
172
|
+
await writeFile(preCommitShellPath, normalizeLineEndings(shellScript), { mode: 0o755 });
|
|
172
173
|
await writeFile(preCommitNodePath, nodeScript, { mode: 0o644 });
|
|
173
174
|
// Generate and install pre-push hook
|
|
174
175
|
const { shellScript: prePushShell, nodeScript: prePushNode } = await generatePrePushHook(languages, cwd);
|
|
175
176
|
const prePushShellPath = path.join(hooksDir, 'pre-push');
|
|
176
177
|
const prePushNodePath = path.join(hooksDir, 'pre-push.js');
|
|
177
|
-
await writeFile(prePushShellPath, prePushShell, { mode: 0o755 });
|
|
178
|
+
await writeFile(prePushShellPath, normalizeLineEndings(prePushShell), { mode: 0o755 });
|
|
178
179
|
await writeFile(prePushNodePath, prePushNode, { mode: 0o644 });
|
|
179
180
|
}
|
|
180
181
|
async function generatePreCommitHook(languages, cwd) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-hooks.js","sourceRoot":"","sources":["../../src/utils/git-hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-hooks.js","sourceRoot":"","sources":["../../src/utils/git-hooks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hivehub/rulebook",
|
|
3
|
-
"version": "5.5.
|
|
3
|
+
"version": "5.5.2",
|
|
4
4
|
"description": "Tool-agnostic AI development framework. Standardize projects across Claude Code, Cursor, Gemini, Codex, Windsurf, Copilot with automated templates, quality gates, persistent memory, and framework detection for 28 languages, 17 frameworks, 13 MCP modules, and 20 services",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -104,6 +104,7 @@
|
|
|
104
104
|
"test:agent:full": "node scripts/test-agent-manager.js all",
|
|
105
105
|
"test:agent:comprehensive": "npx vitest run tests/agent-manager-comprehensive.test.ts",
|
|
106
106
|
"setup:mcp": "node scripts/setup-mcp-config.js",
|
|
107
|
+
"check:sh-eol": "node scripts/check-sh-eol.mjs",
|
|
107
108
|
"lint": "npx eslint src/**/*.ts --quiet",
|
|
108
109
|
"lint:fix": "npx eslint src/**/*.ts --fix --quiet",
|
|
109
110
|
"format": "npx prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# Claude Code Stop hook — context freshness monitor.
|
|
3
|
-
#
|
|
4
|
-
# Runs after every model turn. Estimates the current context usage
|
|
5
|
-
# from the JSONL transcript and, when it exceeds the configured
|
|
6
|
-
# threshold, emits additionalContext instructing the model to invoke
|
|
7
|
-
# the /handoff skill and tell the user to type /clear.
|
|
8
|
-
#
|
|
9
|
-
# Thresholds are read from .rulebook/rulebook.json `handoff` section.
|
|
10
|
-
# Defaults: warn=75, force=90 (percentage of estimated max context).
|
|
11
|
-
|
|
12
|
-
set -euo pipefail
|
|
13
|
-
|
|
14
|
-
# Read the hook input from stdin (Claude Code passes it as JSON)
|
|
15
|
-
input="$(cat)"
|
|
16
|
-
|
|
17
|
-
# Resolve project root from hook input cwd, NOT $(pwd) — the hook may be
|
|
18
|
-
# invoked from a sub-directory the user is currently editing.
|
|
19
|
-
PROJECT_ROOT=""
|
|
20
|
-
if [[ -n "$input" ]] && command -v jq &>/dev/null; then
|
|
21
|
-
PROJECT_ROOT="$(printf '%s' "$input" | jq -r '.cwd // empty' 2>/dev/null || true)"
|
|
22
|
-
fi
|
|
23
|
-
[[ -z "$PROJECT_ROOT" ]] && PROJECT_ROOT="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
24
|
-
|
|
25
|
-
CONFIG_FILE="${PROJECT_ROOT}/.rulebook/rulebook.json"
|
|
26
|
-
HANDOFF_DIR="${PROJECT_ROOT}/.rulebook/handoff"
|
|
27
|
-
|
|
28
|
-
# Defaults
|
|
29
|
-
WARN_PCT=75
|
|
30
|
-
FORCE_PCT=90
|
|
31
|
-
MAX_CONTEXT_CHARS=1600000 # ~400k tokens ≈ 1.6M chars (rough 1:4 ratio)
|
|
32
|
-
|
|
33
|
-
# Override from config if available
|
|
34
|
-
if [[ -f "$CONFIG_FILE" ]] && command -v jq &>/dev/null; then
|
|
35
|
-
WARN_PCT=$(jq -r '.handoff.warnThresholdPct // 75' "$CONFIG_FILE" 2>/dev/null || echo 75)
|
|
36
|
-
FORCE_PCT=$(jq -r '.handoff.forceThresholdPct // 90' "$CONFIG_FILE" 2>/dev/null || echo 90)
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# Try to find the transcript path from the session
|
|
40
|
-
# Claude Code stores transcripts as JSONL in ~/.claude/projects/<hash>/
|
|
41
|
-
# The hook input may or may not contain session info; we fall back to
|
|
42
|
-
# estimating from the input itself.
|
|
43
|
-
transcript_size=0
|
|
44
|
-
|
|
45
|
-
# Strategy 1: check the most recent JSONL in the project-specific Claude dir
|
|
46
|
-
CLAUDE_PROJECTS_DIR="${HOME}/.claude/projects"
|
|
47
|
-
if [[ -d "$CLAUDE_PROJECTS_DIR" ]]; then
|
|
48
|
-
latest_jsonl=$(find "$CLAUDE_PROJECTS_DIR" -name "*.jsonl" -type f -printf '%T@ %p\n' 2>/dev/null | sort -rn | head -1 | awk '{print $2}' || true)
|
|
49
|
-
if [[ -n "$latest_jsonl" && -f "$latest_jsonl" ]]; then
|
|
50
|
-
transcript_size=$(stat -c%s "$latest_jsonl" 2>/dev/null || stat -f%z "$latest_jsonl" 2>/dev/null || echo 0)
|
|
51
|
-
fi
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
# If we couldn't get transcript size, emit nothing (no-op)
|
|
55
|
-
if [[ "$transcript_size" -eq 0 ]]; then
|
|
56
|
-
printf '%s' '{}'
|
|
57
|
-
exit 0
|
|
58
|
-
fi
|
|
59
|
-
|
|
60
|
-
# Estimate context percentage
|
|
61
|
-
pct=$(( transcript_size * 100 / MAX_CONTEXT_CHARS ))
|
|
62
|
-
|
|
63
|
-
if [[ "$pct" -ge "$FORCE_PCT" ]]; then
|
|
64
|
-
# Force mode: write urgent sentinel + emit strong instruction
|
|
65
|
-
mkdir -p "$HANDOFF_DIR"
|
|
66
|
-
touch "${HANDOFF_DIR}/.urgent"
|
|
67
|
-
msg="⚠️ CONTEXT AT ${pct}% (FORCE THRESHOLD). You MUST invoke /handoff NOW to save session state to .rulebook/handoff/_pending.md. After it succeeds, tell the user: '>>> TYPE /clear NOW — your context will be auto-restored in the next session <<<'. Do NOT continue working until the user has typed /clear."
|
|
68
|
-
jq -nc --arg msg "$msg" '{ hookSpecificOutput: { hookEventName: "Stop", additionalContext: $msg } }'
|
|
69
|
-
elif [[ "$pct" -ge "$WARN_PCT" ]]; then
|
|
70
|
-
msg="⚠️ Context at ${pct}%. Recommended: invoke /handoff to save session state. After it succeeds, tell the user to type /clear for a fresh session."
|
|
71
|
-
jq -nc --arg msg "$msg" '{ hookSpecificOutput: { hookEventName: "Stop", additionalContext: $msg } }'
|
|
72
|
-
else
|
|
73
|
-
# Below threshold — no-op
|
|
74
|
-
printf '%s' '{}'
|
|
75
|
-
fi
|
|
76
|
-
exit 0
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Claude Code Stop hook — context freshness monitor.
|
|
3
|
+
#
|
|
4
|
+
# Runs after every model turn. Estimates the current context usage
|
|
5
|
+
# from the JSONL transcript and, when it exceeds the configured
|
|
6
|
+
# threshold, emits additionalContext instructing the model to invoke
|
|
7
|
+
# the /handoff skill and tell the user to type /clear.
|
|
8
|
+
#
|
|
9
|
+
# Thresholds are read from .rulebook/rulebook.json `handoff` section.
|
|
10
|
+
# Defaults: warn=75, force=90 (percentage of estimated max context).
|
|
11
|
+
|
|
12
|
+
set -euo pipefail
|
|
13
|
+
|
|
14
|
+
# Read the hook input from stdin (Claude Code passes it as JSON)
|
|
15
|
+
input="$(cat)"
|
|
16
|
+
|
|
17
|
+
# Resolve project root from hook input cwd, NOT $(pwd) — the hook may be
|
|
18
|
+
# invoked from a sub-directory the user is currently editing.
|
|
19
|
+
PROJECT_ROOT=""
|
|
20
|
+
if [[ -n "$input" ]] && command -v jq &>/dev/null; then
|
|
21
|
+
PROJECT_ROOT="$(printf '%s' "$input" | jq -r '.cwd // empty' 2>/dev/null || true)"
|
|
22
|
+
fi
|
|
23
|
+
[[ -z "$PROJECT_ROOT" ]] && PROJECT_ROOT="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
24
|
+
|
|
25
|
+
CONFIG_FILE="${PROJECT_ROOT}/.rulebook/rulebook.json"
|
|
26
|
+
HANDOFF_DIR="${PROJECT_ROOT}/.rulebook/handoff"
|
|
27
|
+
|
|
28
|
+
# Defaults
|
|
29
|
+
WARN_PCT=75
|
|
30
|
+
FORCE_PCT=90
|
|
31
|
+
MAX_CONTEXT_CHARS=1600000 # ~400k tokens ≈ 1.6M chars (rough 1:4 ratio)
|
|
32
|
+
|
|
33
|
+
# Override from config if available
|
|
34
|
+
if [[ -f "$CONFIG_FILE" ]] && command -v jq &>/dev/null; then
|
|
35
|
+
WARN_PCT=$(jq -r '.handoff.warnThresholdPct // 75' "$CONFIG_FILE" 2>/dev/null || echo 75)
|
|
36
|
+
FORCE_PCT=$(jq -r '.handoff.forceThresholdPct // 90' "$CONFIG_FILE" 2>/dev/null || echo 90)
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Try to find the transcript path from the session
|
|
40
|
+
# Claude Code stores transcripts as JSONL in ~/.claude/projects/<hash>/
|
|
41
|
+
# The hook input may or may not contain session info; we fall back to
|
|
42
|
+
# estimating from the input itself.
|
|
43
|
+
transcript_size=0
|
|
44
|
+
|
|
45
|
+
# Strategy 1: check the most recent JSONL in the project-specific Claude dir
|
|
46
|
+
CLAUDE_PROJECTS_DIR="${HOME}/.claude/projects"
|
|
47
|
+
if [[ -d "$CLAUDE_PROJECTS_DIR" ]]; then
|
|
48
|
+
latest_jsonl=$(find "$CLAUDE_PROJECTS_DIR" -name "*.jsonl" -type f -printf '%T@ %p\n' 2>/dev/null | sort -rn | head -1 | awk '{print $2}' || true)
|
|
49
|
+
if [[ -n "$latest_jsonl" && -f "$latest_jsonl" ]]; then
|
|
50
|
+
transcript_size=$(stat -c%s "$latest_jsonl" 2>/dev/null || stat -f%z "$latest_jsonl" 2>/dev/null || echo 0)
|
|
51
|
+
fi
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
# If we couldn't get transcript size, emit nothing (no-op)
|
|
55
|
+
if [[ "$transcript_size" -eq 0 ]]; then
|
|
56
|
+
printf '%s' '{}'
|
|
57
|
+
exit 0
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Estimate context percentage
|
|
61
|
+
pct=$(( transcript_size * 100 / MAX_CONTEXT_CHARS ))
|
|
62
|
+
|
|
63
|
+
if [[ "$pct" -ge "$FORCE_PCT" ]]; then
|
|
64
|
+
# Force mode: write urgent sentinel + emit strong instruction
|
|
65
|
+
mkdir -p "$HANDOFF_DIR"
|
|
66
|
+
touch "${HANDOFF_DIR}/.urgent"
|
|
67
|
+
msg="⚠️ CONTEXT AT ${pct}% (FORCE THRESHOLD). You MUST invoke /handoff NOW to save session state to .rulebook/handoff/_pending.md. After it succeeds, tell the user: '>>> TYPE /clear NOW — your context will be auto-restored in the next session <<<'. Do NOT continue working until the user has typed /clear."
|
|
68
|
+
jq -nc --arg msg "$msg" '{ hookSpecificOutput: { hookEventName: "Stop", additionalContext: $msg } }'
|
|
69
|
+
elif [[ "$pct" -ge "$WARN_PCT" ]]; then
|
|
70
|
+
msg="⚠️ Context at ${pct}%. Recommended: invoke /handoff to save session state. After it succeeds, tell the user to type /clear for a fresh session."
|
|
71
|
+
jq -nc --arg msg "$msg" '{ hookSpecificOutput: { hookEventName: "Stop", additionalContext: $msg } }'
|
|
72
|
+
else
|
|
73
|
+
# Below threshold — no-op
|
|
74
|
+
printf '%s' '{}'
|
|
75
|
+
fi
|
|
76
|
+
exit 0
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# Claude Code PreToolUse hook for the Agent tool.
|
|
3
|
-
#
|
|
4
|
-
# Policy enforced by @hivehub/rulebook v5.3.0:
|
|
5
|
-
# - A single Agent call is fine (foreground or background).
|
|
6
|
-
# - Spawning multiple standalone Agents for parallel work is FORBIDDEN.
|
|
7
|
-
# Parallel multi-agent work MUST go through a Team so agents can
|
|
8
|
-
# communicate via SendMessage.
|
|
9
|
-
#
|
|
10
|
-
# Enforcement strategy:
|
|
11
|
-
# Block any Agent invocation with `run_in_background: true` UNLESS it
|
|
12
|
-
# targets `subagent_type: team-lead` or provides a `team_name`. This
|
|
13
|
-
# forces background parallel work to be coordinated through a Team.
|
|
14
|
-
#
|
|
15
|
-
# The hook reads the tool input JSON from stdin and emits a permission
|
|
16
|
-
# decision JSON on stdout, per Claude Code's PreToolUse hook contract.
|
|
17
|
-
|
|
18
|
-
set -euo pipefail
|
|
19
|
-
|
|
20
|
-
input="$(cat)"
|
|
21
|
-
|
|
22
|
-
tool_name="$(printf '%s' "$input" | jq -r '.tool_name // empty' 2>/dev/null || true)"
|
|
23
|
-
if [[ "$tool_name" != "Agent" ]]; then
|
|
24
|
-
# Not our concern — allow.
|
|
25
|
-
printf '%s' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"allow"}}'
|
|
26
|
-
exit 0
|
|
27
|
-
fi
|
|
28
|
-
|
|
29
|
-
run_in_background="$(printf '%s' "$input" | jq -r '.tool_input.run_in_background // false' 2>/dev/null || echo false)"
|
|
30
|
-
subagent_type="$(printf '%s' "$input" | jq -r '.tool_input.subagent_type // empty' 2>/dev/null || true)"
|
|
31
|
-
team_name="$(printf '%s' "$input" | jq -r '.tool_input.team_name // empty' 2>/dev/null || true)"
|
|
32
|
-
|
|
33
|
-
# Foreground single agent → always allowed.
|
|
34
|
-
if [[ "$run_in_background" != "true" ]]; then
|
|
35
|
-
printf '%s' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"allow"}}'
|
|
36
|
-
exit 0
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# Background agents must be part of a team OR be the team-lead coordinator.
|
|
40
|
-
if [[ "$subagent_type" == "team-lead" ]] || [[ -n "$team_name" ]]; then
|
|
41
|
-
printf '%s' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"allow"}}'
|
|
42
|
-
exit 0
|
|
43
|
-
fi
|
|
44
|
-
|
|
45
|
-
# Block standalone background agent.
|
|
46
|
-
reason="POLICY VIOLATION: Spawning standalone background Agents is forbidden. Multi-agent parallel work MUST use a Team so agents can communicate via SendMessage. Either (a) use TeamCreate to create a team, (b) spawn a team-lead that creates the team, or (c) set team_name on the Agent call. See .claude/rules/multi-agent-teams.md for the policy."
|
|
47
|
-
|
|
48
|
-
jq -nc --arg reason "$reason" '{
|
|
49
|
-
hookSpecificOutput: {
|
|
50
|
-
hookEventName: "PreToolUse",
|
|
51
|
-
permissionDecision: "deny",
|
|
52
|
-
permissionDecisionReason: $reason
|
|
53
|
-
}
|
|
54
|
-
}'
|
|
55
|
-
exit 0
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Claude Code PreToolUse hook for the Agent tool.
|
|
3
|
+
#
|
|
4
|
+
# Policy enforced by @hivehub/rulebook v5.3.0:
|
|
5
|
+
# - A single Agent call is fine (foreground or background).
|
|
6
|
+
# - Spawning multiple standalone Agents for parallel work is FORBIDDEN.
|
|
7
|
+
# Parallel multi-agent work MUST go through a Team so agents can
|
|
8
|
+
# communicate via SendMessage.
|
|
9
|
+
#
|
|
10
|
+
# Enforcement strategy:
|
|
11
|
+
# Block any Agent invocation with `run_in_background: true` UNLESS it
|
|
12
|
+
# targets `subagent_type: team-lead` or provides a `team_name`. This
|
|
13
|
+
# forces background parallel work to be coordinated through a Team.
|
|
14
|
+
#
|
|
15
|
+
# The hook reads the tool input JSON from stdin and emits a permission
|
|
16
|
+
# decision JSON on stdout, per Claude Code's PreToolUse hook contract.
|
|
17
|
+
|
|
18
|
+
set -euo pipefail
|
|
19
|
+
|
|
20
|
+
input="$(cat)"
|
|
21
|
+
|
|
22
|
+
tool_name="$(printf '%s' "$input" | jq -r '.tool_name // empty' 2>/dev/null || true)"
|
|
23
|
+
if [[ "$tool_name" != "Agent" ]]; then
|
|
24
|
+
# Not our concern — allow.
|
|
25
|
+
printf '%s' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"allow"}}'
|
|
26
|
+
exit 0
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
run_in_background="$(printf '%s' "$input" | jq -r '.tool_input.run_in_background // false' 2>/dev/null || echo false)"
|
|
30
|
+
subagent_type="$(printf '%s' "$input" | jq -r '.tool_input.subagent_type // empty' 2>/dev/null || true)"
|
|
31
|
+
team_name="$(printf '%s' "$input" | jq -r '.tool_input.team_name // empty' 2>/dev/null || true)"
|
|
32
|
+
|
|
33
|
+
# Foreground single agent → always allowed.
|
|
34
|
+
if [[ "$run_in_background" != "true" ]]; then
|
|
35
|
+
printf '%s' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"allow"}}'
|
|
36
|
+
exit 0
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Background agents must be part of a team OR be the team-lead coordinator.
|
|
40
|
+
if [[ "$subagent_type" == "team-lead" ]] || [[ -n "$team_name" ]]; then
|
|
41
|
+
printf '%s' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"allow"}}'
|
|
42
|
+
exit 0
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
# Block standalone background agent.
|
|
46
|
+
reason="POLICY VIOLATION: Spawning standalone background Agents is forbidden. Multi-agent parallel work MUST use a Team so agents can communicate via SendMessage. Either (a) use TeamCreate to create a team, (b) spawn a team-lead that creates the team, or (c) set team_name on the Agent call. See .claude/rules/multi-agent-teams.md for the policy."
|
|
47
|
+
|
|
48
|
+
jq -nc --arg reason "$reason" '{
|
|
49
|
+
hookSpecificOutput: {
|
|
50
|
+
hookEventName: "PreToolUse",
|
|
51
|
+
permissionDecision: "deny",
|
|
52
|
+
permissionDecisionReason: $reason
|
|
53
|
+
}
|
|
54
|
+
}'
|
|
55
|
+
exit 0
|