instar 1.3.894 → 1.3.896
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/FailureEpisodeLatch.d.ts +8 -0
- package/dist/core/FailureEpisodeLatch.d.ts.map +1 -1
- package/dist/core/FailureEpisodeLatch.js +14 -0
- package/dist/core/FailureEpisodeLatch.js.map +1 -1
- package/dist/core/SelfHealGate.d.ts +148 -0
- package/dist/core/SelfHealGate.d.ts.map +1 -0
- package/dist/core/SelfHealGate.js +391 -0
- package/dist/core/SelfHealGate.js.map +1 -0
- package/dist/feedback-factory/drain/FeedbackFactoryDefaultsSelfHeal.d.ts +19 -0
- package/dist/feedback-factory/drain/FeedbackFactoryDefaultsSelfHeal.d.ts.map +1 -0
- package/dist/feedback-factory/drain/FeedbackFactoryDefaultsSelfHeal.js +118 -0
- package/dist/feedback-factory/drain/FeedbackFactoryDefaultsSelfHeal.js.map +1 -0
- package/dist/feedback-factory/drain/FeedbackFactoryGeneratedDefaults.d.ts +11 -1
- package/dist/feedback-factory/drain/FeedbackFactoryGeneratedDefaults.d.ts.map +1 -1
- package/dist/feedback-factory/drain/FeedbackFactoryGeneratedDefaults.js +88 -25
- package/dist/feedback-factory/drain/FeedbackFactoryGeneratedDefaults.js.map +1 -1
- package/dist/messaging/slack/SlackAdapter.js +15 -14
- package/dist/messaging/slack/SlackAdapter.js.map +1 -1
- package/dist/messaging/slack/types.d.ts +7 -4
- package/dist/messaging/slack/types.d.ts.map +1 -1
- package/dist/messaging/slack/types.js.map +1 -1
- package/dist/monitoring/selfaction/policies.d.ts.map +1 -1
- package/dist/monitoring/selfaction/policies.js +14 -0
- package/dist/monitoring/selfaction/policies.js.map +1 -1
- package/dist/permissions/AmbientContributionGate.d.ts +14 -17
- package/dist/permissions/AmbientContributionGate.d.ts.map +1 -1
- package/dist/permissions/AmbientContributionGate.js +50 -56
- package/dist/permissions/AmbientContributionGate.js.map +1 -1
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +24 -6
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/testing/selfActionRegistry.d.ts.map +1 -1
- package/dist/testing/selfActionRegistry.js +25 -0
- package/dist/testing/selfActionRegistry.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +3 -3
- package/src/data/state-coherence-registry.json +17 -0
- package/upgrades/1.3.895.md +23 -0
- package/upgrades/1.3.896.md +25 -0
- package/upgrades/side-effects/self-heal-gate.md +87 -0
- package/upgrades/side-effects/slack-considered-acknowledgment-v1.md +80 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelfHealGate.js","sourceRoot":"","sources":["../../src/core/SelfHealGate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type SelfHealNotice } from '../../core/SelfHealGate.js';
|
|
2
|
+
export interface FeedbackDefaultsHealOptions {
|
|
3
|
+
stateDir: string;
|
|
4
|
+
developmentAgent: boolean;
|
|
5
|
+
bootId: string;
|
|
6
|
+
currentFence: () => string | null;
|
|
7
|
+
notify: (notice: SelfHealNotice) => void | Promise<void>;
|
|
8
|
+
audit?: (event: {
|
|
9
|
+
event: string;
|
|
10
|
+
reason?: string;
|
|
11
|
+
elapsedMs?: number;
|
|
12
|
+
}) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function requestSelfHealRestart(stateDir: string, stableRequestId: string): boolean;
|
|
15
|
+
export declare function runFeedbackFactoryDefaultsSelfHeal(options: FeedbackDefaultsHealOptions): Promise<{
|
|
16
|
+
attempted: boolean;
|
|
17
|
+
outcome: string;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=FeedbackFactoryDefaultsSelfHeal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackFactoryDefaultsSelfHeal.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/drain/FeedbackFactoryDefaultsSelfHeal.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4C,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAU3G,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACjF;AAID,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAkBzF;AAED,wBAAsB,kCAAkC,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAyC/I"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { SelfHealGate, SqliteSelfHealEpisodeStore } from '../../core/SelfHealGate.js';
|
|
5
|
+
import { SafeFsExecutor } from '../../core/SafeFsExecutor.js';
|
|
6
|
+
import { consumeAdmissionToken, governor } from '../../monitoring/selfaction/governor.js';
|
|
7
|
+
import { ensureFeedbackFactoryGeneratedDefaults, inspectFeedbackFactoryGeneratedDefaults } from './FeedbackFactoryGeneratedDefaults.js';
|
|
8
|
+
/* @self-action-controller: feedback-factory-generated-defaults-heal */
|
|
9
|
+
const feedbackDefaultsGovernor = governor.for('feedback-factory-generated-defaults-heal');
|
|
10
|
+
function deriveTargetKey(target) { return target; }
|
|
11
|
+
export function requestSelfHealRestart(stateDir, stableRequestId) {
|
|
12
|
+
const dir = path.join(stateDir, 'state');
|
|
13
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
14
|
+
const destination = path.join(dir, 'restart-requested.json');
|
|
15
|
+
if (fs.existsSync(destination)) {
|
|
16
|
+
try {
|
|
17
|
+
return JSON.parse(fs.readFileSync(destination, 'utf8')).requestId === stableRequestId;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const tmp = path.join(dir, `.restart-request.${process.pid}.${crypto.randomBytes(8).toString('hex')}.tmp`);
|
|
24
|
+
const body = JSON.stringify({ requestedAt: new Date().toISOString(), requestedBy: 'self-heal-gate', requestId: stableRequestId, plannedRestart: true, pid: process.pid }, null, 2);
|
|
25
|
+
try {
|
|
26
|
+
const fd = fs.openSync(tmp, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_EXCL | (fs.constants.O_NOFOLLOW ?? 0), 0o600);
|
|
27
|
+
try {
|
|
28
|
+
fs.writeFileSync(fd, body);
|
|
29
|
+
fs.fsyncSync(fd);
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
fs.closeSync(fd);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
fs.linkSync(tmp, destination);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
if (error.code !== 'EEXIST')
|
|
39
|
+
throw error;
|
|
40
|
+
return JSON.parse(fs.readFileSync(destination, 'utf8')).requestId === stableRequestId;
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
try {
|
|
49
|
+
SafeFsExecutor.safeUnlinkSync(tmp, { operation: 'feedback-defaults-self-heal restart temp cleanup' });
|
|
50
|
+
}
|
|
51
|
+
catch { /* already absent */ }
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export async function runFeedbackFactoryDefaultsSelfHeal(options) {
|
|
55
|
+
const stateFailure = async () => {
|
|
56
|
+
try {
|
|
57
|
+
await options.notify({ id: `self-heal:feedback-factory-generated-defaults-heal:state-failure:${options.bootId}`, controllerId: 'feedback-factory-generated-defaults-heal', reason: 'state-failure', priority: 'HIGH' });
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
options.audit?.({ event: 'notice-enqueue-failed', reason: 'state-failure' });
|
|
61
|
+
}
|
|
62
|
+
options.audit?.({ event: 'state-failure', reason: 'store-preflight-failed' });
|
|
63
|
+
return { attempted: false, outcome: 'state-failure' };
|
|
64
|
+
};
|
|
65
|
+
let store;
|
|
66
|
+
try {
|
|
67
|
+
store = new SqliteSelfHealEpisodeStore(path.join(options.stateDir, 'state', 'self-heal-gate.db'));
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return stateFailure();
|
|
71
|
+
}
|
|
72
|
+
const makeContext = () => ({ inspection: inspectFeedbackFactoryGeneratedDefaults(options.stateDir, options.developmentAgent), fence: options.currentFence() });
|
|
73
|
+
const gate = new SelfHealGate({
|
|
74
|
+
id: 'feedback-factory-generated-defaults-heal', controllerResource: 'hardware-bound', episodeAuthority: 'durable-machine-local', classId: 'feedback-generated-defaults',
|
|
75
|
+
severity: (ctx) => ctx.inspection.posture === 'unsafe' ? 'unknown' : 'recoverable', dedupeKey: () => 'generated-defaults',
|
|
76
|
+
eligible: () => { const fence = options.currentFence(); return { eligible: fence !== null, fence }; },
|
|
77
|
+
remediation: () => {
|
|
78
|
+
const before = inspectFeedbackFactoryGeneratedDefaults(options.stateDir, options.developmentAgent);
|
|
79
|
+
if (before.posture === 'unsafe')
|
|
80
|
+
return { outcome: 'not-healed', evidence: before.reason };
|
|
81
|
+
if (before.posture === 'healthy')
|
|
82
|
+
return { outcome: 'healed', evidence: 'already-healthy' };
|
|
83
|
+
const result = ensureFeedbackFactoryGeneratedDefaults(options.stateDir, options.developmentAgent);
|
|
84
|
+
const after = inspectFeedbackFactoryGeneratedDefaults(options.stateDir, options.developmentAgent);
|
|
85
|
+
if (after.posture !== 'healthy')
|
|
86
|
+
return { outcome: 'not-healed', evidence: 'verification-failed' };
|
|
87
|
+
return result.changed ? { outcome: 'pending-restart', evidence: 'repaired' } : { outcome: 'healed', evidence: 'already-healthy' };
|
|
88
|
+
},
|
|
89
|
+
restartVerified: (ctx) => ctx.inspection.posture === 'healthy', maxAttempts: 3, maxWallClockMs: 10 * 60_000,
|
|
90
|
+
backoffMs: (attempt) => [0, 30_000, 120_000][Math.max(0, attempt - 1)] ?? 120_000, notificationLatencyCeilingMs: 2 * 60_000,
|
|
91
|
+
flap: { maxRecoveries: 3, windowMs: 24 * 60 * 60_000 }, remediationActions: { operation: 'generated-defaults-repair', idempotencyGuard: 'exclusive-temp-atomic-rename', compensation: 'destination-unchanged-before-rename' },
|
|
92
|
+
}, {
|
|
93
|
+
admit: (target, admitOptions) => feedbackDefaultsGovernor.admit(deriveTargetKey(target), admitOptions), consumeToken: consumeAdmissionToken, notify: options.notify,
|
|
94
|
+
audit: (event) => options.audit?.({ event: event.event, reason: event.reason, elapsedMs: event.elapsedMs }), episodeStore: store,
|
|
95
|
+
bootId: options.bootId, requestRestart: (id) => requestSelfHealRestart(options.stateDir, id),
|
|
96
|
+
});
|
|
97
|
+
const ctx = makeContext();
|
|
98
|
+
if (ctx.inspection.posture === 'fleet-dark') {
|
|
99
|
+
store.close();
|
|
100
|
+
return { attempted: false, outcome: 'fleet-dark' };
|
|
101
|
+
}
|
|
102
|
+
let restartVerificationRequired;
|
|
103
|
+
try {
|
|
104
|
+
restartVerificationRequired = gate.needsRestartVerification(ctx);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
store.close();
|
|
108
|
+
return stateFailure();
|
|
109
|
+
}
|
|
110
|
+
if (ctx.inspection.posture === 'healthy' && !restartVerificationRequired) {
|
|
111
|
+
store.close();
|
|
112
|
+
return { attempted: false, outcome: 'healthy' };
|
|
113
|
+
}
|
|
114
|
+
const result = await gate.attempt(ctx);
|
|
115
|
+
// Keep the store alive for an enforce-mode governor queue continuation.
|
|
116
|
+
return { attempted: true, outcome: result.outcome };
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=FeedbackFactoryDefaultsSelfHeal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackFactoryDefaultsSelfHeal.js","sourceRoot":"","sources":["../../../src/feedback-factory/drain/FeedbackFactoryDefaultsSelfHeal.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,17 @@ export interface FeedbackFactoryGeneratedDefaults {
|
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
export
|
|
12
|
+
export type GeneratedDefaultsInspection = {
|
|
13
|
+
posture: 'fleet-dark' | 'healthy';
|
|
14
|
+
reason: 'fleet-dark' | 'healthy';
|
|
15
|
+
} | {
|
|
16
|
+
posture: 'repair-needed';
|
|
17
|
+
reason: 'source-absent' | 'schema-stale';
|
|
18
|
+
} | {
|
|
19
|
+
posture: 'unsafe';
|
|
20
|
+
reason: 'malformed-json' | 'access-denied' | 'io-error' | 'symlink-refused' | 'non-regular-refused';
|
|
21
|
+
};
|
|
22
|
+
export declare function inspectFeedbackFactoryGeneratedDefaults(stateDir: string, developmentAgent: boolean): GeneratedDefaultsInspection;
|
|
13
23
|
export declare function ensureFeedbackFactoryGeneratedDefaults(stateDir: string, developmentAgent: boolean): {
|
|
14
24
|
posture: 'fleet-dark' | 'healthy' | 'repaired';
|
|
15
25
|
changed: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackFactoryGeneratedDefaults.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/drain/FeedbackFactoryGeneratedDefaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FeedbackFactoryGeneratedDefaults.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/drain/FeedbackFactoryGeneratedDefaults.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gCAAgC;IAC/C,aAAa,EAAE,CAAC,CAAC;IACjB,eAAe,EAAE;QAAE,UAAU,EAAE;YAAE,OAAO,EAAE,IAAI,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE;YAAE,OAAO,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CAAC;CAC9E;AAGD,MAAM,MAAM,2BAA2B,GACnC;IAAE,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAA;CAAE,GACvE;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAAA;CAAE,GACtE;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,GAAG,UAAU,GAAG,iBAAiB,GAAG,qBAAqB,CAAA;CAAE,CAAC;AAe/H,wBAAgB,uCAAuC,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAG,2BAA2B,CAehI;AAED,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAG;IACnG,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAC/E,IAAI,EAAE;QAAE,aAAa,CAAC,EAAE;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,CAAC,CAAA;SAAE,CAAC;QAAC,iBAAiB,CAAC,EAAE;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,IAAI,CAAA;SAAE,CAAC;QAAC,YAAY,CAAC,EAAE;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CAAC;CAChK,CAmCA"}
|
|
@@ -1,47 +1,110 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
1
2
|
import fs from 'node:fs';
|
|
2
3
|
import path from 'node:path';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { SafeFsExecutor } from '../../core/SafeFsExecutor.js';
|
|
5
|
+
const EXPECTED = { schemaVersion: 1, feedbackFactory: { processing: { enabled: true }, drain: { enabled: true } } };
|
|
6
|
+
function targetPath(stateDir) { return path.join(stateDir, 'state', 'generated-feature-defaults.json'); }
|
|
7
|
+
function classifyError(error) {
|
|
8
|
+
const code = error?.code;
|
|
9
|
+
if (code === 'EACCES' || code === 'EPERM')
|
|
10
|
+
return 'access-denied';
|
|
11
|
+
return 'io-error';
|
|
12
|
+
}
|
|
13
|
+
function isExpected(parsed) {
|
|
14
|
+
const ff = parsed.feedbackFactory;
|
|
15
|
+
const processing = ff?.processing;
|
|
16
|
+
const drain = ff?.drain;
|
|
17
|
+
return parsed.schemaVersion === 1 && processing?.enabled === true && drain?.enabled === true;
|
|
18
|
+
}
|
|
7
19
|
export function inspectFeedbackFactoryGeneratedDefaults(stateDir, developmentAgent) {
|
|
8
20
|
if (!developmentAgent)
|
|
9
|
-
return 'fleet-dark';
|
|
21
|
+
return { posture: 'fleet-dark', reason: 'fleet-dark' };
|
|
22
|
+
const filePath = targetPath(stateDir);
|
|
10
23
|
try {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
24
|
+
const st = fs.lstatSync(filePath);
|
|
25
|
+
if (st.isSymbolicLink())
|
|
26
|
+
return { posture: 'unsafe', reason: 'symlink-refused' };
|
|
27
|
+
if (!st.isFile())
|
|
28
|
+
return { posture: 'unsafe', reason: 'non-regular-refused' };
|
|
29
|
+
let parsed;
|
|
30
|
+
try {
|
|
31
|
+
parsed = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
return error.code ? { posture: 'unsafe', reason: classifyError(error) } : { posture: 'unsafe', reason: 'malformed-json' };
|
|
35
|
+
}
|
|
36
|
+
return isExpected(parsed) ? { posture: 'healthy', reason: 'healthy' } : { posture: 'repair-needed', reason: 'schema-stale' };
|
|
16
37
|
}
|
|
17
|
-
catch {
|
|
18
|
-
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error.code === 'ENOENT')
|
|
40
|
+
return { posture: 'repair-needed', reason: 'source-absent' };
|
|
41
|
+
return { posture: 'unsafe', reason: classifyError(error) };
|
|
19
42
|
}
|
|
20
43
|
}
|
|
21
44
|
export function ensureFeedbackFactoryGeneratedDefaults(stateDir, developmentAgent) {
|
|
22
|
-
const filePath =
|
|
45
|
+
const filePath = targetPath(stateDir);
|
|
23
46
|
if (!developmentAgent)
|
|
24
47
|
return { posture: 'fleet-dark', changed: false, path: filePath, diff: {} };
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
48
|
+
const inspection = inspectFeedbackFactoryGeneratedDefaults(stateDir, true);
|
|
49
|
+
if (inspection.posture === 'unsafe')
|
|
50
|
+
throw new Error(`generated defaults repair refused: ${inspection.reason}`);
|
|
51
|
+
if (inspection.posture === 'healthy')
|
|
52
|
+
return { posture: 'healthy', changed: false, path: filePath, diff: {} };
|
|
53
|
+
const root = fs.realpathSync(stateDir);
|
|
54
|
+
if (fs.lstatSync(root).isSymbolicLink() || !fs.lstatSync(root).isDirectory())
|
|
55
|
+
throw new Error('generated defaults state root is unsafe');
|
|
56
|
+
const dir = path.join(root, 'state');
|
|
57
|
+
if (fs.existsSync(dir)) {
|
|
58
|
+
const st = fs.lstatSync(dir);
|
|
59
|
+
if (st.isSymbolicLink() || !st.isDirectory())
|
|
60
|
+
throw new Error('generated defaults parent is unsafe');
|
|
28
61
|
}
|
|
29
|
-
|
|
62
|
+
else
|
|
63
|
+
fs.mkdirSync(dir, { mode: 0o700 });
|
|
64
|
+
const anchored = path.join(dir, 'generated-feature-defaults.json');
|
|
65
|
+
const rel = path.relative(root, anchored);
|
|
66
|
+
if (rel.startsWith('..') || path.isAbsolute(rel))
|
|
67
|
+
throw new Error('generated defaults path escaped state root');
|
|
68
|
+
let before = null;
|
|
69
|
+
if (inspection.reason === 'schema-stale')
|
|
70
|
+
before = JSON.parse(fs.readFileSync(anchored, 'utf8'));
|
|
30
71
|
const ff = before?.feedbackFactory;
|
|
31
72
|
const processing = ff?.processing;
|
|
32
73
|
const drain = ff?.drain;
|
|
33
|
-
const valid = before?.schemaVersion === 1 && processing?.enabled === true && drain?.enabled === true;
|
|
34
|
-
if (valid)
|
|
35
|
-
return { posture: 'healthy', changed: false, path: filePath, diff: {} };
|
|
36
74
|
const diff = {
|
|
37
75
|
...(before?.schemaVersion === 1 ? {} : { schemaVersion: { before: before?.schemaVersion, after: 1 } }),
|
|
38
76
|
...(processing?.enabled === true ? {} : { processingEnabled: { before: processing?.enabled, after: true } }),
|
|
39
77
|
...(drain?.enabled === true ? {} : { drainEnabled: { before: drain?.enabled, after: true } }),
|
|
40
78
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
79
|
+
const tmp = path.join(dir, `.generated-feature-defaults.${process.pid}.${crypto.randomBytes(8).toString('hex')}.tmp`);
|
|
80
|
+
let fd = null;
|
|
81
|
+
try {
|
|
82
|
+
fd = fs.openSync(tmp, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_EXCL | (fs.constants.O_NOFOLLOW ?? 0), 0o600);
|
|
83
|
+
fs.writeFileSync(fd, `${JSON.stringify(EXPECTED, null, 2)}\n`);
|
|
84
|
+
fs.fsyncSync(fd);
|
|
85
|
+
fs.closeSync(fd);
|
|
86
|
+
fd = null;
|
|
87
|
+
fs.renameSync(tmp, anchored);
|
|
88
|
+
const dirFd = fs.openSync(dir, fs.constants.O_RDONLY);
|
|
89
|
+
try {
|
|
90
|
+
fs.fsyncSync(dirFd);
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
fs.closeSync(dirFd);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
if (fd !== null)
|
|
98
|
+
try {
|
|
99
|
+
fs.closeSync(fd);
|
|
100
|
+
}
|
|
101
|
+
catch { /* already closed */ }
|
|
102
|
+
if (fs.existsSync(tmp))
|
|
103
|
+
try {
|
|
104
|
+
SafeFsExecutor.safeUnlinkSync(tmp, { operation: 'generated defaults exclusive temp cleanup' });
|
|
105
|
+
}
|
|
106
|
+
catch { /* cleanup best effort */ }
|
|
107
|
+
}
|
|
108
|
+
return { posture: 'repaired', changed: true, path: anchored, diff };
|
|
46
109
|
}
|
|
47
110
|
//# sourceMappingURL=FeedbackFactoryGeneratedDefaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackFactoryGeneratedDefaults.js","sourceRoot":"","sources":["../../../src/feedback-factory/drain/FeedbackFactoryGeneratedDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"FeedbackFactoryGeneratedDefaults.js","sourceRoot":"","sources":["../../../src/feedback-factory/drain/FeedbackFactoryGeneratedDefaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1018,25 +1018,26 @@ export class SlackAdapter {
|
|
|
1018
1018
|
}
|
|
1019
1019
|
if (this.respondMode === 'mention-only' && !isDM && !this._isBotMentioned(text)) {
|
|
1020
1020
|
// ── Ambient "should I speak?" gate (considered/ambient mode, §5.2) ──────────
|
|
1021
|
-
// This
|
|
1022
|
-
//
|
|
1023
|
-
//
|
|
1024
|
-
//
|
|
1025
|
-
//
|
|
1026
|
-
// returns speak=false, so we fall through to the same drop. A speak=true here
|
|
1027
|
-
// means the undirected message is processed exactly like a directed one
|
|
1028
|
-
// (the code below this block is unchanged); directed messages never reach here.
|
|
1021
|
+
// This opt-in gate returns exactly one closed action: speak processes the
|
|
1022
|
+
// message downstream, react makes one fixed eyes-reaction attempt and returns,
|
|
1023
|
+
// and silent only retains bounded history. Every failure/unknown result fails
|
|
1024
|
+
// to silent. With no gate or no channel opt-in, behavior remains the ordinary
|
|
1025
|
+
// mention-only drop; directed messages never reach this branch.
|
|
1029
1026
|
let ambientSpeak = false;
|
|
1030
1027
|
if (this.ambientGate && this.ambientGate.isChannelEnabled(channelId)) {
|
|
1031
1028
|
try {
|
|
1032
|
-
const decision = await this.ambientGate.
|
|
1033
|
-
ambientSpeak = decision.
|
|
1034
|
-
if (
|
|
1035
|
-
|
|
1036
|
-
// we've committed to processing this proactive turn.
|
|
1037
|
-
this.ambientGate.recordSpoke(channelId);
|
|
1029
|
+
const decision = await this.ambientGate.decideAction({ channelId, text, channelName: undefined });
|
|
1030
|
+
ambientSpeak = decision.action === 'speak';
|
|
1031
|
+
if (decision.action === 'speak') {
|
|
1032
|
+
this.ambientGate.recordAction(channelId);
|
|
1038
1033
|
console.log(`[slack] ambient gate cleared for ${channelId}: ${decision.reason}${decision.detail ? ` — ${decision.detail}` : ''}`);
|
|
1039
1034
|
}
|
|
1035
|
+
else if (decision.action === 'react') {
|
|
1036
|
+
// Consume budget before the one fire-and-forget attempt. The existing
|
|
1037
|
+
// primitive contains failures; there is no retry, refund, or fallback.
|
|
1038
|
+
this.ambientGate.recordAction(channelId);
|
|
1039
|
+
this.addReaction(channelId, ts, 'eyes');
|
|
1040
|
+
}
|
|
1040
1041
|
}
|
|
1041
1042
|
catch {
|
|
1042
1043
|
// Fail-to-silence: any unexpected throw at the call site stays silent too.
|