@aria_asi/cli 0.2.36 → 0.2.38
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/CLIENT-ONBOARDING.md +4 -2
- package/bin/aria.js +11 -7
- package/dist/aria-connector/src/auth.d.ts +14 -0
- package/dist/aria-connector/src/auth.d.ts.map +1 -1
- package/dist/aria-connector/src/auth.js +103 -1
- package/dist/aria-connector/src/auth.js.map +1 -1
- package/dist/aria-connector/src/chat.d.ts.map +1 -1
- package/dist/aria-connector/src/chat.js +13 -8
- package/dist/aria-connector/src/chat.js.map +1 -1
- package/dist/aria-connector/src/config.d.ts +6 -1
- package/dist/aria-connector/src/config.d.ts.map +1 -1
- package/dist/aria-connector/src/config.js.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.js +50 -6
- package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
- package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/codex.js +290 -32
- package/dist/aria-connector/src/connectors/codex.js.map +1 -1
- package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/opencode.js +35 -11
- package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
- package/dist/aria-connector/src/connectors/repo-guard.d.ts +10 -0
- package/dist/aria-connector/src/connectors/repo-guard.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/repo-guard.js +110 -164
- package/dist/aria-connector/src/connectors/repo-guard.js.map +1 -1
- package/dist/aria-connector/src/connectors/runtime.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/runtime.js +17 -7
- package/dist/aria-connector/src/connectors/runtime.js.map +1 -1
- package/dist/aria-connector/src/connectors/shell.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/shell.js +12 -8
- package/dist/aria-connector/src/connectors/shell.js.map +1 -1
- package/dist/aria-connector/src/harness-client.d.ts +3 -1
- package/dist/aria-connector/src/harness-client.d.ts.map +1 -1
- package/dist/aria-connector/src/harness-client.js +7 -20
- package/dist/aria-connector/src/harness-client.js.map +1 -1
- package/dist/aria-connector/src/model-context.d.ts.map +1 -1
- package/dist/aria-connector/src/model-context.js +5 -0
- package/dist/aria-connector/src/model-context.js.map +1 -1
- package/dist/aria-connector/src/providers/types.d.ts +1 -1
- package/dist/aria-connector/src/providers/types.d.ts.map +1 -1
- package/dist/aria-connector/src/providers/xai.d.ts +3 -0
- package/dist/aria-connector/src/providers/xai.d.ts.map +1 -0
- package/dist/aria-connector/src/providers/xai.js +40 -0
- package/dist/aria-connector/src/providers/xai.js.map +1 -0
- package/dist/aria-connector/src/setup-wizard.js +1 -0
- package/dist/aria-connector/src/setup-wizard.js.map +1 -1
- package/dist/aria-connector/src/types.d.ts +2 -0
- package/dist/aria-connector/src/types.d.ts.map +1 -1
- package/dist/assets/hooks/aria-cognition-substrate-binding.mjs +51 -9
- package/dist/assets/hooks/aria-first-class-coach.mjs +129 -0
- package/dist/assets/hooks/aria-harness-via-sdk.mjs +33 -6
- package/dist/assets/hooks/aria-pre-tool-gate.mjs +86 -8
- package/dist/assets/hooks/aria-pre-tool-use.mjs +75 -0
- package/dist/assets/hooks/aria-preprompt-consult.mjs +5 -6
- package/dist/assets/hooks/aria-preturn-memory-gate.mjs +5 -0
- package/dist/assets/hooks/aria-repo-doctrine-gate.mjs +15 -0
- package/dist/assets/hooks/aria-stop-gate.mjs +125 -17
- package/dist/assets/hooks/doctrine_trigger_map.json +11 -0
- package/dist/assets/hooks/lib/emergency-gateoff-impl.mjs +39 -0
- package/dist/assets/hooks/lib/emergency-gateoff.mjs +6 -0
- package/dist/assets/hooks/lib/first-class-coach.mjs +755 -0
- package/dist/assets/hooks/lib/skill-autoload-gate-impl.mjs +103 -0
- package/dist/assets/hooks/lib/skill-autoload-gate.mjs +1 -14
- package/dist/assets/opencode-plugins/harness-context/auth-token.mjs +126 -0
- package/dist/assets/opencode-plugins/harness-context/inject-context.mjs +62 -22
- package/dist/assets/opencode-plugins/harness-context/task-project-ledger.mjs +290 -0
- package/dist/assets/opencode-plugins/harness-gate/index.js +87 -27
- package/dist/assets/opencode-plugins/harness-gate/lib/skill-autoload-gate.js +1 -14
- package/dist/assets/opencode-plugins/harness-outcome/index.js +29 -24
- package/dist/assets/opencode-plugins/harness-stop/index.js +229 -68
- package/dist/assets/opencode-plugins/harness-stop/lib/skill-autoload-gate.js +1 -14
- package/dist/runtime/auth-token.mjs +121 -0
- package/dist/runtime/coach-kernel.mjs +377 -0
- package/dist/runtime/codex-bridge.mjs +440 -69
- package/dist/runtime/discipline/doctrine_trigger_map.json +11 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-essence/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-forge-guardrails/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-repo-doctrine/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/forge-quality-rules/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/istiqra-induction/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/ladunni-22/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/mizan/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/nadia/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/nadia-psi/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/predictor/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/qiyas-analogy/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-cognition/soul-domains/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-intra-phase/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-post-phase/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-pre-phase/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-deploy/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-no-stripping/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-onboarding/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-output-discipline/SKILL.md +18 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-substrate-binding/SKILL.md +18 -0
- package/dist/runtime/doctrine_trigger_map.json +11 -0
- package/dist/runtime/hooks/aria-cognition-substrate-binding.mjs +51 -9
- package/dist/runtime/hooks/aria-first-class-coach.mjs +129 -0
- package/dist/runtime/hooks/aria-harness-via-sdk.mjs +33 -6
- package/dist/runtime/hooks/aria-pre-tool-gate.mjs +86 -8
- package/dist/runtime/hooks/aria-pre-tool-use.mjs +75 -0
- package/dist/runtime/hooks/aria-preprompt-consult.mjs +5 -6
- package/dist/runtime/hooks/aria-preturn-memory-gate.mjs +5 -0
- package/dist/runtime/hooks/aria-repo-doctrine-gate.mjs +15 -0
- package/dist/runtime/hooks/aria-stop-gate.mjs +125 -17
- package/dist/runtime/hooks/doctrine_trigger_map.json +11 -0
- package/dist/runtime/hooks/lib/emergency-gateoff-impl.mjs +39 -0
- package/dist/runtime/hooks/lib/emergency-gateoff.mjs +6 -0
- package/dist/runtime/hooks/lib/first-class-coach.mjs +755 -0
- package/dist/runtime/hooks/lib/skill-autoload-gate-impl.mjs +103 -0
- package/dist/runtime/hooks/lib/skill-autoload-gate.mjs +1 -14
- package/dist/runtime/local-phase.mjs +8 -0
- package/dist/runtime/manifest.json +2 -2
- package/dist/runtime/provider-proxy.mjs +136 -33
- package/dist/runtime/sdk/BUNDLED.json +2 -2
- package/dist/runtime/sdk/auth.d.ts +17 -0
- package/dist/runtime/sdk/auth.js +158 -0
- package/dist/runtime/sdk/auth.js.map +1 -0
- package/dist/runtime/sdk/index.d.ts +8 -1
- package/dist/runtime/sdk/index.js +15 -1
- package/dist/runtime/sdk/index.js.map +1 -1
- package/dist/runtime/service.mjs +1711 -74
- package/dist/runtime/task-project-ledger.mjs +290 -0
- package/dist/sdk/BUNDLED.json +2 -2
- package/dist/sdk/auth.d.ts +17 -0
- package/dist/sdk/auth.js +158 -0
- package/dist/sdk/auth.js.map +1 -0
- package/dist/sdk/index.d.ts +8 -1
- package/dist/sdk/index.js +15 -1
- package/dist/sdk/index.js.map +1 -1
- package/hooks/aria-cognition-substrate-binding.mjs +51 -9
- package/hooks/aria-first-class-coach.mjs +129 -0
- package/hooks/aria-harness-via-sdk.mjs +33 -6
- package/hooks/aria-pre-tool-gate.mjs +86 -8
- package/hooks/aria-pre-tool-use.mjs +75 -0
- package/hooks/aria-preprompt-consult.mjs +5 -6
- package/hooks/aria-preturn-memory-gate.mjs +5 -0
- package/hooks/aria-repo-doctrine-gate.mjs +15 -0
- package/hooks/aria-stop-gate.mjs +125 -17
- package/hooks/doctrine_trigger_map.json +11 -0
- package/hooks/lib/emergency-gateoff-impl.mjs +39 -0
- package/hooks/lib/emergency-gateoff.mjs +6 -0
- package/hooks/lib/first-class-coach.mjs +755 -0
- package/hooks/lib/skill-autoload-gate-impl.mjs +103 -0
- package/hooks/lib/skill-autoload-gate.mjs +1 -14
- package/opencode-plugins/harness-context/auth-token.mjs +126 -0
- package/opencode-plugins/harness-context/inject-context.mjs +62 -22
- package/opencode-plugins/harness-context/task-project-ledger.mjs +290 -0
- package/opencode-plugins/harness-gate/index.js +87 -27
- package/opencode-plugins/harness-gate/lib/skill-autoload-gate.js +1 -14
- package/opencode-plugins/harness-outcome/index.js +29 -24
- package/opencode-plugins/harness-stop/index.js +229 -68
- package/opencode-plugins/harness-stop/lib/skill-autoload-gate.js +1 -14
- package/package.json +8 -2
- package/runtime-src/auth-token.mjs +121 -0
- package/runtime-src/coach-kernel.mjs +377 -0
- package/runtime-src/codex-bridge.mjs +440 -69
- package/runtime-src/local-phase.mjs +8 -0
- package/runtime-src/provider-proxy.mjs +136 -33
- package/runtime-src/service.mjs +1711 -74
- package/scripts/bundle-sdk.mjs +8 -0
- package/scripts/check-client-compatibility.mjs +422 -0
- package/scripts/check-coach-kernel.mjs +204 -0
- package/scripts/check-managed-runtime-ledger.mjs +107 -0
- package/scripts/check-opencode-config-contract.mjs +78 -0
- package/scripts/check-quality-ledger.mjs +121 -0
- package/scripts/self-test-harness-gates.mjs +179 -11
- package/scripts/self-test-repo-guard.mjs +38 -0
- package/scripts/validate-skill-prompts.mjs +14 -1
- package/skills/aria-cognition/aria-essence/SKILL.md +18 -0
- package/skills/aria-cognition/aria-forge-guardrails/SKILL.md +18 -0
- package/skills/aria-cognition/aria-repo-doctrine/SKILL.md +18 -0
- package/skills/aria-cognition/forge-quality-rules/SKILL.md +18 -0
- package/skills/aria-cognition/ghazali-8lens/SKILL.md +18 -0
- package/skills/aria-cognition/istiqra-induction/SKILL.md +18 -0
- package/skills/aria-cognition/ladunni-22/SKILL.md +18 -0
- package/skills/aria-cognition/mizan/SKILL.md +18 -0
- package/skills/aria-cognition/nadia/SKILL.md +18 -0
- package/skills/aria-cognition/nadia-psi/SKILL.md +18 -0
- package/skills/aria-cognition/predictor/SKILL.md +18 -0
- package/skills/aria-cognition/qiyas-analogy/SKILL.md +18 -0
- package/skills/aria-cognition/soul-domains/SKILL.md +18 -0
- package/src/auth.ts +136 -1
- package/src/chat.ts +13 -8
- package/src/config.ts +6 -1
- package/src/connectors/claude-code.ts +62 -18
- package/src/connectors/codex.ts +288 -32
- package/src/connectors/opencode.ts +35 -12
- package/src/connectors/repo-guard.ts +117 -172
- package/src/connectors/runtime.ts +19 -7
- package/src/connectors/shell.ts +12 -8
- package/src/harness-client.ts +8 -22
- package/src/model-context.ts +6 -0
- package/src/providers/types.ts +1 -1
- package/src/providers/xai.ts +55 -0
- package/src/setup-wizard.ts +1 -0
- package/src/types.ts +2 -0
|
@@ -5,6 +5,7 @@ import * as path from 'path';
|
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
6
|
import { connectShell } from './shell.js';
|
|
7
7
|
import { syncDoctrineTriggerMap } from './doctrine-trigger-map.js';
|
|
8
|
+
import { resolveHarnessToken } from '../auth.js';
|
|
8
9
|
// ── Bundled OpenCode plugins ────────────────────────────────────────────────
|
|
9
10
|
//
|
|
10
11
|
// Two plugins ship with the connector:
|
|
@@ -19,6 +20,8 @@ import { syncDoctrineTriggerMap } from './doctrine-trigger-map.js';
|
|
|
19
20
|
// Both live at <pkg>/opencode-plugins/<name>/. connectOpenCode copies them
|
|
20
21
|
// into ~/.opencode/plugins/<name>/ and wires the absolute paths into
|
|
21
22
|
// ~/.opencode/config.json's `plugin` (singular, OpenCode v2 schema) array.
|
|
23
|
+
// Shared hook helpers are also copied into ~/.opencode/hooks/ because the
|
|
24
|
+
// installed plugins resolve their gate helpers from that OpenCode-owned root.
|
|
22
25
|
//
|
|
23
26
|
// Compiled location of THIS file (claude-code path applies the same way):
|
|
24
27
|
// <pkg>/dist/aria-connector/src/connectors/opencode.js
|
|
@@ -34,6 +37,15 @@ function packageOpenCodePluginsDir() {
|
|
|
34
37
|
const found = candidates.find((candidate) => existsSync(candidate));
|
|
35
38
|
return found || candidates[0];
|
|
36
39
|
}
|
|
40
|
+
function packageOpenCodeHooksDir() {
|
|
41
|
+
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
42
|
+
const candidates = [
|
|
43
|
+
path.resolve(here, '..', '..', '..', '..', 'hooks'),
|
|
44
|
+
path.resolve(here, '..', '..', '..', 'assets', 'hooks'),
|
|
45
|
+
];
|
|
46
|
+
const found = candidates.find((candidate) => existsSync(candidate));
|
|
47
|
+
return found || candidates[0];
|
|
48
|
+
}
|
|
37
49
|
function copyPluginDir(srcDir, dstDir, logs) {
|
|
38
50
|
if (!existsSync(dstDir)) {
|
|
39
51
|
mkdirSync(dstDir, { recursive: true, mode: 0o755 });
|
|
@@ -41,9 +53,13 @@ function copyPluginDir(srcDir, dstDir, logs) {
|
|
|
41
53
|
for (const name of readdirSync(srcDir)) {
|
|
42
54
|
const src = path.join(srcDir, name);
|
|
43
55
|
const stat = statSync(src);
|
|
56
|
+
const dst = path.join(dstDir, name);
|
|
57
|
+
if (stat.isDirectory()) {
|
|
58
|
+
copyPluginDir(src, dst, logs);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
44
61
|
if (!stat.isFile())
|
|
45
62
|
continue;
|
|
46
|
-
const dst = path.join(dstDir, name);
|
|
47
63
|
copyFileSync(src, dst);
|
|
48
64
|
if (name.endsWith('.mjs') || name.endsWith('.js')) {
|
|
49
65
|
try {
|
|
@@ -125,10 +141,22 @@ export async function connectOpenCode(config) {
|
|
|
125
141
|
copyPluginDir(srcDir, dstDir, logs);
|
|
126
142
|
installedPaths.push(dstDir);
|
|
127
143
|
}
|
|
144
|
+
const bundledHooksDir = packageOpenCodeHooksDir();
|
|
145
|
+
if (existsSync(bundledHooksDir)) {
|
|
146
|
+
copyPluginDir(bundledHooksDir, path.join(opencodeDir, 'hooks'), logs);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
logs.push(`⚠ Bundled OpenCode hook helpers missing: ${bundledHooksDir} — gate plugins may fail to load`);
|
|
150
|
+
}
|
|
128
151
|
syncDoctrineTriggerMap(logs);
|
|
129
|
-
// ── Wire
|
|
130
|
-
const
|
|
131
|
-
|
|
152
|
+
// ── Wire OpenCode config files ────────────────────────────────────────────
|
|
153
|
+
const configPaths = [
|
|
154
|
+
path.join(opencodeDir, 'config.json'),
|
|
155
|
+
path.join(homedir(), '.config', 'opencode', 'config.json'),
|
|
156
|
+
];
|
|
157
|
+
for (const configPath of configPaths) {
|
|
158
|
+
if (!existsSync(configPath))
|
|
159
|
+
continue;
|
|
132
160
|
try {
|
|
133
161
|
const opencodeConfig = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
134
162
|
let modified = false;
|
|
@@ -165,18 +193,14 @@ export async function connectOpenCode(config) {
|
|
|
165
193
|
modified = true;
|
|
166
194
|
logs.push(`Wired ${installedPaths.length} Aria plugin(s) into OpenCode config.plugin`);
|
|
167
195
|
}
|
|
168
|
-
if (!opencodeConfig.agentsMdPath) {
|
|
169
|
-
opencodeConfig.agentsMdPath = path.join(homedir(), '.aria', 'AGENTS.md');
|
|
170
|
-
modified = true;
|
|
171
|
-
logs.push('Set OpenCode AGENTS.md path to ~/.aria/AGENTS.md');
|
|
172
|
-
}
|
|
173
196
|
const providerMap = opencodeConfig.provider && typeof opencodeConfig.provider === 'object'
|
|
174
197
|
? opencodeConfig.provider
|
|
175
198
|
: {};
|
|
176
199
|
const currentAriaProvider = providerMap.aria && typeof providerMap.aria === 'object'
|
|
177
200
|
? providerMap.aria
|
|
178
201
|
: {};
|
|
179
|
-
const
|
|
202
|
+
const resolvedLocalToken = await resolveHarnessToken({ baseUrl: LOCAL_RUNTIME_V1_URL });
|
|
203
|
+
const localToken = resolvedLocalToken.token || resolveLocalRuntimeToken();
|
|
180
204
|
const nextAriaProvider = {
|
|
181
205
|
npm: '@ai-sdk/openai-compatible',
|
|
182
206
|
name: 'Aria Runtime',
|
|
@@ -222,7 +246,7 @@ export async function connectOpenCode(config) {
|
|
|
222
246
|
}
|
|
223
247
|
}
|
|
224
248
|
catch {
|
|
225
|
-
logs.push(
|
|
249
|
+
logs.push(`Failed to parse OpenCode config.json at ${configPath}`);
|
|
226
250
|
}
|
|
227
251
|
}
|
|
228
252
|
// ── Write the harness AGENTS.md ───────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/connectors/opencode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/connectors/opencode.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,17 @@ interface RepoGuardOptions {
|
|
|
12
12
|
repos?: string[];
|
|
13
13
|
debounceMs?: number;
|
|
14
14
|
}
|
|
15
|
+
interface DeleteApproval {
|
|
16
|
+
repoRoot: string;
|
|
17
|
+
relPath: string;
|
|
18
|
+
approvedBy: string;
|
|
19
|
+
approvedAt: string;
|
|
20
|
+
expiresAt: string;
|
|
21
|
+
reason: string;
|
|
22
|
+
}
|
|
15
23
|
export declare function readGuardState(): GuardState;
|
|
24
|
+
export declare function isRepoGuardedPath(relPath: string): boolean;
|
|
25
|
+
export declare function approveRepoGuardDelete(repoRoot: string, relPath: string, approvedBy?: string, reason?: string, ttlMs?: number): DeleteApproval;
|
|
16
26
|
export declare function startRepoGuardDaemon(options?: RepoGuardOptions): Promise<void>;
|
|
17
27
|
export declare function installRepoGuardDaemon(config?: AriaConfig, fallbackRepoPath?: string): Promise<string[]>;
|
|
18
28
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-guard.d.ts","sourceRoot":"","sources":["../../../../src/connectors/repo-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repo-guard.d.ts","sourceRoot":"","sources":["../../../../src/connectors/repo-guard.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAgC/C,KAAK,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAE/D,UAAU,UAAU;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAcD,wBAAgB,cAAc,IAAI,UAAU,CAqB3C;AA8GD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM1D;AAoFD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,SAAU,EAAE,MAAM,SAA4B,EAAE,KAAK,SAA0B,GAAG,cAAc,CAYnL;AAsED,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmExF;AAsDD,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkB9G"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import chokidar from 'chokidar';
|
|
2
2
|
import { execFileSync } from 'child_process';
|
|
3
|
-
import {
|
|
4
|
-
import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, renameSync, writeFileSync, } from 'fs';
|
|
3
|
+
import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync, } from 'fs';
|
|
5
4
|
import { homedir } from 'os';
|
|
6
5
|
import * as path from 'path';
|
|
7
6
|
import { fileURLToPath } from 'node:url';
|
|
@@ -12,17 +11,10 @@ const ENV_PATH = path.join(ARIA_DIR, 'repo-guard.env');
|
|
|
12
11
|
const STATE_PATH = path.join(ARIA_DIR, 'repo-guard-state.json');
|
|
13
12
|
const EVENTS_PATH = path.join(ARIA_DIR, 'repo-guard-events.jsonl');
|
|
14
13
|
const LAST_ALERT_PATH = path.join(ARIA_DIR, 'repo-guard-last-alert.json');
|
|
15
|
-
const
|
|
14
|
+
const APPROVALS_PATH = path.join(ARIA_DIR, 'repo-guard-approvals.json');
|
|
16
15
|
const QUARANTINE_ROOT = path.join(ARIA_DIR, 'repo-guard', 'quarantine');
|
|
17
16
|
const DEFAULT_DEBOUNCE_MS = Number(process.env.ARIA_REPO_GUARD_DEBOUNCE_MS || 350);
|
|
18
17
|
const BLOCKING_MODE = !/^(0|false|no)$/i.test(process.env.ARIA_REPO_GUARD_BLOCKING || 'true');
|
|
19
|
-
const DOCTRINE_PREFIXES = ['apps/', 'packages/', 'harness/', 'ops/', 'scripts/'];
|
|
20
|
-
const DOCTRINE_EXTENSIONS = new Set([
|
|
21
|
-
'.js', '.jsx', '.ts', '.tsx', '.mjs', '.cjs',
|
|
22
|
-
'.py', '.sh', '.bash', '.zsh', '.rb', '.go',
|
|
23
|
-
'.rs', '.java', '.kt', '.cs', '.php', '.swift',
|
|
24
|
-
'.scala', '.yml', '.yaml',
|
|
25
|
-
]);
|
|
26
18
|
const IGNORED_SEGMENTS = new Set([
|
|
27
19
|
'.git',
|
|
28
20
|
'node_modules',
|
|
@@ -34,10 +26,13 @@ const IGNORED_SEGMENTS = new Set([
|
|
|
34
26
|
'coverage',
|
|
35
27
|
'archive',
|
|
36
28
|
'generated',
|
|
29
|
+
'vendor',
|
|
37
30
|
'telegram_env',
|
|
38
31
|
'backup-opencode-config',
|
|
39
32
|
'training-data',
|
|
40
33
|
]);
|
|
34
|
+
const IGNORED_FILE_RX = /(?:^|\/)(?:package-lock\.json|pnpm-lock\.yaml|yarn\.lock|bun\.lockb?|\.DS_Store)$/i;
|
|
35
|
+
const DEFAULT_APPROVAL_TTL_MS = Number(process.env.ARIA_REPO_GUARD_APPROVAL_TTL_MS || 10 * 60 * 1000);
|
|
41
36
|
function writeState(update) {
|
|
42
37
|
const current = readGuardState();
|
|
43
38
|
const next = {
|
|
@@ -126,16 +121,6 @@ function connectorPackageRoot() {
|
|
|
126
121
|
function normalizeRel(input) {
|
|
127
122
|
return input.split(path.sep).join('/');
|
|
128
123
|
}
|
|
129
|
-
function repoHash(repoRoot) {
|
|
130
|
-
return createHash('sha256').update(repoRoot).digest('hex').slice(0, 16);
|
|
131
|
-
}
|
|
132
|
-
function shadowPath(repoRoot, relPath) {
|
|
133
|
-
return path.join(SHADOW_ROOT, repoHash(repoRoot), relPath);
|
|
134
|
-
}
|
|
135
|
-
function quarantinePath(repoRoot, relPath) {
|
|
136
|
-
const stamped = `${Date.now()}-${relPath.replace(/[\\/]/g, '__')}`;
|
|
137
|
-
return path.join(QUARANTINE_ROOT, repoHash(repoRoot), stamped);
|
|
138
|
-
}
|
|
139
124
|
function ensureParent(filePath) {
|
|
140
125
|
mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o755 });
|
|
141
126
|
}
|
|
@@ -175,165 +160,149 @@ function resolveRepos(config, explicit, fallbackRepoPath) {
|
|
|
175
160
|
const cwd = findRepoRoot(process.cwd());
|
|
176
161
|
return cwd ? [cwd] : [];
|
|
177
162
|
}
|
|
178
|
-
function
|
|
163
|
+
export function isRepoGuardedPath(relPath) {
|
|
179
164
|
const normalized = normalizeRel(relPath);
|
|
180
|
-
if (!DOCTRINE_PREFIXES.some((prefix) => normalized.startsWith(prefix)))
|
|
181
|
-
return false;
|
|
182
|
-
if (!DOCTRINE_EXTENSIONS.has(path.extname(normalized)))
|
|
183
|
-
return false;
|
|
184
165
|
const parts = normalized.split('/');
|
|
185
166
|
if (parts.some((part) => IGNORED_SEGMENTS.has(part)))
|
|
186
167
|
return false;
|
|
187
|
-
if (normalized.endsWith('.map'))
|
|
188
|
-
return false;
|
|
189
|
-
if (/package-lock\.json$|pnpm-lock\.yaml$|yarn\.lock$/i.test(normalized))
|
|
168
|
+
if (normalized.endsWith('.map') || IGNORED_FILE_RX.test(normalized))
|
|
190
169
|
return false;
|
|
191
170
|
return true;
|
|
192
171
|
}
|
|
193
|
-
function
|
|
194
|
-
const found = [];
|
|
195
|
-
function visit(absPath) {
|
|
196
|
-
const stat = statSync(absPath);
|
|
197
|
-
if (stat.isDirectory()) {
|
|
198
|
-
const base = path.basename(absPath);
|
|
199
|
-
if (IGNORED_SEGMENTS.has(base))
|
|
200
|
-
return;
|
|
201
|
-
for (const child of readdirSync(absPath)) {
|
|
202
|
-
visit(path.join(absPath, child));
|
|
203
|
-
}
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
const rel = path.relative(repoRoot, absPath);
|
|
207
|
-
if (isDoctrineBound(rel))
|
|
208
|
-
found.push(absPath);
|
|
209
|
-
}
|
|
210
|
-
for (const prefix of DOCTRINE_PREFIXES) {
|
|
211
|
-
const abs = path.join(repoRoot, prefix.slice(0, -1));
|
|
212
|
-
if (existsSync(abs))
|
|
213
|
-
visit(abs);
|
|
214
|
-
}
|
|
215
|
-
return found;
|
|
216
|
-
}
|
|
217
|
-
function gateFile(repoRoot, relPath) {
|
|
218
|
-
const hookPath = path.join(homedir(), '.claude', 'hooks', 'aria-repo-doctrine-gate.mjs');
|
|
172
|
+
function isGitTracked(repoRoot, relPath) {
|
|
219
173
|
try {
|
|
220
|
-
execFileSync('
|
|
221
|
-
stdio: ['ignore', '
|
|
222
|
-
encoding: 'utf8',
|
|
174
|
+
execFileSync('git', ['-C', repoRoot, 'ls-files', '--error-unmatch', normalizeRel(relPath)], {
|
|
175
|
+
stdio: ['ignore', 'ignore', 'ignore'],
|
|
223
176
|
});
|
|
224
|
-
return
|
|
177
|
+
return true;
|
|
225
178
|
}
|
|
226
|
-
catch
|
|
227
|
-
|
|
228
|
-
? String(error.stderr || error.stdout || error.message)
|
|
229
|
-
: String(error);
|
|
230
|
-
return { ok: false, detail: detail.trim() || 'aria repo doctrine gate rejected the file' };
|
|
179
|
+
catch {
|
|
180
|
+
return false;
|
|
231
181
|
}
|
|
232
182
|
}
|
|
233
|
-
function
|
|
234
|
-
const dst = shadowPath(repoRoot, relPath);
|
|
235
|
-
ensureParent(dst);
|
|
236
|
-
writeFileSync(dst, content, { mode: 0o600 });
|
|
237
|
-
}
|
|
238
|
-
function readShadowContent(repoRoot, relPath) {
|
|
239
|
-
const shadow = shadowPath(repoRoot, relPath);
|
|
240
|
-
if (!existsSync(shadow))
|
|
241
|
-
return null;
|
|
183
|
+
function readTrackedContent(repoRoot, relPath) {
|
|
242
184
|
try {
|
|
243
|
-
return
|
|
185
|
+
return execFileSync('git', ['-C', repoRoot, 'show', `HEAD:${normalizeRel(relPath)}`], {
|
|
186
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
187
|
+
encoding: 'buffer',
|
|
188
|
+
});
|
|
244
189
|
}
|
|
245
190
|
catch {
|
|
246
191
|
return null;
|
|
247
192
|
}
|
|
248
193
|
}
|
|
249
|
-
function
|
|
194
|
+
function isGitDirectory(repoRoot, relPath) {
|
|
250
195
|
try {
|
|
251
|
-
|
|
196
|
+
const output = execFileSync('git', ['-C', repoRoot, 'ls-files', `${normalizeRel(relPath).replace(/\/+$/, '')}/`], {
|
|
252
197
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
253
198
|
encoding: 'utf8',
|
|
254
199
|
});
|
|
200
|
+
return output.trim().length > 0;
|
|
255
201
|
}
|
|
256
202
|
catch {
|
|
257
|
-
return
|
|
203
|
+
return false;
|
|
258
204
|
}
|
|
259
205
|
}
|
|
260
|
-
function
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
function restorePriorContent(repoRoot, absPath, relPath) {
|
|
264
|
-
const prior = recoveryContent(repoRoot, relPath);
|
|
206
|
+
function restoreTrackedPath(repoRoot, absPath, relPath) {
|
|
207
|
+
const prior = readTrackedContent(repoRoot, relPath);
|
|
265
208
|
if (prior !== null) {
|
|
266
209
|
ensureParent(absPath);
|
|
267
210
|
writeFileSync(absPath, prior, { mode: 0o644 });
|
|
268
|
-
|
|
269
|
-
return 'restored';
|
|
211
|
+
return 'file-restored';
|
|
270
212
|
}
|
|
271
|
-
if (!
|
|
213
|
+
if (!isGitDirectory(repoRoot, relPath))
|
|
214
|
+
return 'none';
|
|
215
|
+
try {
|
|
216
|
+
execFileSync('git', ['-C', repoRoot, 'checkout', 'HEAD', '--', normalizeRel(relPath)], {
|
|
217
|
+
stdio: ['ignore', 'ignore', 'ignore'],
|
|
218
|
+
});
|
|
219
|
+
return 'tree-restored';
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
272
222
|
return 'none';
|
|
273
|
-
const movedDst = quarantinePath(repoRoot, relPath);
|
|
274
|
-
ensureParent(movedDst);
|
|
275
|
-
renameSync(absPath, movedDst);
|
|
276
|
-
return 'moved';
|
|
277
|
-
}
|
|
278
|
-
function initializeBaseline(repoRoot) {
|
|
279
|
-
for (const absPath of walkDoctrineFiles(repoRoot)) {
|
|
280
|
-
const relPath = path.relative(repoRoot, absPath);
|
|
281
|
-
try {
|
|
282
|
-
writeShadow(repoRoot, relPath, readFileSync(absPath, 'utf8'));
|
|
283
|
-
}
|
|
284
|
-
catch { }
|
|
285
223
|
}
|
|
286
224
|
}
|
|
287
|
-
function
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
detail,
|
|
303
|
-
});
|
|
304
|
-
emitAlert({
|
|
305
|
-
type: 'violation',
|
|
306
|
-
title: 'Aria Repo Guard blocked a doctrine violation',
|
|
307
|
-
message: BLOCKING_MODE
|
|
308
|
-
? 'The changed file was quarantined and the last known good content was restored.'
|
|
309
|
-
: 'A doctrine violation was detected while repo guard was in non-blocking mode.',
|
|
310
|
-
repoRoot,
|
|
311
|
-
relPath,
|
|
312
|
-
action,
|
|
313
|
-
detail,
|
|
314
|
-
});
|
|
225
|
+
function readApprovals() {
|
|
226
|
+
try {
|
|
227
|
+
const parsed = JSON.parse(readFileSync(APPROVALS_PATH, 'utf8'));
|
|
228
|
+
if (!Array.isArray(parsed))
|
|
229
|
+
return [];
|
|
230
|
+
return parsed.filter((item) => {
|
|
231
|
+
if (!item || typeof item !== 'object')
|
|
232
|
+
return false;
|
|
233
|
+
const approval = item;
|
|
234
|
+
return Boolean(approval.repoRoot && approval.relPath && approval.approvedBy && approval.expiresAt);
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return [];
|
|
239
|
+
}
|
|
315
240
|
}
|
|
316
|
-
function
|
|
317
|
-
|
|
318
|
-
|
|
241
|
+
function writeApprovals(approvals) {
|
|
242
|
+
mkdirSync(ARIA_DIR, { recursive: true, mode: 0o700 });
|
|
243
|
+
writeFileSync(APPROVALS_PATH, JSON.stringify(approvals, null, 2) + '\n', { mode: 0o600 });
|
|
244
|
+
}
|
|
245
|
+
function hasDeleteApproval(repoRoot, relPath) {
|
|
246
|
+
const now = Date.now();
|
|
247
|
+
const approvals = readApprovals();
|
|
248
|
+
const active = approvals.filter((approval) => Date.parse(approval.expiresAt) > now);
|
|
249
|
+
if (active.length !== approvals.length)
|
|
250
|
+
writeApprovals(active);
|
|
251
|
+
const normalizedRepo = path.resolve(repoRoot);
|
|
252
|
+
const normalizedPath = normalizeRel(relPath);
|
|
253
|
+
return active.some((approval) => path.resolve(approval.repoRoot) === normalizedRepo && normalizeRel(approval.relPath) === normalizedPath);
|
|
254
|
+
}
|
|
255
|
+
export function approveRepoGuardDelete(repoRoot, relPath, approvedBy = 'owner', reason = 'explicit owner approval', ttlMs = DEFAULT_APPROVAL_TTL_MS) {
|
|
256
|
+
const approval = {
|
|
257
|
+
repoRoot: path.resolve(repoRoot),
|
|
258
|
+
relPath: normalizeRel(relPath),
|
|
259
|
+
approvedBy,
|
|
260
|
+
approvedAt: new Date().toISOString(),
|
|
261
|
+
expiresAt: new Date(Date.now() + ttlMs).toISOString(),
|
|
262
|
+
reason,
|
|
263
|
+
};
|
|
264
|
+
writeApprovals([...readApprovals(), approval]);
|
|
265
|
+
appendEvent({ type: 'delete-approved', ...approval });
|
|
266
|
+
return approval;
|
|
267
|
+
}
|
|
268
|
+
function handleDeletedGuardedPath(repoRoot, absPath, relPath) {
|
|
269
|
+
const tracked = isGitTracked(repoRoot, relPath) || isGitDirectory(repoRoot, relPath);
|
|
270
|
+
if (!tracked) {
|
|
271
|
+
appendEvent({
|
|
272
|
+
type: 'ignored-delete',
|
|
273
|
+
repoRoot,
|
|
274
|
+
relPath,
|
|
275
|
+
detail: 'Untracked path deletion observed; nothing can be restored from git.',
|
|
276
|
+
});
|
|
277
|
+
writeState({ status: 'watching', lastEvent: `${repoRoot}:${relPath}`, lastError: null });
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
if (hasDeleteApproval(repoRoot, relPath)) {
|
|
281
|
+
appendEvent({ type: 'approved-delete', repoRoot, relPath });
|
|
282
|
+
writeState({ status: 'watching', lastEvent: `${repoRoot}:${relPath}`, lastError: null });
|
|
319
283
|
return;
|
|
284
|
+
}
|
|
285
|
+
const action = BLOCKING_MODE ? restoreTrackedPath(repoRoot, absPath, relPath) : 'none';
|
|
320
286
|
const summary = `${repoRoot}:${relPath}`;
|
|
321
|
-
writeState({ status: 'violation', lastViolation: summary, lastEvent: summary, lastError: '
|
|
287
|
+
writeState({ status: 'violation', lastViolation: summary, lastEvent: summary, lastError: 'Tracked path deletion requires explicit approval.' });
|
|
322
288
|
appendEvent({
|
|
323
289
|
type: 'blocked-delete',
|
|
324
290
|
repoRoot,
|
|
325
291
|
relPath,
|
|
326
292
|
blockingMode: BLOCKING_MODE,
|
|
327
293
|
action,
|
|
294
|
+
detail: 'Tracked path deletion restored from git because no active delete approval matched this path.',
|
|
328
295
|
});
|
|
329
296
|
emitAlert({
|
|
330
297
|
type: 'blocked-delete',
|
|
331
|
-
title: 'Aria Repo Guard blocked
|
|
332
|
-
message:
|
|
298
|
+
title: 'Aria Repo Guard blocked an unapproved tracked deletion',
|
|
299
|
+
message: BLOCKING_MODE
|
|
300
|
+
? 'A tracked repo path was deleted without active approval and was restored from git.'
|
|
301
|
+
: 'A tracked repo path was deleted without active approval while repo guard was non-blocking.',
|
|
333
302
|
repoRoot,
|
|
334
303
|
relPath,
|
|
335
304
|
action,
|
|
336
|
-
detail: '
|
|
305
|
+
detail: 'Tracked path deletion requires explicit approval.',
|
|
337
306
|
});
|
|
338
307
|
}
|
|
339
308
|
function shouldIgnoreWatch(absPath) {
|
|
@@ -350,22 +319,16 @@ function findOwningRepo(repos, absPath) {
|
|
|
350
319
|
}
|
|
351
320
|
function processChangedFile(repoRoot, absPath) {
|
|
352
321
|
const relPath = path.relative(repoRoot, absPath);
|
|
353
|
-
if (!
|
|
322
|
+
if (!isRepoGuardedPath(relPath))
|
|
354
323
|
return;
|
|
355
324
|
if (!existsSync(absPath)) {
|
|
356
|
-
|
|
325
|
+
handleDeletedGuardedPath(repoRoot, absPath, relPath);
|
|
357
326
|
return;
|
|
358
327
|
}
|
|
359
328
|
if (statSync(absPath).isDirectory())
|
|
360
329
|
return;
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
writeShadow(repoRoot, relPath, readFileSync(absPath, 'utf8'));
|
|
364
|
-
const summary = `${repoRoot}:${relPath}`;
|
|
365
|
-
writeState({ status: 'watching', lastEvent: summary, lastError: null });
|
|
366
|
-
return;
|
|
367
|
-
}
|
|
368
|
-
handleViolation(repoRoot, absPath, relPath, gate.detail);
|
|
330
|
+
appendEvent({ type: 'observed-change', repoRoot, relPath });
|
|
331
|
+
writeState({ status: 'watching', lastEvent: `${repoRoot}:${relPath}`, lastError: null });
|
|
369
332
|
}
|
|
370
333
|
export async function startRepoGuardDaemon(options = {}) {
|
|
371
334
|
const repos = resolveRepos(undefined, options.repos);
|
|
@@ -373,18 +336,14 @@ export async function startRepoGuardDaemon(options = {}) {
|
|
|
373
336
|
writeState({ status: 'error', watchedRepos: [], lastError: 'No git repositories configured for repo guard.' });
|
|
374
337
|
throw new Error('No git repositories configured for repo guard.');
|
|
375
338
|
}
|
|
376
|
-
mkdirSync(SHADOW_ROOT, { recursive: true, mode: 0o700 });
|
|
377
339
|
mkdirSync(QUARANTINE_ROOT, { recursive: true, mode: 0o700 });
|
|
378
|
-
for (const repo of repos)
|
|
379
|
-
initializeBaseline(repo);
|
|
380
340
|
writeState({ status: 'watching', watchedRepos: repos, lastError: null });
|
|
381
341
|
emitAlert({
|
|
382
342
|
type: 'status',
|
|
383
343
|
title: 'Aria Repo Guard watching repositories',
|
|
384
|
-
message: `Watching ${repos.length} repo(s) for
|
|
344
|
+
message: `Watching ${repos.length} repo(s) for unapproved tracked deletions.`,
|
|
385
345
|
});
|
|
386
346
|
const pending = new Map();
|
|
387
|
-
const restoring = new Map();
|
|
388
347
|
const debounceMs = options.debounceMs ?? DEFAULT_DEBOUNCE_MS;
|
|
389
348
|
const watcher = chokidar.watch(repos, {
|
|
390
349
|
ignoreInitial: true,
|
|
@@ -403,28 +362,16 @@ export async function startRepoGuardDaemon(options = {}) {
|
|
|
403
362
|
clearTimeout(prior);
|
|
404
363
|
const timer = setTimeout(() => {
|
|
405
364
|
pending.delete(absPath);
|
|
406
|
-
const restoredAt = restoring.get(absPath);
|
|
407
|
-
if (restoredAt && Date.now() - restoredAt < 1500) {
|
|
408
|
-
restoring.delete(absPath);
|
|
409
|
-
return;
|
|
410
|
-
}
|
|
411
365
|
const relPath = path.relative(repoRoot, absPath);
|
|
412
|
-
if (!
|
|
366
|
+
if (!isRepoGuardedPath(relPath))
|
|
413
367
|
return;
|
|
414
368
|
if (!existsSync(absPath)) {
|
|
415
|
-
|
|
416
|
-
return;
|
|
417
|
-
}
|
|
418
|
-
const gate = gateFile(repoRoot, relPath);
|
|
419
|
-
if (gate.ok) {
|
|
420
|
-
if (!statSync(absPath).isDirectory()) {
|
|
421
|
-
writeShadow(repoRoot, relPath, readFileSync(absPath, 'utf8'));
|
|
422
|
-
}
|
|
423
|
-
writeState({ status: 'watching', lastEvent: `${repoRoot}:${relPath}`, lastError: null });
|
|
369
|
+
handleDeletedGuardedPath(repoRoot, absPath, relPath);
|
|
424
370
|
return;
|
|
425
371
|
}
|
|
426
|
-
|
|
427
|
-
|
|
372
|
+
if (!statSync(absPath).isDirectory())
|
|
373
|
+
appendEvent({ type: 'observed-change', repoRoot, relPath });
|
|
374
|
+
writeState({ status: 'watching', lastEvent: `${repoRoot}:${relPath}`, lastError: null });
|
|
428
375
|
}, debounceMs);
|
|
429
376
|
pending.set(absPath, timer);
|
|
430
377
|
}
|
|
@@ -496,7 +443,6 @@ export async function installRepoGuardDaemon(config, fallbackRepoPath) {
|
|
|
496
443
|
return logs;
|
|
497
444
|
}
|
|
498
445
|
mkdirSync(BIN_DIR, { recursive: true, mode: 0o755 });
|
|
499
|
-
mkdirSync(SHADOW_ROOT, { recursive: true, mode: 0o700 });
|
|
500
446
|
mkdirSync(QUARANTINE_ROOT, { recursive: true, mode: 0o700 });
|
|
501
447
|
const envPath = writeRepoGuardEnv(repos);
|
|
502
448
|
writeWrapper(path.join(BIN_DIR, 'aria-repo-guard'), ['repo-guard']);
|