@andreprado/agentkit 0.1.0-alpha.10

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 (122) hide show
  1. package/README.md +69 -0
  2. package/bin/agentkit.mjs +23 -0
  3. package/docs/guides/add-channel.md +114 -0
  4. package/docs/guides/add-knowledge.md +134 -0
  5. package/docs/guides/add-tool.md +342 -0
  6. package/docs/guides/agentkit-skills-architecture.md +471 -0
  7. package/docs/guides/channel-security.md +81 -0
  8. package/docs/guides/channels-implementation-map.md +243 -0
  9. package/docs/guides/channels-production-handoff.md +102 -0
  10. package/docs/guides/connect-telegram.md +110 -0
  11. package/docs/guides/connect-whatsapp-zapster.md +119 -0
  12. package/docs/guides/create-agent.md +220 -0
  13. package/docs/guides/prepare-deploy.md +209 -0
  14. package/docs/guides/run-evals.md +179 -0
  15. package/docs/guides/security-rules.md +156 -0
  16. package/docs/guides/use-provider.md +140 -0
  17. package/docs/llms-full.txt +876 -0
  18. package/docs/llms.txt +83 -0
  19. package/docs/portable-deploy-release-checklist.md +41 -0
  20. package/package.json +47 -0
  21. package/src/cli/args.ts +36 -0
  22. package/src/cli/cloud-client.ts +265 -0
  23. package/src/cli/commands/channels.ts +810 -0
  24. package/src/cli/commands/knowledge.ts +136 -0
  25. package/src/cli/constants.ts +4 -0
  26. package/src/cli/deploy-chat-ui.ts +392 -0
  27. package/src/cli/deploy-readiness.ts +348 -0
  28. package/src/cli/flags.ts +162 -0
  29. package/src/cli/help.ts +184 -0
  30. package/src/cli/index.ts +1276 -0
  31. package/src/cli/process.ts +31 -0
  32. package/src/cloud/artifact.ts +139 -0
  33. package/src/cloud/client.ts +79 -0
  34. package/src/cloud/contracts.ts +63 -0
  35. package/src/cloud/index.ts +3 -0
  36. package/src/create-project.ts +177 -0
  37. package/src/index.ts +408 -0
  38. package/src/providers/index.ts +25 -0
  39. package/src/providers/pi.ts +286 -0
  40. package/src/providers/test.ts +133 -0
  41. package/src/providers/types.ts +34 -0
  42. package/src/runtime/build.ts +43 -0
  43. package/src/runtime/channel-buffer.ts +30 -0
  44. package/src/runtime/channel-test-harness.ts +112 -0
  45. package/src/runtime/channels/telegram.ts +360 -0
  46. package/src/runtime/channels/website.ts +132 -0
  47. package/src/runtime/channels/whatsapp-meta.ts +71 -0
  48. package/src/runtime/channels/whatsapp-zapster.ts +278 -0
  49. package/src/runtime/channels.ts +138 -0
  50. package/src/runtime/chat.ts +218 -0
  51. package/src/runtime/config.ts +684 -0
  52. package/src/runtime/conversations.ts +38 -0
  53. package/src/runtime/core/deploy-state.ts +54 -0
  54. package/src/runtime/core/manifest.ts +213 -0
  55. package/src/runtime/core/targets.ts +133 -0
  56. package/src/runtime/database.ts +256 -0
  57. package/src/runtime/db-commands.ts +167 -0
  58. package/src/runtime/deploy-readiness.ts +105 -0
  59. package/src/runtime/deploy.ts +1 -0
  60. package/src/runtime/dev-server.ts +1247 -0
  61. package/src/runtime/docs.ts +36 -0
  62. package/src/runtime/env.ts +152 -0
  63. package/src/runtime/errors.ts +13 -0
  64. package/src/runtime/evals.ts +509 -0
  65. package/src/runtime/inspect.ts +203 -0
  66. package/src/runtime/knowledge/chunk.ts +333 -0
  67. package/src/runtime/knowledge/config.ts +135 -0
  68. package/src/runtime/knowledge/embeddings.ts +133 -0
  69. package/src/runtime/knowledge/ingest.ts +521 -0
  70. package/src/runtime/knowledge/prompt-policy.ts +30 -0
  71. package/src/runtime/knowledge/retrieve.ts +283 -0
  72. package/src/runtime/knowledge/schema.ts +56 -0
  73. package/src/runtime/knowledge/tool.ts +64 -0
  74. package/src/runtime/knowledge/vector.ts +258 -0
  75. package/src/runtime/runtime-contract.ts +93 -0
  76. package/src/runtime/spec.ts +152 -0
  77. package/src/runtime/sync.ts +144 -0
  78. package/src/runtime/targets/cloudflare/build.ts +2517 -0
  79. package/src/runtime/targets/container/build.ts +146 -0
  80. package/src/runtime/targets/container/server.ts +33 -0
  81. package/src/runtime/targets/vps/deploy.ts +206 -0
  82. package/src/runtime/tool-runner.ts +65 -0
  83. package/src/runtime/tools.ts +470 -0
  84. package/src/runtime/traces.ts +41 -0
  85. package/src/storage/sqlite.ts +1118 -0
  86. package/src/templates/blank.ts +394 -0
  87. package/src/templates/dentista.ts +1003 -0
  88. package/src/templates/index.ts +33 -0
  89. package/src/templates/skills/agentkit-build-agent/SKILL.md +51 -0
  90. package/src/templates/skills/agentkit-build-agent/templates/appointment-intake.instructions.md +20 -0
  91. package/src/templates/skills/agentkit-build-agent/templates/sales-qualifier.instructions.md +17 -0
  92. package/src/templates/skills/agentkit-build-agent/templates/support-agent.instructions.md +16 -0
  93. package/src/templates/skills/agentkit-capsule/SKILL.md +62 -0
  94. package/src/templates/skills/agentkit-capsule/references/docs-router.md +15 -0
  95. package/src/templates/skills/agentkit-channels/SKILL.md +62 -0
  96. package/src/templates/skills/agentkit-channels/references/channel-buffering.md +58 -0
  97. package/src/templates/skills/agentkit-channels/references/channel-debugging.md +41 -0
  98. package/src/templates/skills/agentkit-channels/references/telegram.md +38 -0
  99. package/src/templates/skills/agentkit-channels/references/whatsapp-zapster.md +44 -0
  100. package/src/templates/skills/agentkit-database/SKILL.md +45 -0
  101. package/src/templates/skills/agentkit-database/templates/appointments.schema.sql +15 -0
  102. package/src/templates/skills/agentkit-database/templates/leads.schema.sql +17 -0
  103. package/src/templates/skills/agentkit-deploy/SKILL.md +44 -0
  104. package/src/templates/skills/agentkit-evals/SKILL.md +60 -0
  105. package/src/templates/skills/agentkit-evals/templates/multi-turn.eval.md +22 -0
  106. package/src/templates/skills/agentkit-evals/templates/no-leak.eval.md +14 -0
  107. package/src/templates/skills/agentkit-evals/templates/smoke.eval.md +14 -0
  108. package/src/templates/skills/agentkit-evals/templates/tool-call.eval.md +18 -0
  109. package/src/templates/skills/agentkit-knowledge/SKILL.md +40 -0
  110. package/src/templates/skills/agentkit-knowledge/templates/faq.md +14 -0
  111. package/src/templates/skills/agentkit-knowledge/templates/policies.md +14 -0
  112. package/src/templates/skills/agentkit-knowledge/templates/prices.csv +3 -0
  113. package/src/templates/skills/agentkit-prompts/SKILL.md +45 -0
  114. package/src/templates/skills/agentkit-prompts/templates/knowledge-grounded-faq.instructions.md +11 -0
  115. package/src/templates/skills/agentkit-provider/SKILL.md +57 -0
  116. package/src/templates/skills/agentkit-security/SKILL.md +55 -0
  117. package/src/templates/skills/agentkit-tools/SKILL.md +36 -0
  118. package/src/templates/skills/agentkit-tools/examples/database-write.tool.md +35 -0
  119. package/src/templates/skills/agentkit-tools/examples/eval-safe-external-action.tool.md +37 -0
  120. package/src/templates/skills/agentkit-tools/examples/lookup-order.tool.md +46 -0
  121. package/src/templates/skills/agentkit-troubleshooting/SKILL.md +52 -0
  122. package/src/templates/support.ts +401 -0
