toolcraft 0.0.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.
Files changed (135) hide show
  1. package/README.md +91 -0
  2. package/dist/cli.compile-check.d.ts +1 -0
  3. package/dist/cli.compile-check.js +26 -0
  4. package/dist/cli.d.ts +12 -0
  5. package/dist/cli.js +1312 -0
  6. package/dist/index.compile-check.d.ts +1 -0
  7. package/dist/index.compile-check.js +50 -0
  8. package/dist/index.d.ts +164 -0
  9. package/dist/index.js +366 -0
  10. package/dist/mcp.compile-check.d.ts +1 -0
  11. package/dist/mcp.compile-check.js +26 -0
  12. package/dist/mcp.d.ts +31 -0
  13. package/dist/mcp.js +354 -0
  14. package/dist/number-schema.d.ts +3 -0
  15. package/dist/number-schema.js +8 -0
  16. package/dist/renderer.d.ts +5 -0
  17. package/dist/renderer.js +148 -0
  18. package/dist/schema-scope.d.ts +4 -0
  19. package/dist/schema-scope.js +34 -0
  20. package/dist/sdk.compile-check.d.ts +1 -0
  21. package/dist/sdk.compile-check.js +79 -0
  22. package/dist/sdk.d.ts +63 -0
  23. package/dist/sdk.js +218 -0
  24. package/node_modules/@poe-code/design-system/dist/acp/components.d.ts +11 -0
  25. package/node_modules/@poe-code/design-system/dist/acp/components.js +121 -0
  26. package/node_modules/@poe-code/design-system/dist/acp/index.d.ts +3 -0
  27. package/node_modules/@poe-code/design-system/dist/acp/index.js +2 -0
  28. package/node_modules/@poe-code/design-system/dist/acp/writer.d.ts +13 -0
  29. package/node_modules/@poe-code/design-system/dist/acp/writer.js +21 -0
  30. package/node_modules/@poe-code/design-system/dist/components/command-errors.d.ts +16 -0
  31. package/node_modules/@poe-code/design-system/dist/components/command-errors.js +22 -0
  32. package/node_modules/@poe-code/design-system/dist/components/help-formatter.d.ts +20 -0
  33. package/node_modules/@poe-code/design-system/dist/components/help-formatter.js +27 -0
  34. package/node_modules/@poe-code/design-system/dist/components/index.d.ts +10 -0
  35. package/node_modules/@poe-code/design-system/dist/components/index.js +7 -0
  36. package/node_modules/@poe-code/design-system/dist/components/logger.d.ts +11 -0
  37. package/node_modules/@poe-code/design-system/dist/components/logger.js +60 -0
  38. package/node_modules/@poe-code/design-system/dist/components/symbols.d.ts +12 -0
  39. package/node_modules/@poe-code/design-system/dist/components/symbols.js +71 -0
  40. package/node_modules/@poe-code/design-system/dist/components/table.d.ts +13 -0
  41. package/node_modules/@poe-code/design-system/dist/components/table.js +74 -0
  42. package/node_modules/@poe-code/design-system/dist/components/text.d.ts +14 -0
  43. package/node_modules/@poe-code/design-system/dist/components/text.js +104 -0
  44. package/node_modules/@poe-code/design-system/dist/dashboard/ansi.d.ts +18 -0
  45. package/node_modules/@poe-code/design-system/dist/dashboard/ansi.js +298 -0
  46. package/node_modules/@poe-code/design-system/dist/dashboard/buffer.d.ts +25 -0
  47. package/node_modules/@poe-code/design-system/dist/dashboard/buffer.js +189 -0
  48. package/node_modules/@poe-code/design-system/dist/dashboard/components/border.d.ts +9 -0
  49. package/node_modules/@poe-code/design-system/dist/dashboard/components/border.js +123 -0
  50. package/node_modules/@poe-code/design-system/dist/dashboard/components/footer.d.ts +8 -0
  51. package/node_modules/@poe-code/design-system/dist/dashboard/components/footer.js +57 -0
  52. package/node_modules/@poe-code/design-system/dist/dashboard/components/output-pane.d.ts +12 -0
  53. package/node_modules/@poe-code/design-system/dist/dashboard/components/output-pane.js +254 -0
  54. package/node_modules/@poe-code/design-system/dist/dashboard/components/stats-pane.d.ts +7 -0
  55. package/node_modules/@poe-code/design-system/dist/dashboard/components/stats-pane.js +121 -0
  56. package/node_modules/@poe-code/design-system/dist/dashboard/dashboard.d.ts +20 -0
  57. package/node_modules/@poe-code/design-system/dist/dashboard/dashboard.js +167 -0
  58. package/node_modules/@poe-code/design-system/dist/dashboard/demo.d.ts +13 -0
  59. package/node_modules/@poe-code/design-system/dist/dashboard/demo.js +145 -0
  60. package/node_modules/@poe-code/design-system/dist/dashboard/index.d.ts +8 -0
  61. package/node_modules/@poe-code/design-system/dist/dashboard/index.js +4 -0
  62. package/node_modules/@poe-code/design-system/dist/dashboard/keymap.d.ts +3 -0
  63. package/node_modules/@poe-code/design-system/dist/dashboard/keymap.js +99 -0
  64. package/node_modules/@poe-code/design-system/dist/dashboard/layout.d.ts +25 -0
  65. package/node_modules/@poe-code/design-system/dist/dashboard/layout.js +79 -0
  66. package/node_modules/@poe-code/design-system/dist/dashboard/should-use-dashboard.d.ts +10 -0
  67. package/node_modules/@poe-code/design-system/dist/dashboard/should-use-dashboard.js +7 -0
  68. package/node_modules/@poe-code/design-system/dist/dashboard/snapshot.d.ts +10 -0
  69. package/node_modules/@poe-code/design-system/dist/dashboard/snapshot.js +68 -0
  70. package/node_modules/@poe-code/design-system/dist/dashboard/store.d.ts +8 -0
  71. package/node_modules/@poe-code/design-system/dist/dashboard/store.js +51 -0
  72. package/node_modules/@poe-code/design-system/dist/dashboard/terminal.d.ts +37 -0
  73. package/node_modules/@poe-code/design-system/dist/dashboard/terminal.js +233 -0
  74. package/node_modules/@poe-code/design-system/dist/dashboard/types.d.ts +36 -0
  75. package/node_modules/@poe-code/design-system/dist/dashboard/types.js +1 -0
  76. package/node_modules/@poe-code/design-system/dist/index.d.ts +33 -0
  77. package/node_modules/@poe-code/design-system/dist/index.js +31 -0
  78. package/node_modules/@poe-code/design-system/dist/internal/output-format.d.ts +6 -0
  79. package/node_modules/@poe-code/design-system/dist/internal/output-format.js +22 -0
  80. package/node_modules/@poe-code/design-system/dist/internal/strip-ansi.d.ts +1 -0
  81. package/node_modules/@poe-code/design-system/dist/internal/strip-ansi.js +3 -0
  82. package/node_modules/@poe-code/design-system/dist/internal/theme-detect.d.ts +11 -0
  83. package/node_modules/@poe-code/design-system/dist/internal/theme-detect.js +49 -0
  84. package/node_modules/@poe-code/design-system/dist/prompts/index.d.ts +66 -0
  85. package/node_modules/@poe-code/design-system/dist/prompts/index.js +132 -0
  86. package/node_modules/@poe-code/design-system/dist/prompts/primitives/cancel.d.ts +2 -0
  87. package/node_modules/@poe-code/design-system/dist/prompts/primitives/cancel.js +9 -0
  88. package/node_modules/@poe-code/design-system/dist/prompts/primitives/intro.d.ts +1 -0
  89. package/node_modules/@poe-code/design-system/dist/prompts/primitives/intro.js +15 -0
  90. package/node_modules/@poe-code/design-system/dist/prompts/primitives/log.d.ts +18 -0
  91. package/node_modules/@poe-code/design-system/dist/prompts/primitives/log.js +101 -0
  92. package/node_modules/@poe-code/design-system/dist/prompts/primitives/note.d.ts +1 -0
  93. package/node_modules/@poe-code/design-system/dist/prompts/primitives/note.js +39 -0
  94. package/node_modules/@poe-code/design-system/dist/prompts/primitives/outro.d.ts +1 -0
  95. package/node_modules/@poe-code/design-system/dist/prompts/primitives/outro.js +16 -0
  96. package/node_modules/@poe-code/design-system/dist/prompts/primitives/spinner.d.ts +6 -0
  97. package/node_modules/@poe-code/design-system/dist/prompts/primitives/spinner.js +74 -0
  98. package/node_modules/@poe-code/design-system/dist/prompts/theme.d.ts +11 -0
  99. package/node_modules/@poe-code/design-system/dist/prompts/theme.js +12 -0
  100. package/node_modules/@poe-code/design-system/dist/static/index.d.ts +4 -0
  101. package/node_modules/@poe-code/design-system/dist/static/index.js +2 -0
  102. package/node_modules/@poe-code/design-system/dist/static/menu.d.ts +11 -0
  103. package/node_modules/@poe-code/design-system/dist/static/menu.js +36 -0
  104. package/node_modules/@poe-code/design-system/dist/static/spinner.d.ts +14 -0
  105. package/node_modules/@poe-code/design-system/dist/static/spinner.js +46 -0
  106. package/node_modules/@poe-code/design-system/dist/terminal-markdown/ast.d.ts +92 -0
  107. package/node_modules/@poe-code/design-system/dist/terminal-markdown/ast.js +1 -0
  108. package/node_modules/@poe-code/design-system/dist/terminal-markdown/demo-content.d.ts +2 -0
  109. package/node_modules/@poe-code/design-system/dist/terminal-markdown/demo-content.js +139 -0
  110. package/node_modules/@poe-code/design-system/dist/terminal-markdown/index.d.ts +6 -0
  111. package/node_modules/@poe-code/design-system/dist/terminal-markdown/index.js +8 -0
  112. package/node_modules/@poe-code/design-system/dist/terminal-markdown/parser/block.d.ts +7 -0
  113. package/node_modules/@poe-code/design-system/dist/terminal-markdown/parser/block.js +1495 -0
  114. package/node_modules/@poe-code/design-system/dist/terminal-markdown/parser/frontmatter.d.ts +8 -0
  115. package/node_modules/@poe-code/design-system/dist/terminal-markdown/parser/frontmatter.js +412 -0
  116. package/node_modules/@poe-code/design-system/dist/terminal-markdown/parser/inline.d.ts +10 -0
  117. package/node_modules/@poe-code/design-system/dist/terminal-markdown/parser/inline.js +1166 -0
  118. package/node_modules/@poe-code/design-system/dist/terminal-markdown/parser.d.ts +5 -0
  119. package/node_modules/@poe-code/design-system/dist/terminal-markdown/parser.js +42 -0
  120. package/node_modules/@poe-code/design-system/dist/terminal-markdown/renderer.d.ts +6 -0
  121. package/node_modules/@poe-code/design-system/dist/terminal-markdown/renderer.js +572 -0
  122. package/node_modules/@poe-code/design-system/dist/terminal-markdown/testing/theme-render-fixture.d.ts +1 -0
  123. package/node_modules/@poe-code/design-system/dist/terminal-markdown/testing/theme-render-fixture.js +27 -0
  124. package/node_modules/@poe-code/design-system/dist/tokens/colors.d.ts +35 -0
  125. package/node_modules/@poe-code/design-system/dist/tokens/colors.js +34 -0
  126. package/node_modules/@poe-code/design-system/dist/tokens/index.d.ts +4 -0
  127. package/node_modules/@poe-code/design-system/dist/tokens/index.js +4 -0
  128. package/node_modules/@poe-code/design-system/dist/tokens/spacing.d.ts +6 -0
  129. package/node_modules/@poe-code/design-system/dist/tokens/spacing.js +6 -0
  130. package/node_modules/@poe-code/design-system/dist/tokens/typography.d.ts +7 -0
  131. package/node_modules/@poe-code/design-system/dist/tokens/typography.js +8 -0
  132. package/node_modules/@poe-code/design-system/dist/tokens/widths.d.ts +5 -0
  133. package/node_modules/@poe-code/design-system/dist/tokens/widths.js +5 -0
  134. package/node_modules/@poe-code/design-system/package.json +25 -0
  135. package/package.json +57 -0
