@arnilo/prism 0.0.4 → 0.0.5

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 (70) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +34 -10
  3. package/dist/agents.js +146 -19
  4. package/dist/cli-init.d.ts +41 -0
  5. package/dist/cli-init.js +390 -0
  6. package/dist/cli-runner.d.ts +7 -1
  7. package/dist/cli-runner.js +13 -1
  8. package/dist/content.d.ts +19 -0
  9. package/dist/content.js +197 -69
  10. package/dist/contracts.d.ts +94 -9
  11. package/dist/contracts.js +8 -0
  12. package/dist/feedback.d.ts +48 -0
  13. package/dist/feedback.js +230 -0
  14. package/dist/index.d.ts +6 -4
  15. package/dist/index.js +4 -3
  16. package/dist/providers/media.d.ts +3 -1
  17. package/dist/providers/media.js +11 -1
  18. package/dist/testing/feedback.d.ts +6 -0
  19. package/dist/testing/feedback.js +37 -0
  20. package/dist/testing/persistence-schema.d.ts +3 -3
  21. package/dist/testing/persistence-schema.js +32 -2
  22. package/dist/testing/run-ledger-conformance.js +7 -1
  23. package/docs/a2a.md +73 -0
  24. package/docs/agent-events.md +4 -6
  25. package/docs/agent-loops.md +1 -1
  26. package/docs/agent-session-runtime.md +14 -16
  27. package/docs/cli-rpc.md +35 -7
  28. package/docs/coding-agent-tools.md +2 -2
  29. package/docs/coding-security.md +7 -3
  30. package/docs/compaction-observational-memory.md +2 -0
  31. package/docs/context-and-skills.md +1 -0
  32. package/docs/credentials-and-redaction.md +2 -2
  33. package/docs/database-persistence.md +9 -6
  34. package/docs/evaluations.md +122 -0
  35. package/docs/extensions.md +2 -2
  36. package/docs/host-security.md +20 -3
  37. package/docs/index.md +29 -17
  38. package/docs/mcp-tools.md +49 -4
  39. package/docs/migration.md +33 -3
  40. package/docs/multimodal-content.md +14 -6
  41. package/docs/observability.md +14 -6
  42. package/docs/performance.md +209 -0
  43. package/docs/postgres-persistence.md +6 -4
  44. package/docs/provider-conformance.md +1 -0
  45. package/docs/provider-packages.md +2 -0
  46. package/docs/providers/ai-sdk.md +113 -0
  47. package/docs/public-contracts.md +6 -5
  48. package/docs/rag.md +113 -0
  49. package/docs/release-and-install.md +100 -77
  50. package/docs/review-coverage-2026-07-15.md +193 -0
  51. package/docs/runs-and-usage.md +41 -4
  52. package/docs/server.md +139 -0
  53. package/docs/settings-auth-trust-security.md +5 -5
  54. package/docs/sqlite-persistence.md +4 -3
  55. package/docs/supervisors.md +71 -0
  56. package/docs/workflow-orchestration-primitives.md +19 -3
  57. package/docs/workflows.md +97 -23
  58. package/docs/working-and-semantic-memory.md +169 -0
  59. package/package.json +12 -2
  60. package/templates/init/README.md.tmpl +28 -0
  61. package/templates/init/env.example.tmpl +1 -0
  62. package/templates/init/gitignore.tmpl +11 -0
  63. package/templates/init/optional/evals-example.ts.tmpl +17 -0
  64. package/templates/init/optional/workflows-example.ts.tmpl +27 -0
  65. package/templates/init/package.json.tmpl +22 -0
  66. package/templates/init/providers.json +76 -0
  67. package/templates/init/src/agent.ts.tmpl +10 -0
  68. package/templates/init/src/index.ts.tmpl +12 -0
  69. package/templates/init/src/tests/agent.test.ts.tmpl +24 -0
  70. package/templates/init/tsconfig.json.tmpl +15 -0
