@arnilo/prism 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 (106) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/LICENSE +21 -0
  3. package/README.md +139 -0
  4. package/dist/agents.d.ts +5 -0
  5. package/dist/agents.js +439 -0
  6. package/dist/cli-runner.d.ts +33 -0
  7. package/dist/cli-runner.js +167 -0
  8. package/dist/cli.d.ts +2 -0
  9. package/dist/cli.js +10 -0
  10. package/dist/compaction.d.ts +9 -0
  11. package/dist/compaction.js +67 -0
  12. package/dist/config.d.ts +17 -0
  13. package/dist/config.js +69 -0
  14. package/dist/contracts.d.ts +670 -0
  15. package/dist/contracts.js +2 -0
  16. package/dist/contributions.d.ts +35 -0
  17. package/dist/contributions.js +47 -0
  18. package/dist/credentials.d.ts +22 -0
  19. package/dist/credentials.js +63 -0
  20. package/dist/extensions.d.ts +25 -0
  21. package/dist/extensions.js +131 -0
  22. package/dist/index.d.ts +47 -0
  23. package/dist/index.js +28 -0
  24. package/dist/input.d.ts +57 -0
  25. package/dist/input.js +225 -0
  26. package/dist/manifests.d.ts +28 -0
  27. package/dist/manifests.js +108 -0
  28. package/dist/middleware.d.ts +15 -0
  29. package/dist/middleware.js +49 -0
  30. package/dist/mock-provider.d.ts +6 -0
  31. package/dist/mock-provider.js +14 -0
  32. package/dist/models.d.ts +8 -0
  33. package/dist/models.js +25 -0
  34. package/dist/node/config.d.ts +9 -0
  35. package/dist/node/config.js +51 -0
  36. package/dist/node/session-store-jsonl.d.ts +17 -0
  37. package/dist/node/session-store-jsonl.js +134 -0
  38. package/dist/node/settings.d.ts +7 -0
  39. package/dist/node/settings.js +26 -0
  40. package/dist/node/trust.d.ts +13 -0
  41. package/dist/node/trust.js +56 -0
  42. package/dist/provider-events.d.ts +15 -0
  43. package/dist/provider-events.js +30 -0
  44. package/dist/provider-packages.d.ts +4 -0
  45. package/dist/provider-packages.js +12 -0
  46. package/dist/provider-request-policy.d.ts +9 -0
  47. package/dist/provider-request-policy.js +49 -0
  48. package/dist/providers/openai-compatible.d.ts +9 -0
  49. package/dist/providers/openai-compatible.js +197 -0
  50. package/dist/providers.d.ts +8 -0
  51. package/dist/providers.js +25 -0
  52. package/dist/redaction.d.ts +11 -0
  53. package/dist/redaction.js +68 -0
  54. package/dist/resources.d.ts +5 -0
  55. package/dist/resources.js +30 -0
  56. package/dist/retry.d.ts +11 -0
  57. package/dist/retry.js +48 -0
  58. package/dist/rpc.d.ts +18 -0
  59. package/dist/rpc.js +187 -0
  60. package/dist/security.d.ts +51 -0
  61. package/dist/security.js +60 -0
  62. package/dist/session-stores.d.ts +25 -0
  63. package/dist/session-stores.js +116 -0
  64. package/dist/settings.d.ts +3 -0
  65. package/dist/settings.js +26 -0
  66. package/dist/skills.d.ts +8 -0
  67. package/dist/skills.js +34 -0
  68. package/dist/system-prompts.d.ts +6 -0
  69. package/dist/system-prompts.js +47 -0
  70. package/dist/testing/provider-conformance.d.ts +36 -0
  71. package/dist/testing/provider-conformance.js +164 -0
  72. package/dist/tools.d.ts +25 -0
  73. package/dist/tools.js +109 -0
  74. package/docs/agent-session-runtime.md +167 -0
  75. package/docs/api-page-template.md +32 -0
  76. package/docs/cli-rpc.md +140 -0
  77. package/docs/compaction-and-retry.md +177 -0
  78. package/docs/compaction-llm.md +108 -0
  79. package/docs/compaction-observational-memory.md +123 -0
  80. package/docs/configuration-and-manifests.md +142 -0
  81. package/docs/context-and-skills.md +113 -0
  82. package/docs/contribution-registries.md +118 -0
  83. package/docs/credentials-and-redaction.md +122 -0
  84. package/docs/extensions.md +139 -0
  85. package/docs/index.md +56 -0
  86. package/docs/input-and-prompt-assembly.md +168 -0
  87. package/docs/middleware-hooks.md +123 -0
  88. package/docs/node-filesystem-config.md +85 -0
  89. package/docs/node-jsonl-session-store.md +81 -0
  90. package/docs/provider-conformance.md +109 -0
  91. package/docs/provider-layer.md +172 -0
  92. package/docs/provider-packages.md +171 -0
  93. package/docs/providers/kimi.md +110 -0
  94. package/docs/providers/openai-compatible.md +125 -0
  95. package/docs/providers/openai.md +131 -0
  96. package/docs/providers/opencode-go.md +103 -0
  97. package/docs/providers/openrouter.md +105 -0
  98. package/docs/providers/zai.md +108 -0
  99. package/docs/public-contracts.md +375 -0
  100. package/docs/release-and-install.md +141 -0
  101. package/docs/resource-loading.md +97 -0
  102. package/docs/session-stores-and-branching.md +119 -0
  103. package/docs/settings-auth-trust-security.md +73 -0
  104. package/docs/system-prompts.md +116 -0
  105. package/docs/tools.md +151 -0
  106. package/package.json +93 -0