package/README.md ADDED
@@ -0,0 +1,91 @@
1
+ # toolcraft
2
+
3
+ tools for agents and humans
4
+
5
+ Typed command and group definitions built on top of `toolcraft-schema`.
6
+
7
+ ## Usage
8
+
9
+ ```ts
10
+ import { defineCommand, defineGroup } from "agent-kit";
11
+ import { S } from "agent-kit-schema";
12
+
13
+ const deploy = defineCommand({
14
+ name: "deploy",
15
+ params: S.Object({
16
+ service: S.String(),
17
+ }),
18
+ secrets: {
19
+ apiKey: {
20
+ env: "API_KEY",
21
+ },
22
+ },
23
+ handler: async ({ params, secrets }) => ({
24
+ service: params.service,
25
+ authenticated: Boolean(secrets.apiKey),
26
+ }),
27
+ });
28
+
29
+ export const root = defineGroup({
30
+ name: "root",
31
+ children: [deploy],
32
+ });
33
+ ```
34
+
35
+ ## API
36
+
37
+ - `defineCommand(config)` creates a typed command definition with inferred `params` and `secrets`.
38
+ - `defineGroup(config)` creates a command group and inherits `secrets`, `requires`, and `scope` through descendants.
39
+ - `UserError` marks expected user-facing failures.
40
+ - `createMCPServer(root, options)` exposes `mcp`-scoped commands as MCP tools.
41
+ - `runMCP(root, options)` starts the stdio MCP server for the given command tree.
42
+
43
+ ## Environment variables
44
+
45
+ - This package does not read environment variables directly.
46
+ - Commands can declare required or optional secret environment variable names via `secrets`.
47
+
48
+ ## Configuration
49
+
50
+ ### `defineCommand(config)`
51
+
52
+ - `name: string`: command name.
53
+ - `description?: string`: help text for the command.
54
+ - `aliases?: string[]`: alternate command names.
55
+ - `positional?: string[]`: positional parameter names mapped from CLI argv order.
56
+ - `params: S.Object(...)`: command parameter schema.
57
+ - `secrets?: Record<string, { env: string; description?: string; optional?: boolean }>`: environment-backed secrets available in the handler context.
58
+ - `scope?: Array<"cli" | "mcp" | "sdk">`: runner visibility. Defaults to `["cli", "sdk"]`.
59
+ - `confirm?: boolean`: whether the command requires confirmation before execution. Defaults to `false`.
60
+ - `requires?: { auth?: boolean; apiVersion?: string; check?: (ctx) => Promise<{ ok: boolean; message?: string }> }`: command preconditions.
61
+ - `handler: (ctx) => Promise<unknown>`: async command implementation.
62
+ - `render?: { rich?: (result, primitives) => void; markdown?: (result) => string; json?: (result) => unknown }`: optional output renderers.
63
+
64
+ ### `defineGroup(config)`
65
+
66
+ - `name: string`: group name.
67
+ - `description?: string`: help text for the group.
68
+ - `aliases?: string[]`: alternate group names.
69
+ - `scope?: Array<"cli" | "mcp" | "sdk">`: inherited by descendants that do not override it.
70
+ - `secrets?: Record<string, { env: string; description?: string; optional?: boolean }>`: inherited secret declarations.
71
+ - `requires?: { auth?: boolean; apiVersion?: string; check?: (ctx) => Promise<{ ok: boolean; message?: string }> }`: inherited preconditions.
72
+ - `children: Array<Command | Group>`: nested commands and groups.
73
+ - `default?: Command`: default child command used by runners when no child token matches.
74
+
75
+ ### `createMCPServer(root, options)` / `runMCP(root, options)`
76
+
77
+ - `name: string`: MCP server name.
78
+ - `version: string`: MCP server version.
79
+ - `services?: TServices`: extra services merged into the handler context.
80
+ - `tools?: string[]`: optional allowlist of MCP tool names or group prefixes. Tool names use `__`-joined snake_case path segments like `root__bot__create`; passing `root__bot` includes every descendant tool in that subtree.
81
+ - `casing?: "snake" | "camel"`: changes MCP input-schema property names and accepted argument keys only. It does **not** change MCP tool names, which always stay `__`-joined snake_case.
82
+
83
+ ### Handler context
84
+
85
+ - `params`: inferred from the command `params` schema.
86
+ - `secrets`: inferred from the command `secrets` declaration.
87
+ - `fetch`: `typeof globalThis.fetch`.
88
+ - `fs`: `{ readFile, writeFile, exists }`.
89
+ - `env`: `{ get(key: string): string | undefined }`.
90
+ - `progress(message: string): void`.
91
+ - Custom runner services are merged into the same context object.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import { S } from "agent-kit-schema";
2
+ import { defineCommand, defineGroup } from "./index.js";
3
+ import { runCLI } from "./cli.js";
4
+ const ignoredCommand = defineCommand({
5
+ name: "deploy",
6
+ params: S.Object({
7
+ name: S.String(),
8
+ }),
9
+ handler: async () => null,
10
+ });
11
+ const ignoredRoot = defineGroup({
12
+ name: "root",
13
+ children: [ignoredCommand],
14
+ });
15
+ const ignoredOptions = {
16
+ casing: "kebab",
17
+ version: "1.0.0",
18
+ };
19
+ const ignoredServiceOptions = {
20
+ services: {
21
+ marker: "value",
22
+ },
23
+ };
24
+ void runCLI(ignoredRoot, ignoredOptions);
25
+ void runCLI([ignoredRoot], ignoredOptions);
26
+ void ignoredServiceOptions;
package/dist/cli.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import type { Group } from "./index.js";
2
+ type Casing = "kebab" | "snake";
3
+ export interface RunCLIOptions<TServices extends object = Record<string, unknown>> {
4
+ apiVersion?: string;
5
+ casing?: Casing;
6
+ rootDisplayName?: string;
7
+ rootUsageName?: string;
8
+ services?: TServices;
9
+ version?: string;
10
+ }
11
+ export declare function runCLI<TServices extends object = Record<string, unknown>>(roots: Group<TServices> | Group<TServices>[], options?: RunCLIOptions<TServices>): Promise<void>;
12
+ export {};