create-agentic-workspace 0.4.1 → 0.4.2
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/package.json +2 -2
- package/permission-floor.json +1 -1
- package/src/run.mjs +21 -10
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-agentic-workspace",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "The pre-session bootstrap wizard for an Agentic Foundry workspace: declares (never grants) the permission floor, absorbs foundry-bootstrap.sh's out-of-session identity wiring, and scaffolds a seven-file schema-valid workspace. Zero dependencies, no lifecycle scripts, no telemetry.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"marketplace_name": "agentic-foundry",
|
|
35
35
|
"marketplace_repo": "lukasrepublic/agentic-foundry",
|
|
36
36
|
"plugin_name": "foundry",
|
|
37
|
-
"plugin_version": "1.4.
|
|
37
|
+
"plugin_version": "1.4.2",
|
|
38
38
|
"pins_researched": "2026-08-02"
|
|
39
39
|
}
|
|
40
40
|
}
|
package/permission-floor.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"plugin_root_glob": "~/.claude/plugins/cache/*/foundry/*",
|
|
4
|
-
"generated_for_plugin_version": "1.4.
|
|
4
|
+
"generated_for_plugin_version": "1.4.2",
|
|
5
5
|
"entries": [
|
|
6
6
|
{
|
|
7
7
|
"rule": "Bash(~/.claude/plugins/cache/*/foundry/*/scripts/foundry-acceptance-contract-validate.py:*)",
|
package/src/run.mjs
CHANGED
|
@@ -168,19 +168,15 @@ export async function runCli(argv, { cwd, isTTY, input, output, homeDir, pkgDir
|
|
|
168
168
|
|
|
169
169
|
print(renderPreview({ plan, machineScopeWrites, map }));
|
|
170
170
|
|
|
171
|
-
//
|
|
172
|
-
//
|
|
173
|
-
//
|
|
174
|
-
//
|
|
175
|
-
//
|
|
176
|
-
const { effective, unreadable } = readEffectiveRules(physicalRoot);
|
|
171
|
+
// Resolved HERE — before the write phase and before the dry-run return — because the reconcile
|
|
172
|
+
// below must know what it would add in order to decide whether to write at all, and --dry-run
|
|
173
|
+
// must be able to report those rules. That requirement is carried by the TRACKED classification
|
|
174
|
+
// a few lines down; the union classification the advisory report needs is derived after the
|
|
175
|
+
// write instead, for the reason stated there.
|
|
177
176
|
const pluginRootExpansion = expandPluginRootGlob(map.plugin_root_glob, homeDir);
|
|
178
|
-
const findings = classifyDrift(map, effective, {
|
|
179
|
-
pluginRootExpansion, unreadableOrigins: unreadable, home: homeDir,
|
|
180
|
-
});
|
|
181
177
|
|
|
182
178
|
// The reconcile classifies against the TRACKED settings.json alone. A floor rule carried only
|
|
183
|
-
// in the untracked settings.local.json reads as covered in the union
|
|
179
|
+
// in the untracked settings.local.json reads as covered in the union report below, so the tracked file
|
|
184
180
|
// would stay incomplete while the report said converged — and the repo would then ship to every
|
|
185
181
|
// other clone and to CI without it.
|
|
186
182
|
let floorPlan = null;
|
|
@@ -256,6 +252,21 @@ export async function runCli(argv, { cwd, isTTY, input, output, homeDir, pkgDir
|
|
|
256
252
|
wireIdentity({ slug, name: identity.name, email: identity.email, targetRoot: physicalRoot, homeDir });
|
|
257
253
|
}
|
|
258
254
|
|
|
255
|
+
// The advisory report describes the state the operator is LEFT in, so it is classified from the
|
|
256
|
+
// files as they now stand — AFTER applyPlan and after any reconcile write. Classifying it up
|
|
257
|
+
// front instead makes it name rules that exist by the time it prints: on the reconcile path
|
|
258
|
+
// that is every rule just added, so the run reported `added allow=42, ask=16` and then listed
|
|
259
|
+
// all 58 as absent, which reads as the write having silently failed. The create path had the
|
|
260
|
+
// same defect whenever it wrote settings.json itself. Deriving it here cannot contradict the
|
|
261
|
+
// write above it, at the cost of re-reading two small files on the write path.
|
|
262
|
+
//
|
|
263
|
+
// This is only the UNION (settings.json + settings.local.json) report. The reconcile's own
|
|
264
|
+
// classification stays above the write and over the tracked file alone — consent has to be
|
|
265
|
+
// informed by what WILL be written, which is a different question from what remains after.
|
|
266
|
+
const { effective, unreadable } = readEffectiveRules(physicalRoot);
|
|
267
|
+
const findings = classifyDrift(map, effective, {
|
|
268
|
+
pluginRootExpansion, unreadableOrigins: unreadable, home: homeDir,
|
|
269
|
+
});
|
|
259
270
|
if (findings.length > 0) {
|
|
260
271
|
print('');
|
|
261
272
|
print(`Permission-floor report (advisory, ${findings.length} finding(s)):`);
|