@@ -0,0 +1,76 @@
1
+ {
2
+ "mock": {
3
+ "id": "mock",
4
+ "modelProvider": "mock",
5
+ "modelName": "demo",
6
+ "imports": "import {\n createAgent,\n createMockProvider,\n providerDone,\n providerTextDelta,\n} from \"@arnilo/prism\";",
7
+ "providerExpression": "createMockProvider([\n providerTextDelta(\"Hello from Prism\"),\n providerDone(),\n ])",
8
+ "modelExpression": "{ provider: \"mock\", model: \"demo\" }"
9
+ },
10
+ "openai": {
11
+ "id": "openai",
12
+ "packageName": "@arnilo/prism-provider-openai",
13
+ "envKey": "OPENAI_API_KEY",
14
+ "envPlaceholder": "sk-...",
15
+ "modelProvider": "openai",
16
+ "modelName": "gpt-5.1",
17
+ "imports": "import { createAgent } from \"@arnilo/prism\";\nimport { createOpenAIResponsesProvider } from \"@arnilo/prism-provider-openai\";",
18
+ "providerExpression": "createOpenAIResponsesProvider({\n apiKey: () => process.env.OPENAI_API_KEY,\n })",
19
+ "modelExpression": "{ provider: \"openai\", model: \"gpt-5.1\" }"
20
+ },
21
+ "openrouter": {
22
+ "id": "openrouter",
23
+ "packageName": "@arnilo/prism-provider-openrouter",
24
+ "envKey": "OPENROUTER_API_KEY",
25
+ "envPlaceholder": "sk-or-...",
26
+ "modelProvider": "openrouter",
27
+ "modelName": "anthropic/claude-sonnet-4",
28
+ "imports": "import { createAgent } from \"@arnilo/prism\";\nimport {\n createOpenRouterProvider,\n defineOpenRouterModel,\n} from \"@arnilo/prism-provider-openrouter\";",
29
+ "providerExpression": "createOpenRouterProvider({\n apiKey: () => process.env.OPENROUTER_API_KEY,\n })",
30
+ "modelExpression": "defineOpenRouterModel({ model: \"anthropic/claude-sonnet-4\" })"
31
+ },
32
+ "kimi": {
33
+ "id": "kimi",
34
+ "packageName": "@arnilo/prism-provider-kimi",
35
+ "envKey": "KIMI_API_KEY",
36
+ "envPlaceholder": "your-kimi-api-key",
37
+ "modelProvider": "kimi-coding",
38
+ "modelName": "kimi-k2.7-code",
39
+ "imports": "import { createAgent } from \"@arnilo/prism\";\nimport { createKimiCodingProvider } from \"@arnilo/prism-provider-kimi\";",
40
+ "providerExpression": "createKimiCodingProvider({\n apiKey: () => process.env.KIMI_API_KEY,\n })",
41
+ "modelExpression": "{ provider: \"kimi-coding\", model: \"kimi-k2.7-code\" }"
42
+ },
43
+ "zai": {
44
+ "id": "zai",
45
+ "packageName": "@arnilo/prism-provider-zai",
46
+ "envKey": "ZAI_API_KEY",
47
+ "envPlaceholder": "your-zai-api-key",
48
+ "modelProvider": "zai",
49
+ "modelName": "glm-4.7",
50
+ "imports": "import { createAgent } from \"@arnilo/prism\";\nimport { createZaiProvider } from \"@arnilo/prism-provider-zai\";",
51
+ "providerExpression": "createZaiProvider({\n apiKey: () => process.env.ZAI_API_KEY,\n })",
52
+ "modelExpression": "{ provider: \"zai\", model: \"glm-4.7\" }"
53
+ },
54
+ "opencode-go": {
55
+ "id": "opencode-go",
56
+ "packageName": "@arnilo/prism-provider-opencode-go",
57
+ "envKey": "OPENCODE_API_KEY",
58
+ "envPlaceholder": "your-opencode-api-key",
59
+ "modelProvider": "opencode-go",
60
+ "modelName": "gpt-5.1-go",
61
+ "imports": "import { createAgent } from \"@arnilo/prism\";\nimport { createOpenCodeGoProvider } from \"@arnilo/prism-provider-opencode-go\";",
62
+ "providerExpression": "createOpenCodeGoProvider({\n apiKey: () => process.env.OPENCODE_API_KEY,\n })",
63
+ "modelExpression": "{ provider: \"opencode-go\", model: \"gpt-5.1-go\", compat: { route: \"openai\" } }"
64
+ },
65
+ "neuralwatt": {
66
+ "id": "neuralwatt",
67
+ "packageName": "@arnilo/prism-provider-neuralwatt",
68
+ "envKey": "NEURALWATT_API_KEY",
69
+ "envPlaceholder": "your-neuralwatt-api-key",
70
+ "modelProvider": "neuralwatt",
71
+ "modelName": "glm-5.2",
72
+ "imports": "import { createAgent } from \"@arnilo/prism\";\nimport {\n createNeuralWattProvider,\n defineNeuralWattModel,\n} from \"@arnilo/prism-provider-neuralwatt\";",
73
+ "providerExpression": "createNeuralWattProvider({\n apiKey: () => process.env.NEURALWATT_API_KEY,\n })",
74
+ "modelExpression": "defineNeuralWattModel({\n model: \"glm-5.2\",\n cache: { kind: \"implicit\" },\n })"
75
+ }
76
+ }
@@ -0,0 +1,10 @@
1
+ __PROVIDER_IMPORTS__
2
+
3
+ /** Create the host agent for provider `__PROVIDER_ID__`. */
4
+ export function createAppAgent() {
5
+ return createAgent({
6
+ model: __MODEL_EXPRESSION__,
7
+ provider: __PROVIDER_EXPRESSION__,
8
+ instructions: "You are a helpful assistant.",
9
+ });
10
+ }
@@ -0,0 +1,12 @@
1
+ import { createAppAgent } from "./agent.js";
2
+
3
+ export async function main(prompt = "Say hello in one short sentence."): Promise<string> {
4
+ const agent = createAppAgent();
5
+ const session = agent.createSession({ id: "init-demo" });
6
+ const result = await session.run(prompt);
7
+ return result.text;
8
+ }
9
+
10
+ if (import.meta.url === `file://${process.argv[1]}`) {
11
+ console.log(await main(process.argv.slice(2).join(" ") || undefined));
12
+ }
@@ -0,0 +1,24 @@
1
+ import assert from "node:assert/strict";
2
+ import { describe, it } from "node:test";
3
+ import {
4
+ createAgent,
5
+ createMockProvider,
6
+ providerDone,
7
+ providerTextDelta,
8
+ } from "@arnilo/prism";
9
+
10
+ describe("generated agent", () => {
11
+ it("runs offline with the mock provider", async () => {
12
+ const agent = createAgent({
13
+ model: { provider: "mock", model: "demo" },
14
+ provider: createMockProvider([
15
+ providerTextDelta("Hello from mock"),
16
+ providerDone(),
17
+ ]),
18
+ });
19
+ const session = agent.createSession({ id: "init-test" });
20
+ const result = await session.run("Hi");
21
+ assert.equal(result.status, "succeeded");
22
+ assert.equal(result.text, "Hello from mock");
23
+ });
24
+ });
@@ -0,0 +1,15 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "strict": true,
7
+ "outDir": "dist",
8
+ "rootDir": "src",
9
+ "declaration": true,
10
+ "skipLibCheck": true,
11
+ "esModuleInterop": true,
12
+ "forceConsistentCasingInFileNames": true
13
+ },
14
+ "include": ["src"]
15
+ }