@enactprotocol/cli 2.3.5 → 2.3.8

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.
Files changed (72) hide show
  1. package/dist/commands/index.d.ts +1 -0
  2. package/dist/commands/index.d.ts.map +1 -1
  3. package/dist/commands/index.js +2 -0
  4. package/dist/commands/index.js.map +1 -1
  5. package/dist/commands/init/index.d.ts.map +1 -1
  6. package/dist/commands/init/index.js +94 -46
  7. package/dist/commands/init/index.js.map +1 -1
  8. package/dist/commands/init/templates/agent-agents.d.ts +1 -1
  9. package/dist/commands/init/templates/agent-agents.d.ts.map +1 -1
  10. package/dist/commands/init/templates/agent-agents.js +1 -1
  11. package/dist/commands/init/templates/default-skill-package.d.ts +5 -0
  12. package/dist/commands/init/templates/default-skill-package.d.ts.map +1 -0
  13. package/dist/commands/init/templates/default-skill-package.js +13 -0
  14. package/dist/commands/init/templates/default-skill-package.js.map +1 -0
  15. package/dist/commands/init/templates/default-skill-script.d.ts +5 -0
  16. package/dist/commands/init/templates/default-skill-script.d.ts.map +1 -0
  17. package/dist/commands/init/templates/default-skill-script.js +11 -0
  18. package/dist/commands/init/templates/default-skill-script.js.map +1 -0
  19. package/dist/commands/init/templates/index.d.ts +2 -0
  20. package/dist/commands/init/templates/index.d.ts.map +1 -1
  21. package/dist/commands/init/templates/index.js +2 -0
  22. package/dist/commands/init/templates/index.js.map +1 -1
  23. package/dist/commands/install/index.d.ts +2 -2
  24. package/dist/commands/install/index.js +18 -18
  25. package/dist/commands/install/index.js.map +1 -1
  26. package/dist/commands/list/index.d.ts +2 -2
  27. package/dist/commands/list/index.js +3 -3
  28. package/dist/commands/list/index.js.map +1 -1
  29. package/dist/commands/org/index.d.ts +16 -0
  30. package/dist/commands/org/index.d.ts.map +1 -0
  31. package/dist/commands/org/index.js +203 -0
  32. package/dist/commands/org/index.js.map +1 -0
  33. package/dist/commands/publish/index.d.ts.map +1 -1
  34. package/dist/commands/publish/index.js +5 -1
  35. package/dist/commands/publish/index.js.map +1 -1
  36. package/dist/commands/search/index.js +2 -2
  37. package/dist/commands/search/index.js.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/utils/errors.js +2 -2
  43. package/dist/utils/errors.js.map +1 -1
  44. package/package.json +6 -6
  45. package/src/commands/env/README.md +1 -1
  46. package/src/commands/index.ts +3 -0
  47. package/src/commands/init/index.ts +103 -46
  48. package/src/commands/init/templates/agent-agents.ts +1 -1
  49. package/src/commands/init/templates/default-skill-package.ts +12 -0
  50. package/src/commands/init/templates/default-skill-script.ts +10 -0
  51. package/src/commands/init/templates/index.ts +2 -0
  52. package/src/commands/install/README.md +2 -2
  53. package/src/commands/install/index.ts +18 -18
  54. package/src/commands/list/index.ts +3 -3
  55. package/src/commands/org/index.ts +263 -0
  56. package/src/commands/publish/index.ts +4 -1
  57. package/src/commands/run/README.md +1 -1
  58. package/src/commands/search/index.ts +2 -2
  59. package/src/index.ts +5 -1
  60. package/src/utils/errors.ts +2 -2
  61. package/tests/commands/cache.test.ts +2 -2
  62. package/tests/commands/init.test.ts +66 -55
  63. package/tests/commands/install-integration.test.ts +11 -11
  64. package/tests/commands/publish.test.ts +5 -3
  65. package/tests/commands/sign.test.ts +1 -1
  66. package/tests/e2e.test.ts +13 -11
  67. package/tests/utils/ignore.test.ts +2 -1
  68. package/tsconfig.tsbuildinfo +1 -1
  69. /package/tests/fixtures/calculator/{skill.yaml → skill.package.yaml} +0 -0
  70. /package/tests/fixtures/env-tool/{skill.yaml → skill.package.yaml} +0 -0
  71. /package/tests/fixtures/greeter/{skill.yaml → skill.package.yaml} +0 -0
  72. /package/tests/fixtures/invalid-tool/{skill.yaml → skill.package.yaml} +0 -0
