@viewportai/daemon 0.20.1 → 0.21.0

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 (232) hide show
  1. package/README.md +34 -0
  2. package/dist/adapters/codex.d.ts.map +1 -1
  3. package/dist/adapters/codex.js +8 -0
  4. package/dist/adapters/codex.js.map +1 -1
  5. package/dist/adapters/pty.d.ts.map +1 -1
  6. package/dist/adapters/pty.js +2 -1
  7. package/dist/adapters/pty.js.map +1 -1
  8. package/dist/cli/args.d.ts.map +1 -1
  9. package/dist/cli/args.js +7 -3
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/commands.d.ts +1 -0
  12. package/dist/cli/commands.d.ts.map +1 -1
  13. package/dist/cli/commands.js +1 -0
  14. package/dist/cli/commands.js.map +1 -1
  15. package/dist/cli/context-command.js +2 -0
  16. package/dist/cli/context-command.js.map +1 -1
  17. package/dist/cli/context-sync-target.d.ts +2 -0
  18. package/dist/cli/context-sync-target.d.ts.map +1 -1
  19. package/dist/cli/context-sync-target.js +4 -0
  20. package/dist/cli/context-sync-target.js.map +1 -1
  21. package/dist/cli/daemon-client.d.ts +1 -0
  22. package/dist/cli/daemon-client.d.ts.map +1 -1
  23. package/dist/cli/daemon-client.js +13 -1
  24. package/dist/cli/daemon-client.js.map +1 -1
  25. package/dist/cli/global-flags.d.ts.map +1 -1
  26. package/dist/cli/global-flags.js +3 -2
  27. package/dist/cli/global-flags.js.map +1 -1
  28. package/dist/cli/hook-command.d.ts +7 -0
  29. package/dist/cli/hook-command.d.ts.map +1 -1
  30. package/dist/cli/hook-command.js +35 -20
  31. package/dist/cli/hook-command.js.map +1 -1
  32. package/dist/cli/lifecycle-status-command.d.ts.map +1 -1
  33. package/dist/cli/lifecycle-status-command.js +43 -0
  34. package/dist/cli/lifecycle-status-command.js.map +1 -1
  35. package/dist/cli/team-resource-command.d.ts +2 -0
  36. package/dist/cli/team-resource-command.d.ts.map +1 -0
  37. package/dist/cli/team-resource-command.js +364 -0
  38. package/dist/cli/team-resource-command.js.map +1 -0
  39. package/dist/cli/workflow-managed-worker-format.d.ts +4 -3
  40. package/dist/cli/workflow-managed-worker-format.d.ts.map +1 -1
  41. package/dist/cli/workflow-managed-worker-format.js +71 -10
  42. package/dist/cli/workflow-managed-worker-format.js.map +1 -1
  43. package/dist/cli/workflow-managed-worker-types.d.ts +17 -0
  44. package/dist/cli/workflow-managed-worker-types.d.ts.map +1 -1
  45. package/dist/cli/workflow-managed-worker.d.ts.map +1 -1
  46. package/dist/cli/workflow-managed-worker.js +567 -38
  47. package/dist/cli/workflow-managed-worker.js.map +1 -1
  48. package/dist/config-resolution/provider-defaults.d.ts.map +1 -1
  49. package/dist/config-resolution/provider-defaults.js +4 -0
  50. package/dist/config-resolution/provider-defaults.js.map +1 -1
  51. package/dist/config-resolution/schema.d.ts +2 -0
  52. package/dist/config-resolution/schema.d.ts.map +1 -1
  53. package/dist/config-resolution/schema.js +2 -0
  54. package/dist/config-resolution/schema.js.map +1 -1
  55. package/dist/config-resolution/types.d.ts +1 -1
  56. package/dist/config-resolution/types.d.ts.map +1 -1
  57. package/dist/context/local-edge-sync.d.ts +2 -0
  58. package/dist/context/local-edge-sync.d.ts.map +1 -1
  59. package/dist/context/local-edge-sync.js +2 -0
  60. package/dist/context/local-edge-sync.js.map +1 -1
  61. package/dist/context-providers/confluence-provider.d.ts +3 -0
  62. package/dist/context-providers/confluence-provider.d.ts.map +1 -0
  63. package/dist/context-providers/confluence-provider.js +170 -0
  64. package/dist/context-providers/confluence-provider.js.map +1 -0
  65. package/dist/context-providers/notion-provider.d.ts +3 -0
  66. package/dist/context-providers/notion-provider.d.ts.map +1 -0
  67. package/dist/context-providers/notion-provider.js +157 -0
  68. package/dist/context-providers/notion-provider.js.map +1 -0
  69. package/dist/context-providers/registry.d.ts.map +1 -1
  70. package/dist/context-providers/registry.js +9 -1
  71. package/dist/context-providers/registry.js.map +1 -1
  72. package/dist/context-providers/types.d.ts +18 -0
  73. package/dist/context-providers/types.d.ts.map +1 -1
  74. package/dist/core/config-schema.d.ts +25 -3
  75. package/dist/core/config-schema.d.ts.map +1 -1
  76. package/dist/core/config-schema.js +2 -0
  77. package/dist/core/config-schema.js.map +1 -1
  78. package/dist/core/config.d.ts.map +1 -1
  79. package/dist/core/config.js +2 -0
  80. package/dist/core/config.js.map +1 -1
  81. package/dist/core/interfaces.d.ts +2 -0
  82. package/dist/core/interfaces.d.ts.map +1 -1
  83. package/dist/core/session-manager.d.ts.map +1 -1
  84. package/dist/core/session-manager.js +7 -4
  85. package/dist/core/session-manager.js.map +1 -1
  86. package/dist/core/types.d.ts +11 -0
  87. package/dist/core/types.d.ts.map +1 -1
  88. package/dist/discovery/watcher.d.ts.map +1 -1
  89. package/dist/discovery/watcher.js +51 -8
  90. package/dist/discovery/watcher.js.map +1 -1
  91. package/dist/index.js +2 -1
  92. package/dist/index.js.map +1 -1
  93. package/dist/security/child-env.d.ts +3 -0
  94. package/dist/security/child-env.d.ts.map +1 -0
  95. package/dist/security/child-env.js +44 -0
  96. package/dist/security/child-env.js.map +1 -0
  97. package/dist/server/http-request-schemas.d.ts +6 -0
  98. package/dist/server/http-request-schemas.d.ts.map +1 -1
  99. package/dist/server/http-request-schemas.js +15 -0
  100. package/dist/server/http-request-schemas.js.map +1 -1
  101. package/dist/server/http-server.d.ts.map +1 -1
  102. package/dist/server/http-server.js +2 -0
  103. package/dist/server/http-server.js.map +1 -1
  104. package/dist/workflows/action-adapters.d.ts.map +1 -1
  105. package/dist/workflows/action-adapters.js +42 -0
  106. package/dist/workflows/action-adapters.js.map +1 -1
  107. package/dist/workflows/action-provider-adapters.d.ts.map +1 -1
  108. package/dist/workflows/action-provider-adapters.js +15 -4
  109. package/dist/workflows/action-provider-adapters.js.map +1 -1
  110. package/dist/workflows/action-provider-utils.d.ts +6 -0
  111. package/dist/workflows/action-provider-utils.d.ts.map +1 -1
  112. package/dist/workflows/action-provider-utils.js +21 -0
  113. package/dist/workflows/action-provider-utils.js.map +1 -1
  114. package/dist/workflows/approval-actor.d.ts +6 -0
  115. package/dist/workflows/approval-actor.d.ts.map +1 -0
  116. package/dist/workflows/approval-actor.js +27 -0
  117. package/dist/workflows/approval-actor.js.map +1 -0
  118. package/dist/workflows/approval-on-reject.js +1 -0
  119. package/dist/workflows/approval-on-reject.js.map +1 -1
  120. package/dist/workflows/checkout-node.d.ts +19 -0
  121. package/dist/workflows/checkout-node.d.ts.map +1 -0
  122. package/dist/workflows/checkout-node.js +179 -0
  123. package/dist/workflows/checkout-node.js.map +1 -0
  124. package/dist/workflows/context-node-resolver.d.ts +48 -1
  125. package/dist/workflows/context-node-resolver.d.ts.map +1 -1
  126. package/dist/workflows/context-node-resolver.js +365 -8
  127. package/dist/workflows/context-node-resolver.js.map +1 -1
  128. package/dist/workflows/context-update-targets.d.ts +12 -0
  129. package/dist/workflows/context-update-targets.d.ts.map +1 -0
  130. package/dist/workflows/context-update-targets.js +52 -0
  131. package/dist/workflows/context-update-targets.js.map +1 -0
  132. package/dist/workflows/daemon-session.d.ts +2 -0
  133. package/dist/workflows/daemon-session.d.ts.map +1 -1
  134. package/dist/workflows/daemon-session.js +22 -1
  135. package/dist/workflows/daemon-session.js.map +1 -1
  136. package/dist/workflows/event-types.d.ts +1 -1
  137. package/dist/workflows/event-types.d.ts.map +1 -1
  138. package/dist/workflows/expression.d.ts +4 -0
  139. package/dist/workflows/expression.d.ts.map +1 -1
  140. package/dist/workflows/expression.js +1 -1
  141. package/dist/workflows/expression.js.map +1 -1
  142. package/dist/workflows/git-publish-node.d.ts +23 -0
  143. package/dist/workflows/git-publish-node.d.ts.map +1 -0
  144. package/dist/workflows/git-publish-node.js +237 -0
  145. package/dist/workflows/git-publish-node.js.map +1 -0
  146. package/dist/workflows/inline-agent-types.d.ts +2 -0
  147. package/dist/workflows/inline-agent-types.d.ts.map +1 -1
  148. package/dist/workflows/inline-agents.d.ts.map +1 -1
  149. package/dist/workflows/inline-agents.js +3 -0
  150. package/dist/workflows/inline-agents.js.map +1 -1
  151. package/dist/workflows/loop-executor.js +1 -0
  152. package/dist/workflows/loop-executor.js.map +1 -1
  153. package/dist/workflows/node-executor.d.ts +7 -0
  154. package/dist/workflows/node-executor.d.ts.map +1 -1
  155. package/dist/workflows/node-executor.js +118 -3
  156. package/dist/workflows/node-executor.js.map +1 -1
  157. package/dist/workflows/node-registry.d.ts.map +1 -1
  158. package/dist/workflows/node-registry.js +316 -3
  159. package/dist/workflows/node-registry.js.map +1 -1
  160. package/dist/workflows/parser.d.ts.map +1 -1
  161. package/dist/workflows/parser.js +54 -4
  162. package/dist/workflows/parser.js.map +1 -1
  163. package/dist/workflows/platform-command-applier.d.ts.map +1 -1
  164. package/dist/workflows/platform-command-applier.js +5 -14
  165. package/dist/workflows/platform-command-applier.js.map +1 -1
  166. package/dist/workflows/platform-context-client.d.ts +74 -0
  167. package/dist/workflows/platform-context-client.d.ts.map +1 -0
  168. package/dist/workflows/platform-context-client.js +228 -0
  169. package/dist/workflows/platform-context-client.js.map +1 -0
  170. package/dist/workflows/platform-sync-format.d.ts +1 -1
  171. package/dist/workflows/platform-sync-format.d.ts.map +1 -1
  172. package/dist/workflows/platform-sync-format.js +3 -1
  173. package/dist/workflows/platform-sync-format.js.map +1 -1
  174. package/dist/workflows/platform-sync-payload.d.ts +1 -0
  175. package/dist/workflows/platform-sync-payload.d.ts.map +1 -1
  176. package/dist/workflows/platform-sync-payload.js +8 -4
  177. package/dist/workflows/platform-sync-payload.js.map +1 -1
  178. package/dist/workflows/plugin-loader.d.ts.map +1 -1
  179. package/dist/workflows/plugin-loader.js +3 -0
  180. package/dist/workflows/plugin-loader.js.map +1 -1
  181. package/dist/workflows/preflight.d.ts.map +1 -1
  182. package/dist/workflows/preflight.js +9 -1
  183. package/dist/workflows/preflight.js.map +1 -1
  184. package/dist/workflows/run-preparation.d.ts +24 -0
  185. package/dist/workflows/run-preparation.d.ts.map +1 -0
  186. package/dist/workflows/run-preparation.js +258 -0
  187. package/dist/workflows/run-preparation.js.map +1 -0
  188. package/dist/workflows/run-types.d.ts +11 -0
  189. package/dist/workflows/run-types.d.ts.map +1 -1
  190. package/dist/workflows/runner-scheduler.d.ts +2 -0
  191. package/dist/workflows/runner-scheduler.d.ts.map +1 -1
  192. package/dist/workflows/runner-scheduler.js +5 -0
  193. package/dist/workflows/runner-scheduler.js.map +1 -1
  194. package/dist/workflows/runner-shared.d.ts.map +1 -1
  195. package/dist/workflows/runner-shared.js +9 -0
  196. package/dist/workflows/runner-shared.js.map +1 -1
  197. package/dist/workflows/runner.d.ts +1 -0
  198. package/dist/workflows/runner.d.ts.map +1 -1
  199. package/dist/workflows/runner.js +143 -6
  200. package/dist/workflows/runner.js.map +1 -1
  201. package/dist/workflows/runtime-helpers.d.ts +1 -1
  202. package/dist/workflows/runtime-helpers.d.ts.map +1 -1
  203. package/dist/workflows/runtime-helpers.js +2 -1
  204. package/dist/workflows/runtime-helpers.js.map +1 -1
  205. package/dist/workflows/subflow-executor.js +5 -1
  206. package/dist/workflows/subflow-executor.js.map +1 -1
  207. package/dist/workflows/types.d.ts +97 -3
  208. package/dist/workflows/types.d.ts.map +1 -1
  209. package/dist/workflows/workflow-authority-contract.d.ts +23 -0
  210. package/dist/workflows/workflow-authority-contract.d.ts.map +1 -0
  211. package/dist/workflows/workflow-authority-contract.js +322 -0
  212. package/dist/workflows/workflow-authority-contract.js.map +1 -0
  213. package/dist/workflows/workflow-production-schema.d.ts +50 -2
  214. package/dist/workflows/workflow-production-schema.d.ts.map +1 -1
  215. package/dist/workflows/workflow-production-schema.js +46 -3
  216. package/dist/workflows/workflow-production-schema.js.map +1 -1
  217. package/dist/workflows/workflow-production-types.d.ts +31 -2
  218. package/dist/workflows/workflow-production-types.d.ts.map +1 -1
  219. package/dist/workflows/workflow-schema-common.d.ts +242 -2
  220. package/dist/workflows/workflow-schema-common.d.ts.map +1 -1
  221. package/dist/workflows/workflow-schema-common.js +56 -2
  222. package/dist/workflows/workflow-schema-common.js.map +1 -1
  223. package/dist/workflows/workflow-schema.d.ts +1562 -6
  224. package/dist/workflows/workflow-schema.d.ts.map +1 -1
  225. package/dist/workflows/workflow-schema.js +86 -2
  226. package/dist/workflows/workflow-schema.js.map +1 -1
  227. package/docs/releasing.md +4 -1
  228. package/node_modules/@viewportai/context-engine/schemas/context_event_v1.schema.json +2 -0
  229. package/node_modules/@viewportai/context-engine/src/repo/candidates.js +2 -0
  230. package/node_modules/@viewportai/context-engine/src/repo/events.js +15 -1
  231. package/node_modules/@viewportai/context-engine/src/repo/vault.js +18 -2
  232. package/package.json +2 -2
