dlw-machine-setup 0.8.0 → 0.8.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/bin/installer.js +42 -8
- package/package.json +1 -1
package/bin/installer.js
CHANGED
|
@@ -3888,7 +3888,9 @@ var claudeCodeProfile = {
|
|
|
3888
3888
|
handlers: {
|
|
3889
3889
|
agent: {
|
|
3890
3890
|
supported: true,
|
|
3891
|
-
|
|
3891
|
+
// File agents land at `.claude/agents/<name>.md`; folder agents
|
|
3892
|
+
// (persona bundles like jay/, monty/) land at `.claude/agents/<name>/`.
|
|
3893
|
+
destination: (name, isDir) => `.claude/agents/${name}${isDir ? "" : ".md"}`
|
|
3892
3894
|
},
|
|
3893
3895
|
skill: {
|
|
3894
3896
|
supported: true,
|
|
@@ -3903,6 +3905,13 @@ var claudeCodeProfile = {
|
|
|
3903
3905
|
},
|
|
3904
3906
|
"instructions-snippet": {
|
|
3905
3907
|
supported: true
|
|
3908
|
+
},
|
|
3909
|
+
workspace: {
|
|
3910
|
+
supported: true,
|
|
3911
|
+
// Bundle workspace payload (workflow scripts, shared definitions,
|
|
3912
|
+
// README) lands under `.claude/factory/`. Matches the path pattern
|
|
3913
|
+
// used historically by Factory's v1 ops and gitignored entries.
|
|
3914
|
+
destination: (name) => `.claude/factory/${name}`
|
|
3906
3915
|
}
|
|
3907
3916
|
}
|
|
3908
3917
|
};
|
|
@@ -3914,19 +3923,37 @@ var githubCopilotProfile = {
|
|
|
3914
3923
|
handlers: {
|
|
3915
3924
|
agent: {
|
|
3916
3925
|
supported: true,
|
|
3917
|
-
|
|
3926
|
+
// Copilot only registers agents that match `.agent.md` literally.
|
|
3927
|
+
// File agents → `.github/agents/<name>.agent.md` (registered).
|
|
3928
|
+
// Folder agents (persona bundles like jay/, monty/, shared/) →
|
|
3929
|
+
// `.github/agents/<name>/` (placed alongside, but Copilot ignores
|
|
3930
|
+
// them because they don't match `.agent.md`). That's intentional:
|
|
3931
|
+
// these are Claude-specific personas, but shipping the files
|
|
3932
|
+
// means a user who switches agents later still has them on disk.
|
|
3933
|
+
destination: (name, isDir) => `.github/agents/${name}${isDir ? "" : ".agent.md"}`
|
|
3918
3934
|
},
|
|
3919
3935
|
skill: {
|
|
3920
3936
|
supported: true,
|
|
3921
3937
|
destination: (name) => `.github/skills/${name}/SKILL.md`
|
|
3922
3938
|
},
|
|
3923
3939
|
hook: {
|
|
3924
|
-
//
|
|
3925
|
-
//
|
|
3940
|
+
// Hooks are Claude-only by policy (see plan doc). The bundle's
|
|
3941
|
+
// hook-related ops are gated with `when: 'hooks-supported'`, so
|
|
3942
|
+
// Copilot installs ship no hook events, no hook scripts, and no
|
|
3943
|
+
// statusLine setting. Phase 4 (Copilot hook implementation) was
|
|
3944
|
+
// canceled — this is the permanent final state.
|
|
3926
3945
|
supported: false
|
|
3927
3946
|
},
|
|
3928
3947
|
"instructions-snippet": {
|
|
3929
3948
|
supported: true
|
|
3949
|
+
},
|
|
3950
|
+
workspace: {
|
|
3951
|
+
supported: true,
|
|
3952
|
+
// Bundle workspace payload (workflow scripts, shared definitions,
|
|
3953
|
+
// README) lands under `.github/factory/`. Keeps Factory's
|
|
3954
|
+
// supporting material under the namespaced .github/ tree where
|
|
3955
|
+
// Copilot already reads everything else from.
|
|
3956
|
+
destination: (name) => `.github/factory/${name}`
|
|
3930
3957
|
}
|
|
3931
3958
|
}
|
|
3932
3959
|
};
|
|
@@ -3939,7 +3966,8 @@ var cursorProfile = {
|
|
|
3939
3966
|
agent: { supported: false },
|
|
3940
3967
|
skill: { supported: false },
|
|
3941
3968
|
hook: { supported: false },
|
|
3942
|
-
"instructions-snippet": { supported: true }
|
|
3969
|
+
"instructions-snippet": { supported: true },
|
|
3970
|
+
workspace: { supported: false }
|
|
3943
3971
|
}
|
|
3944
3972
|
};
|
|
3945
3973
|
|
|
@@ -4008,6 +4036,7 @@ function runBundleV2(manifest, ctx) {
|
|
|
4008
4036
|
runMergeJson({ op: "merge-json", file, patch }, manifest.name, ctx, result);
|
|
4009
4037
|
}
|
|
4010
4038
|
for (const op of manifest.ops ?? []) {
|
|
4039
|
+
if (op.when === "hooks-supported" && !profile.handlers.hook.supported) continue;
|
|
4011
4040
|
executeOp(op, manifest.name, ctx, result);
|
|
4012
4041
|
result.opsExecuted++;
|
|
4013
4042
|
}
|
|
@@ -4035,20 +4064,25 @@ function runAsset(asset, profile, hookPatches, ctx, result) {
|
|
|
4035
4064
|
result.instructionsSnippet = asset.content;
|
|
4036
4065
|
}
|
|
4037
4066
|
return;
|
|
4067
|
+
case "workspace":
|
|
4068
|
+
runAssetCopy(asset, profile.handlers.workspace, ctx, result);
|
|
4069
|
+
return;
|
|
4038
4070
|
}
|
|
4039
4071
|
}
|
|
4040
4072
|
function runAssetCopy(asset, handler, ctx, result) {
|
|
4041
4073
|
if (!handler.supported || !handler.destination) return;
|
|
4042
4074
|
const source = resolveBundlePath(asset.source, ctx);
|
|
4043
4075
|
if (!(0, import_fs6.existsSync)(source)) return;
|
|
4044
|
-
const
|
|
4045
|
-
|
|
4076
|
+
const isDirectory = (0, import_fs6.statSync)(source).isDirectory();
|
|
4077
|
+
const targetRel = handler.destination(asset.name, isDirectory);
|
|
4078
|
+
const target = resolveProjectPath(targetRel, ctx);
|
|
4079
|
+
if (isDirectory) {
|
|
4046
4080
|
copyDirectory(source, target);
|
|
4047
4081
|
} else {
|
|
4048
4082
|
(0, import_fs6.mkdirSync)((0, import_path6.dirname)(target), { recursive: true });
|
|
4049
4083
|
(0, import_fs6.copyFileSync)(source, target);
|
|
4050
4084
|
}
|
|
4051
|
-
result.filesTouched.push(
|
|
4085
|
+
result.filesTouched.push(targetRel);
|
|
4052
4086
|
}
|
|
4053
4087
|
function accumulateHook(asset, handler, hookPatches, ctx, result) {
|
|
4054
4088
|
if (!handler.supported) return;
|