@pikku/core 0.12.80 → 0.12.83

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 (237) hide show
  1. package/CHANGELOG.md +345 -0
  2. package/dist/errors/index.d.ts +1 -1
  3. package/dist/errors/index.js +1 -1
  4. package/dist/function/function-runner.js +2 -5
  5. package/dist/function/index.d.ts +1 -1
  6. package/dist/index.d.ts +11 -11
  7. package/dist/index.js +3 -3
  8. package/dist/pikku-state.js +4 -0
  9. package/dist/services/ai-agent-runner-service.d.ts +7 -0
  10. package/dist/services/ai-run-state-service.d.ts +10 -0
  11. package/dist/services/in-memory-ai-run-state-service.d.ts +5 -1
  12. package/dist/services/in-memory-ai-run-state-service.js +9 -0
  13. package/dist/services/index.d.ts +15 -16
  14. package/dist/services/index.js +5 -5
  15. package/dist/services/meta-service.d.ts +2 -1
  16. package/dist/services/scoped-credential-service.d.ts +21 -0
  17. package/dist/services/scoped-credential-service.js +53 -0
  18. package/dist/testing/service-tests/ai-storage-service-tests.js +76 -0
  19. package/dist/types/core.types.d.ts +2 -3
  20. package/dist/types/state.types.d.ts +19 -1
  21. package/dist/wirings/actor-flow/index.d.ts +1 -1
  22. package/dist/wirings/ai-agent/ai-agent-finalize.d.ts +58 -0
  23. package/dist/wirings/ai-agent/ai-agent-finalize.js +138 -0
  24. package/dist/wirings/ai-agent/ai-agent-interrupt.js +1 -0
  25. package/dist/wirings/ai-agent/ai-agent-memory.d.ts +2 -8
  26. package/dist/wirings/ai-agent/ai-agent-memory.js +34 -17
  27. package/dist/wirings/ai-agent/ai-agent-model-config.d.ts +7 -0
  28. package/dist/wirings/ai-agent/ai-agent-model-config.js +44 -1
  29. package/dist/wirings/ai-agent/ai-agent-prepare.js +4 -0
  30. package/dist/wirings/ai-agent/ai-agent-runner.js +61 -40
  31. package/dist/wirings/ai-agent/ai-agent-stream.js +89 -36
  32. package/dist/wirings/ai-agent/ai-agent-turn.d.ts +1 -0
  33. package/dist/wirings/ai-agent/ai-agent-turn.js +1 -0
  34. package/dist/wirings/ai-agent/ai-agent.types.d.ts +46 -1
  35. package/dist/wirings/ai-agent/index.d.ts +8 -7
  36. package/dist/wirings/ai-agent/index.js +5 -4
  37. package/dist/wirings/ai-scorer/ai-scorer-grade.d.ts +26 -0
  38. package/dist/wirings/ai-scorer/ai-scorer-grade.js +33 -0
  39. package/dist/wirings/ai-scorer/ai-scorer-judge.d.ts +17 -0
  40. package/dist/wirings/ai-scorer/ai-scorer-judge.js +92 -0
  41. package/dist/wirings/ai-scorer/ai-scorer-live.d.ts +15 -0
  42. package/dist/wirings/ai-scorer/ai-scorer-live.js +38 -0
  43. package/dist/wirings/ai-scorer/ai-scorer-registry.d.ts +18 -0
  44. package/dist/wirings/ai-scorer/ai-scorer-registry.js +46 -0
  45. package/dist/wirings/ai-scorer/ai-scorer-sampling.d.ts +8 -0
  46. package/dist/wirings/ai-scorer/ai-scorer-sampling.js +31 -0
  47. package/dist/wirings/ai-scorer/ai-scorer-snapshots.d.ts +10 -0
  48. package/dist/wirings/ai-scorer/ai-scorer-snapshots.js +40 -0
  49. package/dist/wirings/ai-scorer/ai-scorer-worker.d.ts +15 -0
  50. package/dist/wirings/ai-scorer/ai-scorer-worker.js +58 -0
  51. package/dist/wirings/ai-scorer/ai-scorer.d.ts +39 -0
  52. package/dist/wirings/ai-scorer/ai-scorer.js +40 -0
  53. package/dist/wirings/ai-scorer/ai-scorer.types.d.ts +90 -0
  54. package/dist/wirings/ai-scorer/ai-scorer.types.js +4 -0
  55. package/dist/wirings/ai-scorer/index.d.ts +6 -0
  56. package/dist/wirings/ai-scorer/index.js +5 -0
  57. package/dist/wirings/channel/index.d.ts +5 -6
  58. package/dist/wirings/channel/index.js +3 -4
  59. package/dist/wirings/channel/local/local-channel-runner.js +8 -1
  60. package/dist/wirings/cli/channel/cli-raw-channel-runner.js +9 -1
  61. package/dist/wirings/cli/channel/index.d.ts +1 -2
  62. package/dist/wirings/cli/channel/index.js +0 -1
  63. package/dist/wirings/cli/cli-runner.js +13 -1
  64. package/dist/wirings/credential/index.d.ts +1 -1
  65. package/dist/wirings/gateway/index.d.ts +1 -1
  66. package/dist/wirings/http/http-runner.js +8 -2
  67. package/dist/wirings/http/index.d.ts +1 -2
  68. package/dist/wirings/mcp/index.d.ts +1 -1
  69. package/dist/wirings/mcp/mcp-runner.d.ts +15 -0
  70. package/dist/wirings/mcp/mcp-runner.js +18 -5
  71. package/dist/wirings/persona/index.d.ts +3 -4
  72. package/dist/wirings/persona/index.js +2 -3
  73. package/dist/wirings/queue/index.d.ts +1 -3
  74. package/dist/wirings/queue/index.js +1 -3
  75. package/dist/wirings/rpc/addon-runner.d.ts +8 -0
  76. package/dist/wirings/rpc/addon-runner.js +31 -3
  77. package/dist/wirings/rpc/rpc-runner.js +4 -0
  78. package/dist/wirings/rpc/rpc-types.d.ts +8 -0
  79. package/dist/wirings/rpc/wire-addon.d.ts +25 -0
  80. package/dist/wirings/rpc/wire-addon.js +8 -0
  81. package/dist/wirings/scheduler/index.d.ts +1 -1
  82. package/dist/wirings/trigger/index.d.ts +1 -1
  83. package/dist/wirings/virtual-user/index.d.ts +5 -6
  84. package/dist/wirings/virtual-user/index.js +2 -4
  85. package/dist/wirings/workflow/dsl/workflow-dsl.types.d.ts +85 -15
  86. package/dist/wirings/workflow/feature.d.ts +2 -1
  87. package/dist/wirings/workflow/index.d.ts +5 -16
  88. package/dist/wirings/workflow/index.js +1 -9
  89. package/dist/wirings/workflow/pikku-scenario-service.d.ts +17 -7
  90. package/dist/wirings/workflow/pikku-scenario-service.js +48 -13
  91. package/dist/wirings/workflow/pikku-workflow-service.js +17 -3
  92. package/dist/wirings/workflow/scenario-step.types.d.ts +8 -0
  93. package/dist/wirings/workflow/scenario.types.d.ts +37 -0
  94. package/dist/wirings/workflow/workflow-approval-audit.d.ts +16 -0
  95. package/dist/wirings/workflow/workflow-approval-audit.js +40 -0
  96. package/dist/wirings/workflow/workflow-approval-policy.d.ts +20 -0
  97. package/dist/wirings/workflow/workflow-approval-policy.js +48 -0
  98. package/dist/wirings/workflow/workflow-approval.d.ts +29 -1
  99. package/dist/wirings/workflow/workflow-approval.js +65 -2
  100. package/dist/wirings/workflow/workflow-run-ownership.d.ts +2 -1
  101. package/dist/wirings/workflow/workflow-run-ownership.js +2 -1
  102. package/dist/wirings/workflow/workflow.types.d.ts +2 -37
  103. package/knowledge/decisions/internals/addon-pikku-meta-ships-at-the-package-root-or-under-dist.md +32 -0
  104. package/knowledge/decisions/internals/an-addon-scope-root-loses-to-a-root-the-host-already-declares.md +39 -0
  105. package/knowledge/decisions/internals/index.md +30 -3
  106. package/knowledge/decisions/internals/validate-runs-checks-by-precondition.md +115 -0
  107. package/knowledge/decisions/security/a-function-never-receives-the-secret-service.md +37 -0
  108. package/knowledge/decisions/security/a-workflow-run-is-read-and-approved-by-its-owner.md +30 -14
  109. package/knowledge/decisions/security/an-approval-answer-outlives-the-run-it-answered.md +59 -0
  110. package/knowledge/decisions/security/index.md +3 -1
  111. package/knowledge/questions/index.md +1 -1
  112. package/package.json +3 -2
  113. package/scripts/generate-api-report.mts +143 -18
  114. package/src/api-report.test.ts +2 -2
  115. package/src/errors/index.ts +1 -1
  116. package/src/function/function-runner.test.ts +52 -0
  117. package/src/function/function-runner.ts +5 -9
  118. package/src/function/index.ts +0 -2
  119. package/src/index.ts +0 -35
  120. package/src/pikku-state.ts +5 -0
  121. package/src/public-surface.json +81 -118
  122. package/src/services/ai-agent-runner-service.ts +12 -1
  123. package/src/services/ai-run-state-service.ts +11 -0
  124. package/src/services/in-memory-ai-run-state-service.ts +13 -0
  125. package/src/services/index.ts +7 -58
  126. package/src/services/meta-service.ts +2 -4
  127. package/src/services/scoped-credential-service.test.ts +86 -0
  128. package/src/services/scoped-credential-service.ts +63 -0
  129. package/src/testing/service-tests/ai-storage-service-tests.ts +93 -0
  130. package/src/types/core.types.ts +4 -7
  131. package/src/types/state.types.ts +21 -1
  132. package/src/wirings/actor-flow/index.ts +0 -3
  133. package/src/wirings/ai-agent/ai-agent-finalize.test.ts +186 -0
  134. package/src/wirings/ai-agent/ai-agent-finalize.ts +197 -0
  135. package/src/wirings/ai-agent/ai-agent-interrupt.ts +1 -0
  136. package/src/wirings/ai-agent/ai-agent-memory.ts +54 -38
  137. package/src/wirings/ai-agent/ai-agent-model-config.test.ts +72 -3
  138. package/src/wirings/ai-agent/ai-agent-model-config.ts +49 -1
  139. package/src/wirings/ai-agent/ai-agent-prepare.ts +4 -0
  140. package/src/wirings/ai-agent/ai-agent-runner.ts +71 -40
  141. package/src/wirings/ai-agent/ai-agent-stream-output-hooks.test.ts +353 -0
  142. package/src/wirings/ai-agent/ai-agent-stream.ts +116 -54
  143. package/src/wirings/ai-agent/ai-agent-turn.test.ts +67 -0
  144. package/src/wirings/ai-agent/ai-agent-turn.ts +1 -0
  145. package/src/wirings/ai-agent/ai-agent.types.ts +64 -4
  146. package/src/wirings/ai-agent/index.ts +2 -16
  147. package/src/wirings/ai-scorer/ai-scorer-grade.test.ts +106 -0
  148. package/src/wirings/ai-scorer/ai-scorer-grade.ts +55 -0
  149. package/src/wirings/ai-scorer/ai-scorer-judge.test.ts +143 -0
  150. package/src/wirings/ai-scorer/ai-scorer-judge.ts +120 -0
  151. package/src/wirings/ai-scorer/ai-scorer-live.test.ts +174 -0
  152. package/src/wirings/ai-scorer/ai-scorer-live.ts +56 -0
  153. package/src/wirings/ai-scorer/ai-scorer-registry.ts +63 -0
  154. package/src/wirings/ai-scorer/ai-scorer-sampling.test.ts +34 -0
  155. package/src/wirings/ai-scorer/ai-scorer-sampling.ts +36 -0
  156. package/src/wirings/ai-scorer/ai-scorer-snapshots.test.ts +49 -0
  157. package/src/wirings/ai-scorer/ai-scorer-snapshots.ts +46 -0
  158. package/src/wirings/ai-scorer/ai-scorer-worker.test.ts +122 -0
  159. package/src/wirings/ai-scorer/ai-scorer-worker.ts +69 -0
  160. package/src/wirings/ai-scorer/ai-scorer.ts +76 -0
  161. package/src/wirings/ai-scorer/ai-scorer.types.ts +107 -0
  162. package/src/wirings/ai-scorer/index.ts +24 -0
  163. package/src/wirings/channel/index.ts +1 -20
  164. package/src/wirings/channel/local/local-channel-runner.test.ts +68 -0
  165. package/src/wirings/channel/local/local-channel-runner.ts +8 -1
  166. package/src/wirings/cli/channel/cli-raw-channel-runner.test.ts +23 -0
  167. package/src/wirings/cli/channel/cli-raw-channel-runner.ts +12 -1
  168. package/src/wirings/cli/channel/index.ts +0 -7
  169. package/src/wirings/cli/cli-runner.test.ts +68 -0
  170. package/src/wirings/cli/cli-runner.ts +18 -1
  171. package/src/wirings/credential/index.ts +0 -1
  172. package/src/wirings/gateway/index.ts +0 -3
  173. package/src/wirings/http/http-runner.test.ts +66 -0
  174. package/src/wirings/http/http-runner.ts +10 -2
  175. package/src/wirings/http/index.ts +1 -1
  176. package/src/wirings/mcp/index.ts +0 -1
  177. package/src/wirings/mcp/mcp-runner.test.ts +181 -0
  178. package/src/wirings/mcp/mcp-runner.ts +35 -5
  179. package/src/wirings/persona/index.ts +0 -8
  180. package/src/wirings/queue/index.ts +0 -14
  181. package/src/wirings/rpc/addon-runner.ts +62 -3
  182. package/src/wirings/rpc/addon-secrets.test.ts +391 -0
  183. package/src/wirings/rpc/rpc-runner.test.ts +2 -0
  184. package/src/wirings/rpc/rpc-runner.ts +4 -0
  185. package/src/wirings/rpc/rpc-types.ts +8 -0
  186. package/src/wirings/rpc/wire-addon.ts +33 -0
  187. package/src/wirings/scheduler/index.ts +0 -1
  188. package/src/wirings/trigger/index.ts +0 -1
  189. package/src/wirings/virtual-user/index.ts +0 -16
  190. package/src/wirings/workflow/dsl/workflow-dsl.types.ts +96 -16
  191. package/src/wirings/workflow/feature.ts +2 -5
  192. package/src/wirings/workflow/graph/graph-runner.test.ts +72 -0
  193. package/src/wirings/workflow/index.ts +2 -68
  194. package/src/wirings/workflow/pikku-scenario-service.ts +81 -16
  195. package/src/wirings/workflow/pikku-workflow-service.test.ts +13 -12
  196. package/src/wirings/workflow/pikku-workflow-service.ts +28 -4
  197. package/src/wirings/workflow/scenario-expectations.test.ts +75 -0
  198. package/src/wirings/workflow/scenario-hooks.test.ts +3 -2
  199. package/src/wirings/workflow/scenario-step.types.ts +8 -0
  200. package/src/wirings/workflow/scenario.types.ts +63 -0
  201. package/src/wirings/workflow/workflow-approval-audit.ts +47 -0
  202. package/src/wirings/workflow/workflow-approval-policy.test.ts +524 -0
  203. package/src/wirings/workflow/workflow-approval-policy.ts +68 -0
  204. package/src/wirings/workflow/workflow-approval.ts +113 -9
  205. package/src/wirings/workflow/workflow-run-authority.test.ts +12 -15
  206. package/src/wirings/workflow/workflow-run-ownership.ts +2 -1
  207. package/src/wirings/workflow/workflow.types.ts +1 -63
  208. package/src/wirings-stay-decoupled.test.ts +6 -2
  209. package/tsconfig.tsbuildinfo +1 -1
  210. package/dist/internal.d.ts +0 -3
  211. package/dist/internal.js +0 -2
  212. package/dist/middleware/timeout.d.ts +0 -9
  213. package/dist/middleware/timeout.js +0 -15
  214. package/dist/pikku-response.d.ts +0 -6
  215. package/dist/pikku-response.js +0 -6
  216. package/dist/services/gopass-secrets.d.ts +0 -15
  217. package/dist/services/gopass-secrets.js +0 -76
  218. package/dist/services/http-scenario-actors.d.ts +0 -75
  219. package/dist/services/http-scenario-actors.js +0 -195
  220. package/dist/services/http-user-flow-actors.d.ts +0 -67
  221. package/dist/services/http-user-flow-actors.js +0 -193
  222. package/dist/services/scenario-actors-service.d.ts +0 -127
  223. package/dist/services/scenario-actors-service.js +0 -40
  224. package/dist/services/user-flow-actors-service.d.ts +0 -39
  225. package/dist/wirings/credential/wire-credential.d.ts +0 -48
  226. package/dist/wirings/credential/wire-credential.js +0 -47
  227. package/dist/wirings/oauth2/oauth2-client.d.ts +0 -47
  228. package/dist/wirings/oauth2/oauth2-client.js +0 -263
  229. package/dist/wirings/oauth2/oauth2-routes.d.ts +0 -35
  230. package/dist/wirings/oauth2/oauth2-routes.js +0 -146
  231. package/dist/wirings/scope/wire-scope.d.ts +0 -33
  232. package/dist/wirings/scope/wire-scope.js +0 -32
  233. package/dist/wirings/workflow/dsl/index.d.ts +0 -5
  234. package/dist/wirings/workflow/dsl/index.js +0 -4
  235. package/dist/wirings/workflow/graph/index.d.ts +0 -5
  236. package/dist/wirings/workflow/graph/index.js +0 -4
  237. /package/dist/{services/user-flow-actors-service.js → wirings/workflow/scenario.types.js} +0 -0