@@ -27,4 +27,5 @@ export { configureVisibilityCommand } from "./visibility";
27
27
  export { configureMcpCommand } from "./mcp";
28
28
  export { configureValidateCommand } from "./validate";
29
29
  export { configureServeCommand } from "./serve";
30
+ export { configureOrgCommand } from "./org";
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC"}
@@ -34,4 +34,6 @@ export { configureMcpCommand } from "./mcp";
34
34
  export { configureValidateCommand } from "./validate";
35
35
  // Self-hosted registry
36
36
  export { configureServeCommand } from "./serve";
37
+ // Organizations
38
+ export { configureOrgCommand } from "./org";
37
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,8BAA8B;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,wCAAwC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,4BAA4B;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,gDAAgD;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,2BAA2B;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAE5C,qBAAqB;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,uBAAuB;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,8BAA8B;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,wCAAwC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,4BAA4B;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,gDAAgD;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,2BAA2B;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAE5C,qBAAqB;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,uBAAuB;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4SzC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiC3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqWzC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiC3D"}
@@ -9,7 +9,7 @@ import { getSecret } from "@enactprotocol/secrets";
9
9
  import { checkForUpdates } from "@enactprotocol/shared";
10
10
  import { version } from "../../index";
11
11
  import { error, formatError, info, success, warning } from "../../utils";
12
- import { agentAgentsTemplate, claudeTemplate, toolAgentsTemplate, toolSkillTemplate, } from "./templates";
12
+ import { agentAgentsTemplate, claudeTemplate, defaultSkillPackageTemplate, defaultSkillScriptTemplate, toolAgentsTemplate, toolSkillTemplate, } from "./templates";
13
13
  /** Namespace for stored auth tokens */
14
14
  const AUTH_NAMESPACE = "enact:auth";
15
15
  const ACCESS_TOKEN_KEY = "access_token";
@@ -26,6 +26,8 @@ const TEMPLATES = {
26
26
  "tool-agents.md": toolAgentsTemplate,
27
27
  "agent-agents.md": agentAgentsTemplate,
28
28
  "claude.md": claudeTemplate,
29
+ "skill-package.yaml": defaultSkillPackageTemplate,
30
+ "skill-script.py": defaultSkillScriptTemplate,
29
31
  };
30
32
  /**
31
33
  * Load a template and replace placeholders
@@ -42,23 +44,23 @@ function loadTemplate(templateName, replacements = {}) {
42
44
  return content;
43
45
  }
44
46
  /**
45
- * Create .enact/tools.json for project tool tracking
47
+ * Create agents/skills.json for project skill tracking
46
48
  */
