filegrc 0.7.0 → 0.8.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 +14 -6
- package/model/index.js +21 -4
- package/model/v4.json +97 -6
- package/model/v5.json +10233 -0
- package/package.json +4 -2
- package/src/agent.js +4 -3
- package/src/audit-preparation.js +635 -81
- package/src/audit-transition.js +8 -2
- package/src/batch-review.js +21 -11
- package/src/cli.js +117 -12
- package/src/collection-review.js +4 -3
- package/src/collection-scope.js +4 -3
- package/src/document-activation.js +145 -0
- package/src/evidence-packet.js +393 -106
- package/src/external-reviewer.js +5 -4
- package/src/files.js +194 -35
- package/src/git.js +106 -10
- package/src/index.js +10 -1
- package/src/model-migration.js +218 -7
- package/src/obligations.js +14 -11
- package/src/policy-library/information-security-policy-v2.md +290 -0
- package/src/policy-library.js +827 -0
- package/src/program-lifecycle.js +93 -3
- package/src/program-path.js +14 -9
- package/src/program-readiness.js +306 -75
- package/src/program.js +5 -3
- package/src/reconciliation.js +3 -2
- package/src/server.js +29 -7
- package/src/setup.js +25 -5
- package/src/soc2.js +228 -0
- package/src/state.js +8 -0
- package/src/validate.js +168 -14
- package/src/web.js +257 -35
- package/src/workflow.js +107 -44
- package/src/workspace.js +5 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "filegrc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Zero-dependency Git-native GRC engine",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
"src"
|
|
22
22
|
],
|
|
23
23
|
"scripts": {
|
|
24
|
-
"test": "node
|
|
24
|
+
"test": "node ../../scripts/run-filegrc-tests.mjs",
|
|
25
|
+
"test:fast": "node ../../scripts/run-filegrc-tests.mjs --fast",
|
|
26
|
+
"test:full": "npm test"
|
|
25
27
|
},
|
|
26
28
|
"engines": {
|
|
27
29
|
"node": ">=20"
|
package/src/agent.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { modelSupports } from "../model/index.js";
|
|
1
2
|
import { createResourceId } from "./id.js";
|
|
2
3
|
import { markdownEntries } from "./resource-markdown.js";
|
|
3
4
|
import { RESOURCE_INSTRUCTIONS, resourceProgramContext } from "./program-path.js";
|
|
@@ -116,7 +117,7 @@ export function buildAgentGuide(loaded, type, options = {}) {
|
|
|
116
117
|
recommendedMarkdown.length
|
|
117
118
|
? "Keep model fields in JSON and use the recommended Markdown companion for the detailed work, decisions, results, exceptions, and follow-up that apply to this record."
|
|
118
119
|
: "Keep the current facts and lifecycle state in JSON. Add optional Record Markdown only when the model fields cannot explain the record clearly.",
|
|
119
|
-
...(type === "program" &&
|
|
120
|
+
...(type === "program" && modelSupports(loaded.model, "program-scope")
|
|
120
121
|
? ["Review Requirement applicability with npx filegrc review-applicability --type requirement --scaffold, then preview and apply the reviewed decisions as one validated batch."]
|
|
121
122
|
: []),
|
|
122
123
|
"Run npx filegrc validate, review the full Git diff, and commit the JSON, Markdown, and attachments together with a message that explains why the record changed."
|
|
@@ -125,7 +126,7 @@ export function buildAgentGuide(loaded, type, options = {}) {
|
|
|
125
126
|
"Required and status-dependent fields are complete, and the lifecycle status matches the facts.",
|
|
126
127
|
"Every relationship resolves to the intended existing record.",
|
|
127
128
|
"Dates describe the business event in the workspace time zone, not the file edit time.",
|
|
128
|
-
...(type === "program" &&
|
|
129
|
+
...(type === "program" && modelSupports(loaded.model, "program-scope")
|
|
129
130
|
? ["Every selected Requirement has an applicable or not-applicable decision reviewed against the current Program scope."]
|
|
130
131
|
: []),
|
|
131
132
|
...(recommendedMarkdown.length
|
|
@@ -217,7 +218,7 @@ function applyModelScaffoldDefaults(record, loaded, options = {}) {
|
|
|
217
218
|
}[program?.assuranceGoal];
|
|
218
219
|
if (kind) record.auditKind = kind;
|
|
219
220
|
for (const field of ["frameworkIds", "systemIds", "requirementIds", "controlIds"]) {
|
|
220
|
-
if (field === "requirementIds" &&
|
|
221
|
+
if (field === "requirementIds" && modelSupports(loaded.model, "program-scope")) {
|
|
221
222
|
record[field] = (program.requirementApplicability || []).filter(({ decision }) => decision === "applicable").map(({ requirementId }) => requirementId);
|
|
222
223
|
} else if (program?.[field]?.length) record[field] = [...program[field]];
|
|
223
224
|
}
|