gateproof 0.2.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1447 -153
- package/dist/cloudflare/index.d.ts +4 -6
- package/dist/cloudflare/index.d.ts.map +1 -1
- package/dist/cloudflare/index.js +9 -43
- package/dist/cloudflare/index.js.map +1 -1
- package/dist/index.d.ts +263 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1327 -212
- package/dist/index.js.map +1 -1
- package/package.json +18 -48
- package/dist/act.d.ts +0 -78
- package/dist/act.d.ts.map +0 -1
- package/dist/act.js +0 -47
- package/dist/act.js.map +0 -1
- package/dist/action-executors.d.ts +0 -39
- package/dist/action-executors.d.ts.map +0 -1
- package/dist/action-executors.js +0 -195
- package/dist/action-executors.js.map +0 -1
- package/dist/assert.d.ts +0 -59
- package/dist/assert.d.ts.map +0 -1
- package/dist/assert.js +0 -120
- package/dist/assert.js.map +0 -1
- package/dist/authority.d.ts +0 -34
- package/dist/authority.d.ts.map +0 -1
- package/dist/authority.js +0 -141
- package/dist/authority.js.map +0 -1
- package/dist/cli/gateproof.d.ts +0 -3
- package/dist/cli/gateproof.d.ts.map +0 -1
- package/dist/cli/gateproof.js +0 -548
- package/dist/cli/gateproof.js.map +0 -1
- package/dist/cloudflare/analytics.d.ts +0 -9
- package/dist/cloudflare/analytics.d.ts.map +0 -1
- package/dist/cloudflare/analytics.js +0 -98
- package/dist/cloudflare/analytics.js.map +0 -1
- package/dist/cloudflare/cli-stream.d.ts +0 -7
- package/dist/cloudflare/cli-stream.d.ts.map +0 -1
- package/dist/cloudflare/cli-stream.js +0 -85
- package/dist/cloudflare/cli-stream.js.map +0 -1
- package/dist/cloudflare/polling-backend.d.ts +0 -18
- package/dist/cloudflare/polling-backend.d.ts.map +0 -1
- package/dist/cloudflare/polling-backend.js +0 -53
- package/dist/cloudflare/polling-backend.js.map +0 -1
- package/dist/cloudflare/workers-logs.d.ts +0 -9
- package/dist/cloudflare/workers-logs.d.ts.map +0 -1
- package/dist/cloudflare/workers-logs.js +0 -51
- package/dist/cloudflare/workers-logs.js.map +0 -1
- package/dist/constants.d.ts +0 -11
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -11
- package/dist/constants.js.map +0 -1
- package/dist/filepath-backend.d.ts +0 -64
- package/dist/filepath-backend.d.ts.map +0 -1
- package/dist/filepath-backend.js +0 -126
- package/dist/filepath-backend.js.map +0 -1
- package/dist/filepath-protocol.d.ts +0 -214
- package/dist/filepath-protocol.d.ts.map +0 -1
- package/dist/filepath-protocol.js +0 -239
- package/dist/filepath-protocol.js.map +0 -1
- package/dist/filepath-runtime.d.ts +0 -100
- package/dist/filepath-runtime.d.ts.map +0 -1
- package/dist/filepath-runtime.js +0 -190
- package/dist/filepath-runtime.js.map +0 -1
- package/dist/http-backend.d.ts +0 -32
- package/dist/http-backend.d.ts.map +0 -1
- package/dist/http-backend.js +0 -166
- package/dist/http-backend.js.map +0 -1
- package/dist/observe.d.ts +0 -26
- package/dist/observe.d.ts.map +0 -1
- package/dist/observe.js +0 -84
- package/dist/observe.js.map +0 -1
- package/dist/prd/define-prd.d.ts +0 -7
- package/dist/prd/define-prd.d.ts.map +0 -1
- package/dist/prd/define-prd.js +0 -8
- package/dist/prd/define-prd.js.map +0 -1
- package/dist/prd/index.d.ts +0 -7
- package/dist/prd/index.d.ts.map +0 -1
- package/dist/prd/index.js +0 -8
- package/dist/prd/index.js.map +0 -1
- package/dist/prd/loop.d.ts +0 -160
- package/dist/prd/loop.d.ts.map +0 -1
- package/dist/prd/loop.js +0 -462
- package/dist/prd/loop.js.map +0 -1
- package/dist/prd/runner.d.ts +0 -19
- package/dist/prd/runner.d.ts.map +0 -1
- package/dist/prd/runner.js +0 -253
- package/dist/prd/runner.js.map +0 -1
- package/dist/prd/scope-check.d.ts +0 -28
- package/dist/prd/scope-check.d.ts.map +0 -1
- package/dist/prd/scope-check.js +0 -135
- package/dist/prd/scope-check.js.map +0 -1
- package/dist/prd/scope-defaults.d.ts +0 -75
- package/dist/prd/scope-defaults.d.ts.map +0 -1
- package/dist/prd/scope-defaults.js +0 -235
- package/dist/prd/scope-defaults.js.map +0 -1
- package/dist/prd/types.d.ts +0 -101
- package/dist/prd/types.d.ts.map +0 -1
- package/dist/prd/types.js +0 -2
- package/dist/prd/types.js.map +0 -1
- package/dist/provider.d.ts +0 -6
- package/dist/provider.d.ts.map +0 -1
- package/dist/provider.js +0 -2
- package/dist/provider.js.map +0 -1
- package/dist/report.d.ts +0 -137
- package/dist/report.d.ts.map +0 -1
- package/dist/report.js +0 -234
- package/dist/report.js.map +0 -1
- package/dist/test-helpers.d.ts +0 -12
- package/dist/test-helpers.d.ts.map +0 -1
- package/dist/test-helpers.js +0 -33
- package/dist/test-helpers.js.map +0 -1
- package/dist/types.d.ts +0 -41
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -22
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -49
- package/dist/utils.js.map +0 -1
- package/dist/validation.d.ts +0 -6
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -38
- package/dist/validation.js.map +0 -1
package/dist/assert.d.ts
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Effect, Schema } from "effect";
|
|
2
|
-
import type { Log } from "./types";
|
|
3
|
-
import type { StoryAuthority } from "./prd/types";
|
|
4
|
-
declare const AssertionFailed_base: Schema.TaggedErrorClass<AssertionFailed, "AssertionFailed", {
|
|
5
|
-
readonly _tag: Schema.tag<"AssertionFailed">;
|
|
6
|
-
} & {
|
|
7
|
-
assertion: typeof Schema.String;
|
|
8
|
-
details: typeof Schema.Unknown;
|
|
9
|
-
}>;
|
|
10
|
-
export declare class AssertionFailed extends AssertionFailed_base {
|
|
11
|
-
}
|
|
12
|
-
declare const AssertionAggregateFailed_base: Schema.TaggedErrorClass<AssertionAggregateFailed, "AssertionAggregateFailed", {
|
|
13
|
-
readonly _tag: Schema.tag<"AssertionAggregateFailed">;
|
|
14
|
-
} & {
|
|
15
|
-
failures: Schema.Array$<Schema.instanceOf<AssertionFailed>>;
|
|
16
|
-
}>;
|
|
17
|
-
export declare class AssertionAggregateFailed extends AssertionAggregateFailed_base {
|
|
18
|
-
}
|
|
19
|
-
export type Assertion = {
|
|
20
|
-
_tag: "NoErrors";
|
|
21
|
-
} | {
|
|
22
|
-
_tag: "HasAction";
|
|
23
|
-
action: string;
|
|
24
|
-
} | {
|
|
25
|
-
_tag: "HasStage";
|
|
26
|
-
stage: string;
|
|
27
|
-
} | {
|
|
28
|
-
_tag: "Custom";
|
|
29
|
-
fn: (logs: Log[]) => boolean | Promise<boolean>;
|
|
30
|
-
name: string;
|
|
31
|
-
};
|
|
32
|
-
export declare namespace Assert {
|
|
33
|
-
function noErrors(): Assertion;
|
|
34
|
-
function hasAction(action: string): Assertion;
|
|
35
|
-
function hasStage(stage: string): Assertion;
|
|
36
|
-
function custom(name: string, fn: (logs: Log[]) => boolean | Promise<boolean>): Assertion;
|
|
37
|
-
/**
|
|
38
|
-
* Assert that agent behavior complied with an authority policy.
|
|
39
|
-
*
|
|
40
|
-
* Checks collected logs against governance rules: tool restrictions,
|
|
41
|
-
* spawn limits, commit permissions, agent/model constraints.
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```ts
|
|
45
|
-
* assert: [
|
|
46
|
-
* Assert.authority({
|
|
47
|
-
* canSpawn: false,
|
|
48
|
-
* canCommit: true,
|
|
49
|
-
* forbiddenTools: ["delete_file"],
|
|
50
|
-
* }),
|
|
51
|
-
* Assert.hasAction("done"),
|
|
52
|
-
* ]
|
|
53
|
-
* ```
|
|
54
|
-
*/
|
|
55
|
-
function authority(policy: StoryAuthority): Assertion;
|
|
56
|
-
function run(assertions: Assertion[], logs: Log[]): Effect.Effect<void, AssertionFailed | AssertionAggregateFailed>;
|
|
57
|
-
}
|
|
58
|
-
export {};
|
|
59
|
-
//# sourceMappingURL=assert.d.ts.map
|
package/dist/assert.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;;;;;;;AAGlD,qBAAa,eAAgB,SAAQ,oBAMpC;CAAG;;;;;;AAEJ,qBAAa,wBAAyB,SAAQ,6BAK7C;CAAG;AAEJ,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,yBAAiB,MAAM,CAAC;IACtB,SAAgB,QAAQ,IAAI,SAAS,CAEpC;IAED,SAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAEnD;IAED,SAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAEjD;IAED,SAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC9C,SAAS,CAEX;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAW3D;IAED,SAAgB,GAAG,CACjB,UAAU,EAAE,SAAS,EAAE,EACvB,IAAI,EAAE,GAAG,EAAE,GACV,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,wBAAwB,CAAC,CA8DjE;CACF"}
|
package/dist/assert.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { Effect, Schema } from "effect";
|
|
2
|
-
import { validateAuthority } from "./authority";
|
|
3
|
-
export class AssertionFailed extends Schema.TaggedError()("AssertionFailed", {
|
|
4
|
-
assertion: Schema.String,
|
|
5
|
-
details: Schema.Unknown
|
|
6
|
-
}) {
|
|
7
|
-
}
|
|
8
|
-
export class AssertionAggregateFailed extends Schema.TaggedError()("AssertionAggregateFailed", {
|
|
9
|
-
failures: Schema.Array(Schema.instanceOf(AssertionFailed))
|
|
10
|
-
}) {
|
|
11
|
-
}
|
|
12
|
-
export var Assert;
|
|
13
|
-
(function (Assert) {
|
|
14
|
-
function noErrors() {
|
|
15
|
-
return { _tag: "NoErrors" };
|
|
16
|
-
}
|
|
17
|
-
Assert.noErrors = noErrors;
|
|
18
|
-
function hasAction(action) {
|
|
19
|
-
return { _tag: "HasAction", action };
|
|
20
|
-
}
|
|
21
|
-
Assert.hasAction = hasAction;
|
|
22
|
-
function hasStage(stage) {
|
|
23
|
-
return { _tag: "HasStage", stage };
|
|
24
|
-
}
|
|
25
|
-
Assert.hasStage = hasStage;
|
|
26
|
-
function custom(name, fn) {
|
|
27
|
-
return { _tag: "Custom", fn, name };
|
|
28
|
-
}
|
|
29
|
-
Assert.custom = custom;
|
|
30
|
-
/**
|
|
31
|
-
* Assert that agent behavior complied with an authority policy.
|
|
32
|
-
*
|
|
33
|
-
* Checks collected logs against governance rules: tool restrictions,
|
|
34
|
-
* spawn limits, commit permissions, agent/model constraints.
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ```ts
|
|
38
|
-
* assert: [
|
|
39
|
-
* Assert.authority({
|
|
40
|
-
* canSpawn: false,
|
|
41
|
-
* canCommit: true,
|
|
42
|
-
* forbiddenTools: ["delete_file"],
|
|
43
|
-
* }),
|
|
44
|
-
* Assert.hasAction("done"),
|
|
45
|
-
* ]
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
function authority(policy) {
|
|
49
|
-
return custom("Authority", (logs) => {
|
|
50
|
-
const violations = validateAuthority(logs, policy);
|
|
51
|
-
if (violations.length > 0) {
|
|
52
|
-
for (const v of violations) {
|
|
53
|
-
console.warn(`[Authority] ${v.rule}: ${v.message}`);
|
|
54
|
-
}
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
return true;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
Assert.authority = authority;
|
|
61
|
-
function run(assertions, logs) {
|
|
62
|
-
return Effect.gen(function* () {
|
|
63
|
-
const failures = [];
|
|
64
|
-
for (const assertion of assertions) {
|
|
65
|
-
if (assertion._tag === "NoErrors") {
|
|
66
|
-
const errorLog = logs.find((l) => l.status === "error" || l.error);
|
|
67
|
-
if (errorLog) {
|
|
68
|
-
failures.push(new AssertionFailed({
|
|
69
|
-
assertion: "NoErrors",
|
|
70
|
-
details: { found: errorLog }
|
|
71
|
-
}));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else if (assertion._tag === "HasAction") {
|
|
75
|
-
const found = logs.some((l) => l.action === assertion.action);
|
|
76
|
-
if (!found) {
|
|
77
|
-
failures.push(new AssertionFailed({
|
|
78
|
-
assertion: "HasAction",
|
|
79
|
-
details: {
|
|
80
|
-
missing: assertion.action,
|
|
81
|
-
seen: logs.map((l) => l.action).filter(Boolean)
|
|
82
|
-
}
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else if (assertion._tag === "HasStage") {
|
|
87
|
-
const found = logs.some((l) => l.stage === assertion.stage);
|
|
88
|
-
if (!found) {
|
|
89
|
-
failures.push(new AssertionFailed({
|
|
90
|
-
assertion: "HasStage",
|
|
91
|
-
details: {
|
|
92
|
-
missing: assertion.stage,
|
|
93
|
-
seen: logs.map((l) => l.stage).filter(Boolean)
|
|
94
|
-
}
|
|
95
|
-
}));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
else if (assertion._tag === "Custom") {
|
|
99
|
-
const passed = yield* Effect.promise(() => Promise.resolve(assertion.fn(logs)));
|
|
100
|
-
if (!passed) {
|
|
101
|
-
failures.push(new AssertionFailed({
|
|
102
|
-
assertion: assertion.name,
|
|
103
|
-
details: { custom: true }
|
|
104
|
-
}));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (failures.length > 0) {
|
|
109
|
-
if (failures.length === 1) {
|
|
110
|
-
yield* Effect.fail(failures[0]);
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
yield* Effect.fail(new AssertionAggregateFailed({ failures }));
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
Assert.run = run;
|
|
119
|
-
})(Assert || (Assert = {}));
|
|
120
|
-
//# sourceMappingURL=assert.js.map
|
package/dist/assert.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"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"}
|
package/dist/authority.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Authority — Governance validation for agent-executed gates.
|
|
3
|
-
*
|
|
4
|
-
* Validates that agent events (tools used, spawns requested, commits made)
|
|
5
|
-
* comply with the StoryAuthority policy defined on the story.
|
|
6
|
-
*
|
|
7
|
-
* This is the enforcement layer: StoryAuthority defines what's allowed,
|
|
8
|
-
* this module checks whether agent behavior stayed within bounds.
|
|
9
|
-
*/
|
|
10
|
-
import type { Log } from "./types";
|
|
11
|
-
import type { StoryAuthority } from "./prd/types";
|
|
12
|
-
import type { AgentEvent } from "./filepath-protocol";
|
|
13
|
-
export interface AuthorityViolation {
|
|
14
|
-
rule: string;
|
|
15
|
-
message: string;
|
|
16
|
-
event?: AgentEvent;
|
|
17
|
-
log?: Log;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Validates a stream of logs against a StoryAuthority policy.
|
|
21
|
-
* Returns an array of violations (empty = compliant).
|
|
22
|
-
*/
|
|
23
|
-
export declare function validateAuthority(logs: Log[], authority: StoryAuthority): AuthorityViolation[];
|
|
24
|
-
/**
|
|
25
|
-
* Merges a story's authority with PRD-level defaults.
|
|
26
|
-
* Story-level settings take precedence.
|
|
27
|
-
*/
|
|
28
|
-
export declare function mergeAuthority(storyAuthority?: StoryAuthority, defaultAuthority?: StoryAuthority): StoryAuthority | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Flattens a tree of stories (with children) into a flat array.
|
|
31
|
-
* Assigns parentId to children automatically.
|
|
32
|
-
*/
|
|
33
|
-
export declare function flattenStoryTree<TId extends string>(stories: readonly import("./prd/types").Story<TId>[]): import("./prd/types").Story<TId>[];
|
|
34
|
-
//# sourceMappingURL=authority.d.ts.map
|
package/dist/authority.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authority.d.ts","sourceRoot":"","sources":["../src/authority.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,GAAG,EAAE,EACX,SAAS,EAAE,cAAc,GACxB,kBAAkB,EAAE,CAgGtB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,cAAc,CAAC,EAAE,cAAc,EAC/B,gBAAgB,CAAC,EAAE,cAAc,GAChC,cAAc,GAAG,SAAS,CAc5B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,MAAM,EACjD,OAAO,EAAE,SAAS,OAAO,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GACnD,OAAO,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAqBpC"}
|
package/dist/authority.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Authority — Governance validation for agent-executed gates.
|
|
3
|
-
*
|
|
4
|
-
* Validates that agent events (tools used, spawns requested, commits made)
|
|
5
|
-
* comply with the StoryAuthority policy defined on the story.
|
|
6
|
-
*
|
|
7
|
-
* This is the enforcement layer: StoryAuthority defines what's allowed,
|
|
8
|
-
* this module checks whether agent behavior stayed within bounds.
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Validates a stream of logs against a StoryAuthority policy.
|
|
12
|
-
* Returns an array of violations (empty = compliant).
|
|
13
|
-
*/
|
|
14
|
-
export function validateAuthority(logs, authority) {
|
|
15
|
-
const violations = [];
|
|
16
|
-
// Count spawns
|
|
17
|
-
if (authority.canSpawn === false) {
|
|
18
|
-
const spawnLogs = logs.filter((l) => l.action === "spawn");
|
|
19
|
-
if (spawnLogs.length > 0) {
|
|
20
|
-
violations.push({
|
|
21
|
-
rule: "canSpawn",
|
|
22
|
-
message: `Agent spawned ${spawnLogs.length} child agent(s) but canSpawn is false`,
|
|
23
|
-
log: spawnLogs[0],
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
if (authority.maxChildAgents !== undefined) {
|
|
28
|
-
const spawnCount = logs.filter((l) => l.action === "spawn").length;
|
|
29
|
-
if (spawnCount > authority.maxChildAgents) {
|
|
30
|
-
violations.push({
|
|
31
|
-
rule: "maxChildAgents",
|
|
32
|
-
message: `Agent spawned ${spawnCount} children, exceeding limit of ${authority.maxChildAgents}`,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
// Check commits
|
|
37
|
-
if (authority.canCommit === false) {
|
|
38
|
-
const commitLogs = logs.filter((l) => l.action === "commit");
|
|
39
|
-
if (commitLogs.length > 0) {
|
|
40
|
-
violations.push({
|
|
41
|
-
rule: "canCommit",
|
|
42
|
-
message: `Agent made ${commitLogs.length} commit(s) but canCommit is false`,
|
|
43
|
-
log: commitLogs[0],
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
// Check tool restrictions
|
|
48
|
-
if (authority.allowedTools || authority.forbiddenTools) {
|
|
49
|
-
const toolLogs = logs.filter((l) => l.action?.startsWith("tool:"));
|
|
50
|
-
for (const log of toolLogs) {
|
|
51
|
-
const toolName = log.action.replace("tool:", "");
|
|
52
|
-
if (authority.forbiddenTools?.includes(toolName)) {
|
|
53
|
-
violations.push({
|
|
54
|
-
rule: "forbiddenTools",
|
|
55
|
-
message: `Agent used forbidden tool "${toolName}"`,
|
|
56
|
-
log,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
if (authority.allowedTools &&
|
|
60
|
-
authority.allowedTools.length > 0 &&
|
|
61
|
-
!authority.allowedTools.includes(toolName)) {
|
|
62
|
-
violations.push({
|
|
63
|
-
rule: "allowedTools",
|
|
64
|
-
message: `Agent used tool "${toolName}" which is not in allowedTools`,
|
|
65
|
-
log,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
// Check agent runtime restrictions
|
|
71
|
-
if (authority.allowedAgents && authority.allowedAgents.length > 0) {
|
|
72
|
-
const spawnLogs = logs.filter((l) => l.action === "spawn");
|
|
73
|
-
for (const log of spawnLogs) {
|
|
74
|
-
const agentType = log.data?.agent;
|
|
75
|
-
if (agentType && !authority.allowedAgents.includes(agentType)) {
|
|
76
|
-
violations.push({
|
|
77
|
-
rule: "allowedAgents",
|
|
78
|
-
message: `Agent spawned child with runtime "${agentType}" which is not in allowedAgents`,
|
|
79
|
-
log,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// Check model restrictions
|
|
85
|
-
if (authority.allowedModels && authority.allowedModels.length > 0) {
|
|
86
|
-
const spawnLogs = logs.filter((l) => l.action === "spawn");
|
|
87
|
-
for (const log of spawnLogs) {
|
|
88
|
-
const model = log.data?.model;
|
|
89
|
-
if (model && !authority.allowedModels.includes(model)) {
|
|
90
|
-
violations.push({
|
|
91
|
-
rule: "allowedModels",
|
|
92
|
-
message: `Agent spawned child with model "${model}" which is not in allowedModels`,
|
|
93
|
-
log,
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return violations;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Merges a story's authority with PRD-level defaults.
|
|
102
|
-
* Story-level settings take precedence.
|
|
103
|
-
*/
|
|
104
|
-
export function mergeAuthority(storyAuthority, defaultAuthority) {
|
|
105
|
-
if (!storyAuthority && !defaultAuthority)
|
|
106
|
-
return undefined;
|
|
107
|
-
if (!defaultAuthority)
|
|
108
|
-
return storyAuthority;
|
|
109
|
-
if (!storyAuthority)
|
|
110
|
-
return defaultAuthority;
|
|
111
|
-
return {
|
|
112
|
-
...defaultAuthority,
|
|
113
|
-
...storyAuthority,
|
|
114
|
-
// Array fields: story overrides completely (not merged)
|
|
115
|
-
allowedAgents: storyAuthority.allowedAgents ?? defaultAuthority.allowedAgents,
|
|
116
|
-
allowedModels: storyAuthority.allowedModels ?? defaultAuthority.allowedModels,
|
|
117
|
-
allowedTools: storyAuthority.allowedTools ?? defaultAuthority.allowedTools,
|
|
118
|
-
forbiddenTools: storyAuthority.forbiddenTools ?? defaultAuthority.forbiddenTools,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Flattens a tree of stories (with children) into a flat array.
|
|
123
|
-
* Assigns parentId to children automatically.
|
|
124
|
-
*/
|
|
125
|
-
export function flattenStoryTree(stories) {
|
|
126
|
-
const result = [];
|
|
127
|
-
function walk(storyList, parentId) {
|
|
128
|
-
for (const story of storyList) {
|
|
129
|
-
const flat = { ...story, parentId: story.parentId ?? parentId };
|
|
130
|
-
// Remove children from the flat version
|
|
131
|
-
const { children, ...rest } = flat;
|
|
132
|
-
result.push(rest);
|
|
133
|
-
if (children && children.length > 0) {
|
|
134
|
-
walk(children, story.id);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
walk(stories);
|
|
139
|
-
return result;
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=authority.js.map
|
package/dist/authority.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authority.js","sourceRoot":"","sources":["../src/authority.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/gateproof.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateproof.d.ts","sourceRoot":"","sources":["../../src/cli/gateproof.ts"],"names":[],"mappings":""}
|