47
- function createEnactProjectDir(targetDir, force) {
48
- const enactDir = join(targetDir, ".enact");
49
- const toolsJsonPath = join(enactDir, "tools.json");
50
- // Check if tools.json already exists
51
- if (existsSync(toolsJsonPath) && !force) {
52
- info(".enact/tools.json already exists, skipping");
49
+ function createAgentsSkillsJson(targetDir, force) {
50
+ const agentsDir = join(targetDir, "agents");
51
+ const skillsJsonPath = join(agentsDir, "skills.json");
52
+ // Check if skills.json already exists
53
+ if (existsSync(skillsJsonPath) && !force) {
54
+ info("agents/skills.json already exists, skipping");
53
55
  return false;
54
56
  }
55
- // Create .enact directory if it doesn't exist
56
- if (!existsSync(enactDir)) {
57
- mkdirSync(enactDir, { recursive: true });
57
+ // Create agents directory if it doesn't exist
58
+ if (!existsSync(agentsDir)) {
59
+ mkdirSync(agentsDir, { recursive: true });
58
60
  }
59
- // Write empty tools.json
60
- const toolsJson = { tools: {} };
61
- writeFileSync(toolsJsonPath, `${JSON.stringify(toolsJson, null, 2)}\n`, "utf-8");
61
+ // Write empty skills.json
62
+ const skillsJson = { tools: {} };
63
+ writeFileSync(skillsJsonPath, `${JSON.stringify(skillsJson, null, 2)}\n`, "utf-8");
62
64
  return true;
63
65
  }
64
66
  /**
@@ -124,10 +126,10 @@ async function getCurrentUsername() {
124
126
  */
125
127
  async function initHandler(options, ctx) {
126
128
  const targetDir = ctx.cwd;
127
- // Determine mode: --tool, --claude, or --agent (default)
129
+ // Determine mode: --tool, --claude, --agent, or default (skill)
128
130
  const isToolMode = options.tool;
129
131
  const isClaudeMode = options.claude;
130
- // Default to agent mode if no flag specified
132
+ const isAgentMode = options.agent;
131
133
  // Handle --tool mode: create SKILL.md + AGENTS.md for tool development
132
134
  if (isToolMode) {
133
135
  const manifestPath = join(targetDir, "SKILL.md");
@@ -205,49 +207,95 @@ async function initHandler(options, ctx) {
205
207
  writeFileSync(claudePath, templateContent, "utf-8");
206
208
  success(`Created CLAUDE.md: ${claudePath}`);
207
209
  }
208
- // Create .enact/tools.json
209
- if (createEnactProjectDir(targetDir, options.force ?? false)) {
210
- success("Created .enact/tools.json");
210
+ // Create agents/skills.json
211
+ if (createAgentsSkillsJson(targetDir, options.force ?? false)) {
212
+ success("Created agents/skills.json");
211
213
  }
212
214
  info("");
213
215
  info("This file helps Claude understand how to use Enact tools in your project.");
214
216
  return;
215
217
  }
216
- // Handle default (agent) mode: create or append to AGENTS.md for projects using Enact tools
217
- const agentsPath = join(targetDir, "AGENTS.md");
218
- const agentsTemplateContent = loadTemplate("agent-agents.md");
219
- if (existsSync(agentsPath)) {
220
- const existingContent = readFileSync(agentsPath, "utf-8");
221
- // Check if Enact content is already present
222
- if (existingContent.includes("This project uses Enact tools")) {
223
- if (options.force) {
224
- writeFileSync(agentsPath, agentsTemplateContent, "utf-8");
225
- success(`Overwrote AGENTS.md: ${agentsPath}`);
218
+ // Handle --agent mode: create or append to AGENTS.md for projects using Enact tools
219
+ if (isAgentMode) {
220
+ const agentsPath = join(targetDir, "AGENTS.md");
221
+ const agentsTemplateContent = loadTemplate("agent-agents.md");
222
+ if (existsSync(agentsPath)) {
223
+ const existingContent = readFileSync(agentsPath, "utf-8");
224
+ if (existingContent.includes("This project uses Enact tools")) {
225
+ if (options.force) {
226
+ writeFileSync(agentsPath, agentsTemplateContent, "utf-8");
227
+ success(`Overwrote AGENTS.md: ${agentsPath}`);
228
+ }
229
+ else {
230
+ info("AGENTS.md already contains Enact configuration, skipping");
231
+ info("Use --force to overwrite");
232
+ }
226
233
  }
227
234
  else {
228
- info("AGENTS.md already contains Enact configuration, skipping");
229
- info("Use --force to overwrite");
235
+ const newContent = `${existingContent.trimEnd()}\n\n${agentsTemplateContent}`;
236
+ writeFileSync(agentsPath, newContent, "utf-8");
237
+ success(`Appended Enact configuration to existing AGENTS.md: ${agentsPath}`);
230
238
  }
231
239
  }
232
240
  else {
233
- // Append Enact content to existing file
234
- const newContent = `${existingContent.trimEnd()}\n\n${agentsTemplateContent}`;
235
- writeFileSync(agentsPath, newContent, "utf-8");
236
- success(`Appended Enact configuration to existing AGENTS.md: ${agentsPath}`);
241
+ writeFileSync(agentsPath, agentsTemplateContent, "utf-8");
242
+ success(`Created AGENTS.md: ${agentsPath}`);
243
+ }
244
+ if (createAgentsSkillsJson(targetDir, options.force ?? false)) {
245
+ success("Created agents/skills.json");
246
+ }
247
+ info("");
248
+ info("This file helps AI agents understand how to use Enact tools in your project.");
249
+ info("Run 'enact search <query>' to find tools, 'enact learn <tool>' to view docs,");
250
+ info("and 'enact install <tool>' to add them.");
251
+ return;
252
+ }
253
+ // Handle default mode: create skill.package.yaml + hello.py
254
+ const packagePath = join(targetDir, "skill.package.yaml");
255
+ const scriptPath = join(targetDir, "hello.py");
256
+ if (existsSync(packagePath) && !options.force) {
257
+ warning(`skill.package.yaml already exists at: ${packagePath}`);
258
+ info("Use --force to overwrite");
259
+ return;
260
+ }
261
+ // Get username for the tool name
262
+ let toolName = options.name;
263
+ if (!toolName) {
264
+ const username = await getCurrentUsername();
265
+ if (username) {
266
+ toolName = `${username}/my-tool`;
267
+ info(`Using logged-in username: ${username}`);
268
+ }
269
+ else {
270
+ toolName = "my-tool";
271
+ info("Not logged in - using generic tool name");
272
+ info("Run 'enact auth login' to use your username in tool names");
237
273
  }
238
274
  }
239
- else {
240
- writeFileSync(agentsPath, agentsTemplateContent, "utf-8");
241
- success(`Created AGENTS.md: ${agentsPath}`);
275
+ // Load templates with placeholder replacement
276
+ const replacements = { TOOL_NAME: toolName };
277
+ const packageContent = loadTemplate("skill-package.yaml", replacements);
278
+ const scriptContent = loadTemplate("skill-script.py");
279
+ // Ensure directory exists
280
+ if (!existsSync(targetDir)) {
281
+ mkdirSync(targetDir, { recursive: true });
242
282
  }
243
- // Create .enact/tools.json
244
- if (createEnactProjectDir(targetDir, options.force ?? false)) {
245
- success("Created .enact/tools.json");
283
+ // Write skill.package.yaml
284
+ writeFileSync(packagePath, packageContent, "utf-8");
285
+ success(`Created skill.package.yaml: ${packagePath}`);
286
+ // Write hello.py (only if it doesn't exist or --force is used)
287
+ if (!existsSync(scriptPath) || options.force) {
288
+ writeFileSync(scriptPath, scriptContent, "utf-8");
289
+ success(`Created hello.py: ${scriptPath}`);
290
+ }
291
+ else {
292
+ info("hello.py already exists, skipping (use --force to overwrite)");
246
293
  }
247
294
  info("");
248
- info("This file helps AI agents understand how to use Enact tools in your project.");
249
- info("Run 'enact search <query>' to find tools, 'enact learn <tool>' to view docs,");
250
- info("and 'enact install <tool>' to add them.");
295
+ info("Next steps:");
296
+ info(" 1. Edit skill.package.yaml to customize your tool");
297
+ info(" 2. Run 'enact run ./' to test your tool");
298
+ info(" 3. Run 'enact publish' to share your tool");
251
299
  }
252
300
  /**
253
301
  * Configure the init command
@@ -259,8 +307,8 @@ export function configureInitCommand(program) {
259
307
  .option("-n, --name <name>", "Tool name (default: username/my-tool)")
260
308
  .option("-f, --force", "Overwrite existing files")
261
309
  .option("--tool", "Create a new Enact tool (SKILL.md + AGENTS.md)")
262
- .option("--agent", "Create AGENTS.md + .enact/tools.json (default)")
263
- .option("--claude", "Create CLAUDE.md + .enact/tools.json")
310
+ .option("--agent", "Create AGENTS.md + agents/skills.json")
311
+ .option("--claude", "Create CLAUDE.md + agents/skills.json")
264
312
  .option("-v, --verbose", "Show detailed output")
265
313
  .action(async (options) => {
266
314
  const ctx = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * AGENTS.md template for projects that use Enact tools
3
3
  */
4
- export declare const agentAgentsTemplate = "# AGENTS.md\n\nThis project uses Enact tools \u2014 containerized, cryptographically-signed executables.\n\n## Running Tools\n```bash\nenact run <tool-name> --args '{\"key\": \"value\"}' # Run installed tool\nenact run ./path/to/tool --args '{}' # Run local tool\n```\n\n## Finding & Installing Tools\n```bash\nenact search \"pdf extraction\" # Search registry\nenact info author/category/tool # View tool info\nenact learn author/category/tool # View tool documentation\nenact install author/category/tool # Add to project (.enact/tools.json)\nenact install author/category/tool --global # Add globally\nenact list # List project tools\n```\n\n## Tool Output\nTools output JSON to stdout. Parse with jq or your language's JSON parser:\n```bash\nenact run tool --args '{}' | jq '.result' # Progress output is quiet by default\nenact run tool --args '{}' | jq -r '.field' # Extract a specific field as raw text\nenact run tool --args '{}' --verbose | jq '.result' # Use --verbose to see progress output\n```\n\n## Creating Local Tools\n\n**IMPORTANT: Always use `enact init --tool` to create new tools!**\n\nThis scaffolds a proper tool structure with SKILL.md and AGENTS.md templates:\n```bash\nenact init --tool # If logged in: uses username/my-tool automatically\nenact init --tool --name my-tool # Simple name\nenact init --tool --name username/my-tool # Custom hierarchical name\n```\n\n**Note:** When logged in, `enact init --tool` automatically uses your username as the namespace (e.g., `enact/my-tool`). When not logged in, it defaults to `my-tool`.\n\nThen edit the generated `SKILL.md` file to define your tool's behavior.\n\n### Tool Structure (for reference)\nThe `enact init --tool` command creates a `SKILL.md` file with this structure:\n```yaml\n---\nname: my-tool # Simple name works\n# OR\nname: namespace/tool-name # Hierarchical names recommended for organization (e.g., fun/my-tool)\ndescription: What it does\ncommand: echo \"Hello ${name}\" # Shell command to execute\ninputSchema:\n type: object\n properties:\n name: { type: string }\n---\n# My Tool\nDocumentation here.\n```\n\nRun local tools with: `enact run ./tools/<name> --args '{\"key\": \"value\"}'`\n\n## Environment & Secrets\n```bash\nenact env set API_KEY --secret --namespace author/tool # Set secret\nenact env list # List env vars\n```\n\n## Getting Help\n```bash\nenact help # Show all commands\nenact <command> --help # Help for specific command\n```\n";
4
+ export declare const agentAgentsTemplate = "# AGENTS.md\n\nThis project uses Enact tools \u2014 containerized, cryptographically-signed executables.\n\n## Running Tools\n```bash\nenact run <tool-name> --args '{\"key\": \"value\"}' # Run installed tool\nenact run ./path/to/tool --args '{}' # Run local tool\n```\n\n## Finding & Installing Tools\n```bash\nenact search \"pdf extraction\" # Search registry\nenact info author/category/tool # View tool info\nenact learn author/category/tool # View tool documentation\nenact install author/category/tool # Add to project (agents/skills.json)\nenact install author/category/tool --global # Add globally\nenact list # List project tools\n```\n\n## Tool Output\nTools output JSON to stdout. Parse with jq or your language's JSON parser:\n```bash\nenact run tool --args '{}' | jq '.result' # Progress output is quiet by default\nenact run tool --args '{}' | jq -r '.field' # Extract a specific field as raw text\nenact run tool --args '{}' --verbose | jq '.result' # Use --verbose to see progress output\n```\n\n## Creating Local Tools\n\n**IMPORTANT: Always use `enact init --tool` to create new tools!**\n\nThis scaffolds a proper tool structure with SKILL.md and AGENTS.md templates:\n```bash\nenact init --tool # If logged in: uses username/my-tool automatically\nenact init --tool --name my-tool # Simple name\nenact init --tool --name username/my-tool # Custom hierarchical name\n```\n\n**Note:** When logged in, `enact init --tool` automatically uses your username as the namespace (e.g., `enact/my-tool`). When not logged in, it defaults to `my-tool`.\n\nThen edit the generated `SKILL.md` file to define your tool's behavior.\n\n### Tool Structure (for reference)\nThe `enact init --tool` command creates a `SKILL.md` file with this structure:\n```yaml\n---\nname: my-tool # Simple name works\n# OR\nname: namespace/tool-name # Hierarchical names recommended for organization (e.g., fun/my-tool)\ndescription: What it does\ncommand: echo \"Hello ${name}\" # Shell command to execute\ninputSchema:\n type: object\n properties:\n name: { type: string }\n---\n# My Tool\nDocumentation here.\n```\n\nRun local tools with: `enact run ./tools/<name> --args '{\"key\": \"value\"}'`\n\n## Environment & Secrets\n```bash\nenact env set API_KEY --secret --namespace author/tool # Set secret\nenact env list # List env vars\n```\n\n## Getting Help\n```bash\nenact help # Show all commands\nenact <command> --help # Help for specific command\n```\n";
5
5
  //# sourceMappingURL=agent-agents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-agents.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/templates/agent-agents.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,mBAAmB,01FA0E/B,CAAC"}
1
+ {"version":3,"file":"agent-agents.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/templates/agent-agents.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,mBAAmB,21FA0E/B,CAAC"}
@@ -16,7 +16,7 @@ enact run ./path/to/tool --args '{}' # Run local tool
16
16
  enact search "pdf extraction" # Search registry
17
17
  enact info author/category/tool # View tool info
18
18
  enact learn author/category/tool # View tool documentation
19
- enact install author/category/tool # Add to project (.enact/tools.json)
19
+ enact install author/category/tool # Add to project (agents/skills.json)
20
20
  enact install author/category/tool --global # Add globally
21
21
  enact list # List project tools
22
22
  \`\`\`
@@ -0,0 +1,5 @@
1
+ /**
2
+ * skill.package.yaml template for default init
3
+ */
4
+ export declare const defaultSkillPackageTemplate = "enact: \"2.0.0\"\nname: {{TOOL_NAME}}\nversion: \"0.1.0\"\ndescription: A simple tool that echoes a greeting\nfrom: python:3.12-slim\n\nscripts:\n greet: \"python /workspace/hello.py {{name}}\"\n";
5
+ //# sourceMappingURL=default-skill-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-skill-package.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/templates/default-skill-package.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,2BAA2B,yMAQvC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * skill.package.yaml template for default init
3
+ */
4
+ export const defaultSkillPackageTemplate = `enact: "2.0.0"
5
+ name: {{TOOL_NAME}}
6
+ version: "0.1.0"
7
+ description: A simple tool that echoes a greeting
8
+ from: python:3.12-slim
9
+
10
+ scripts:
11
+ greet: "python /workspace/hello.py {{name}}"
12
+ `;
13
+ //# sourceMappingURL=default-skill-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-skill-package.js","sourceRoot":"","sources":["../../../../src/commands/init/templates/default-skill-package.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;CAQ1C,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * hello.py script template for default init
3
+ */
4
+ export declare const defaultSkillScriptTemplate = "import sys\nimport json\n\nname = sys.argv[1] if len(sys.argv) > 1 else \"World\"\n\nprint(json.dumps({\"message\": f\"Hello, {name}!\"}))\n";
5
+ //# sourceMappingURL=default-skill-script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-skill-script.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/templates/default-skill-script.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,0BAA0B,iJAMtC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * hello.py script template for default init
3
+ */
4
+ export const defaultSkillScriptTemplate = `import sys
5
+ import json
6
+
7
+ name = sys.argv[1] if len(sys.argv) > 1 else "World"
8
+
9
+ print(json.dumps({"message": f"Hello, {name}!"}))
10
+ `;
11
+ //# sourceMappingURL=default-skill-script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-skill-script.js","sourceRoot":"","sources":["../../../../src/commands/init/templates/default-skill-script.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;CAMzC,CAAC"}
@@ -5,4 +5,6 @@ export { toolSkillTemplate } from "./tool-skill";
5
5
  export { toolAgentsTemplate } from "./tool-agents";
6
6
  export { agentAgentsTemplate } from "./agent-agents";
7
7
  export { claudeTemplate } from "./claude";
8
+ export { defaultSkillPackageTemplate } from "./default-skill-package";
9
+ export { defaultSkillScriptTemplate } from "./default-skill-script";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC"}
@@ -5,4 +5,6 @@ export { toolSkillTemplate } from "./tool-skill";
5
5
  export { toolAgentsTemplate } from "./tool-agents";
6
6
  export { agentAgentsTemplate } from "./agent-agents";
7
7
  export { claudeTemplate } from "./claude";
8
+ export { defaultSkillPackageTemplate } from "./default-skill-package";
9
+ export { defaultSkillScriptTemplate } from "./default-skill-script";
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/init/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/init/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC"}
@@ -2,8 +2,8 @@
2
2
  * enact install command
3
3
  *
4
4
  * Install a tool to the project or globally.
5
- * All tools are extracted to ~/.agent/skills/{tool}/
6
- * - Project install: Adds entry to .enact/tools.json
5
+ * All tools are extracted to ~/.agents/skills/{tool}/
6
+ * - Project install: Adds entry to agents/skills.json
7
7
  * - Global install: Adds entry to ~/.enact/tools.json
8
8
  *
9
9
  * Supports local paths and registry tools with verification.
@@ -2,8 +2,8 @@
2
2
  * enact install command
3
3
  *
4
4
  * Install a tool to the project or globally.
5
- * All tools are extracted to ~/.agent/skills/{tool}/
6
- * - Project install: Adds entry to .enact/tools.json
5
+ * All tools are extracted to ~/.agents/skills/{tool}/
6
+ * - Project install: Adds entry to agents/skills.json
7
7
  * - Global install: Adds entry to ~/.enact/tools.json
8
8
  *
9
9
  * Supports local paths and registry tools with verification.
@@ -11,7 +11,7 @@
11
11
  import { cpSync, existsSync, mkdirSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
12
12
  import { dirname, join, resolve } from "node:path";
13
13
  import { createApiClient, downloadBundle, getAttestationList, getToolInfo, getToolVersion, verifyAllAttestations, } from "@enactprotocol/api";
14
- import { addAlias, addMcpTool, addToolToRegistry, getInstalledVersion, getMinimumAttestations, getProjectEnactDir, getToolCachePath, getTrustPolicy, getTrustedAuditors, loadConfig, loadManifestFromDir, pathExists, } from "@enactprotocol/shared";
14
+ import { addAlias, addMcpTool, addToolToRegistry, getInstalledVersion, getMinimumAttestations, getProjectAgentsDir, getToolCachePath, getTrustPolicy, getTrustedAuditors, loadConfig, loadManifestFromDir, pathExists, } from "@enactprotocol/shared";
15
15
  import { EXIT_FAILURE, EXIT_TRUST_ERROR, ManifestError, RegistryError, TrustError, colors, confirm, dim, error, formatError, handleError, info, json, keyValue, newline, success, suggest, symbols, withSpinner, } from "../../utils";
16
16
  /**
17
17
  * Parse tool@version syntax
@@ -385,7 +385,7 @@ async function installFromRegistry(toolName, version, options, ctx) {
385
385
  keyValue("Tool", toolName);
386
386
  keyValue("Version", targetVersion ?? "unknown");
387
387
  keyValue("Location", cachePath);
388
- keyValue("Scope", isGlobal ? "global (~/.enact/tools.json)" : "project (.enact/tools.json)");
388
+ keyValue("Scope", isGlobal ? "global (~/.enact/tools.json)" : "project (agents/skills.json)");
389
389
  keyValue("Size", formatBytes(bundleResult.size));
390
390
  keyValue("Hash", `${bundleResult.hash.substring(0, 20)}...`);
391
391
  if (options.alias) {
@@ -398,8 +398,8 @@ async function installFromRegistry(toolName, version, options, ctx) {
398
398
  * Install from a local path
399
399
  *
400
400
  * Both global and project installs:
401
- * 1. Copy tool to ~/.agent/skills/{tool}/
402
- * 2. Update tools.json (global: ~/.enact/tools.json, project: .enact/tools.json)
401
+ * 1. Copy tool to ~/.agents/skills/{tool}/
402
+ * 2. Update registry (global: ~/.enact/tools.json, project: agents/skills.json)
403
403
  */
404
404
  async function installFromPath(sourcePath, options, ctx) {
405
405
  const resolvedPath = resolve(ctx.cwd, sourcePath);
@@ -475,7 +475,7 @@ async function installFromPath(sourcePath, options, ctx) {
475
475
  keyValue("Tool", manifest.name);
476
476
  keyValue("Version", manifest.version ?? "unversioned");
477
477
  keyValue("Location", cachePath);
478
- keyValue("Scope", isGlobal ? "global (~/.enact/tools.json)" : "project (.enact/tools.json)");
478
+ keyValue("Scope", isGlobal ? "global (~/.enact/tools.json)" : "project (agents/skills.json)");
479
479
  if (options.alias) {
480
480
  keyValue("Alias", options.alias);
481
481
  }
@@ -495,32 +495,32 @@ async function installFromName(toolSpec, options, ctx) {
495
495
  return installFromRegistry(toolName, version, options, ctx);
496
496
  }
497
497
  /**
498
- * Install all tools from project .enact/tools.json
498
+ * Install all tools from project agents/skills.json
499
499
  */
500
500
  async function installProjectTools(options, ctx) {
501
- const projectDir = getProjectEnactDir(ctx.cwd);
502
- if (!projectDir) {
503
- info("No .enact/ directory found. Nothing to install.");
501
+ const agentsDir = getProjectAgentsDir(ctx.cwd);
502
+ if (!agentsDir) {
503
+ info("No agents/ directory found. Nothing to install.");
504
504
  suggest("Run 'enact install <tool>' to install a specific tool.");
505
505
  return;
506
506
  }
507
- const toolsJsonPath = join(projectDir, "tools.json");
508
- if (!existsSync(toolsJsonPath)) {
509
- info("No .enact/tools.json found. Nothing to install.");
507
+ const skillsJsonPath = join(agentsDir, "skills.json");
508
+ if (!existsSync(skillsJsonPath)) {
509
+ info("No agents/skills.json found. Nothing to install.");
510
510
  suggest("Run 'enact install <tool>' to install a specific tool.");
511
511
  return;
512
512
  }
513
- // Parse tools.json
513
+ // Parse skills.json
514
514
  let toolsConfig;
515
515
  try {
516
- const content = await Bun.file(toolsJsonPath).text();
516
+ const content = await Bun.file(skillsJsonPath).text();
517
517
  toolsConfig = JSON.parse(content);
518
518
  }
519
519
  catch (err) {
520
- throw new ManifestError(`Failed to parse .enact/tools.json: ${formatError(err)}`);
520
+ throw new ManifestError(`Failed to parse agents/skills.json: ${formatError(err)}`);
521
521
  }
522
522
  if (!toolsConfig.tools || Object.keys(toolsConfig.tools).length === 0) {
523
- info("No tools specified in .enact/tools.json");
523
+ info("No tools specified in agents/skills.json");
524
524
  return;
525
525
  }
526
526
  // Install each tool