@@ -0,0 +1,156 @@
1
+ # Security Rules
2
+
3
+ ## Goal
4
+
5
+ Keep local and hosted AgentKit work from leaking secrets, exposing client data, or giving tools more power than they need.
6
+
7
+ ## When To Use This
8
+
9
+ Use this before adding provider keys, tool secrets, external APIs, public access, deploys, or evals created from real conversations.
10
+
11
+ ## Commands
12
+
13
+ Local checks:
14
+
15
+ ```sh
16
+ git status --short
17
+ npm run agentkit -- env list
18
+ npm run agentkit -- inspect
19
+ npm run typecheck
20
+ ```
21
+
22
+ Search for accidental local secret files:
23
+
24
+ ```sh
25
+ find . -maxdepth 3 \( -name .env -o -path './.agentkit/*' \) -print
26
+ ```
27
+
28
+ Hosted alpha secret commands:
29
+
30
+ ```sh
31
+ agentkit login --token agk_user_...
32
+ agentkit secret set OPENAI_API_KEY --from-local-env
33
+ agentkit secret list
34
+ agentkit secret unset OPENAI_API_KEY
35
+ ```
36
+
37
+ ## Files Created Or Edited
38
+
39
+ Allowed committed files:
40
+
41
+ ```txt
42
+ .env.schema
43
+ agentkit.config.ts
44
+ prompts/
45
+ tools/
46
+ evals/
47
+ AGENTS.md
48
+ CLAUDE.md
49
+ README.md
50
+ ```
51
+
52
+ Never commit:
53
+
54
+ ```txt
55
+ .env
56
+ .agentkit/
57
+ node_modules/
58
+ ```
59
+
60
+ ## Minimal Working Example
61
+
62
+ Declare secret names:
63
+
64
+ ```ts
65
+ export default defineAgent({
66
+ secrets: ["OPENAI_API_KEY"],
67
+ });
68
+ ```
69
+
70
+ Set local secret names in `.env.schema`, keep values in ignored `.env`, and run AgentKit commands normally:
71
+
72
+ ```sh
73
+ npm run agentkit -- inspect
74
+ npm run chat -- --message "hello"
75
+ ```
76
+
77
+ Declare tool-specific secrets:
78
+
79
+ ```ts
80
+ defineTool({
81
+ name: "lookup_customer",
82
+ secrets: ["CRM_API_KEY"],
83
+ permissions: ["crm:contacts:read"],
84
+ execute(input, ctx) {
85
+ return fetchCustomer(input, ctx.secrets.CRM_API_KEY);
86
+ },
87
+ });
88
+ ```
89
+
90
+ ## Safety Rules
91
+
92
+ - `.env` is local-only.
93
+ - `.env.schema` is the committed contract for local secret names.
94
+ - AgentKit local commands load `.env` directly so inspect, chat, tools, and evals share the same secret loader.
95
+ - Production uses managed secrets.
96
+ - Hosted alpha deploys require `cloudflare_deploy_alpha`; local commands do not require login.
97
+ - Secret values must not appear in config, docs, prompts, evals, logs, exports, or SQLite.
98
+ - A tool receives only secrets listed in that tool.
99
+ - Avoid direct `process.env` reads inside tools.
100
+ - Use `permissions` to describe external capabilities.
101
+ - Add timeouts to network tools.
102
+ - Treat public deploy URLs as unauthenticated transport, not access control.
103
+ - Use access tokens and limits for clients.
104
+ - Remove client PII before writing evals.
105
+
106
+ ## Verification
107
+
108
+ ```sh
109
+ npm run agentkit -- inspect
110
+ git status --short
111
+ git diff --check
112
+ ```
113
+
114
+ Expected:
115
+
116
+ - Inspect shows secret names as `set` or `missing`.
117
+ - Inspect does not show secret values.
118
+ - `.env` and `.agentkit/` are untracked or ignored.
119
+ - Tool calls persist without secret values.
120
+
121
+ ## Troubleshooting
122
+
123
+ Secret value appears in a file:
124
+
125
+ Remove it, rotate the provider key, and check git history before sharing the branch.
126
+
127
+ Tool needs a secret but receives `{}`:
128
+
129
+ Add the secret name to the tool `secrets` field and set it locally:
130
+
131
+ ```sh
132
+ npm run agentkit -- inspect
133
+ ```
134
+
135
+ Public URL is reachable:
136
+
137
+ Check hosted access mode. Default should be `private`.
138
+
139
+ ## Backend Contracts Used
140
+
141
+ Hosted secrets use:
142
+
143
+ ```txt
144
+ PUT /v1/projects/{project_id}/secrets/{name}
145
+ GET /v1/projects/{project_id}/secrets
146
+ DELETE /v1/projects/{project_id}/secrets/{name}
147
+ ```
148
+
149
+ Hosted access uses:
150
+
151
+ ```txt
152
+ PATCH /v1/deploys/{deploy_id}/access
153
+ POST /v1/deploys/{deploy_id}/access-tokens
154
+ ```
155
+
156
+ Backend responses never return secret values.
@@ -0,0 +1,140 @@
1
+ # Use A Real Provider
2
+
3
+ ## Goal
4
+
5
+ Switch a capsule from the offline `test/fake` provider to a Pi-backed provider.
6
+
7
+ ## When To Use This
8
+
9
+ Use this when local fake responses are no longer enough and the agent needs model behavior from OpenRouter, OpenAI, Anthropic, or another supported provider.
10
+
11
+ The coding agent should not choose a real provider automatically. Ask the owner which provider to use, then update the capsule.
12
+
13
+ ## Commands
14
+
15
+ From a capsule root:
16
+
17
+ ```sh
18
+ $EDITOR agentkit.config.ts
19
+ npm run typecheck
20
+ npm run chat -- --message "hello"
21
+ npm run agentkit -- inspect
22
+ ```
23
+
24
+ ## Files Created Or Edited
25
+
26
+ Edit:
27
+
28
+ ```txt
29
+ agentkit.config.ts
30
+ .env.schema
31
+ .env
32
+ ```
33
+
34
+ Use `.env.schema` as the committed contract for required names. Keep `.env` local and ignored.
35
+
36
+ ## Minimal Working Example
37
+
38
+ OpenAI:
39
+
40
+ ```ts
41
+ provider: {
42
+ name: "openai",
43
+ model: "gpt-4o-mini",
44
+ },
45
+ secrets: ["OPENAI_API_KEY"],
46
+ ```
47
+
48
+ `.env.schema`:
49
+
50
+ ```sh
51
+ OPENAI_API_KEY=
52
+ ```
53
+
54
+ Run with local secrets loaded:
55
+
56
+ ```sh
57
+ npm run chat -- --message "hello"
58
+ ```
59
+
60
+ Anthropic:
61
+
62
+ ```ts
63
+ provider: {
64
+ name: "anthropic",
65
+ model: "claude-3-5-haiku-latest",
66
+ },
67
+ secrets: ["ANTHROPIC_API_KEY"],
68
+ ```
69
+
70
+ OpenRouter:
71
+
72
+ ```ts
73
+ provider: {
74
+ name: "openrouter",
75
+ model: "gpt-4o-mini",
76
+ },
77
+ secrets: ["OPENROUTER_API_KEY"],
78
+ ```
79
+
80
+ ## UI Verification
81
+
82
+ After the provider is configured and the local secret is set, test through chat and UI:
83
+
84
+ ```sh
85
+ npm run chat -- --message "hello"
86
+ npm run dev
87
+ ```
88
+
89
+ Open the printed `Chat:` URL and tell the owner the exact URL. If the provider is still `test/fake`, say the UI was tested only with the deterministic fake provider.
90
+
91
+ ## Safety Rules
92
+
93
+ - Keep `.env` local.
94
+ - Use `.env.schema` as the committed secret-name contract.
95
+ - AgentKit local commands load `.env` directly so chat, evals, tools, and inspect use the same loader.
96
+ - Add required provider secret names to `secrets`.
97
+ - Do not import provider SDKs in the Agent Capsule.
98
+ - AgentKit uses Pi SDK internally.
99
+ - Run `agentkit inspect` to confirm secret status without printing values.
100
+ - Do not claim real conversation behavior was tested until a real provider selected by the owner is configured.
101
+
102
+ ## Verification
103
+
104
+ ```sh
105
+ npm run typecheck
106
+ npm run agentkit -- inspect
107
+ npm run chat -- --message "hello"
108
+ ```
109
+
110
+ Expected:
111
+
112
+ - Inspect shows the provider secret as `set`.
113
+ - Chat returns a real model response.
114
+ - `.agentkit/agentkit.db` stores messages and usage tokens when Pi returns usage.
115
+
116
+ ## Troubleshooting
117
+
118
+ `secret_not_found`:
119
+
120
+ Add the required provider key to ignored `.env`, keep the name in `.env.schema`, and rerun AgentKit.
121
+
122
+ ```sh
123
+ npm run agentkit -- inspect
124
+ ```
125
+
126
+ `provider_model_unsupported`:
127
+
128
+ Use a model id known to the installed Pi SDK for that provider.
129
+
130
+ Provider returns auth failure:
131
+
132
+ Check the key value, provider account status, and model access.
133
+
134
+ `custom` provider:
135
+
136
+ `custom` is reserved in config but not implemented in the local adapter yet.
137
+
138
+ ## Backend Contracts Used
139
+
140
+ Local provider keys come from ignored `.env`, loaded directly by AgentKit. Hosted production uses `agentkit secret set <NAME> --from-local-env`, `--from-env`, or `--stdin` and the secret API. Secret values have no readback in hosted responses.