@@ -0,0 +1,35 @@
1
+ import type { AgentDefinition, AuthMethod, CommandDefinition, CompactionStrategy, ContextProvider, CredentialResolver, InputBuilder, PromptBuilder, ProviderPackage, ProviderRequestPolicy, ResourceLoader, RetryPolicy, SettingsProvider, Skill, StoreFactory, SystemPromptContribution, ToolDefinition } from "./contracts.js";
2
+ import { type ModelRegistry } from "./models.js";
3
+ import { type ProviderRegistry } from "./providers.js";
4
+ export interface ContributionRegistry<T> {
5
+ register(key: string, contribution: T): void;
6
+ get(key: string): T | undefined;
7
+ resolve(key: string): T;
8
+ list(): readonly T[];
9
+ }
10
+ export interface ContributionRegistryOptions {
11
+ readonly label?: string;
12
+ }
13
+ export declare function createContributionRegistry<T>(options?: ContributionRegistryOptions): ContributionRegistry<T>;
14
+ export interface ContributionRegistries {
15
+ readonly providers: ProviderRegistry;
16
+ readonly models: ModelRegistry;
17
+ readonly tools: ContributionRegistry<ToolDefinition>;
18
+ readonly contextProviders: ContributionRegistry<ContextProvider>;
19
+ readonly skills: ContributionRegistry<Skill>;
20
+ readonly commands: ContributionRegistry<CommandDefinition>;
21
+ readonly agents: ContributionRegistry<AgentDefinition>;
22
+ readonly inputBuilders: ContributionRegistry<InputBuilder>;
23
+ readonly promptBuilders: ContributionRegistry<PromptBuilder>;
24
+ readonly compactionStrategies: ContributionRegistry<CompactionStrategy>;
25
+ readonly retryPolicies: ContributionRegistry<RetryPolicy>;
26
+ readonly storeFactories: ContributionRegistry<StoreFactory>;
27
+ readonly resourceLoaders: ContributionRegistry<ResourceLoader>;
28
+ readonly settingsProviders: ContributionRegistry<SettingsProvider>;
29
+ readonly credentialResolvers: ContributionRegistry<CredentialResolver>;
30
+ readonly providerPackages: ContributionRegistry<ProviderPackage>;
31
+ readonly authMethods: ContributionRegistry<AuthMethod>;
32
+ readonly providerRequestPolicies: ContributionRegistry<ProviderRequestPolicy>;
33
+ readonly systemPromptContributions: ContributionRegistry<SystemPromptContribution>;
34
+ }
35
+ export declare function createContributionRegistries(): ContributionRegistries;
@@ -0,0 +1,47 @@
1
+ import { createModelRegistry } from "./models.js";
2
+ import { createProviderRegistry } from "./providers.js";
3
+ export function createContributionRegistry(options = {}) {
4
+ const label = options.label ?? "contribution";
5
+ const byKey = new Map();
6
+ return {
7
+ register(key, contribution) {
8
+ byKey.set(key, contribution);
9
+ },
10
+ get(key) {
11
+ return byKey.get(key);
12
+ },
13
+ resolve(key) {
14
+ const contribution = byKey.get(key);
15
+ if (!contribution)
16
+ throw new Error(`Unknown ${label}: ${key}`);
17
+ return contribution;
18
+ },
19
+ list() {
20
+ return [...byKey.values()];
21
+ },
22
+ };
23
+ }
24
+ export function createContributionRegistries() {
25
+ return {
26
+ providers: createProviderRegistry(),
27
+ models: createModelRegistry(),
28
+ tools: createContributionRegistry({ label: "tool" }),
29
+ contextProviders: createContributionRegistry({ label: "context provider" }),
30
+ skills: createContributionRegistry({ label: "skill" }),
31
+ commands: createContributionRegistry({ label: "command" }),
32
+ agents: createContributionRegistry({ label: "agent" }),
33
+ inputBuilders: createContributionRegistry({ label: "input builder" }),
34
+ promptBuilders: createContributionRegistry({ label: "prompt builder" }),
35
+ compactionStrategies: createContributionRegistry({ label: "compaction strategy" }),
36
+ retryPolicies: createContributionRegistry({ label: "retry policy" }),
37
+ storeFactories: createContributionRegistry({ label: "store factory" }),
38
+ resourceLoaders: createContributionRegistry({ label: "resource loader" }),
39
+ settingsProviders: createContributionRegistry({ label: "settings provider" }),
40
+ credentialResolvers: createContributionRegistry({ label: "credential resolver" }),
41
+ providerPackages: createContributionRegistry({ label: "provider package" }),
42
+ authMethods: createContributionRegistry({ label: "auth method" }),
43
+ providerRequestPolicies: createContributionRegistry({ label: "provider request policy" }),
44
+ systemPromptContributions: createContributionRegistry({ label: "system prompt contribution" }),
45
+ };
46
+ }
47
+ //# sourceMappingURL=contributions.js.map
@@ -0,0 +1,22 @@
1
+ import type { Credential, CredentialResolver, CredentialRequest, CredentialResolverSource, OAuthCredentialStore, OAuthCredentials, OAuthProvider } from "./contracts.js";
2
+ export type CredentialValueSource = string | (() => string | undefined | Promise<string | undefined>) | CredentialResolver;
3
+ export interface CredentialRecord {
4
+ readonly name: string;
5
+ readonly provider?: string;
6
+ readonly credential: Credential;
7
+ }
8
+ export interface MemoryCredentialStore extends CredentialResolver {
9
+ set(record: CredentialRecord): void;
10
+ delete(request: Pick<CredentialRequest, "name" | "provider">): boolean;
11
+ clear(): void;
12
+ }
13
+ export declare function createMemoryCredentialStore(initial?: readonly CredentialRecord[]): MemoryCredentialStore;
14
+ export declare function createChainedCredentialResolver(resolvers: readonly CredentialResolver[]): CredentialResolver;
15
+ export declare function createExplicitCredentialResolver(sources: readonly CredentialResolverSource[]): CredentialResolver;
16
+ export declare function createEnvCredentialResolver(env: Readonly<Record<string, string | undefined>>, map: Readonly<Record<string, string>>): CredentialResolver;
17
+ export declare function refreshOAuthCredential(options: {
18
+ readonly provider: OAuthProvider;
19
+ readonly credentials: OAuthCredentials;
20
+ readonly store?: OAuthCredentialStore;
21
+ }): Promise<OAuthCredentials>;
22
+ export declare function resolveCredentialValue(source: CredentialValueSource | undefined, request: CredentialRequest): Promise<string | undefined>;
@@ -0,0 +1,63 @@
1
+ export function createMemoryCredentialStore(initial = []) {
2
+ const records = new Map();
3
+ const key = (name, provider) => `${provider ?? ""}\u0000${name}`;
4
+ const store = {
5
+ set(record) {
6
+ records.set(key(record.name, record.provider), record.credential);
7
+ },
8
+ delete(request) {
9
+ return records.delete(key(request.name, request.provider));
10
+ },
11
+ clear() {
12
+ records.clear();
13
+ },
14
+ resolve(request) {
15
+ return records.get(key(request.name, request.provider)) ?? records.get(key(request.name));
16
+ },
17
+ };
18
+ for (const record of initial)
19
+ store.set(record);
20
+ return store;
21
+ }
22
+ export function createChainedCredentialResolver(resolvers) {
23
+ return createExplicitCredentialResolver(resolvers.map((resolver, index) => ({ name: String(index), resolver })));
24
+ }
25
+ export function createExplicitCredentialResolver(sources) {
26
+ return {
27
+ async resolve(request) {
28
+ for (const source of sources) {
29
+ const credential = await source.resolver.resolve(request);
30
+ if (credential)
31
+ return credential;
32
+ }
33
+ return undefined;
34
+ },
35
+ };
36
+ }
37
+ export function createEnvCredentialResolver(env, map) {
38
+ return {
39
+ resolve(request) {
40
+ const envName = map[credentialMapKey(request.name, request.provider)] ?? (request.provider ? map[request.provider] : undefined) ?? map[request.name];
41
+ const value = envName ? env[envName] : undefined;
42
+ return value ? { type: "api_key", value, metadata: { source: "env", envName } } : undefined;
43
+ },
44
+ };
45
+ }
46
+ export async function refreshOAuthCredential(options) {
47
+ const refreshed = options.provider.refresh ? await options.provider.refresh(options.credentials) : options.credentials;
48
+ await options.store?.set(options.provider.id, refreshed);
49
+ return refreshed;
50
+ }
51
+ function credentialMapKey(name, provider) {
52
+ return provider ? `${provider}:${name}` : name;
53
+ }
54
+ export async function resolveCredentialValue(source, request) {
55
+ if (!source)
56
+ return undefined;
57
+ if (typeof source === "string")
58
+ return source;
59
+ if (typeof source === "function")
60
+ return source();
61
+ return (await source.resolve(request))?.value;
62
+ }
63
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1,25 @@
1
+ import type { Extension, ExtensionEvent, ExtensionLifecycleEventName } from "./contracts.js";
2
+ import { type ContributionRegistries } from "./contributions.js";
3
+ import { type MiddlewareRegistry } from "./middleware.js";
4
+ import { type PermissionPolicy } from "./security.js";
5
+ export type ExtensionEventHandler = (event: ExtensionEvent) => void | Promise<void>;
6
+ export type ExtensionErrorPolicy = "event" | "throw";
7
+ export interface ExtensionKernelOptions {
8
+ readonly registries?: ContributionRegistries;
9
+ readonly middleware?: MiddlewareRegistry;
10
+ readonly errorPolicy?: ExtensionErrorPolicy;
11
+ readonly secrets?: readonly (string | undefined)[];
12
+ readonly permission?: PermissionPolicy;
13
+ }
14
+ export interface ExtensionEventBus {
15
+ on(type: ExtensionLifecycleEventName | string, handler: ExtensionEventHandler): () => void;
16
+ emit(event: ExtensionEvent): Promise<void>;
17
+ }
18
+ export interface ExtensionKernel {
19
+ readonly registries: ContributionRegistries;
20
+ readonly middleware: MiddlewareRegistry;
21
+ readonly events: ExtensionEventBus;
22
+ load(extensions: readonly Extension[]): Promise<void>;
23
+ }
24
+ export declare function createExtensionEventBus(options?: Pick<ExtensionKernelOptions, "errorPolicy" | "secrets">): ExtensionEventBus;
25
+ export declare function createExtensionKernel(options?: ExtensionKernelOptions): ExtensionKernel;
@@ -0,0 +1,131 @@
1
+ import { createContributionRegistries } from "./contributions.js";
2
+ import { createMiddlewareRegistry } from "./middleware.js";
3
+ import { authMethodKey, systemPromptContributionKey } from "./provider-packages.js";
4
+ import { errorToErrorInfo } from "./redaction.js";
5
+ import { assertPermission } from "./security.js";
6
+ function extensionError(error, source, secrets = []) {
7
+ return { type: "extension_error", extension: source, error: errorToErrorInfo(error, secrets) };
8
+ }
9
+ export function createExtensionEventBus(options = {}) {
10
+ const handlers = new Map();
11
+ const errorPolicy = options.errorPolicy ?? "event";
12
+ const secrets = options.secrets ?? [];
13
+ const bus = {
14
+ on(type, handler) {
15
+ const list = handlers.get(type) ?? [];
16
+ list.push(handler);
17
+ handlers.set(type, list);
18
+ return () => {
19
+ const next = (handlers.get(type) ?? []).filter((item) => item !== handler);
20
+ if (next.length === 0)
21
+ handlers.delete(type);
22
+ else
23
+ handlers.set(type, next);
24
+ };
25
+ },
26
+ async emit(event) {
27
+ for (const handler of handlers.get(event.type) ?? []) {
28
+ try {
29
+ await handler(event);
30
+ }
31
+ catch (error) {
32
+ if (errorPolicy === "throw")
33
+ throw error;
34
+ if (event.type !== "extension_error")
35
+ await bus.emit(extensionError(error, event.extension, secrets));
36
+ }
37
+ }
38
+ },
39
+ };
40
+ return bus;
41
+ }
42
+ export function createExtensionKernel(options = {}) {
43
+ const registries = options.registries ?? createContributionRegistries();
44
+ const events = createExtensionEventBus(options);
45
+ const middleware = options.middleware ?? createMiddlewareRegistry({ ...options, onError: events.emit });
46
+ const errorPolicy = options.errorPolicy ?? "event";
47
+ const secrets = options.secrets ?? [];
48
+ const api = {
49
+ registries,
50
+ middleware,
51
+ on: events.on,
52
+ emit: events.emit,
53
+ use: middleware.use,
54
+ registerProvider(provider) {
55
+ registries.providers.register(provider);
56
+ },
57
+ registerModel(model) {
58
+ registries.models.register(model);
59
+ },
60
+ registerTool(tool) {
61
+ registries.tools.register(tool.name, tool);
62
+ },
63
+ registerContextProvider(provider) {
64
+ registries.contextProviders.register(provider.name, provider);
65
+ },
66
+ registerSkill(skill) {
67
+ registries.skills.register(skill.name, skill);
68
+ },
69
+ registerCommand(command) {
70
+ registries.commands.register(command.name, command);
71
+ },
72
+ registerAgent(agent) {
73
+ registries.agents.register(agent.name, agent);
74
+ },
75
+ registerInputBuilder(builder) {
76
+ registries.inputBuilders.register(builder.name, builder);
77
+ },
78
+ registerPromptBuilder(builder) {
79
+ registries.promptBuilders.register(builder.name, builder);
80
+ },
81
+ registerCompactionStrategy(strategy) {
82
+ registries.compactionStrategies.register(strategy.name, strategy);
83
+ },
84
+ registerRetryPolicy(policy) {
85
+ registries.retryPolicies.register(policy.name, policy);
86
+ },
87
+ registerStoreFactory(factory) {
88
+ registries.storeFactories.register(factory.name, factory);
89
+ },
90
+ registerResourceLoader(key, loader) {
91
+ registries.resourceLoaders.register(key, loader);
92
+ },
93
+ registerSettingsProvider(key, provider) {
94
+ registries.settingsProviders.register(key, provider);
95
+ },
96
+ registerCredentialResolver(key, resolver) {
97
+ registries.credentialResolvers.register(key, resolver);
98
+ },
99
+ registerProviderPackage(providerPackage) {
100
+ registries.providerPackages.register(providerPackage.name, providerPackage);
101
+ },
102
+ registerAuthMethod(method) {
103
+ registries.authMethods.register(authMethodKey(method), method);
104
+ },
105
+ registerProviderRequestPolicy(policy) {
106
+ registries.providerRequestPolicies.register(policy.name, policy);
107
+ },
108
+ registerSystemPromptContribution(contribution) {
109
+ registries.systemPromptContributions.register(systemPromptContributionKey(contribution), contribution);
110
+ },
111
+ };
112
+ return {
113
+ registries,
114
+ middleware,
115
+ events,
116
+ async load(extensions) {
117
+ for (const extension of extensions) {
118
+ try {
119
+ await assertPermission(options.permission, { kind: "extension", action: "setup", target: extension.name });
120
+ await extension.setup(api);
121
+ }
122
+ catch (error) {
123
+ if (errorPolicy === "throw")
124
+ throw error;
125
+ await events.emit(extensionError(error, extension.name, secrets));
126
+ }
127
+ }
128
+ },
129
+ };
130
+ }
131
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1,47 @@
1
+ export type * from "./contracts.js";
2
+ export { createAgent, createAgentSession } from "./agents.js";
3
+ export { assertJsonObject, isJsonObject, loadConfigLayers, mergeConfigLayers } from "./config.js";
4
+ export type { ConfigLayer, ConfigLoadContext, ConfigProvider } from "./config.js";
5
+ export { createDefaultCompactionStrategy, isCompactionEntryData } from "./compaction.js";
6
+ export type { DefaultCompactionStrategyOptions } from "./compaction.js";
7
+ export { createDefaultRetryPolicy, isTransientErrorInfo, waitForRetry } from "./retry.js";
8
+ export type { DefaultRetryPolicyOptions } from "./retry.js";
9
+ export { createContributionRegistries, createContributionRegistry } from "./contributions.js";
10
+ export type { ContributionRegistries, ContributionRegistry, ContributionRegistryOptions } from "./contributions.js";
11
+ export { createChainedCredentialResolver, createEnvCredentialResolver, createExplicitCredentialResolver, createMemoryCredentialStore, refreshOAuthCredential, resolveCredentialValue } from "./credentials.js";
12
+ export { createExtensionEventBus, createExtensionKernel } from "./extensions.js";
13
+ export type { ExtensionErrorPolicy, ExtensionEventBus, ExtensionEventHandler, ExtensionKernel, ExtensionKernelOptions } from "./extensions.js";
14
+ export type { CredentialRecord, CredentialValueSource, MemoryCredentialStore } from "./credentials.js";
15
+ export { createModelRegistry } from "./models.js";
16
+ export { authMethodKey, defineProviderPackage, systemPromptContributionKey } from "./provider-packages.js";
17
+ export { createProviderRequestPolicyChain, createSessionCachePolicy, mergeProviderRequestOptions } from "./provider-request-policy.js";
18
+ export type { SessionCachePolicyOptions } from "./provider-request-policy.js";
19
+ export { composeSystemPrompt, mergeSystemPromptConfig } from "./system-prompts.js";
20
+ export type { ComposeSystemPromptOptions } from "./system-prompts.js";
21
+ export type { ModelRegistry } from "./models.js";
22
+ export { definePrismManifest, parsePrismManifest } from "./manifests.js";
23
+ export type { ManifestContributionDeclaration, ManifestContributionKind, ManifestResourceDeclaration, PrismManifest } from "./manifests.js";
24
+ export { loadJsonResource, loadManifestResource, loadTextResource } from "./resources.js";
25
+ export { createChainedSettingsProvider, createStaticSettingsProvider } from "./settings.js";
26
+ export { createMiddlewareRegistry } from "./middleware.js";
27
+ export type { Middleware, MiddlewareHookName, MiddlewareNext, MiddlewareRegistry, MiddlewareRegistryOptions } from "./middleware.js";
28
+ export { assembleProviderInput, createDefaultInputBuilder, createDefaultPromptBuilder, renderPromptTemplate, resolveContextProviders } from "./input.js";
29
+ export type { AgentInput, AssembleProviderInputOptions, DefaultInputBuilder, DefaultInputBuildContext, DefaultPromptBuilder, InputAttachment, PromptInstruction, PromptTemplateOptions, ResolveContextOptions } from "./input.js";
30
+ export { createMockProvider } from "./mock-provider.js";
31
+ export { createMemorySessionStore, createSessionEntry, getSessionBranchEntries, listSessionBranches, rebuildSessionContext } from "./session-stores.js";
32
+ export type { CreateSessionEntryOptions, SessionBranch, SessionBranchOptions, SessionContextSnapshot } from "./session-stores.js";
33
+ export type { MockProviderOptions } from "./mock-provider.js";
34
+ export { providerContentDelta, providerDone, providerError, providerTextDelta, providerThinkingDelta, providerToolCall, providerToolCallDelta, providerUsage, toolCallContent, } from "./provider-events.js";
35
+ export { createProviderRegistry } from "./providers.js";
36
+ export type { ProviderRegistry } from "./providers.js";
37
+ export { createSecretRedactor, errorToErrorInfo, redactAgentEvent, redactMessage, redactProviderRequest, redactSecrets, redactSessionEntry } from "./redaction.js";
38
+ export type { SecretRedactor } from "./redaction.js";
39
+ export { assertPermission, assertTrusted, checkPermission, createStaticPermissionPolicy, createStaticTrustPolicy, denialToErrorInfo, isTrusted, PermissionDeniedError, TrustDeniedError } from "./security.js";
40
+ export type { PermissionDecision, PermissionPolicy, PermissionRequest, TrustDecision, TrustPolicy, TrustRequest } from "./security.js";
41
+ export { createSkillRegistry, resolveActiveSkills } from "./skills.js";
42
+ export type { ResolveActiveSkillsOptions } from "./skills.js";
43
+ export { createToolRegistry, dispatchToolCall, filterTools } from "./tools.js";
44
+ export type { DispatchToolCallOptions, ToolFilter, ToolFilterInput, ToolValidator } from "./tools.js";
45
+ export declare const name = "prism";
46
+ export declare const version = "0.0.1";
47
+ export declare const description = "Agent harness for AI providers, agents, sessions, and tools.";
package/dist/index.js ADDED
@@ -0,0 +1,28 @@
1
+ export { createAgent, createAgentSession } from "./agents.js";
2
+ export { assertJsonObject, isJsonObject, loadConfigLayers, mergeConfigLayers } from "./config.js";
3
+ export { createDefaultCompactionStrategy, isCompactionEntryData } from "./compaction.js";
4
+ export { createDefaultRetryPolicy, isTransientErrorInfo, waitForRetry } from "./retry.js";
5
+ export { createContributionRegistries, createContributionRegistry } from "./contributions.js";
6
+ export { createChainedCredentialResolver, createEnvCredentialResolver, createExplicitCredentialResolver, createMemoryCredentialStore, refreshOAuthCredential, resolveCredentialValue } from "./credentials.js";
7
+ export { createExtensionEventBus, createExtensionKernel } from "./extensions.js";
8
+ export { createModelRegistry } from "./models.js";
9
+ export { authMethodKey, defineProviderPackage, systemPromptContributionKey } from "./provider-packages.js";
10
+ export { createProviderRequestPolicyChain, createSessionCachePolicy, mergeProviderRequestOptions } from "./provider-request-policy.js";
11
+ export { composeSystemPrompt, mergeSystemPromptConfig } from "./system-prompts.js";
12
+ export { definePrismManifest, parsePrismManifest } from "./manifests.js";
13
+ export { loadJsonResource, loadManifestResource, loadTextResource } from "./resources.js";
14
+ export { createChainedSettingsProvider, createStaticSettingsProvider } from "./settings.js";
15
+ export { createMiddlewareRegistry } from "./middleware.js";
16
+ export { assembleProviderInput, createDefaultInputBuilder, createDefaultPromptBuilder, renderPromptTemplate, resolveContextProviders } from "./input.js";
17
+ export { createMockProvider } from "./mock-provider.js";
18
+ export { createMemorySessionStore, createSessionEntry, getSessionBranchEntries, listSessionBranches, rebuildSessionContext } from "./session-stores.js";
19
+ export { providerContentDelta, providerDone, providerError, providerTextDelta, providerThinkingDelta, providerToolCall, providerToolCallDelta, providerUsage, toolCallContent, } from "./provider-events.js";
20
+ export { createProviderRegistry } from "./providers.js";
21
+ export { createSecretRedactor, errorToErrorInfo, redactAgentEvent, redactMessage, redactProviderRequest, redactSecrets, redactSessionEntry } from "./redaction.js";
22
+ export { assertPermission, assertTrusted, checkPermission, createStaticPermissionPolicy, createStaticTrustPolicy, denialToErrorInfo, isTrusted, PermissionDeniedError, TrustDeniedError } from "./security.js";
23
+ export { createSkillRegistry, resolveActiveSkills } from "./skills.js";
24
+ export { createToolRegistry, dispatchToolCall, filterTools } from "./tools.js";
25
+ export const name = "prism";
26
+ export const version = "0.0.1";
27
+ export const description = "Agent harness for AI providers, agents, sessions, and tools.";
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,57 @@
1
+ import type { ContentBlock, ContextBlock, ContextProvider, ContextResolutionContext, InputBuilder, InputBuildContext, JsonObject, Message, ModelConfig, PromptBuilder, PromptBuildRequest, ProviderRequest, ProviderRequestOptions, ResourceLoader, Skill, ToolDefinition, ToolResult } from "./contracts.js";
2
+ import type { MiddlewareRegistry } from "./middleware.js";
3
+ export type AgentInput = string | Message | readonly Message[];
4
+ export interface PromptInstruction {
5
+ readonly text: string;
6
+ readonly label?: string;
7
+ readonly metadata?: Readonly<Record<string, unknown>>;
8
+ }
9
+ export interface InputAttachment {
10
+ readonly name?: string;
11
+ readonly text?: string;
12
+ readonly content?: readonly ContentBlock[];
13
+ readonly uri?: string;
14
+ readonly mediaType?: string;
15
+ readonly metadata?: Readonly<Record<string, unknown>>;
16
+ }
17
+ export interface DefaultInputBuildContext extends InputBuildContext {
18
+ readonly systemInstructions?: string | readonly string[];
19
+ readonly developerInstructions?: string | readonly string[];
20
+ readonly instructions?: string | PromptInstruction | readonly PromptInstruction[];
21
+ readonly history?: readonly Message[];
22
+ readonly summaries?: readonly (string | ContextBlock)[];
23
+ readonly attachments?: readonly InputAttachment[];
24
+ readonly resourceUris?: readonly string[];
25
+ readonly resourceLoader?: ResourceLoader;
26
+ readonly toolResults?: readonly ToolResult[];
27
+ readonly middleware?: MiddlewareRegistry;
28
+ }
29
+ export interface DefaultInputBuilder extends InputBuilder {
30
+ build(input: AgentInput, context?: DefaultInputBuildContext): Promise<readonly Message[]>;
31
+ }
32
+ export interface ResolveContextOptions extends Omit<ContextResolutionContext, "messages"> {
33
+ readonly messages: readonly Message[];
34
+ readonly providers?: readonly ContextProvider[];
35
+ readonly middleware?: MiddlewareRegistry;
36
+ }
37
+ export interface DefaultPromptBuilder extends PromptBuilder {
38
+ build(request: PromptBuildRequest): Promise<readonly Message[]>;
39
+ }
40
+ export interface PromptTemplateOptions {
41
+ readonly missing?: "throw" | "preserve";
42
+ }
43
+ export interface AssembleProviderInputOptions extends DefaultInputBuildContext {
44
+ readonly model: ModelConfig;
45
+ readonly input: AgentInput;
46
+ readonly inputBuilder?: InputBuilder;
47
+ readonly contextProviders?: readonly ContextProvider[];
48
+ readonly promptBuilder?: PromptBuilder;
49
+ readonly skills?: readonly Skill[];
50
+ readonly tools?: readonly ToolDefinition[];
51
+ readonly providerOptions?: ProviderRequestOptions;
52
+ }
53
+ export declare function createDefaultInputBuilder(): DefaultInputBuilder;
54
+ export declare function resolveContextProviders(options: ResolveContextOptions): Promise<readonly ContextBlock[]>;
55
+ export declare function createDefaultPromptBuilder(): DefaultPromptBuilder;
56
+ export declare function renderPromptTemplate(template: string, variables: JsonObject, options?: PromptTemplateOptions): string;
57
+ export declare function assembleProviderInput(options: AssembleProviderInputOptions): Promise<ProviderRequest>;