@@ -0,0 +1,179 @@
1
+ import fs from 'node:fs/promises';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { spawn } from 'node:child_process';
5
+ import { allowedRepositories, workflowAuthorityContract, workflowAuthorityContractDigest, } from './workflow-authority-contract.js';
6
+ import { cleanChildProcessEnv } from '../security/child-env.js';
7
+ export function checkoutAuthorityDenial(run, nodeId, node) {
8
+ const contract = workflowAuthorityContract(run);
9
+ if (!contract)
10
+ return null;
11
+ const repository = normalizeRepository(node.repository);
12
+ const allowed = allowedRepositories(run);
13
+ if (allowed.length > 0 && !allowed.includes(repository)) {
14
+ return {
15
+ schema: 'viewport.workflow_authority_denial/v1',
16
+ reason: 'repository_not_allowed',
17
+ runId: run.id,
18
+ nodeId,
19
+ repository,
20
+ detail: `Checkout node references repository ${repository}, which is outside workflow repo authority.`,
21
+ contractDigest: workflowAuthorityContractDigest(run),
22
+ allowed,
23
+ };
24
+ }
25
+ if (node.path && !isPathWithin(path.resolve(run.directoryPath, node.path), run.directoryPath)) {
26
+ return {
27
+ schema: 'viewport.workflow_authority_denial/v1',
28
+ reason: 'checkout_path_outside_run_worktree',
29
+ runId: run.id,
30
+ nodeId,
31
+ repository,
32
+ detail: `Checkout path ${node.path} is outside the run worktree.`,
33
+ contractDigest: workflowAuthorityContractDigest(run),
34
+ allowed,
35
+ };
36
+ }
37
+ const remoteRepository = repositoryFromRemote(node.remote);
38
+ if (remoteRepository && remoteRepository !== repository) {
39
+ return {
40
+ schema: 'viewport.workflow_authority_denial/v1',
41
+ reason: 'repository_not_allowed',
42
+ runId: run.id,
43
+ nodeId,
44
+ repository: remoteRepository,
45
+ detail: `Checkout remote references repository ${remoteRepository}, but the node declares ${repository}.`,
46
+ contractDigest: workflowAuthorityContractDigest(run),
47
+ allowed: [repository],
48
+ };
49
+ }
50
+ return null;
51
+ }
52
+ export async function executeCheckoutNode(run, node, credential) {
53
+ const repository = normalizeRepository(node.repository);
54
+ if (!repository) {
55
+ throw new Error('Checkout node repository is required.');
56
+ }
57
+ const credentialMode = node.credentialMode ?? 'runner_local';
58
+ if (credentialMode === 'run_scoped_grant' && !credential?.secret) {
59
+ throw new Error(`Run-scoped checkout grant ${node.credentialRef ?? '(missing credentialRef)'} was not materialized for this run.`);
60
+ }
61
+ const destination = checkoutDestination(run.directoryPath, run.id, repository, node.path);
62
+ await fs.mkdir(path.dirname(destination), { recursive: true });
63
+ const remote = node.remote ?? `https://github.com/${repository}.git`;
64
+ const credentialEnv = credential?.secret
65
+ ? await checkoutCredentialEnv(run.directoryPath, credential.secret)
66
+ : nonInteractiveGitEnv();
67
+ await git(['clone', remote, destination], run.directoryPath, credentialEnv, 45_000);
68
+ if (node.ref) {
69
+ await git(['checkout', node.ref], destination);
70
+ }
71
+ if (node.branch) {
72
+ await git(['checkout', '-B', node.branch], destination);
73
+ }
74
+ const commit = (await git(['rev-parse', 'HEAD'], destination)).trim();
75
+ return {
76
+ repository,
77
+ remote: redactedRemote(remote),
78
+ path: destination,
79
+ ref: node.ref ?? null,
80
+ branch: node.branch ?? null,
81
+ commit,
82
+ credentialMode,
83
+ credentialRef: node.credentialRef ?? null,
84
+ };
85
+ }
86
+ function checkoutDestination(root, runId, repository, configuredPath) {
87
+ const safeRepo = repository.replace(/[^a-z0-9_.-]+/gi, '__');
88
+ const safeRun = runId.replace(/[^a-z0-9_.-]+/gi, '__');
89
+ const candidate = configuredPath
90
+ ? path.resolve(root, configuredPath)
91
+ : path.join(root, '.viewport', 'checkouts', safeRun, safeRepo);
92
+ if (!isPathWithin(candidate, root)) {
93
+ throw new Error('Checkout path is outside the run worktree.');
94
+ }
95
+ return candidate;
96
+ }
97
+ function repositoryFromRemote(remote) {
98
+ if (!remote)
99
+ return null;
100
+ const github = remote.match(/(?:git@github\.com:|https:\/\/github\.com\/)([A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+)(?:\.git)?/i);
101
+ return github ? normalizeRepository(github[1]) : null;
102
+ }
103
+ function normalizeRepository(value) {
104
+ if (!value)
105
+ return '';
106
+ return value
107
+ .trim()
108
+ .replace(/^https:\/\/github\.com\//i, '')
109
+ .replace(/^git@github\.com:/i, '')
110
+ .replace(/^github\.com\//i, '')
111
+ .replace(/\.git$/i, '')
112
+ .toLowerCase();
113
+ }
114
+ function redactedRemote(remote) {
115
+ return remote
116
+ .replace(/(https:\/\/)([^/@]+)@github\.com\//i, '$1[redacted]@github.com/')
117
+ .replace(/(gh[ps]_[A-Za-z0-9_]+)/g, '[redacted-token]');
118
+ }
119
+ function isPathWithin(candidate, root) {
120
+ const relative = path.relative(path.resolve(root), path.resolve(candidate));
121
+ return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
122
+ }
123
+ async function checkoutCredentialEnv(root, secret) {
124
+ const directory = path.join(root, '.viewport', 'credential-helpers');
125
+ await fs.mkdir(directory, { recursive: true });
126
+ const helperPath = path.join(directory, `git-askpass-${Date.now()}-${Math.random().toString(16).slice(2)}.sh`);
127
+ const script = [
128
+ '#!/bin/sh',
129
+ 'case "$1" in',
130
+ ' *Username*) printf "%s\\n" "x-access-token" ;;',
131
+ ' *) printf "%s\\n" "$VIEWPORT_GIT_TOKEN" ;;',
132
+ 'esac',
133
+ '',
134
+ ].join('\n');
135
+ await fs.writeFile(helperPath, script, { mode: 0o700 });
136
+ return nonInteractiveGitEnv({
137
+ GIT_ASKPASS: helperPath,
138
+ VIEWPORT_GIT_TOKEN: secret,
139
+ });
140
+ }
141
+ function nonInteractiveGitEnv(overrides = {}) {
142
+ return cleanChildProcessEnv({
143
+ GIT_TERMINAL_PROMPT: '0',
144
+ GIT_SSH_COMMAND: 'ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new',
145
+ // Some git builds ignore GIT_ASKPASS without DISPLAY/SSH_ASKPASS on macOS.
146
+ DISPLAY: process.env['DISPLAY'] ?? ':0',
147
+ TMPDIR: process.env['TMPDIR'] ?? os.tmpdir(),
148
+ ...overrides,
149
+ });
150
+ }
151
+ async function git(args, cwd, env = nonInteractiveGitEnv(), timeoutMs = 30_000) {
152
+ return new Promise((resolve, reject) => {
153
+ const child = spawn('git', args, { cwd, env, stdio: ['ignore', 'pipe', 'pipe'] });
154
+ const stdout = [];
155
+ const stderr = [];
156
+ const timeout = setTimeout(() => {
157
+ child.kill('SIGTERM');
158
+ setTimeout(() => child.kill('SIGKILL'), 2_000).unref();
159
+ reject(new Error(`git ${args[0] ?? 'command'} timed out after ${timeoutMs}ms`));
160
+ }, timeoutMs);
161
+ timeout.unref();
162
+ child.stdout.on('data', (chunk) => stdout.push(Buffer.from(chunk)));
163
+ child.stderr.on('data', (chunk) => stderr.push(Buffer.from(chunk)));
164
+ child.once('error', (error) => {
165
+ clearTimeout(timeout);
166
+ reject(error);
167
+ });
168
+ child.once('close', (code) => {
169
+ clearTimeout(timeout);
170
+ if (code === 0) {
171
+ resolve(Buffer.concat(stdout).toString('utf8'));
172
+ return;
173
+ }
174
+ const detail = Buffer.concat(stderr).toString('utf8').trim();
175
+ reject(new Error(detail || `git ${args[0] ?? 'command'} failed with ${code}`));
176
+ });
177
+ });
178
+ }
179
+ //# sourceMappingURL=checkout-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout-node.js","sourceRoot":"","sources":["../../src/workflows/checkout-node.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,50 @@
1
- import type { WorkflowContextNode, WorkflowRunRecord } from './types.js';
1
+ import type { WorkflowPlatformContextClient } from './platform-context-client.js';
2
+ import type { WorkflowContext, WorkflowContextDefaults, WorkflowContextNode, WorkflowNodeContextEnvelope, WorkflowRunRecord } from './types.js';
3
+ export interface NodeContextSelection {
4
+ promptBlock: string | null;
5
+ briefing: {
6
+ schema: 'viewport.context_briefing/v1';
7
+ nodeId: string;
8
+ selectedSources: Array<Record<string, unknown>>;
9
+ topEntries: Array<Record<string, unknown>>;
10
+ freshness: Array<Record<string, unknown>>;
11
+ confidence: Array<Record<string, unknown>>;
12
+ securityClassification: Array<Record<string, unknown>>;
13
+ whySelected: Array<Record<string, unknown>>;
14
+ retrievalCaps: Record<string, unknown>;
15
+ excludedSensitiveSources: string[];
16
+ writeTargets: unknown[];
17
+ };
18
+ basis: {
19
+ schema: 'viewport.node_context_basis/v1';
20
+ nodeId: string;
21
+ mode: 'workflow_default' | 'node_envelope' | 'none';
22
+ query: string | null;
23
+ maxItems: number | null;
24
+ writeTargets: unknown[];
25
+ refs: Array<{
26
+ ref: string;
27
+ as: string | null;
28
+ required: boolean;
29
+ refresh: string;
30
+ maxItems: number | null;
31
+ }>;
32
+ excludedRefs: string[];
33
+ selectedItems: Array<Record<string, unknown>>;
34
+ skipped: Array<{
35
+ providerId: string;
36
+ reason: string;
37
+ }>;
38
+ };
39
+ }
2
40
  export declare function executeContextNode(run: WorkflowRunRecord, nodeId: string, node: WorkflowContextNode): Promise<void>;
41
+ export declare function resolvePromptNodeContext(input: {
42
+ run: WorkflowRunRecord;
43
+ nodeId: string;
44
+ workflowContext?: WorkflowContext | WorkflowContextDefaults;
45
+ nodeContext?: WorkflowNodeContextEnvelope;
46
+ prompt: string;
47
+ platformContextClient?: WorkflowPlatformContextClient;
48
+ }): Promise<NodeContextSelection>;
49
+ export declare function sanitizeContextQueryForReceipt(query: string | null): string | null;
3
50
  //# sourceMappingURL=context-node-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-node-resolver.d.ts","sourceRoot":"","sources":["../../src/workflows/context-node-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAepB,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAkFf"}
1
+ {"version":3,"file":"context-node-resolver.d.ts","sourceRoot":"","sources":["../../src/workflows/context-node-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,6BAA6B,EAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EAEnB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAiBpB,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE;QACR,MAAM,EAAE,8BAA8B,CAAC;QACvC,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAChD,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3C,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1C,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3C,sBAAsB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,wBAAwB,EAAE,MAAM,EAAE,CAAC;QACnC,YAAY,EAAE,OAAO,EAAE,CAAC;KACzB,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,gCAAgC,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,kBAAkB,GAAG,eAAe,GAAG,MAAM,CAAC;QACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,EAAE,OAAO,EAAE,CAAC;QACxB,IAAI,EAAE,KAAK,CAAC;YACV,GAAG,EAAE,MAAM,CAAC;YACZ,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;YAClB,QAAQ,EAAE,OAAO,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;SACzB,CAAC,CAAC;QACH,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,KAAK,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD,CAAC;CACH;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Ff;AAED,wBAAsB,wBAAwB,CAAC,KAAK,EAAE;IACpD,GAAG,EAAE,iBAAiB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,GAAG,uBAAuB,CAAC;IAC5D,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,6BAA6B,CAAC;CACvD,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4IhC;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAgBlF"}