@5ive-tech/cli 1.0.11 → 1.0.14
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 +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +66 -33
- package/dist/commands/init.js.map +1 -1
- package/package.json +2 -1
- package/templates/AGENTS.md +466 -0
package/README.md
CHANGED
|
@@ -24,6 +24,8 @@ npx @5ive-tech/cli --help
|
|
|
24
24
|
cd my-program
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
`5ive init` generates an `AGENTS.md` playbook in every new project so agents can immediately compile, test, deploy, and execute 5ive DSL programs with the same workflow as developers.
|
|
28
|
+
|
|
27
29
|
### 2) Compile to a `.five` artifact (recommended)
|
|
28
30
|
|
|
29
31
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,OAAO,EACL,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,WAAW,EAAE,iBAgIzB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Init command.
|
|
2
|
-
import { writeFile, mkdir, access } from 'fs/promises';
|
|
3
|
-
import { join } from 'path';
|
|
2
|
+
import { writeFile, mkdir, access, readFile } from 'fs/promises';
|
|
3
|
+
import { join, resolve, dirname } from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
4
5
|
import chalk from 'chalk';
|
|
5
6
|
import ora from 'ora';
|
|
6
7
|
import { success as uiSuccess, warning as uiWarning, uiColors } from '../utils/cli-ui.js';
|
|
@@ -95,6 +96,10 @@ export const initCommand = {
|
|
|
95
96
|
await generateProjectConfig(projectDir, projectName, options);
|
|
96
97
|
await generatePackageJson(projectDir, projectName, options);
|
|
97
98
|
spinner.succeed('Configuration files generated');
|
|
99
|
+
// Generate agent playbook (always, even with --no-examples)
|
|
100
|
+
spinner.start('Generating AGENTS.md playbook...');
|
|
101
|
+
await generateAgentPlaybook(projectDir);
|
|
102
|
+
spinner.succeed('AGENTS.md generated');
|
|
98
103
|
// Generate source files
|
|
99
104
|
if (!options.noExamples) {
|
|
100
105
|
spinner.start('Generating example files...');
|
|
@@ -203,7 +208,7 @@ async function generatePackageJson(projectDir, projectName, options) {
|
|
|
203
208
|
'watch': '5ive compile src/**/*.v --watch'
|
|
204
209
|
},
|
|
205
210
|
devDependencies: {
|
|
206
|
-
'
|
|
211
|
+
'@5ive-tech/cli': '^1.0.0'
|
|
207
212
|
},
|
|
208
213
|
keywords: [
|
|
209
214
|
'five-vm',
|
|
@@ -272,35 +277,31 @@ network = "devnet"
|
|
|
272
277
|
}
|
|
273
278
|
function getTemplateMainFile(template) {
|
|
274
279
|
const templates = {
|
|
275
|
-
basic: `// Basic
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
// Main program constraints
|
|
283
|
-
constraints {
|
|
284
|
-
// Add your business logic here
|
|
285
|
-
require(true, "Always passes");
|
|
286
|
-
}
|
|
280
|
+
basic: `// Basic 5ive DSL program (valid-first starter)
|
|
281
|
+
|
|
282
|
+
account Counter {
|
|
283
|
+
value: u64;
|
|
284
|
+
authority: pubkey;
|
|
287
285
|
}
|
|
288
286
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
287
|
+
pub init_counter(
|
|
288
|
+
counter: Counter @mut,
|
|
289
|
+
authority: account @signer
|
|
290
|
+
) {
|
|
291
|
+
counter.value = 0;
|
|
292
|
+
counter.authority = authority.key;
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
295
|
+
pub increment(
|
|
296
|
+
counter: Counter @mut,
|
|
297
|
+
authority: account @signer
|
|
298
|
+
) {
|
|
299
|
+
require(counter.authority == authority.key);
|
|
300
|
+
counter.value = counter.value + 1;
|
|
298
301
|
}
|
|
299
302
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
let result = add(2, 3);
|
|
303
|
-
assert_eq(result, 5, "Addition should work");
|
|
303
|
+
pub get_value(counter: Counter) -> u64 {
|
|
304
|
+
return counter.value;
|
|
304
305
|
}
|
|
305
306
|
`,
|
|
306
307
|
defi: `// DeFi Protocol on 5IVE VM
|
|
@@ -728,7 +729,7 @@ A ${template} project built with 5IVE VM.
|
|
|
728
729
|
### Prerequisites
|
|
729
730
|
|
|
730
731
|
- Node.js 18+
|
|
731
|
-
- 5IVE CLI: \`npm install -g
|
|
732
|
+
- 5IVE CLI: \`npm install -g @5ive-tech/cli\`
|
|
732
733
|
|
|
733
734
|
### Building
|
|
734
735
|
|
|
@@ -754,16 +755,16 @@ npm run build:debug
|
|
|
754
755
|
npm test
|
|
755
756
|
|
|
756
757
|
# Run with watch mode for continuous testing
|
|
757
|
-
|
|
758
|
+
5ive test --watch
|
|
758
759
|
|
|
759
760
|
# Run specific tests by filter
|
|
760
|
-
|
|
761
|
+
5ive test --filter "test_add"
|
|
761
762
|
|
|
762
763
|
# Run with verbose output
|
|
763
|
-
|
|
764
|
+
5ive test --verbose
|
|
764
765
|
|
|
765
766
|
# Run with JSON output for CI/CD
|
|
766
|
-
|
|
767
|
+
5ive test --format json
|
|
767
768
|
\`\`\`
|
|
768
769
|
|
|
769
770
|
#### Writing Tests
|
|
@@ -816,10 +817,10 @@ If your project uses multiple modules with \`use\` or \`import\` statements, 5IV
|
|
|
816
817
|
|
|
817
818
|
\`\`\`bash
|
|
818
819
|
# Automatic discovery of imported modules
|
|
819
|
-
|
|
820
|
+
5ive compile src/main.v --auto-discover
|
|
820
821
|
|
|
821
822
|
# Or use the build command which respects five.toml configuration
|
|
822
|
-
|
|
823
|
+
5ive build
|
|
823
824
|
\`\`\`
|
|
824
825
|
|
|
825
826
|
## Learn More
|
|
@@ -869,11 +870,43 @@ Thumbs.db
|
|
|
869
870
|
*.debug.bin
|
|
870
871
|
`;
|
|
871
872
|
}
|
|
873
|
+
/**
|
|
874
|
+
* Generate AGENTS.md playbook content and write it to project root.
|
|
875
|
+
*/
|
|
876
|
+
async function generateAgentPlaybook(projectDir) {
|
|
877
|
+
const playbookTemplate = await loadAgentPlaybookTemplate();
|
|
878
|
+
await writeFile(join(projectDir, 'AGENTS.md'), playbookTemplate);
|
|
879
|
+
}
|
|
880
|
+
async function loadAgentPlaybookTemplate() {
|
|
881
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
882
|
+
const __dirname = dirname(__filename);
|
|
883
|
+
const candidatePaths = [
|
|
884
|
+
// dist runtime
|
|
885
|
+
resolve(__dirname, '../../templates/AGENTS.md'),
|
|
886
|
+
// src/test runtime
|
|
887
|
+
resolve(__dirname, '../templates/AGENTS.md'),
|
|
888
|
+
// repo-root fallback
|
|
889
|
+
resolve(process.cwd(), 'five-cli/templates/AGENTS.md'),
|
|
890
|
+
];
|
|
891
|
+
for (const p of candidatePaths) {
|
|
892
|
+
try {
|
|
893
|
+
const content = await readFile(p, 'utf8');
|
|
894
|
+
if (content.trim().length > 0) {
|
|
895
|
+
return content;
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
catch {
|
|
899
|
+
// try next candidate
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
throw new Error('Failed to load AGENTS.md template from five-cli/templates/AGENTS.md');
|
|
903
|
+
}
|
|
872
904
|
/**
|
|
873
905
|
* Display success message
|
|
874
906
|
*/
|
|
875
907
|
function displaySuccessMessage(projectDir, projectName, options) {
|
|
876
908
|
console.log('\n' + uiSuccess('Project initialized'));
|
|
909
|
+
console.log(` ${uiColors.info('Generated')} AGENTS.md - Agent playbook for build/deploy/test workflow`);
|
|
877
910
|
console.log('\n' + chalk.bold('Next steps:'));
|
|
878
911
|
if (projectDir !== process.cwd()) {
|
|
879
912
|
console.log(` ${uiColors.info('cd')} ${projectDir}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAEhB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,OAAO,IAAI,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAS1F,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IAE1B,OAAO,EAAE;QACP;YACE,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;YAChD,YAAY,EAAE,OAAO;SACtB;QACD;YACE,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,4BAA4B;YACzC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;YAC1C,YAAY,EAAE,IAAI;SACnB;QACD;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,iBAAiB;YAC9B,YAAY,EAAE,KAAK;SACpB;QACD;YACE,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,oCAAoC;YACjD,YAAY,EAAE,KAAK;SACpB;QACD;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,oBAAoB;YACjC,YAAY,EAAE,KAAK;SACpB;KACF;IAED,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,KAAK;SAChB;KACF;IAED,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,yCAAyC;SACvD;QACD;YACE,OAAO,EAAE,sBAAsB;YAC/B,WAAW,EAAE,4CAA4C;SAC1D;QACD;YACE,OAAO,EAAE,mDAAmD;YAC5D,WAAW,EAAE,sCAAsC;SACpD;QACD;YACE,OAAO,EAAE,yCAAyC;YAClD,WAAW,EAAE,gDAAgD;SAC9D;KACF;IAED,OAAO,EAAE,KAAK,EAAE,IAAc,EAAE,OAAY,EAAE,OAAuB,EAAiB,EAAE;QACtF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3B,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAEzE,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;YAE5D,yCAAyC;YACzC,MAAM,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAEhD,2BAA2B;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7D,MAAM,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAE7C,iCAAiC;YACjC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,MAAM,qBAAqB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAEjD,wBAAwB;YACxB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,MAAM,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACzD,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAChD,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;gBAC1C,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,0BAA0B;YAC1B,qBAAqB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAE1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAC;AAEF,KAAK,UAAU,qBAAqB,CAAC,UAAkB,EAAE,MAAW;IAClE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzB,wCAAwC;QACxC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,aAAa,UAAU,eAAe,CAAC,CAAC;YAEpD,kCAAkC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAChF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,qCAAqC;YACrC,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,UAAkB,EAAE,QAAgB;IACxE,MAAM,IAAI,GAAG;QACX,KAAK;QACL,OAAO;QACP,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO;KACR,CAAC;IAEF,oCAAoC;IACpC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YACtD,MAAM;QACR,KAAK,KAAK;YACR,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM;QACR,KAAK,MAAM;YACT,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM;QACR,KAAK,KAAK;YACR,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;YAC7D,MAAM;IACV,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,UAAkB,EAClB,WAAmB,EACnB,OAAY;IAEZ,MAAM,MAAM,GAAkB;QAC5B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,mBAAmB;QACvD,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,OAAO,CAAC,MAA2B;QAC3C,aAAa,EAAE;YACb,iBAAiB,EAAE,IAAI;YACvB,4BAA4B,EAAE,IAAI;YAClC,iBAAiB,EAAE,YAAY;SAChC;QACD,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,UAAkB,EAClB,WAAmB,EACnB,OAAY;IAEZ,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;QAC3D,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,mBAAmB;QACvD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE;YACP,KAAK,EAAE,yBAAyB;YAChC,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,aAAa;YACrB,eAAe,EAAE,8BAA8B;YAC/C,aAAa,EAAE,iCAAiC;YAChD,OAAO,EAAE,iCAAiC;SAC3C;QACD,eAAe,EAAE;YACf,UAAU,EAAE,QAAQ;SACrB;QACD,QAAQ,EAAE;YACR,SAAS;YACT,YAAY;YACZ,QAAQ;YACR,iBAAiB;SAClB;KACF,CAAC;IAEF,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,UAAkB,EAAE,QAAgB;IACtE,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE1D,qBAAqB;IACrB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEjE,kBAAkB;IAClB,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IAEvD,sBAAsB;IACtB,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACtC,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,UAAkB;IACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,QAAQ,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,QAAQ,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,QAAQ,CAAC,gCAAgC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gEAAgE;QAChE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAqB;IAC/C,OAAO;;UAEC,MAAM,CAAC,IAAI;aACR,MAAM,CAAC,OAAO;iBACV,MAAM,CAAC,WAAW;gBACnB,MAAM,CAAC,SAAS;eACjB,MAAM,CAAC,QAAQ;YAClB,MAAM,CAAC,MAAM;;;uBAGF,MAAM,CAAC,aAAa,CAAC,iBAAiB;mCAC1B,MAAM,CAAC,aAAa,CAAC,4BAA4B;wBAC5D,MAAM,CAAC,aAAa,CAAC,iBAAiB;;;;;;;;;;;;;;;CAe7D,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,SAAS,GAA2B;QACxC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BV;QAEG,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDT;QAEG,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DR;QAEG,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+ET;QAEG,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GR;KACE,CAAC;IAEF,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,4CAA4C;IAC5C,MAAM,SAAS,GAA2B;QACxC,KAAK,EAAE,gBAAgB,QAAQ;;;;;;;;;;;;;;;;;;CAkBlC;QAEG,IAAI,EAAE,gBAAgB,QAAQ;;;;;;;;;;;;;;;;CAgBjC;QAEG,GAAG,EAAE,gBAAgB,QAAQ;;;;;;;;;;;;;;;;CAgBhC;QAEG,IAAI,EAAE,gBAAgB,QAAQ;;;;;;;;;;;;;;;;;;;;CAoBjC;QAEG,GAAG,EAAE,gBAAgB,QAAQ;;;;;;;;;;;;;;CAchC;KACE,CAAC;IAEF,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO;;IAEL,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+GX,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,UAAkB,EAAE,WAAmB,EAAE,OAAY;IAClF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAE9C,IAAI,UAAU,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC;IAE5E,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACnE,CAAC"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@5ive-tech/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14",
|
|
4
4
|
"description": "High-performance CLI for Five VM development with WebAssembly integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"files": [
|
|
39
39
|
"dist/",
|
|
40
|
+
"templates/AGENTS.md",
|
|
40
41
|
"assets/",
|
|
41
42
|
"README.md",
|
|
42
43
|
"LICENSE"
|
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
# AGENTS.md - Complete 5IVE DSL Agent Bootstrap
|
|
2
|
+
|
|
3
|
+
This file is written for agents with zero prior 5IVE knowledge.
|
|
4
|
+
It is intentionally self-contained and should be treated as the baseline technical specification for authoring, testing, deploying, and integrating 5IVE programs.
|
|
5
|
+
|
|
6
|
+
## 1) What 5IVE Is
|
|
7
|
+
|
|
8
|
+
5IVE is a DSL and toolchain for compiling compact bytecode programs for Solana execution paths.
|
|
9
|
+
|
|
10
|
+
Core surfaces:
|
|
11
|
+
1. Source language: `.v`
|
|
12
|
+
2. Canonical artifact: `.five` (bytecode + ABI)
|
|
13
|
+
3. CLI: `@5ive-tech/cli` (`5ive` canonical command; `five` alias supported)
|
|
14
|
+
4. SDK: `@5ive-tech/sdk` (`FiveSDK`, `FiveProgram`)
|
|
15
|
+
|
|
16
|
+
## 2) Source of Truth Policy
|
|
17
|
+
|
|
18
|
+
When docs conflict, resolve in this order:
|
|
19
|
+
1. Compiler/CLI/SDK source code
|
|
20
|
+
2. Package manifests + command definitions
|
|
21
|
+
3. READMEs/examples/docs
|
|
22
|
+
|
|
23
|
+
Never rely on stale docs when behavior is high-stakes (deploy/execute/CPI encoding).
|
|
24
|
+
|
|
25
|
+
## 3) Non-Negotiable Workflow
|
|
26
|
+
|
|
27
|
+
1. Inspect `five.toml` before code changes.
|
|
28
|
+
2. Compile to `.five`.
|
|
29
|
+
3. Run local/runtime tests.
|
|
30
|
+
4. Deploy with explicit target + program ID resolution path.
|
|
31
|
+
5. Execute and verify confirmed tx metadata (`meta.err == null`).
|
|
32
|
+
6. Record signatures + compute units.
|
|
33
|
+
|
|
34
|
+
## 3.1) Strict Authoring Mode (Required For New Contracts)
|
|
35
|
+
|
|
36
|
+
Use this profile unless you have direct proof in your current compiler version that a broader syntax feature is stable.
|
|
37
|
+
|
|
38
|
+
1. Prefer top-level accounts + top-level functions. Do not wrap programs in `script Name { ... }`.
|
|
39
|
+
2. Use account/signer/mut attributes in this order style:
|
|
40
|
+
- `owner: pubkey @signer`
|
|
41
|
+
- `state: Mint @mut`
|
|
42
|
+
- `ata: TokenAccount @mut @init`
|
|
43
|
+
3. Prefer plain function declarations like:
|
|
44
|
+
- `pub transfer(...) { ... }`
|
|
45
|
+
- `pub mint_to(...) { ... }`
|
|
46
|
+
4. Any function intended to be called via `5ive execute` must be declared `pub`.
|
|
47
|
+
5. Keep logic to `require`, `if/else`, arithmetic, assignments, and simple returns.
|
|
48
|
+
6. Validate after every meaningful edit:
|
|
49
|
+
- `5ive compile src/main.v -o build/main.five`
|
|
50
|
+
|
|
51
|
+
Avoid these patterns by default (high-risk for invalid output in agent-generated code):
|
|
52
|
+
1. `instruction ...` function form
|
|
53
|
+
2. Attribute-first parameters like `@signer owner: pubkey`
|
|
54
|
+
3. Optional parameters/fields in signatures (`x?: T`) and nullish expressions (`??`)
|
|
55
|
+
4. `enum`/`event` heavy first-pass contracts
|
|
56
|
+
5. Event emission (`event` / `emit`) unless you have compile+runtime proof in your current toolchain
|
|
57
|
+
6. Unverified literals/helpers like `pubkey(0)` unless confirmed in working examples
|
|
58
|
+
7. Parser-only/experimental syntax from tokenizer docs without a compile-verified example
|
|
59
|
+
|
|
60
|
+
Safe token-style baseline:
|
|
61
|
+
```v
|
|
62
|
+
account Mint {
|
|
63
|
+
authority: pubkey;
|
|
64
|
+
supply: u64;
|
|
65
|
+
decimals: u8;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
account TokenAccount {
|
|
69
|
+
owner_key: pubkey;
|
|
70
|
+
mint: pubkey;
|
|
71
|
+
bal: u64;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
pub init_mint(
|
|
75
|
+
state: Mint @mut,
|
|
76
|
+
authority: pubkey @signer,
|
|
77
|
+
decimals: u8
|
|
78
|
+
) {
|
|
79
|
+
state.authority = authority;
|
|
80
|
+
state.supply = 0;
|
|
81
|
+
state.decimals = decimals;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
pub transfer(
|
|
85
|
+
source: TokenAccount @mut,
|
|
86
|
+
destination: TokenAccount @mut,
|
|
87
|
+
owner: pubkey @signer,
|
|
88
|
+
amount: u64
|
|
89
|
+
) {
|
|
90
|
+
require(source.owner_key == owner, "owner mismatch");
|
|
91
|
+
require(source.mint == destination.mint, "mint mismatch");
|
|
92
|
+
require(source.bal >= amount, "insufficient funds");
|
|
93
|
+
source.bal = source.bal - amount;
|
|
94
|
+
destination.bal = destination.bal + amount;
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 4) DSL Feature Inventory (Deep)
|
|
99
|
+
|
|
100
|
+
This section enumerates language features discovered from parser/compiler code and repo examples.
|
|
101
|
+
|
|
102
|
+
### 4.1 Top-level declarations
|
|
103
|
+
Observed and/or parsed:
|
|
104
|
+
1. `account Name { ... }`
|
|
105
|
+
2. Global fields/variables (including `mut`)
|
|
106
|
+
3. `init { ... }` block
|
|
107
|
+
4. `constraints { ... }` block
|
|
108
|
+
5. Function/instruction definitions (`pub`, `fn`, optional `instruction` keyword)
|
|
109
|
+
6. `event Name { ... }` definitions
|
|
110
|
+
7. `interface Name ... { ... }` definitions
|
|
111
|
+
8. `use` / `import` statements
|
|
112
|
+
9. Legacy `script Name { ... }` wrapper (parser-supported)
|
|
113
|
+
|
|
114
|
+
### 4.2 Function definition forms
|
|
115
|
+
Parser accepts flexible forms:
|
|
116
|
+
1. `pub add(...) -> ... { ... }`
|
|
117
|
+
2. `fn add(...) { ... }`
|
|
118
|
+
3. `instruction add(...) { ... }`
|
|
119
|
+
4. `pub fn add(...) { ... }`
|
|
120
|
+
|
|
121
|
+
### 4.3 Parameter system
|
|
122
|
+
Each parameter supports:
|
|
123
|
+
1. Name + type: `x: u64`
|
|
124
|
+
2. Optional marker: `x?: u64`
|
|
125
|
+
3. Default value: `x: u64 = 10`
|
|
126
|
+
4. Attributes before or after type
|
|
127
|
+
|
|
128
|
+
Common attributes:
|
|
129
|
+
1. `@signer`
|
|
130
|
+
2. `@mut`
|
|
131
|
+
3. `@init`
|
|
132
|
+
4. Generic form: `@attribute(args...)`
|
|
133
|
+
5. Template-observed relation constraints: `@has(field)`
|
|
134
|
+
|
|
135
|
+
### 4.4 `@init` config support
|
|
136
|
+
`@init` can include config arguments:
|
|
137
|
+
1. `payer=...`
|
|
138
|
+
2. `space=...`
|
|
139
|
+
3. `seeds=[...]`
|
|
140
|
+
4. `bump=...`
|
|
141
|
+
|
|
142
|
+
Examples also show legacy bracket seed forms after `@init`.
|
|
143
|
+
|
|
144
|
+
### 4.5 Types
|
|
145
|
+
Supported/parsed type families:
|
|
146
|
+
1. Primitive numeric/bool/pubkey/string types (`u8..u128`, `i8..i64`, `bool`, `pubkey`, `string`)
|
|
147
|
+
2. `Account` type and account-typed params
|
|
148
|
+
3. Sized strings: `string<32>`
|
|
149
|
+
4. Arrays:
|
|
150
|
+
- Rust style: `[T; N]`
|
|
151
|
+
- TypeScript-style sized: `T[N]`
|
|
152
|
+
- TypeScript-style dynamic: `T[]`
|
|
153
|
+
5. Tuples: `(T1, T2, ...)`
|
|
154
|
+
6. Inline struct types: `{ field: Type, ... }`
|
|
155
|
+
7. Generic types:
|
|
156
|
+
- `Option<T>`
|
|
157
|
+
- `Result<T, E>`
|
|
158
|
+
- nested generics (`Option<Option<u64>>` etc.)
|
|
159
|
+
8. Namespaced/custom types: `module::Type`
|
|
160
|
+
9. Optional account fields in structs/accounts: `field?: Type`
|
|
161
|
+
|
|
162
|
+
### 4.6 Statements
|
|
163
|
+
Observed and parser-supported:
|
|
164
|
+
1. `let` declarations (with `mut` and optional type annotation)
|
|
165
|
+
2. Assignment:
|
|
166
|
+
- direct: `x = y`
|
|
167
|
+
- compound: `+=`, `-=`, `*=`, `/=`, `<<=`, `>>=`, `&=`, `|=`, `^=`
|
|
168
|
+
3. Field assignment: `obj.field = value`
|
|
169
|
+
4. Return statements (`return`, `return value`)
|
|
170
|
+
5. Guard/assertion: `require(condition)`
|
|
171
|
+
6. Conditionals:
|
|
172
|
+
- `if (...) {}`
|
|
173
|
+
- `else if (...) {}`
|
|
174
|
+
- `else {}`
|
|
175
|
+
7. Pattern matching: `match expr { ... }`, with optional arm guards (`if ...`)
|
|
176
|
+
8. Loops:
|
|
177
|
+
- `while (...) { ... }`
|
|
178
|
+
- `for (init; cond; update) { ... }`
|
|
179
|
+
- `for (item in iterable) { ... }`
|
|
180
|
+
- `do { ... } while (...);`
|
|
181
|
+
9. Tuple destructuring:
|
|
182
|
+
- declaration style: `let (a, b) = expr`
|
|
183
|
+
- assignment style for tuple targets
|
|
184
|
+
10. Event emission: `emit EventName { field: value, ... }`
|
|
185
|
+
11. Expression statements (function/method calls, constructors like `Some(...)`)
|
|
186
|
+
|
|
187
|
+
### 4.7 Expressions and operators
|
|
188
|
+
Parser handles:
|
|
189
|
+
1. Arithmetic: `+`, `-`, `*`, `/`, `%`
|
|
190
|
+
2. Checked-arithmetic tokens in grammar: `+?`, `-?`, `*?`
|
|
191
|
+
- Some repo tests indicate these were replaced/legacy in current examples.
|
|
192
|
+
3. Comparison: `==`, `!=`, `<`, `<=`, `>`, `>=`
|
|
193
|
+
4. Boolean: `&&`, `||`, `!`
|
|
194
|
+
5. Bitwise: `&`, `|`, `^`, `~`
|
|
195
|
+
6. Shifts/bit ops: `<<`, `>>`, `>>>`, `<<<`
|
|
196
|
+
7. Range operator: `..`
|
|
197
|
+
8. Unary `+`/`-`
|
|
198
|
+
9. Cast syntax: `expr as Type`
|
|
199
|
+
10. Error propagation postfix: `expr?`
|
|
200
|
+
11. Field access: `obj.field`
|
|
201
|
+
12. Tuple access: `obj.0`
|
|
202
|
+
13. Array indexing: `arr[idx]`
|
|
203
|
+
14. Function calls
|
|
204
|
+
15. Method calls: `obj.method(args...)`
|
|
205
|
+
16. Namespaced calls: `module::function(...)`
|
|
206
|
+
17. Struct literals: `{ field: expr, ... }`
|
|
207
|
+
18. Array literals: `[a, b, c]`
|
|
208
|
+
19. Tuple literals: `(a, b)`
|
|
209
|
+
20. Option/Result constructors and patterns:
|
|
210
|
+
- `Some(...)`, `None`
|
|
211
|
+
- `Ok(...)`, `Err(...)`
|
|
212
|
+
|
|
213
|
+
### 4.8 Imports and modules
|
|
214
|
+
`use`/`import` system supports:
|
|
215
|
+
1. External module specifier via quoted literal
|
|
216
|
+
2. Local module specifier via identifier path
|
|
217
|
+
3. Nested local module paths using `::`
|
|
218
|
+
4. Scoped namespace forms with symbols: `!`, `@`, `#`, `$`, `%`
|
|
219
|
+
5. Member imports:
|
|
220
|
+
- single: `::name`
|
|
221
|
+
- list: `::{a, b}`
|
|
222
|
+
- typed list entries: `method foo`, `interface Bar`
|
|
223
|
+
|
|
224
|
+
### 4.9 Interfaces and CPI features
|
|
225
|
+
Interface parser supports:
|
|
226
|
+
1. `interface Name ... { methods... }`
|
|
227
|
+
2. Program binding:
|
|
228
|
+
- `program("...")`
|
|
229
|
+
- `@program("...")`
|
|
230
|
+
3. Serializer hints:
|
|
231
|
+
- `serializer(...)`
|
|
232
|
+
- `@serializer(...)`
|
|
233
|
+
4. Anchor marker:
|
|
234
|
+
- `@anchor interface ...`
|
|
235
|
+
5. Method discriminators:
|
|
236
|
+
- `@discriminator(u8)`
|
|
237
|
+
- `@discriminator([byte,...])`
|
|
238
|
+
- `discriminator_bytes(...)` forms in parser/compiler AST
|
|
239
|
+
6. Optional interface method return types
|
|
240
|
+
|
|
241
|
+
CPI hard rule for agents:
|
|
242
|
+
1. Always set `@program(...)`
|
|
243
|
+
2. Always set `@serializer(...)` explicitly
|
|
244
|
+
3. Always set discriminator explicitly
|
|
245
|
+
|
|
246
|
+
### 4.10 Events and error/enums
|
|
247
|
+
Parser/AST include:
|
|
248
|
+
1. Event definitions + `emit` statements
|
|
249
|
+
2. Enum/error-style definitions (`enum` path in parser)
|
|
250
|
+
|
|
251
|
+
Production note:
|
|
252
|
+
Treat event/error enum features as available in syntax, but verify runtime/compiler behavior in your exact toolchain version before relying on them for critical flows.
|
|
253
|
+
|
|
254
|
+
### 4.11 Testing-oriented language features
|
|
255
|
+
From tokenizer/parser support:
|
|
256
|
+
1. `#[...]` test attributes
|
|
257
|
+
2. `test` function parse path
|
|
258
|
+
3. Test attribute names/tokens include:
|
|
259
|
+
- `ignore`
|
|
260
|
+
- `should_fail`
|
|
261
|
+
- `timeout`
|
|
262
|
+
4. Assertion tokens:
|
|
263
|
+
- `assert_eq`
|
|
264
|
+
- `assert_true`
|
|
265
|
+
- `assert_false`
|
|
266
|
+
- `assert_fails`
|
|
267
|
+
- `assert_approx_eq`
|
|
268
|
+
|
|
269
|
+
Repository tests also use comment-based param conventions (`// @test-params ...`) in many scripts.
|
|
270
|
+
|
|
271
|
+
### 4.12 Blockchain-oriented built-ins seen in examples
|
|
272
|
+
Observed in scripts/templates:
|
|
273
|
+
1. `derive_pda(...)` (including bump-return and bump-specified variants)
|
|
274
|
+
2. `get_clock()`
|
|
275
|
+
3. `get_key(...)`
|
|
276
|
+
4. account key access: `authority.key`
|
|
277
|
+
|
|
278
|
+
Treat built-ins as compiler/runtime coupled features; verify signatures in current examples before use.
|
|
279
|
+
|
|
280
|
+
## 5) Feature Maturity Matrix (Agent Safety)
|
|
281
|
+
|
|
282
|
+
### 5.1 Generally production-oriented (widely used in templates)
|
|
283
|
+
1. Accounts, `@mut`, `@signer`, `@init`
|
|
284
|
+
2. `require`
|
|
285
|
+
3. Basic control flow (`if`, `while`)
|
|
286
|
+
4. Arithmetic/comparison/boolean expressions
|
|
287
|
+
5. `.five` compile/deploy/execute path
|
|
288
|
+
6. `interface` + explicit discriminator + explicit serializer CPI patterns
|
|
289
|
+
|
|
290
|
+
### 5.2 Available but validate per-version before critical use
|
|
291
|
+
1. Match expressions with `Option`/`Result`
|
|
292
|
+
2. Tuple destructuring and tuple returns
|
|
293
|
+
3. Advanced loop forms (`for`, `do-while`)
|
|
294
|
+
4. Event definition/emit workflows
|
|
295
|
+
5. Namespaced imports and scoped namespace symbols
|
|
296
|
+
6. Bitwise/shift operator-heavy code
|
|
297
|
+
|
|
298
|
+
### 5.3 Parser tokens exist; treat as reserved/experimental unless proven in your path
|
|
299
|
+
1. `query`, `when`, `realloc`, `pda` keywords
|
|
300
|
+
2. Some assertion/test keyword paths in non-test production code
|
|
301
|
+
3. Legacy checked-arithmetic operators (`+?`, `-?`, `*?`) where examples indicate migration
|
|
302
|
+
|
|
303
|
+
## 6) CLI Canonical Usage
|
|
304
|
+
|
|
305
|
+
### 6.1 Install and identity
|
|
306
|
+
```bash
|
|
307
|
+
npm install -g @5ive-tech/cli
|
|
308
|
+
5ive --version
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### 6.2 Initialize
|
|
312
|
+
```bash
|
|
313
|
+
5ive init my-program
|
|
314
|
+
cd my-program
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### 6.3 Compile
|
|
318
|
+
```bash
|
|
319
|
+
5ive compile src/main.v -o build/main.five
|
|
320
|
+
# or project-aware
|
|
321
|
+
5ive build
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### 6.4 Local execute
|
|
325
|
+
```bash
|
|
326
|
+
5ive execute build/main.five --local -f 0
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### 6.5 Configure devnet
|
|
330
|
+
```bash
|
|
331
|
+
5ive config init
|
|
332
|
+
5ive config set --target devnet
|
|
333
|
+
5ive config set --keypair ~/.config/solana/id.json
|
|
334
|
+
5ive config set --program-id <FIVE_VM_PROGRAM_ID> --target devnet
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### 6.6 Deploy + execute on-chain
|
|
338
|
+
```bash
|
|
339
|
+
5ive deploy build/main.five --target devnet
|
|
340
|
+
5ive execute build/main.five --target devnet -f 0
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### 6.7 Advanced deploy modes
|
|
344
|
+
```bash
|
|
345
|
+
5ive deploy build/main.five --target devnet --optimized --progress
|
|
346
|
+
5ive deploy build/main.five --target devnet --force-chunked --chunk-size 900
|
|
347
|
+
5ive deploy build/main.five --target devnet --dry-run --format json
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### 6.8 Test modes
|
|
351
|
+
```bash
|
|
352
|
+
5ive test --sdk-runner
|
|
353
|
+
5ive test tests/ --on-chain --target devnet
|
|
354
|
+
5ive test --sdk-runner --format json
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## 7) Program ID and Target Resolution
|
|
358
|
+
|
|
359
|
+
On-chain command precedence (`deploy`, `execute`, `namespace`):
|
|
360
|
+
1. `--program-id`
|
|
361
|
+
2. `five.toml [deploy].program_id`
|
|
362
|
+
3. `5ive config` value for current target
|
|
363
|
+
4. `FIVE_PROGRAM_ID`
|
|
364
|
+
|
|
365
|
+
Never run on-chain commands with ambiguous target/program-id context.
|
|
366
|
+
|
|
367
|
+
## 8) SDK Canonical Usage
|
|
368
|
+
|
|
369
|
+
### 8.1 Load artifact
|
|
370
|
+
```ts
|
|
371
|
+
import fs from "fs";
|
|
372
|
+
import { FiveSDK } from "@5ive-tech/sdk";
|
|
373
|
+
|
|
374
|
+
const fiveFileText = fs.readFileSync("build/main.five", "utf8");
|
|
375
|
+
const { abi } = await FiveSDK.loadFiveFile(fiveFileText);
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### 8.2 Program client
|
|
379
|
+
```ts
|
|
380
|
+
import { FiveProgram } from "@5ive-tech/sdk";
|
|
381
|
+
|
|
382
|
+
const program = FiveProgram.fromABI("<SCRIPT_ACCOUNT>", abi, {
|
|
383
|
+
fiveVMProgramId: "<FIVE_VM_PROGRAM_ID>",
|
|
384
|
+
vmStateAccount: "<VM_STATE_ACCOUNT>",
|
|
385
|
+
feeReceiverAccount: "<FEE_RECEIVER_ACCOUNT>",
|
|
386
|
+
});
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### 8.3 Execution verification pattern
|
|
390
|
+
1. Build instruction via `program.function(...).accounts(...).args(...).instruction()`
|
|
391
|
+
2. Submit with preflight enabled
|
|
392
|
+
3. Fetch confirmed tx
|
|
393
|
+
4. Assert `meta.err == null`
|
|
394
|
+
5. Record `meta.computeUnitsConsumed`
|
|
395
|
+
|
|
396
|
+
### 8.4 SDK program ID resolution precedence
|
|
397
|
+
1. Explicit `fiveVMProgramId`
|
|
398
|
+
2. `FiveSDK.setDefaultProgramId(...)`
|
|
399
|
+
3. `FIVE_PROGRAM_ID`
|
|
400
|
+
4. release-baked default (if present)
|
|
401
|
+
|
|
402
|
+
## 9) Frontend Integration Baseline
|
|
403
|
+
|
|
404
|
+
1. Build execute instructions via SDK (`FiveProgram`), not custom serializers.
|
|
405
|
+
2. Keep network selection explicit (`localnet`, `devnet`, `mainnet`).
|
|
406
|
+
3. Surface signatures, CU metrics, and rich error states.
|
|
407
|
+
4. Use LSP-backed editing where available to reduce DSL mistakes.
|
|
408
|
+
|
|
409
|
+
## 10) Pattern Mapping for Complex Contracts
|
|
410
|
+
|
|
411
|
+
1. Vault:
|
|
412
|
+
- authority-gated custody, withdraw invariants
|
|
413
|
+
2. Escrow:
|
|
414
|
+
- lifecycle transitions, dual-party authorization
|
|
415
|
+
3. Token/mint authority:
|
|
416
|
+
- supply accounting, freeze/delegate controls
|
|
417
|
+
4. AMM/orderbook:
|
|
418
|
+
- conservation math, deterministic settlement
|
|
419
|
+
5. Lending/perps/stablecoin:
|
|
420
|
+
- collateral/liquidation thresholds, risk checks
|
|
421
|
+
|
|
422
|
+
## 11) Mainnet Safety Policy
|
|
423
|
+
|
|
424
|
+
Required preflight gates:
|
|
425
|
+
1. Freeze artifact hash
|
|
426
|
+
2. Lock target/program-id/RPC/key source
|
|
427
|
+
3. Validate key custody
|
|
428
|
+
4. Run simulation/dry-run path
|
|
429
|
+
5. Predefine rollback/containment actions
|
|
430
|
+
|
|
431
|
+
Post-deploy:
|
|
432
|
+
1. smoke execute
|
|
433
|
+
2. confirmed tx validation
|
|
434
|
+
3. CU baseline capture
|
|
435
|
+
4. incident process if anomalies appear
|
|
436
|
+
|
|
437
|
+
## 12) Common Failure Signatures
|
|
438
|
+
|
|
439
|
+
1. `No program ID resolved for Five VM`:
|
|
440
|
+
- set explicit program-id source
|
|
441
|
+
2. `Function '<name>' not found in ABI`:
|
|
442
|
+
- use exact ABI name (including namespace)
|
|
443
|
+
3. `Missing required account/argument`:
|
|
444
|
+
- satisfy `.accounts(...)` and `.args(...)`
|
|
445
|
+
4. owner/program mismatch:
|
|
446
|
+
- verify target program ownership assumptions
|
|
447
|
+
5. CPI mismatch:
|
|
448
|
+
- verify explicit serializer/discriminator/account order
|
|
449
|
+
|
|
450
|
+
## 13) Definition of Done
|
|
451
|
+
|
|
452
|
+
Complete means:
|
|
453
|
+
1. `.five` artifact produced
|
|
454
|
+
2. tests passed with evidence
|
|
455
|
+
3. deployment confirmed (if in scope)
|
|
456
|
+
4. execution confirmed with `meta.err == null` (if in scope)
|
|
457
|
+
5. signatures + CU metrics recorded
|
|
458
|
+
6. integration snippet delivered (SDK/frontend when requested)
|
|
459
|
+
|
|
460
|
+
## 14) Agent Behavior Rules
|
|
461
|
+
|
|
462
|
+
1. Prefer deterministic, minimal command paths.
|
|
463
|
+
2. Verify tx outcomes; do not assume send success == execution success.
|
|
464
|
+
3. Avoid hidden defaults for deploy/CPI critical parameters.
|
|
465
|
+
4. Keep changes auditable and reproducible.
|
|
466
|
+
5. If uncertain, inspect compiler/CLI source directly.
|