oficina-opencode 3.0.5 → 3.1.1
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/README.md +240 -208
- package/commands/oficina.md +7 -6
- package/dashboard/.dom-check.html +1257 -0
- package/dashboard/README-DASHBOARD.md +64 -0
- package/dashboard/assets/factory.css +1543 -0
- package/dashboard/assets/tokens.css +208 -0
- package/dashboard/build-kanban-data.mjs +279 -0
- package/dashboard/dashboard.css +753 -0
- package/dashboard/dashboard.html +121 -0
- package/dashboard/dashboard.js +610 -0
- package/dashboard/data/snapshot.json +883 -0
- package/dashboard/debate.html +134 -0
- package/dashboard/factory/build-snapshot.mjs +89 -0
- package/dashboard/factory/factory-app.js +1185 -0
- package/dashboard/factory/factory-core.js +541 -0
- package/dashboard/factory/snapshot.js +850 -0
- package/dashboard/factory.html +350 -0
- package/dashboard/kanban-data.json +671 -0
- package/dashboard/kanban-source.js +643 -0
- package/dashboard/kanban.check.mjs +454 -0
- package/dashboard/kanban.html +1257 -0
- package/dashboard/leadership.html +1008 -0
- package/dashboard/lib/debate-app.js +1149 -0
- package/dashboard/lib/debate-core.js +698 -0
- package/dashboard/lib/debate-data.js +163 -0
- package/dashboard/lib/debate-demo.js +110 -0
- package/dashboard/lib/debate.css +1155 -0
- package/dashboard/lib/leadership-model.js +946 -0
- package/dashboard/probe.mjs +35 -0
- package/dashboard/scripts/serve.mjs +122 -0
- package/dashboard/scripts/snapshot-data.mjs +93 -0
- package/dashboard/scripts/snapshot.mjs +28 -0
- package/dashboard/server.mjs +242 -0
- package/dashboard/shot.mjs +54 -0
- package/dashboard/shots/desktop-gates.png +0 -0
- package/dashboard/shots/desktop-light.png +0 -0
- package/dashboard/shots/desktop-real.png +0 -0
- package/dashboard/shots/mobile.png +0 -0
- package/dashboard/test/factory-core.test.mjs +244 -0
- package/dashboard/tests/debate-core.test.mjs +336 -0
- package/dashboard/tests/leadership-model.test.mjs +404 -0
- package/dist/cli.js +148 -26
- package/dist/cli.js.map +1 -1
- package/dist/core/bus.js +3 -3
- package/dist/core/bus.js.map +1 -1
- package/dist/core/catalog.d.ts +9 -1
- package/dist/core/catalog.d.ts.map +1 -1
- package/dist/core/catalog.js +77 -2
- package/dist/core/catalog.js.map +1 -1
- package/dist/core/dashboard.d.ts +33 -0
- package/dist/core/dashboard.d.ts.map +1 -0
- package/dist/core/dashboard.js +115 -0
- package/dist/core/dashboard.js.map +1 -0
- package/dist/core/dispatch.d.ts +1 -1
- package/dist/core/dispatch.d.ts.map +1 -1
- package/dist/core/dispatch.js +84 -12
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/docsync.d.ts +0 -9
- package/dist/core/docsync.d.ts.map +1 -1
- package/dist/core/docsync.js +12 -15
- package/dist/core/docsync.js.map +1 -1
- package/dist/core/environment.d.ts +28 -0
- package/dist/core/environment.d.ts.map +1 -0
- package/dist/core/environment.js +80 -0
- package/dist/core/environment.js.map +1 -0
- package/dist/core/factory.d.ts +16 -0
- package/dist/core/factory.d.ts.map +1 -1
- package/dist/core/factory.js +143 -0
- package/dist/core/factory.js.map +1 -1
- package/dist/core/fsx.d.ts +20 -2
- package/dist/core/fsx.d.ts.map +1 -1
- package/dist/core/fsx.js +10 -6
- package/dist/core/fsx.js.map +1 -1
- package/dist/core/gates.d.ts +23 -1
- package/dist/core/gates.d.ts.map +1 -1
- package/dist/core/gates.js +83 -8
- package/dist/core/gates.js.map +1 -1
- package/dist/core/leases.d.ts.map +1 -1
- package/dist/core/leases.js +4 -1
- package/dist/core/leases.js.map +1 -1
- package/dist/core/mesa.d.ts +1 -6
- package/dist/core/mesa.d.ts.map +1 -1
- package/dist/core/mesa.js +1 -6
- package/dist/core/mesa.js.map +1 -1
- package/dist/core/office.d.ts +3 -29
- package/dist/core/office.d.ts.map +1 -1
- package/dist/core/office.js +77 -90
- package/dist/core/office.js.map +1 -1
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +6 -1
- package/dist/core/paths.js.map +1 -1
- package/dist/core/retry.d.ts +2 -8
- package/dist/core/retry.d.ts.map +1 -1
- package/dist/core/retry.js +3 -34
- package/dist/core/retry.js.map +1 -1
- package/dist/core/roster.js +3 -3
- package/dist/core/roster.js.map +1 -1
- package/dist/core/sandbox.d.ts +38 -1
- package/dist/core/sandbox.d.ts.map +1 -1
- package/dist/core/sandbox.js +119 -15
- package/dist/core/sandbox.js.map +1 -1
- package/dist/core/state.d.ts +2 -2
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +5 -33
- package/dist/core/state.js.map +1 -1
- package/dist/core/stores.d.ts +3 -13
- package/dist/core/stores.d.ts.map +1 -1
- package/dist/core/stores.js +8 -32
- package/dist/core/stores.js.map +1 -1
- package/dist/core/systemPrompt.d.ts.map +1 -1
- package/dist/core/systemPrompt.js +4 -1
- package/dist/core/systemPrompt.js.map +1 -1
- package/dist/core/tripwire.d.ts +22 -8
- package/dist/core/tripwire.d.ts.map +1 -1
- package/dist/core/tripwire.js +71 -26
- package/dist/core/tripwire.js.map +1 -1
- package/dist/core/types.d.ts +6 -14
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +11 -3
- package/dist/core/types.js.map +1 -1
- package/dist/hooks/scopeGuard.d.ts +15 -1
- package/dist/hooks/scopeGuard.d.ts.map +1 -1
- package/dist/hooks/scopeGuard.js +88 -73
- package/dist/hooks/scopeGuard.js.map +1 -1
- package/dist/tools/index.d.ts +9 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +29 -81
- package/dist/tools/index.js.bak +972 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/v1.d.ts.map +1 -1
- package/dist/v1.js +30 -36
- package/dist/v1.js.map +1 -1
- package/dist/v2.d.ts +5 -0
- package/dist/v2.d.ts.map +1 -1
- package/dist/v2.js +79 -46
- package/dist/v2.js.bak +517 -0
- package/dist/v2.js.map +1 -1
- package/docs/GARANTIAS.md +2 -2
- package/docs/PRUEBA-E2E.md +4 -4
- package/docs/QUE-ES.md +4 -5
- package/docs/SEGURIDAD-REPO.md +83 -0
- package/docs/assets/banner.svg +42 -0
- package/docs/catalog-facts.json +3 -3
- package/docs/superpowers/specs/2026-10-29-factory-skill-creator-and-remove-budget.md +182 -0
- package/package.json +14 -6
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* Asi que el texto se construye una vez, acá, y cada entry lo inyecta donde
|
|
12
12
|
* su API lo permita.
|
|
13
13
|
*/
|
|
14
|
+
import { renderEnvironmentSheet } from "./environment.js";
|
|
14
15
|
/**
|
|
15
16
|
* Construye el bloque de estado.
|
|
16
17
|
*
|
|
@@ -27,11 +28,13 @@ export async function buildSystemPrompt(office, state) {
|
|
|
27
28
|
const idle = Object.values(roster.agents).filter((a) => a.state === "idle_available");
|
|
28
29
|
const working = Object.values(roster.agents).filter((a) => a.state === "working");
|
|
29
30
|
const lines = [
|
|
31
|
+
"",
|
|
32
|
+
renderEnvironmentSheet(),
|
|
30
33
|
"",
|
|
31
34
|
"## 🏢 OFICINA — estado de la corrida",
|
|
32
35
|
"",
|
|
33
36
|
`**Objetivo:** ${state.objective}`,
|
|
34
|
-
`**Estado:** ${state.status} · iteración ${state.iteration} ·
|
|
37
|
+
`**Estado:** ${state.status} · iteración ${state.iteration} · cards: ${Object.keys(state.cards).length}`,
|
|
35
38
|
"",
|
|
36
39
|
"### Cards",
|
|
37
40
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemPrompt.js","sourceRoot":"","sources":["../../src/core/systemPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"systemPrompt.js","sourceRoot":"","sources":["../../src/core/systemPrompt.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tripwire.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export interface TripwireSnapshot {
|
|
|
34
34
|
scanned: number;
|
|
35
35
|
/** true si se supero el tope y la foto esta incompleta. */
|
|
36
36
|
truncated: boolean;
|
|
37
|
+
/** Errores ocurridos durante la captura (permisos, E/S, etc.). */
|
|
38
|
+
errors: string[];
|
|
37
39
|
}
|
|
38
40
|
export interface TripwireChange {
|
|
39
41
|
path: string;
|
|
@@ -60,17 +62,22 @@ export declare function snapshotTree(root: string, scope: string[], options?: Tr
|
|
|
60
62
|
* `scope` se usa para clasificar: lo que cambio y esta en el scope es
|
|
61
63
|
* esperado; lo que cambio y esta afuera es una violacion.
|
|
62
64
|
*/
|
|
63
|
-
export declare function diffSnapshots(before: TripwireSnapshot, after: TripwireSnapshot, scope: string[]):
|
|
65
|
+
export declare function diffSnapshots(before: TripwireSnapshot, after: TripwireSnapshot, scope: string[]): {
|
|
66
|
+
changes: TripwireChange[];
|
|
67
|
+
incomplete: boolean;
|
|
68
|
+
errors: string[];
|
|
69
|
+
};
|
|
64
70
|
/**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
* Tripwire: guarda las fotos entre el "antes" y el "después" de una tool.
|
|
72
|
+
*
|
|
73
|
+
* Se indexa por `callID` porque el hook `tool.execute.before` y el
|
|
74
|
+
* `tool.execute.after` reciben el mismo identificador de llamada.
|
|
75
|
+
*/
|
|
70
76
|
export declare class Tripwire {
|
|
71
77
|
private readonly root;
|
|
72
78
|
private readonly options;
|
|
73
79
|
private readonly snapshots;
|
|
80
|
+
private readonly armErrors;
|
|
74
81
|
constructor(root: string, options?: TripwireOptions);
|
|
75
82
|
/** Toma la foto "antes" de una llamada. */
|
|
76
83
|
arm(callID: string, scope: string[]): Promise<void>;
|
|
@@ -79,9 +86,16 @@ export declare class Tripwire {
|
|
|
79
86
|
*
|
|
80
87
|
* Devuelve los cambios que estan FUERA del scope: los que estan adentro
|
|
81
88
|
* son el trabajo esperado del agente.
|
|
89
|
+
*
|
|
90
|
+
* El resultado incluye metadatos sobre completitud, errores y si el arm fallo.
|
|
82
91
|
*/
|
|
83
|
-
check(callID: string, scope: string[]): Promise<
|
|
84
|
-
|
|
92
|
+
check(callID: string, scope: string[]): Promise<{
|
|
93
|
+
changes: TripwireChange[];
|
|
94
|
+
incomplete: boolean;
|
|
95
|
+
errors: string[];
|
|
96
|
+
armFailed: boolean;
|
|
97
|
+
}>;
|
|
98
|
+
/** Libera las fotos que nunca se compararon, usando maxAge para antigüedad. */
|
|
85
99
|
prune(maxAge?: number): void;
|
|
86
100
|
}
|
|
87
101
|
//# sourceMappingURL=tripwire.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tripwire.d.ts","sourceRoot":"","sources":["../../src/core/tripwire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"tripwire.d.ts","sourceRoot":"","sources":["../../src/core/tripwire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAA;IAClB,kEAAkE;IAClE,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;IACxC,iDAAiD;IACjD,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAmBD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAoF3B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EAAE,GACd;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAsBtE;AAED;;;;;KAKK;AACL,qBAAa,QAAQ;IAKjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqE;IAC/F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAGnC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,eAAoB;IAGhD,2CAA2C;IACrC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzD;;;;;;;OAOG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACpD,OAAO,EAAE,cAAc,EAAE,CAAA;QACzB,UAAU,EAAE,OAAO,CAAA;QACnB,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,SAAS,EAAE,OAAO,CAAA;KACnB,CAAC;IAwBF,+EAA+E;IAC/E,KAAK,CAAC,MAAM,SAAS,GAAG,IAAI;CAoB7B"}
|
package/dist/core/tripwire.js
CHANGED
|
@@ -58,6 +58,7 @@ export async function snapshotTree(root, scope, options = {}) {
|
|
|
58
58
|
const files = new Map();
|
|
59
59
|
let scanned = 0;
|
|
60
60
|
let truncated = false;
|
|
61
|
+
const errors = [];
|
|
61
62
|
const walk = async (dir) => {
|
|
62
63
|
if (scanned >= maxFiles) {
|
|
63
64
|
truncated = true;
|
|
@@ -67,7 +68,8 @@ export async function snapshotTree(root, scope, options = {}) {
|
|
|
67
68
|
try {
|
|
68
69
|
entries = await fs.readdir(dir, { withFileTypes: true });
|
|
69
70
|
}
|
|
70
|
-
catch {
|
|
71
|
+
catch (err) {
|
|
72
|
+
errors.push(`Error reading directory ${dir}: ${String(err)}`);
|
|
71
73
|
return;
|
|
72
74
|
}
|
|
73
75
|
for (const entry of entries) {
|
|
@@ -81,6 +83,10 @@ export async function snapshotTree(root, scope, options = {}) {
|
|
|
81
83
|
if (entry.name.startsWith(".") && entry.name !== ".opencode")
|
|
82
84
|
continue;
|
|
83
85
|
await walk(path.join(dir, entry.name));
|
|
86
|
+
if (scanned >= maxFiles) {
|
|
87
|
+
truncated = true;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
84
90
|
continue;
|
|
85
91
|
}
|
|
86
92
|
if (!entry.isFile())
|
|
@@ -98,11 +104,16 @@ export async function snapshotTree(root, scope, options = {}) {
|
|
|
98
104
|
try {
|
|
99
105
|
stat = await fs.stat(full);
|
|
100
106
|
}
|
|
101
|
-
catch {
|
|
107
|
+
catch (err) {
|
|
108
|
+
errors.push(`Error stat sensitive file ${relative}: ${String(err)}`);
|
|
102
109
|
continue;
|
|
103
110
|
}
|
|
104
111
|
files.set(relative, `${stat.mtimeMs}:${stat.size}`);
|
|
105
112
|
scanned += 1;
|
|
113
|
+
if (scanned >= maxFiles) {
|
|
114
|
+
truncated = true;
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
106
117
|
continue;
|
|
107
118
|
}
|
|
108
119
|
// Los archivos del scope pueden cambiar: no son senal.
|
|
@@ -112,15 +123,20 @@ export async function snapshotTree(root, scope, options = {}) {
|
|
|
112
123
|
try {
|
|
113
124
|
stat = await fs.stat(full);
|
|
114
125
|
}
|
|
115
|
-
catch {
|
|
126
|
+
catch (err) {
|
|
127
|
+
errors.push(`Error stat file ${relative}: ${String(err)}`);
|
|
116
128
|
continue;
|
|
117
129
|
}
|
|
118
130
|
files.set(relative, `${stat.mtimeMs}:${stat.size}`);
|
|
119
131
|
scanned += 1;
|
|
132
|
+
if (scanned >= maxFiles) {
|
|
133
|
+
truncated = true;
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
120
136
|
}
|
|
121
137
|
};
|
|
122
138
|
await walk(root);
|
|
123
|
-
return { files, scanned, truncated };
|
|
139
|
+
return { files, scanned, truncated, errors };
|
|
124
140
|
}
|
|
125
141
|
/**
|
|
126
142
|
* Compara dos fotos y devuelve los cambios.
|
|
@@ -144,18 +160,21 @@ export function diffSnapshots(before, after, scope) {
|
|
|
144
160
|
changes.push({ path: file, kind: "deleted", outsideScope: !matchesScope(file, scope) });
|
|
145
161
|
}
|
|
146
162
|
}
|
|
147
|
-
|
|
163
|
+
const incomplete = before.truncated || after.truncated;
|
|
164
|
+
const allErrors = [...before.errors, ...after.errors];
|
|
165
|
+
return { changes: changes.sort((a, b) => a.path.localeCompare(b.path)), incomplete, errors: allErrors };
|
|
148
166
|
}
|
|
149
167
|
/**
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
168
|
+
* Tripwire: guarda las fotos entre el "antes" y el "después" de una tool.
|
|
169
|
+
*
|
|
170
|
+
* Se indexa por `callID` porque el hook `tool.execute.before` y el
|
|
171
|
+
* `tool.execute.after` reciben el mismo identificador de llamada.
|
|
172
|
+
*/
|
|
155
173
|
export class Tripwire {
|
|
156
174
|
root;
|
|
157
175
|
options;
|
|
158
176
|
snapshots = new Map();
|
|
177
|
+
armErrors = new Map();
|
|
159
178
|
constructor(root, options = {}) {
|
|
160
179
|
this.root = root;
|
|
161
180
|
this.options = options;
|
|
@@ -163,11 +182,14 @@ export class Tripwire {
|
|
|
163
182
|
/** Toma la foto "antes" de una llamada. */
|
|
164
183
|
async arm(callID, scope) {
|
|
165
184
|
try {
|
|
166
|
-
|
|
185
|
+
const snapshot = await snapshotTree(this.root, scope, this.options);
|
|
186
|
+
this.snapshots.set(callID, { snapshot, armedAt: Date.now() });
|
|
187
|
+
this.armErrors.delete(callID);
|
|
167
188
|
}
|
|
168
|
-
catch {
|
|
169
|
-
//
|
|
189
|
+
catch (err) {
|
|
190
|
+
// Registrar el error pero no impedir la operacion: el tripwire
|
|
170
191
|
// es deteccion, no control.
|
|
192
|
+
this.armErrors.set(callID, String(err));
|
|
171
193
|
}
|
|
172
194
|
}
|
|
173
195
|
/**
|
|
@@ -175,28 +197,51 @@ export class Tripwire {
|
|
|
175
197
|
*
|
|
176
198
|
* Devuelve los cambios que estan FUERA del scope: los que estan adentro
|
|
177
199
|
* son el trabajo esperado del agente.
|
|
200
|
+
*
|
|
201
|
+
* El resultado incluye metadatos sobre completitud, errores y si el arm fallo.
|
|
178
202
|
*/
|
|
179
203
|
async check(callID, scope) {
|
|
180
|
-
const
|
|
204
|
+
const entry = this.snapshots.get(callID);
|
|
205
|
+
const armError = this.armErrors.get(callID);
|
|
181
206
|
this.snapshots.delete(callID);
|
|
182
|
-
|
|
183
|
-
|
|
207
|
+
this.armErrors.delete(callID);
|
|
208
|
+
if (!entry && !armError)
|
|
209
|
+
return { changes: [], incomplete: false, errors: [], armFailed: false };
|
|
210
|
+
if (armError) {
|
|
211
|
+
// El arm fallo: no hay linea base valida
|
|
212
|
+
return { changes: [], incomplete: true, errors: [armError], armFailed: true };
|
|
213
|
+
}
|
|
214
|
+
if (!entry)
|
|
215
|
+
return { changes: [], incomplete: false, errors: [], armFailed: false };
|
|
184
216
|
try {
|
|
185
217
|
const after = await snapshotTree(this.root, scope, this.options);
|
|
186
|
-
|
|
218
|
+
const { changes, incomplete, errors } = diffSnapshots(entry.snapshot, after, scope);
|
|
219
|
+
return { changes: changes.filter((c) => c.outsideScope), incomplete, errors, armFailed: false };
|
|
187
220
|
}
|
|
188
|
-
catch {
|
|
189
|
-
return [];
|
|
221
|
+
catch (err) {
|
|
222
|
+
return { changes: [], incomplete: true, errors: [String(err)], armFailed: false };
|
|
190
223
|
}
|
|
191
224
|
}
|
|
192
|
-
/** Libera las fotos que nunca se compararon. */
|
|
225
|
+
/** Libera las fotos que nunca se compararon, usando maxAge para antigüedad. */
|
|
193
226
|
prune(maxAge = 60_000) {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
this.snapshots.delete(
|
|
227
|
+
if (!Number.isFinite(maxAge) || maxAge <= 0)
|
|
228
|
+
return;
|
|
229
|
+
const now = Date.now();
|
|
230
|
+
for (const [callID, entry] of this.snapshots.entries()) {
|
|
231
|
+
if (now - entry.armedAt > maxAge) {
|
|
232
|
+
this.snapshots.delete(callID);
|
|
233
|
+
this.armErrors.delete(callID);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// Protección adicional: límite duro por cantidad para evitar crecimiento ilimitado
|
|
237
|
+
const HARD_LIMIT = 500;
|
|
238
|
+
if (this.snapshots.size > HARD_LIMIT) {
|
|
239
|
+
const toDelete = this.snapshots.size - HARD_LIMIT;
|
|
240
|
+
const keys = [...this.snapshots.keys()].slice(0, toDelete);
|
|
241
|
+
for (const key of keys) {
|
|
242
|
+
this.snapshots.delete(key);
|
|
243
|
+
this.armErrors.delete(key);
|
|
244
|
+
}
|
|
200
245
|
}
|
|
201
246
|
}
|
|
202
247
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tripwire.js","sourceRoot":"","sources":["../../src/core/tripwire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"tripwire.js","sourceRoot":"","sources":["../../src/core/tripwire.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -21,8 +21,6 @@ export interface Limits {
|
|
|
21
21
|
maxConcurrentAgents: number;
|
|
22
22
|
/** Niveles de spawn bajo un coordinador. */
|
|
23
23
|
maxSpawnDepth: number;
|
|
24
|
-
/** Spawns totales por corrida. */
|
|
25
|
-
maxSpawnsTotal: number;
|
|
26
24
|
/** Saltos máximos en una cadena de ayuda (anti-deadlock). */
|
|
27
25
|
maxHelpChainHops: number;
|
|
28
26
|
/** Mensajes por agente (anti-spam). */
|
|
@@ -35,10 +33,6 @@ export interface Limits {
|
|
|
35
33
|
heartbeatSec: number;
|
|
36
34
|
/** Rechazos de review antes de escalar. */
|
|
37
35
|
maxReviewRejections: number;
|
|
38
|
-
/** Cards por corrida. */
|
|
39
|
-
maxCards: number;
|
|
40
|
-
/** Invocaciones de subagente por corrida. */
|
|
41
|
-
maxAgentCalls: number;
|
|
42
36
|
/** Cobertura mínima (0..1) para aceptar un match del catálogo. */
|
|
43
37
|
minCatalogCoverage: number;
|
|
44
38
|
/** Invariante duro: sin gates en PASS no hay DONE. */
|
|
@@ -257,14 +251,6 @@ export interface OfficeState {
|
|
|
257
251
|
cards: Record<string, Card>;
|
|
258
252
|
/** Orden de ejecución. */
|
|
259
253
|
order: string[];
|
|
260
|
-
budget: {
|
|
261
|
-
cardsUsed: number;
|
|
262
|
-
maxCards: number;
|
|
263
|
-
agentCallsUsed: number;
|
|
264
|
-
maxAgentCalls: number;
|
|
265
|
-
spawnsUsed: number;
|
|
266
|
-
maxSpawnsTotal: number;
|
|
267
|
-
};
|
|
268
254
|
/** Bitácora de decisiones. */
|
|
269
255
|
decisions: DecisionRecord[];
|
|
270
256
|
/** Escalaciones al usuario. */
|
|
@@ -362,4 +348,10 @@ export interface CatalogMatch {
|
|
|
362
348
|
matched: string[];
|
|
363
349
|
missing: string[];
|
|
364
350
|
}
|
|
351
|
+
/** Error lanzado cuando el estado de la oficina está corrupto y no se puede recuperar automáticamente. */
|
|
352
|
+
export declare class StateCorruptionError extends Error {
|
|
353
|
+
readonly path: string;
|
|
354
|
+
readonly originalError?: Error | undefined;
|
|
355
|
+
constructor(message: string, path: string, originalError?: Error | undefined);
|
|
356
|
+
}
|
|
365
357
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;;;;GAOG;AACH,MAAM,WAAW,MAAM;IACrB,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js
CHANGED
|
@@ -11,18 +11,26 @@
|
|
|
11
11
|
export const DEFAULT_LIMITS = {
|
|
12
12
|
maxConcurrentAgents: 10,
|
|
13
13
|
maxSpawnDepth: 2,
|
|
14
|
-
maxSpawnsTotal: 20,
|
|
15
14
|
maxHelpChainHops: 2,
|
|
16
15
|
maxMessagesPerAgent: 150,
|
|
17
16
|
msgTtlSec: 900,
|
|
18
17
|
leaseTtlSec: 1800,
|
|
19
18
|
heartbeatSec: 60,
|
|
20
19
|
maxReviewRejections: 3,
|
|
21
|
-
maxCards: 20,
|
|
22
|
-
maxAgentCalls: 40,
|
|
23
20
|
minCatalogCoverage: 0.6,
|
|
24
21
|
gateRequiredBeforeDone: true,
|
|
25
22
|
evidenceRequiredBeforeDone: true,
|
|
26
23
|
reviewerNeqOwner: true,
|
|
27
24
|
};
|
|
25
|
+
/** Error lanzado cuando el estado de la oficina está corrupto y no se puede recuperar automáticamente. */
|
|
26
|
+
export class StateCorruptionError extends Error {
|
|
27
|
+
path;
|
|
28
|
+
originalError;
|
|
29
|
+
constructor(message, path, originalError) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.path = path;
|
|
32
|
+
this.originalError = originalError;
|
|
33
|
+
this.name = "StateCorruptionError";
|
|
34
|
+
}
|
|
35
|
+
}
|
|
28
36
|
//# sourceMappingURL=types.js.map
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA+CH,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,mBAAmB,EAAE,EAAE;IACvB,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,CAAC;IACnB,mBAAmB,EAAE,GAAG;IACxB,SAAS,EAAE,GAAG;IACd,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,EAAE;IAChB,mBAAmB,EAAE,CAAC;IACtB,kBAAkB,EAAE,GAAG;IACvB,sBAAsB,EAAE,IAAI;IAC5B,0BAA0B,EAAE,IAAI;IAChC,gBAAgB,EAAE,IAAI;CACvB,CAAA;AAsZD,0GAA0G;AAC1G,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAG3B;IACA;IAHlB,YACE,OAAe,EACC,IAAY,EACZ,aAAqB;QAErC,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,SAAI,GAAJ,IAAI,CAAQ;QACZ,kBAAa,GAAb,aAAa,CAAQ;QAGrC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF"}
|
|
@@ -99,8 +99,22 @@ export declare function extractCommand(args: Record<string, unknown>): string |
|
|
|
99
99
|
* Primero mira el binding directo. Si no hay, sube por la cadena de
|
|
100
100
|
* padres: un subagente es una sesión hija, y su scope es el de quien lo
|
|
101
101
|
* lanzo.
|
|
102
|
+
*
|
|
103
|
+
* Devuelve un resultado que distingue:
|
|
104
|
+
* - NO_SCOPE_APPLICABLE: sesión sin card activa legítima
|
|
105
|
+
* - AUTHORIZED: card encontrada
|
|
106
|
+
* - VERIFICATION_FAILED: error resolviendo la cadena de padres
|
|
102
107
|
*/
|
|
103
|
-
export
|
|
108
|
+
export type ScopeCardResult = {
|
|
109
|
+
kind: "AUTHORIZED";
|
|
110
|
+
card: Card;
|
|
111
|
+
} | {
|
|
112
|
+
kind: "NO_SCOPE_APPLICABLE";
|
|
113
|
+
} | {
|
|
114
|
+
kind: "VERIFICATION_FAILED";
|
|
115
|
+
reason: string;
|
|
116
|
+
};
|
|
117
|
+
export declare function resolveScopeCard(state: OfficeState, sessionID: string, options: ScopeGuardOptions): Promise<ScopeCardResult>;
|
|
104
118
|
export declare function createScopeGuardHook(office: Office, options?: ScopeGuardOptions): (input: {
|
|
105
119
|
tool: string;
|
|
106
120
|
sessionID: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopeGuard.d.ts","sourceRoot":"","sources":["../../src/hooks/scopeGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAGL,WAAW,EACX,YAAY,EAEb,MAAM,oBAAoB,CAAA;AA8C3B,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACzE;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC9B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AASD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAiDlF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA2BtD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAE3F;AAED,uCAAuC;AACvC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAMhF;AAMD
|
|
1
|
+
{"version":3,"file":"scopeGuard.d.ts","sourceRoot":"","sources":["../../src/hooks/scopeGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAGL,WAAW,EACX,YAAY,EAEb,MAAM,oBAAoB,CAAA;AA8C3B,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACzE;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC9B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AASD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAiDlF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA2BtD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAE3F;AAED,uCAAuC;AACvC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAMhF;AAMD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnD,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,CAAC,CAqC1B;AAUD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAqC,IAI/F,OAAO;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC1D,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KACxC,OAAO,CAAC,IAAI,CAAC,CA4GjB;AAED,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA"}
|