create-agentfs 0.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/LICENSE +21 -0
- package/README.md +238 -0
- package/dist/cli.d.ts +51 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +246 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/compile.d.ts +48 -0
- package/dist/commands/compile.d.ts.map +1 -0
- package/dist/commands/compile.js +228 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/cron.d.ts +18 -0
- package/dist/commands/cron.d.ts.map +1 -0
- package/dist/commands/cron.js +95 -0
- package/dist/commands/cron.js.map +1 -0
- package/dist/commands/doctor.d.ts +11 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +199 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/memory.d.ts +19 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +213 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/onboard.d.ts +31 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +362 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/secret.d.ts +13 -0
- package/dist/commands/secret.d.ts.map +1 -0
- package/dist/commands/secret.js +109 -0
- package/dist/commands/secret.js.map +1 -0
- package/dist/commands/security.d.ts +16 -0
- package/dist/commands/security.d.ts.map +1 -0
- package/dist/commands/security.js +203 -0
- package/dist/commands/security.js.map +1 -0
- package/dist/commands/sync.d.ts +14 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +84 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/compilers/agent-map.d.ts +34 -0
- package/dist/compilers/agent-map.d.ts.map +1 -0
- package/dist/compilers/agent-map.js +66 -0
- package/dist/compilers/agent-map.js.map +1 -0
- package/dist/compilers/base.d.ts +67 -0
- package/dist/compilers/base.d.ts.map +1 -0
- package/dist/compilers/base.js +183 -0
- package/dist/compilers/base.js.map +1 -0
- package/dist/compilers/claude.d.ts +26 -0
- package/dist/compilers/claude.d.ts.map +1 -0
- package/dist/compilers/claude.js +151 -0
- package/dist/compilers/claude.js.map +1 -0
- package/dist/compilers/cursor.d.ts +11 -0
- package/dist/compilers/cursor.d.ts.map +1 -0
- package/dist/compilers/cursor.js +52 -0
- package/dist/compilers/cursor.js.map +1 -0
- package/dist/compilers/index.d.ts +14 -0
- package/dist/compilers/index.d.ts.map +1 -0
- package/dist/compilers/index.js +14 -0
- package/dist/compilers/index.js.map +1 -0
- package/dist/compilers/openclaw.d.ts +12 -0
- package/dist/compilers/openclaw.d.ts.map +1 -0
- package/dist/compilers/openclaw.js +51 -0
- package/dist/compilers/openclaw.js.map +1 -0
- package/dist/cron/index.d.ts +10 -0
- package/dist/cron/index.d.ts.map +1 -0
- package/dist/cron/index.js +9 -0
- package/dist/cron/index.js.map +1 -0
- package/dist/cron/jobs/consolidate.d.ts +16 -0
- package/dist/cron/jobs/consolidate.d.ts.map +1 -0
- package/dist/cron/jobs/consolidate.js +61 -0
- package/dist/cron/jobs/consolidate.js.map +1 -0
- package/dist/cron/jobs/heartbeat.d.ts +11 -0
- package/dist/cron/jobs/heartbeat.d.ts.map +1 -0
- package/dist/cron/jobs/heartbeat.js +66 -0
- package/dist/cron/jobs/heartbeat.js.map +1 -0
- package/dist/cron/jobs/inbox-triage.d.ts +11 -0
- package/dist/cron/jobs/inbox-triage.d.ts.map +1 -0
- package/dist/cron/jobs/inbox-triage.js +85 -0
- package/dist/cron/jobs/inbox-triage.js.map +1 -0
- package/dist/cron/runner.d.ts +32 -0
- package/dist/cron/runner.d.ts.map +1 -0
- package/dist/cron/runner.js +69 -0
- package/dist/cron/runner.js.map +1 -0
- package/dist/cron/types.d.ts +21 -0
- package/dist/cron/types.d.ts.map +1 -0
- package/dist/cron/types.js +6 -0
- package/dist/cron/types.js.map +1 -0
- package/dist/generators/filesystem.d.ts +52 -0
- package/dist/generators/filesystem.d.ts.map +1 -0
- package/dist/generators/filesystem.js +155 -0
- package/dist/generators/filesystem.js.map +1 -0
- package/dist/generators/ignore.d.ts +38 -0
- package/dist/generators/ignore.d.ts.map +1 -0
- package/dist/generators/ignore.js +154 -0
- package/dist/generators/ignore.js.map +1 -0
- package/dist/generators/index.d.ts +14 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +14 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/init.d.ts +37 -0
- package/dist/generators/init.d.ts.map +1 -0
- package/dist/generators/init.js +169 -0
- package/dist/generators/init.js.map +1 -0
- package/dist/generators/manifest.d.ts +31 -0
- package/dist/generators/manifest.d.ts.map +1 -0
- package/dist/generators/manifest.js +123 -0
- package/dist/generators/manifest.js.map +1 -0
- package/dist/generators/memory.d.ts +36 -0
- package/dist/generators/memory.d.ts.map +1 -0
- package/dist/generators/memory.js +106 -0
- package/dist/generators/memory.js.map +1 -0
- package/dist/generators/profiles.d.ts +22 -0
- package/dist/generators/profiles.d.ts.map +1 -0
- package/dist/generators/profiles.js +92 -0
- package/dist/generators/profiles.js.map +1 -0
- package/dist/generators/prompts.d.ts +24 -0
- package/dist/generators/prompts.d.ts.map +1 -0
- package/dist/generators/prompts.js +122 -0
- package/dist/generators/prompts.js.map +1 -0
- package/dist/generators/scaffold.d.ts +29 -0
- package/dist/generators/scaffold.d.ts.map +1 -0
- package/dist/generators/scaffold.js +90 -0
- package/dist/generators/scaffold.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/confidence.d.ts +69 -0
- package/dist/memory/confidence.d.ts.map +1 -0
- package/dist/memory/confidence.js +125 -0
- package/dist/memory/confidence.js.map +1 -0
- package/dist/memory/episodic.d.ts +40 -0
- package/dist/memory/episodic.d.ts.map +1 -0
- package/dist/memory/episodic.js +139 -0
- package/dist/memory/episodic.js.map +1 -0
- package/dist/memory/index.d.ts +17 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +17 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/parser.d.ts +73 -0
- package/dist/memory/parser.d.ts.map +1 -0
- package/dist/memory/parser.js +156 -0
- package/dist/memory/parser.js.map +1 -0
- package/dist/memory/procedural.d.ts +43 -0
- package/dist/memory/procedural.d.ts.map +1 -0
- package/dist/memory/procedural.js +126 -0
- package/dist/memory/procedural.js.map +1 -0
- package/dist/secrets/exfil-guard.d.ts +31 -0
- package/dist/secrets/exfil-guard.d.ts.map +1 -0
- package/dist/secrets/exfil-guard.js +51 -0
- package/dist/secrets/exfil-guard.js.map +1 -0
- package/dist/secrets/index.d.ts +8 -0
- package/dist/secrets/index.d.ts.map +1 -0
- package/dist/secrets/index.js +7 -0
- package/dist/secrets/index.js.map +1 -0
- package/dist/secrets/vault.d.ts +63 -0
- package/dist/secrets/vault.d.ts.map +1 -0
- package/dist/secrets/vault.js +163 -0
- package/dist/secrets/vault.js.map +1 -0
- package/dist/security/claude-compiler.d.ts +28 -0
- package/dist/security/claude-compiler.d.ts.map +1 -0
- package/dist/security/claude-compiler.js +66 -0
- package/dist/security/claude-compiler.js.map +1 -0
- package/dist/security/index.d.ts +7 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +7 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/parser.d.ts +47 -0
- package/dist/security/parser.d.ts.map +1 -0
- package/dist/security/parser.js +136 -0
- package/dist/security/parser.js.map +1 -0
- package/dist/sync/index.d.ts +7 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +6 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/sync.d.ts +46 -0
- package/dist/sync/sync.d.ts.map +1 -0
- package/dist/sync/sync.js +174 -0
- package/dist/sync/sync.js.map +1 -0
- package/dist/types/compiler.d.ts +81 -0
- package/dist/types/compiler.d.ts.map +1 -0
- package/dist/types/compiler.js +10 -0
- package/dist/types/compiler.js.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/manifest.d.ts +112 -0
- package/dist/types/manifest.d.ts.map +1 -0
- package/dist/types/manifest.js +10 -0
- package/dist/types/manifest.js.map +1 -0
- package/dist/types/memory.d.ts +85 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +20 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/security.d.ts +67 -0
- package/dist/types/security.d.ts.map +1 -0
- package/dist/types/security.js +10 -0
- package/dist/types/security.js.map +1 -0
- package/dist/types/setup.d.ts +54 -0
- package/dist/types/setup.d.ts.map +1 -0
- package/dist/types/setup.js +9 -0
- package/dist/types/setup.js.map +1 -0
- package/dist/utils/fhs-mapping.d.ts +76 -0
- package/dist/utils/fhs-mapping.d.ts.map +1 -0
- package/dist/utils/fhs-mapping.js +189 -0
- package/dist/utils/fhs-mapping.js.map +1 -0
- package/package.json +58 -0
- package/templates/compilers/agent-map.md.hbs +36 -0
- package/templates/compilers/claude.md.hbs +95 -0
- package/templates/procedural/code-review.md +54 -0
- package/templates/procedural/debugging.md +52 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agentfs compile` command implementation.
|
|
3
|
+
*
|
|
4
|
+
* Reads `.agentos/manifest.yaml`, runs the appropriate compiler driver(s),
|
|
5
|
+
* always regenerates `AGENT-MAP.md`, and writes only files marked as managed
|
|
6
|
+
* (`output.managed === true`).
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ```
|
|
10
|
+
* agentfs compile # compile all agents from manifest
|
|
11
|
+
* agentfs compile claude # compile one agent only
|
|
12
|
+
* agentfs compile --dry-run # preview without writing
|
|
13
|
+
* agentfs compile claude --dry-run # preview for one agent
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @module commands/compile
|
|
17
|
+
*/
|
|
18
|
+
import { buildCompileContext, writeOutputs } from '../compilers/base.js';
|
|
19
|
+
import { claudeCompiler } from '../compilers/claude.js';
|
|
20
|
+
import { openclawCompiler } from '../compilers/openclaw.js';
|
|
21
|
+
import { cursorCompiler } from '../compilers/cursor.js';
|
|
22
|
+
import { generateAgentsFile } from '../compilers/agent-map.js';
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Registry of all known compilers.
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/** All compiler drivers supported by this release. */
|
|
27
|
+
const COMPILER_REGISTRY = {
|
|
28
|
+
claude: claudeCompiler,
|
|
29
|
+
openclaw: openclawCompiler,
|
|
30
|
+
cursor: cursorCompiler,
|
|
31
|
+
};
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// Output helpers
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
/** Write to stdout. */
|
|
36
|
+
function print(line) {
|
|
37
|
+
process.stdout.write(line + '\n');
|
|
38
|
+
}
|
|
39
|
+
/** Write to stderr. */
|
|
40
|
+
function printErr(line) {
|
|
41
|
+
process.stderr.write(line + '\n');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Narrow a string to AgentRuntime.
|
|
45
|
+
*
|
|
46
|
+
* @param value - Candidate string from argv
|
|
47
|
+
* @returns true if `value` is a known AgentRuntime
|
|
48
|
+
*/
|
|
49
|
+
function isAgentRuntime(value) {
|
|
50
|
+
return value === 'claude' || value === 'openclaw' || value === 'cursor';
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Parse the argument vector passed to `compileCommand`.
|
|
54
|
+
*
|
|
55
|
+
* Accepts an optional positional agent name and a `--dry-run` flag in any
|
|
56
|
+
* position relative to the positional.
|
|
57
|
+
*
|
|
58
|
+
* @param args - Arguments after the `compile` subcommand token
|
|
59
|
+
* @returns Parsed compile args
|
|
60
|
+
*/
|
|
61
|
+
function parseArgs(args) {
|
|
62
|
+
const dryRun = args.includes('--dry-run');
|
|
63
|
+
const positionals = args.filter((a) => !a.startsWith('--'));
|
|
64
|
+
const agentArg = positionals[0];
|
|
65
|
+
const agent = agentArg !== undefined && isAgentRuntime(agentArg) ? agentArg : undefined;
|
|
66
|
+
return { agent, dryRun };
|
|
67
|
+
}
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
// Summary printing
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
/**
|
|
72
|
+
* Print a human-readable compile summary to stdout.
|
|
73
|
+
*
|
|
74
|
+
* @param results - All CompileResult objects from agent drivers
|
|
75
|
+
* @param agentMapOutput - The AGENT-MAP.md output
|
|
76
|
+
* @param dryRun - Whether this was a preview run
|
|
77
|
+
*/
|
|
78
|
+
function printSummary(results, agentMapOutput, dryRun) {
|
|
79
|
+
const verb = dryRun ? 'Would write' : 'Wrote';
|
|
80
|
+
const prefix = dryRun ? '[dry-run] ' : '';
|
|
81
|
+
print('');
|
|
82
|
+
print(`${prefix}AgentFS compile complete`);
|
|
83
|
+
print('');
|
|
84
|
+
for (const result of results) {
|
|
85
|
+
print(` Agent: ${result.agent}`);
|
|
86
|
+
for (const output of result.outputs) {
|
|
87
|
+
const managed = output.managed ? '' : ' (skipped — not managed)';
|
|
88
|
+
print(` ${verb}: ${output.path}${managed}`);
|
|
89
|
+
}
|
|
90
|
+
if (result.summary) {
|
|
91
|
+
print(` ${result.summary}`);
|
|
92
|
+
}
|
|
93
|
+
print('');
|
|
94
|
+
}
|
|
95
|
+
print(` ${verb}: ${agentMapOutput.path} (shared)`);
|
|
96
|
+
print('');
|
|
97
|
+
}
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
// Validation
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
/**
|
|
102
|
+
* Validate the compile context and return a list of warning messages.
|
|
103
|
+
*
|
|
104
|
+
* These are advisory only — warnings do not block compilation.
|
|
105
|
+
* Callers should print warnings to stderr before proceeding.
|
|
106
|
+
*
|
|
107
|
+
* @param context - The compile context to validate
|
|
108
|
+
* @returns Array of human-readable warning strings (empty if all clear)
|
|
109
|
+
*/
|
|
110
|
+
export function validateContext(context) {
|
|
111
|
+
const warnings = [];
|
|
112
|
+
// Check that the identity init script has been filled in.
|
|
113
|
+
const identity = context.initScripts?.['00-identity.md'];
|
|
114
|
+
if (identity !== undefined && identity.includes('(to be filled)')) {
|
|
115
|
+
warnings.push('Warning: Identity not configured. Run `agentfs onboard` to set up your agent identity.');
|
|
116
|
+
}
|
|
117
|
+
// Check that a profile is defined in the manifest.
|
|
118
|
+
if (context.manifest?.agentos?.profile === undefined) {
|
|
119
|
+
warnings.push('Warning: No profile set in manifest.agentos.profile. Run `agentfs onboard` to configure.');
|
|
120
|
+
}
|
|
121
|
+
return warnings;
|
|
122
|
+
}
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
// Main command
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
/**
|
|
127
|
+
* Entry point for the `agentfs compile` subcommand.
|
|
128
|
+
*
|
|
129
|
+
* Orchestrates:
|
|
130
|
+
* 1. Building the compile context (reads manifest + init.d + memory).
|
|
131
|
+
* 2. Running the requested compiler driver(s).
|
|
132
|
+
* 3. Always generating AGENT-MAP.md.
|
|
133
|
+
* 4. Writing only outputs where `managed === true` (ownership protection).
|
|
134
|
+
* 5. Printing a human-readable summary.
|
|
135
|
+
*
|
|
136
|
+
* Ownership protection: this function never writes a file where
|
|
137
|
+
* `output.managed === false`. Unmanaged files are reported in the summary
|
|
138
|
+
* as skipped so callers can observe the decision.
|
|
139
|
+
*
|
|
140
|
+
* @param args - Arguments after the `compile` subcommand token
|
|
141
|
+
* (i.e. `process.argv.slice(3)` when called from the CLI)
|
|
142
|
+
* @returns 0 on success, 1 on error
|
|
143
|
+
*/
|
|
144
|
+
export async function compileCommand(args) {
|
|
145
|
+
const { agent: targetAgent, dryRun } = parseArgs(args);
|
|
146
|
+
// Vault root is always the current working directory.
|
|
147
|
+
const vaultRoot = process.cwd();
|
|
148
|
+
// -------------------------------------------------------------------------
|
|
149
|
+
// Build compile context — fails fast if manifest.yaml is missing.
|
|
150
|
+
// -------------------------------------------------------------------------
|
|
151
|
+
let context;
|
|
152
|
+
try {
|
|
153
|
+
context = await buildCompileContext(vaultRoot, dryRun);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
const isNotFound = err !== null &&
|
|
157
|
+
typeof err === 'object' &&
|
|
158
|
+
err !== null &&
|
|
159
|
+
'code' in err &&
|
|
160
|
+
err.code === 'ENOENT';
|
|
161
|
+
if (isNotFound) {
|
|
162
|
+
printErr('No AgentFS vault found. Run `npx create-agentfs` first.');
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
printErr(`agentfs compile: failed to read manifest — ${err instanceof Error ? err.message : String(err)}`);
|
|
166
|
+
}
|
|
167
|
+
return 1;
|
|
168
|
+
}
|
|
169
|
+
// -------------------------------------------------------------------------
|
|
170
|
+
// Validate context — print warnings to stderr, never block compilation.
|
|
171
|
+
// -------------------------------------------------------------------------
|
|
172
|
+
for (const warning of validateContext(context)) {
|
|
173
|
+
printErr(warning);
|
|
174
|
+
}
|
|
175
|
+
// -------------------------------------------------------------------------
|
|
176
|
+
// Determine which compilers to run.
|
|
177
|
+
// -------------------------------------------------------------------------
|
|
178
|
+
let compilersToRun;
|
|
179
|
+
if (targetAgent !== undefined) {
|
|
180
|
+
// Single-agent mode: use the named compiler if it exists in the registry.
|
|
181
|
+
const compiler = COMPILER_REGISTRY[targetAgent];
|
|
182
|
+
if (compiler === undefined) {
|
|
183
|
+
printErr(`agentfs compile: no compiler found for agent '${targetAgent}'`);
|
|
184
|
+
return 1;
|
|
185
|
+
}
|
|
186
|
+
compilersToRun = [compiler];
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
// All-agents mode: run compilers for every agent listed in the manifest.
|
|
190
|
+
const supportedAgents = context.manifest.agents.supported;
|
|
191
|
+
compilersToRun = supportedAgents
|
|
192
|
+
.map((name) => COMPILER_REGISTRY[name])
|
|
193
|
+
.filter((c) => c !== undefined);
|
|
194
|
+
if (compilersToRun.length === 0) {
|
|
195
|
+
printErr('agentfs compile: no supported compilers found for agents listed in manifest.');
|
|
196
|
+
return 1;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// -------------------------------------------------------------------------
|
|
200
|
+
// Run compilers and write outputs (managed files only).
|
|
201
|
+
// -------------------------------------------------------------------------
|
|
202
|
+
const results = [];
|
|
203
|
+
try {
|
|
204
|
+
for (const compiler of compilersToRun) {
|
|
205
|
+
const result = await compiler.compile(context);
|
|
206
|
+
results.push(result);
|
|
207
|
+
// Ownership protection — only write files AgentFS owns.
|
|
208
|
+
const managedOutputs = result.outputs.filter((o) => o.managed);
|
|
209
|
+
await writeOutputs(managedOutputs, vaultRoot, dryRun);
|
|
210
|
+
}
|
|
211
|
+
// -----------------------------------------------------------------------
|
|
212
|
+
// Always regenerate AGENT-MAP.md regardless of target agent.
|
|
213
|
+
// -----------------------------------------------------------------------
|
|
214
|
+
const agentMapOutput = await generateAgentsFile(context);
|
|
215
|
+
// AGENT-MAP.md is always managed — no extra guard needed, but we respect
|
|
216
|
+
// the contract anyway for consistency.
|
|
217
|
+
if (agentMapOutput.managed) {
|
|
218
|
+
await writeOutputs([agentMapOutput], vaultRoot, dryRun);
|
|
219
|
+
}
|
|
220
|
+
printSummary(results, agentMapOutput, dryRun);
|
|
221
|
+
return 0;
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
printErr(`agentfs compile: unexpected error — ${err instanceof Error ? err.message : String(err)}`);
|
|
225
|
+
return 1;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agentfs cron` command implementation.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands:
|
|
5
|
+
* agentfs cron list — list all registered cron jobs
|
|
6
|
+
* agentfs cron run <job> — run a specific job
|
|
7
|
+
* agentfs cron run-all — run all registered jobs
|
|
8
|
+
*
|
|
9
|
+
* @module commands/cron
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Entry point for the `agentfs cron` subcommand.
|
|
13
|
+
*
|
|
14
|
+
* @param args - Arguments after the `cron` subcommand token
|
|
15
|
+
* @returns 0 on success, 1 on error
|
|
16
|
+
*/
|
|
17
|
+
export declare function cronCommand(args: string[]): Promise<number>;
|
|
18
|
+
//# sourceMappingURL=cron.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/commands/cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyDjE"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agentfs cron` command implementation.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands:
|
|
5
|
+
* agentfs cron list — list all registered cron jobs
|
|
6
|
+
* agentfs cron run <job> — run a specific job
|
|
7
|
+
* agentfs cron run-all — run all registered jobs
|
|
8
|
+
*
|
|
9
|
+
* @module commands/cron
|
|
10
|
+
*/
|
|
11
|
+
import { CRON_REGISTRY, runCronJob, runAllCronJobs } from '../cron/index.js';
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Output helpers
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
function print(line) {
|
|
16
|
+
process.stdout.write(line + '\n');
|
|
17
|
+
}
|
|
18
|
+
function printErr(line) {
|
|
19
|
+
process.stderr.write(line + '\n');
|
|
20
|
+
}
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Main
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
/**
|
|
25
|
+
* Entry point for the `agentfs cron` subcommand.
|
|
26
|
+
*
|
|
27
|
+
* @param args - Arguments after the `cron` subcommand token
|
|
28
|
+
* @returns 0 on success, 1 on error
|
|
29
|
+
*/
|
|
30
|
+
export async function cronCommand(args) {
|
|
31
|
+
const vaultRoot = process.cwd();
|
|
32
|
+
const action = args[0];
|
|
33
|
+
if (action === undefined || action === '--help' || action === '-h') {
|
|
34
|
+
printCronUsage();
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
if (action === 'list') {
|
|
38
|
+
print('');
|
|
39
|
+
print('Registered Cron Jobs');
|
|
40
|
+
print('═'.repeat(50));
|
|
41
|
+
for (const [key, job] of Object.entries(CRON_REGISTRY)) {
|
|
42
|
+
print(` ${key.padEnd(20)} ${job.description}`);
|
|
43
|
+
}
|
|
44
|
+
print('');
|
|
45
|
+
return 0;
|
|
46
|
+
}
|
|
47
|
+
if (action === 'run') {
|
|
48
|
+
const jobName = args[1];
|
|
49
|
+
if (!jobName) {
|
|
50
|
+
printErr('agentfs cron run: job name required');
|
|
51
|
+
printCronUsage();
|
|
52
|
+
return 1;
|
|
53
|
+
}
|
|
54
|
+
const result = await runCronJob(jobName, vaultRoot);
|
|
55
|
+
if (result.success) {
|
|
56
|
+
print(`✓ ${result.message}`);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
printErr(`✗ ${result.message}`);
|
|
60
|
+
}
|
|
61
|
+
return result.success ? 0 : 1;
|
|
62
|
+
}
|
|
63
|
+
if (action === 'run-all') {
|
|
64
|
+
const results = await runAllCronJobs(vaultRoot);
|
|
65
|
+
let hasFailure = false;
|
|
66
|
+
print('');
|
|
67
|
+
print('Cron Run Results');
|
|
68
|
+
print('═'.repeat(50));
|
|
69
|
+
for (const result of results) {
|
|
70
|
+
const icon = result.success ? '✓' : '✗';
|
|
71
|
+
print(` ${icon} [${result.job}] ${result.message}`);
|
|
72
|
+
if (!result.success)
|
|
73
|
+
hasFailure = true;
|
|
74
|
+
}
|
|
75
|
+
print('');
|
|
76
|
+
return hasFailure ? 1 : 0;
|
|
77
|
+
}
|
|
78
|
+
printErr(`agentfs cron: unknown action '${action}'`);
|
|
79
|
+
printCronUsage();
|
|
80
|
+
return 1;
|
|
81
|
+
}
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
// Usage
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
function printCronUsage() {
|
|
86
|
+
print('');
|
|
87
|
+
print('Usage: agentfs cron <action>');
|
|
88
|
+
print('');
|
|
89
|
+
print('Actions:');
|
|
90
|
+
print(' list List all registered cron jobs');
|
|
91
|
+
print(' run <job> Run a specific cron job');
|
|
92
|
+
print(' run-all Run all registered cron jobs');
|
|
93
|
+
print('');
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=cron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/commands/cron.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agentfs doctor` command — Story 12.1.
|
|
3
|
+
* `agentfs migrate` command — Story 12.2.
|
|
4
|
+
* `agentfs triage` command — Story 12.3.
|
|
5
|
+
*
|
|
6
|
+
* @module commands/doctor
|
|
7
|
+
*/
|
|
8
|
+
export declare function doctorCommand(_args: string[]): Promise<number>;
|
|
9
|
+
export declare function triageCommand(_args: string[]): Promise<number>;
|
|
10
|
+
export declare function migrateCommand(_args: string[]): Promise<number>;
|
|
11
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8EpE;AAMD,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCpE;AAoBD,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDrE"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agentfs doctor` command — Story 12.1.
|
|
3
|
+
* `agentfs migrate` command — Story 12.2.
|
|
4
|
+
* `agentfs triage` command — Story 12.3.
|
|
5
|
+
*
|
|
6
|
+
* @module commands/doctor
|
|
7
|
+
*/
|
|
8
|
+
import fs from 'node:fs/promises';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { scanForInjections, readSecurityPolicy } from '../security/parser.js';
|
|
11
|
+
function print(line) {
|
|
12
|
+
process.stdout.write(line + '\n');
|
|
13
|
+
}
|
|
14
|
+
export async function doctorCommand(_args) {
|
|
15
|
+
const vaultRoot = process.cwd();
|
|
16
|
+
const checks = [];
|
|
17
|
+
// Check 1: .agentos/ exists
|
|
18
|
+
try {
|
|
19
|
+
await fs.access(path.join(vaultRoot, '.agentos'));
|
|
20
|
+
checks.push({ name: 'AgentFS directory', passed: true, message: '.agentos/ exists' });
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
checks.push({ name: 'AgentFS directory', passed: false, message: '.agentos/ not found' });
|
|
24
|
+
}
|
|
25
|
+
// Check 2: manifest.yaml exists
|
|
26
|
+
try {
|
|
27
|
+
await fs.access(path.join(vaultRoot, '.agentos/manifest.yaml'));
|
|
28
|
+
checks.push({ name: 'Manifest', passed: true, message: 'manifest.yaml found' });
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
checks.push({ name: 'Manifest', passed: false, message: 'manifest.yaml not found' });
|
|
32
|
+
}
|
|
33
|
+
// Check 3: init.d/ exists
|
|
34
|
+
try {
|
|
35
|
+
await fs.access(path.join(vaultRoot, '.agentos/init.d'));
|
|
36
|
+
checks.push({ name: 'Init scripts', passed: true, message: 'init.d/ exists' });
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
checks.push({ name: 'Init scripts', passed: false, message: 'init.d/ not found' });
|
|
40
|
+
}
|
|
41
|
+
// Check 4: memory directory exists
|
|
42
|
+
try {
|
|
43
|
+
await fs.access(path.join(vaultRoot, '.agentos/memory'));
|
|
44
|
+
checks.push({ name: 'Memory system', passed: true, message: 'memory/ exists' });
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
checks.push({ name: 'Memory system', passed: false, message: 'memory/ not found' });
|
|
48
|
+
}
|
|
49
|
+
// Check 5: Security policy
|
|
50
|
+
const policy = await readSecurityPolicy(vaultRoot);
|
|
51
|
+
checks.push({
|
|
52
|
+
name: 'Security policy',
|
|
53
|
+
passed: true,
|
|
54
|
+
message: `Mode: ${policy.default_mode}, ${policy.input_validation.scan_on_read.length} injection patterns`,
|
|
55
|
+
});
|
|
56
|
+
// Check 6: Scan compiled outputs for injection
|
|
57
|
+
try {
|
|
58
|
+
const claudeMd = await fs.readFile(path.join(vaultRoot, 'CLAUDE.md'), 'utf8');
|
|
59
|
+
const injections = scanForInjections(claudeMd, policy);
|
|
60
|
+
checks.push({
|
|
61
|
+
name: 'CLAUDE.md injection scan',
|
|
62
|
+
passed: injections.length === 0,
|
|
63
|
+
message: injections.length === 0 ? 'Clean' : `${injections.length} pattern(s) detected`,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
checks.push({ name: 'CLAUDE.md injection scan', passed: true, message: 'Not compiled yet (skipped)' });
|
|
68
|
+
}
|
|
69
|
+
// Print results
|
|
70
|
+
print('');
|
|
71
|
+
print('AgentFS Doctor');
|
|
72
|
+
print('═'.repeat(50));
|
|
73
|
+
let failures = 0;
|
|
74
|
+
for (const check of checks) {
|
|
75
|
+
const icon = check.passed ? '✓' : '✗';
|
|
76
|
+
print(` ${icon} ${check.name}: ${check.message}`);
|
|
77
|
+
if (!check.passed)
|
|
78
|
+
failures++;
|
|
79
|
+
}
|
|
80
|
+
print('');
|
|
81
|
+
if (failures === 0) {
|
|
82
|
+
print(' All checks passed! Vault is healthy.');
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
print(` ${failures} check(s) failed. Run \`agentfs init\` to fix.`);
|
|
86
|
+
}
|
|
87
|
+
print('');
|
|
88
|
+
return failures > 0 ? 1 : 0;
|
|
89
|
+
}
|
|
90
|
+
// ---------------------------------------------------------------------------
|
|
91
|
+
// Triage command — Story 12.3
|
|
92
|
+
// ---------------------------------------------------------------------------
|
|
93
|
+
export async function triageCommand(_args) {
|
|
94
|
+
const vaultRoot = process.cwd();
|
|
95
|
+
const inboxDir = path.join(vaultRoot, 'Inbox');
|
|
96
|
+
let files;
|
|
97
|
+
try {
|
|
98
|
+
const entries = await fs.readdir(inboxDir);
|
|
99
|
+
files = entries.filter((f) => f.endsWith('.md'));
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
print('No Inbox/ directory found. Nothing to triage.');
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
if (files.length === 0) {
|
|
106
|
+
print('Inbox is empty. Nothing to triage.');
|
|
107
|
+
return 0;
|
|
108
|
+
}
|
|
109
|
+
print('');
|
|
110
|
+
print('Inbox Triage');
|
|
111
|
+
print('═'.repeat(50));
|
|
112
|
+
for (const file of files) {
|
|
113
|
+
const content = await fs.readFile(path.join(inboxDir, file), 'utf8');
|
|
114
|
+
const suggestion = suggestFromContent(content, file);
|
|
115
|
+
print(` 📄 ${file}`);
|
|
116
|
+
print(` → Suggested: ${suggestion}`);
|
|
117
|
+
print('');
|
|
118
|
+
}
|
|
119
|
+
print(' Use `mv` to move files to their suggested locations.');
|
|
120
|
+
print(' (Automatic moving is disabled by design — user must confirm.)');
|
|
121
|
+
print('');
|
|
122
|
+
return 0;
|
|
123
|
+
}
|
|
124
|
+
function suggestFromContent(content, filename) {
|
|
125
|
+
const lower = content.toLowerCase();
|
|
126
|
+
if (lower.includes('project') || lower.includes('sprint'))
|
|
127
|
+
return 'Projects/';
|
|
128
|
+
if (lower.includes('daily') || lower.includes('journal') || lower.includes('standup'))
|
|
129
|
+
return 'Daily/';
|
|
130
|
+
if (lower.includes('resource') || lower.includes('reference') || lower.includes('documentation'))
|
|
131
|
+
return 'Resources/';
|
|
132
|
+
if (lower.includes('meeting') || lower.includes('decision'))
|
|
133
|
+
return 'Decisions/';
|
|
134
|
+
// Check filename patterns
|
|
135
|
+
if (/^\d{4}-\d{2}-\d{2}/.test(filename))
|
|
136
|
+
return 'Daily/';
|
|
137
|
+
return 'Resources/ (default)';
|
|
138
|
+
}
|
|
139
|
+
// ---------------------------------------------------------------------------
|
|
140
|
+
// Migrate command — Story 12.2
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
export async function migrateCommand(_args) {
|
|
143
|
+
const vaultRoot = process.cwd();
|
|
144
|
+
// Check if already has .agentos
|
|
145
|
+
try {
|
|
146
|
+
await fs.access(path.join(vaultRoot, '.agentos'));
|
|
147
|
+
print('This vault already has .agentos/. Use `agentfs doctor` to check health.');
|
|
148
|
+
return 0;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Expected — no .agentos yet
|
|
152
|
+
}
|
|
153
|
+
// Analyze existing vault
|
|
154
|
+
print('');
|
|
155
|
+
print('Migration Analysis');
|
|
156
|
+
print('═'.repeat(50));
|
|
157
|
+
let totalFiles = 0;
|
|
158
|
+
let mdFiles = 0;
|
|
159
|
+
let hasGit = false;
|
|
160
|
+
let hasOmc = false;
|
|
161
|
+
let hasClaude = false;
|
|
162
|
+
try {
|
|
163
|
+
const files = await fs.readdir(vaultRoot, { recursive: true });
|
|
164
|
+
for (const file of files) {
|
|
165
|
+
totalFiles++;
|
|
166
|
+
if (String(file).endsWith('.md'))
|
|
167
|
+
mdFiles++;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
// Can't enumerate
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
await fs.access(path.join(vaultRoot, '.git'));
|
|
175
|
+
hasGit = true;
|
|
176
|
+
}
|
|
177
|
+
catch { /* */ }
|
|
178
|
+
try {
|
|
179
|
+
await fs.access(path.join(vaultRoot, '.omc'));
|
|
180
|
+
hasOmc = true;
|
|
181
|
+
}
|
|
182
|
+
catch { /* */ }
|
|
183
|
+
try {
|
|
184
|
+
await fs.access(path.join(vaultRoot, 'CLAUDE.md'));
|
|
185
|
+
hasClaude = true;
|
|
186
|
+
}
|
|
187
|
+
catch { /* */ }
|
|
188
|
+
print(` Total files: ${totalFiles}`);
|
|
189
|
+
print(` Markdown files: ${mdFiles}`);
|
|
190
|
+
print(` Git repo: ${hasGit ? 'yes' : 'no'}`);
|
|
191
|
+
print(` OpenClaw config: ${hasOmc ? 'yes' : 'no'}`);
|
|
192
|
+
print(` CLAUDE.md: ${hasClaude ? 'yes' : 'no'}`);
|
|
193
|
+
print('');
|
|
194
|
+
print(' To migrate, run: agentfs init');
|
|
195
|
+
print(' This will create .agentos/ without modifying existing files.');
|
|
196
|
+
print('');
|
|
197
|
+
return 0;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agentfs memory` command implementation.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands:
|
|
5
|
+
* agentfs memory show — display semantic memory with confidence
|
|
6
|
+
* agentfs memory show episodic [date] — display episodic entries
|
|
7
|
+
* agentfs memory show procedural [name]— display procedural skills
|
|
8
|
+
* agentfs memory consolidate — run manual consolidation
|
|
9
|
+
*
|
|
10
|
+
* @module commands/memory
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Entry point for the `agentfs memory` subcommand.
|
|
14
|
+
*
|
|
15
|
+
* @param args - Arguments after the `memory` subcommand token
|
|
16
|
+
* @returns 0 on success, 1 on error
|
|
17
|
+
*/
|
|
18
|
+
export declare function memoryCommand(args: string[]): Promise<number>;
|
|
19
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuMH;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BnE"}
|