@@ -1,146 +0,0 @@
1
- import { OAuth2Client } from './oauth2-client.js';
2
- const TOKEN_EXPIRY_BUFFER_MS = 60_000;
3
- function getCredentialMeta(ctx, name) {
4
- const meta = ctx.credentialsMeta[name];
5
- if (!meta) {
6
- throw new Error(`Credential '${name}' not found`);
7
- }
8
- if (!meta.oauth2) {
9
- throw new Error(`Credential '${name}' is not an OAuth2 credential`);
10
- }
11
- return meta;
12
- }
13
- /**
14
- * Creates OAuth2 route handlers for user credential management.
15
- *
16
- * Returns individual handler functions for connect/callback/disconnect/status
17
- * that handle the OAuth2 authorization code flow and store tokens in CredentialService.
18
- *
19
- * @example
20
- * ```typescript
21
- * const oauth2 = createOAuth2Handler({ credentialsMeta })
22
- *
23
- * const oauth2Routes = defineHTTPRoutes({
24
- * auth: true,
25
- * basePath: '/credentials',
26
- * routes: {
27
- * connect: { method: 'get', route: '/:name/connect', func: oauth2.connect },
28
- * callback: { method: 'get', route: '/:name/callback', func: oauth2.callback, auth: false },
29
- * disconnect: { method: 'delete', route: '/:name', func: oauth2.disconnect },
30
- * status: { method: 'get', route: '/:name/status', func: oauth2.status },
31
- * },
32
- * })
33
- *
34
- * wireHTTPRoutes({ routes: { credentials: oauth2Routes } })
35
- * ```
36
- */
37
- export const createOAuth2Handler = (options) => {
38
- const basePath = options.basePath ?? '/credentials';
39
- const ctx = {
40
- credentialsMeta: options.credentialsMeta,
41
- basePath,
42
- };
43
- const connectHandler = async (services, _data, wire) => {
44
- const { name } = wire.http.request.params();
45
- const meta = getCredentialMeta(ctx, name);
46
- const queryParams = wire.http.request.query();
47
- const redirectUrl = queryParams.redirect_url || queryParams.redirect;
48
- const oauth2Client = new OAuth2Client(meta.oauth2, meta.oauth2.appCredentialSecretId, services.secrets);
49
- const userId = wire.session?.userId;
50
- if (!userId) {
51
- throw new Error('Authentication required for OAuth2 connect');
52
- }
53
- const state = await services.jwt.encode({ value: 10, unit: 'minute' }, {
54
- userId,
55
- credentialName: name,
56
- redirectUrl,
57
- });
58
- let origin = wire.http.request.header('origin');
59
- if (!origin) {
60
- const host = wire.http.request.header('host');
61
- if (!host) {
62
- throw new Error('Unable to determine request origin for OAuth2 callback');
63
- }
64
- const protocol = wire.http.request.header('x-forwarded-proto') || 'http';
65
- origin = `${protocol}://${host}`;
66
- }
67
- const callbackUrl = `${origin}${basePath}/${name}/callback`;
68
- const authUrl = await oauth2Client.getAuthorizationUrl(state, callbackUrl);
69
- return Response.redirect(authUrl, 302);
70
- };
71
- const callbackHandler = async (services, _data, wire) => {
72
- const { name } = wire.http.request.params();
73
- const meta = getCredentialMeta(ctx, name);
74
- const queryParams = wire.http.request.query();
75
- const code = queryParams.code;
76
- const state = queryParams.state;
77
- if (!code || !state) {
78
- throw new Error('Missing code or state parameter');
79
- }
80
- let statePayload;
81
- try {
82
- statePayload = await services.jwt.decode(state);
83
- }
84
- catch {
85
- throw new Error('Invalid or expired OAuth2 state');
86
- }
87
- if (statePayload.credentialName !== name) {
88
- throw new Error('Credential name mismatch in state');
89
- }
90
- const oauth2Client = new OAuth2Client(meta.oauth2, meta.oauth2.appCredentialSecretId, services.secrets);
91
- let origin = wire.http.request.header('origin');
92
- if (!origin) {
93
- const host = wire.http.request.header('host');
94
- if (!host) {
95
- throw new Error('Unable to determine request origin for OAuth2 callback');
96
- }
97
- const protocol = wire.http.request.header('x-forwarded-proto') || 'http';
98
- origin = `${protocol}://${host}`;
99
- }
100
- const callbackUrl = `${origin}${basePath}/${name}/callback`;
101
- const tokens = await oauth2Client.exchangeCode(code, callbackUrl);
102
- await services.credentialService.set(name, tokens, statePayload.userId);
103
- services.logger.info(`OAuth2 tokens stored for user '${statePayload.userId}', credential '${name}'`);
104
- if (statePayload.redirectUrl) {
105
- return Response.redirect(statePayload.redirectUrl, 302);
106
- }
107
- else {
108
- return { success: true, credentialName: name };
109
- }
110
- };
111
- const disconnectHandler = async (services, _data, wire) => {
112
- const { name } = wire.http.request.params();
113
- const userId = wire.session?.userId;
114
- if (!userId) {
115
- throw new Error('Authentication required');
116
- }
117
- await services.credentialService.delete(name, userId);
118
- services.logger.info(`OAuth2 credential '${name}' disconnected for user '${userId}'`);
119
- return { success: true };
120
- };
121
- const statusHandler = async (services, _data, wire) => {
122
- const { name } = wire.http.request.params();
123
- const userId = wire.session?.userId;
124
- if (!userId) {
125
- throw new Error('Authentication required');
126
- }
127
- const credential = await services.credentialService.get(name, userId);
128
- if (!credential) {
129
- return { connected: false };
130
- }
131
- return {
132
- connected: true,
133
- hasRefreshToken: !!credential.refreshToken,
134
- expiresAt: credential.expiresAt,
135
- isExpired: credential.expiresAt
136
- ? credential.expiresAt < Date.now() + TOKEN_EXPIRY_BUFFER_MS
137
- : false,
138
- };
139
- };
140
- return {
141
- connect: { func: connectHandler },
142
- callback: { func: callbackHandler },
143
- disconnect: { func: disconnectHandler },
144
- status: { func: statusHandler },
145
- };
146
- };
@@ -1,33 +0,0 @@
1
- import type { CoreScopes } from './scope.types.js';
2
- /**
3
- * No-op function for declaring scopes.
4
- * This exists purely for TypeScript type checking and will be tree-shaken.
5
- * The CLI extracts metadata via AST parsing and generates a `ScopeId` union,
6
- * so a function referencing an undeclared scope fails the build.
7
- *
8
- * Scopes are keyed by segment at every level: a scope is named by its key, and
9
- * its value describes it. Every node is grantable — the declaration below
10
- * yields `admin`, `admin:invoices`, `admin:invoices:create`,
11
- * `admin:invoices:void` and `billing`.
12
- *
13
- * @example
14
- * ```typescript
15
- * wireScope({
16
- * admin: {
17
- * displayName: 'Administration',
18
- * description: 'Administrative access',
19
- * scopes: {
20
- * invoices: {
21
- * description: 'Invoice management',
22
- * scopes: {
23
- * create: { description: 'Create invoices' },
24
- * void: { description: 'Void invoices' },
25
- * },
26
- * },
27
- * },
28
- * },
29
- * billing: {},
30
- * })
31
- * ```
32
- */
33
- export declare const wireScope: (_config: CoreScopes) => void;
@@ -1,32 +0,0 @@
1
- /**
2
- * No-op function for declaring scopes.
3
- * This exists purely for TypeScript type checking and will be tree-shaken.
4
- * The CLI extracts metadata via AST parsing and generates a `ScopeId` union,
5
- * so a function referencing an undeclared scope fails the build.
6
- *
7
- * Scopes are keyed by segment at every level: a scope is named by its key, and
8
- * its value describes it. Every node is grantable — the declaration below
9
- * yields `admin`, `admin:invoices`, `admin:invoices:create`,
10
- * `admin:invoices:void` and `billing`.
11
- *
12
- * @example
13
- * ```typescript
14
- * wireScope({
15
- * admin: {
16
- * displayName: 'Administration',
17
- * description: 'Administrative access',
18
- * scopes: {
19
- * invoices: {
20
- * description: 'Invoice management',
21
- * scopes: {
22
- * create: { description: 'Create invoices' },
23
- * void: { description: 'Void invoices' },
24
- * },
25
- * },
26
- * },
27
- * },
28
- * billing: {},
29
- * })
30
- * ```
31
- */
32
- export const wireScope = (_config) => { };
@@ -1,5 +0,0 @@
1
- /**
2
- * DSL (Domain Specific Language) workflow exports
3
- */
4
- export { addWorkflow } from './workflow-runner.js';
5
- export type { WorkflowStepOptions, WorkflowWireDoRPC, WorkflowWireDoInline, WorkflowWireSleep, WorkflowWireSuspend, WorkflowWireApproval, WorkflowApprovalOptions, ApprovalOutcome, InputSource, OutputBinding, RpcStepMeta, SimpleCondition, Condition, BranchStepMeta, ParallelGroupStepMeta, FanoutStepMeta, ReturnStepMeta, InlineStepMeta, SleepStepMeta, CancelStepMeta, SuspendStepMeta, ApprovalStepMeta, SwitchCaseMeta, SwitchStepMeta, FilterStepMeta, ArrayPredicateStepMeta, WorkflowStepMeta, WorkflowStepWire, PikkuWorkflowWire, } from './workflow-dsl.types.js';
@@ -1,4 +0,0 @@
1
- /**
2
- * DSL (Domain Specific Language) workflow exports
3
- */
4
- export { addWorkflow } from './workflow-runner.js';
@@ -1,5 +0,0 @@
1
- export { continueGraph, executeGraphStep, onGraphNodeComplete, runFromMeta, runWorkflowGraph, } from './graph-runner.js';
2
- export { template } from './template.js';
3
- export type { TemplateString } from './template.js';
4
- export { pikkuWorkflowGraph, type PikkuWorkflowGraphConfig, type PikkuWorkflowGraphResult, } from './wire-workflow-graph.js';
5
- export { generateMermaidDiagram } from './graph-validation.js';
@@ -1,4 +0,0 @@
1
- export { continueGraph, executeGraphStep, onGraphNodeComplete, runFromMeta, runWorkflowGraph, } from './graph-runner.js';
2
- export { template } from './template.js';
3
- export { pikkuWorkflowGraph, } from './wire-workflow-graph.js';
4
- export { generateMermaidDiagram } from './graph-validation.js';