agent-nuvira 3.3.0 → 3.3.3

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 (231) hide show
  1. package/.agents/skills/code-assessment/SKILL.md +10 -1
  2. package/.agents/skills/index.json +1 -1
  3. package/README.md +47 -9
  4. package/dist/agents/agents/runner.d.ts +9 -0
  5. package/dist/agents/agents/runner.d.ts.map +1 -1
  6. package/dist/agents/agents/runner.js +34 -12
  7. package/dist/agents/agents/runner.js.map +1 -1
  8. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  9. package/dist/agents/agents/writer-tool-calling.js +7 -2
  10. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  11. package/dist/agents/agents/writer.d.ts.map +1 -1
  12. package/dist/agents/agents/writer.js +7 -1
  13. package/dist/agents/agents/writer.js.map +1 -1
  14. package/dist/agents/artifact-verification.d.ts +102 -0
  15. package/dist/agents/artifact-verification.d.ts.map +1 -0
  16. package/dist/agents/artifact-verification.js +216 -0
  17. package/dist/agents/artifact-verification.js.map +1 -0
  18. package/dist/agents/checkpoint-store.d.ts +73 -0
  19. package/dist/agents/checkpoint-store.d.ts.map +1 -1
  20. package/dist/agents/checkpoint-store.js +161 -0
  21. package/dist/agents/checkpoint-store.js.map +1 -1
  22. package/dist/agents/credential-store.d.ts +120 -0
  23. package/dist/agents/credential-store.d.ts.map +1 -1
  24. package/dist/agents/credential-store.js +358 -19
  25. package/dist/agents/credential-store.js.map +1 -1
  26. package/dist/agents/orchestrator.d.ts +10 -1
  27. package/dist/agents/orchestrator.d.ts.map +1 -1
  28. package/dist/agents/orchestrator.js +234 -75
  29. package/dist/agents/orchestrator.js.map +1 -1
  30. package/dist/agents/phase-engine.d.ts +61 -0
  31. package/dist/agents/phase-engine.d.ts.map +1 -1
  32. package/dist/agents/phase-engine.js +68 -2
  33. package/dist/agents/phase-engine.js.map +1 -1
  34. package/dist/agents/prompt-assembly.d.ts +11 -0
  35. package/dist/agents/prompt-assembly.d.ts.map +1 -1
  36. package/dist/agents/prompt-assembly.js +17 -0
  37. package/dist/agents/prompt-assembly.js.map +1 -1
  38. package/dist/agents/release-preflight.d.ts +121 -0
  39. package/dist/agents/release-preflight.d.ts.map +1 -0
  40. package/dist/agents/release-preflight.js +259 -0
  41. package/dist/agents/release-preflight.js.map +1 -0
  42. package/dist/agents/release-runner.d.ts +157 -0
  43. package/dist/agents/release-runner.d.ts.map +1 -0
  44. package/dist/agents/release-runner.js +719 -0
  45. package/dist/agents/release-runner.js.map +1 -0
  46. package/dist/agents/step-handoff.d.ts +190 -0
  47. package/dist/agents/step-handoff.d.ts.map +1 -0
  48. package/dist/agents/step-handoff.js +443 -0
  49. package/dist/agents/step-handoff.js.map +1 -0
  50. package/dist/cli/benchmark.d.ts.map +1 -1
  51. package/dist/cli/benchmark.js +11 -4
  52. package/dist/cli/benchmark.js.map +1 -1
  53. package/dist/cli/chat.d.ts.map +1 -1
  54. package/dist/cli/chat.js +25 -4
  55. package/dist/cli/chat.js.map +1 -1
  56. package/dist/cli/cli-program.d.ts.map +1 -1
  57. package/dist/cli/cli-program.js +9 -2
  58. package/dist/cli/cli-program.js.map +1 -1
  59. package/dist/cli/commands.d.ts +2 -1
  60. package/dist/cli/commands.d.ts.map +1 -1
  61. package/dist/cli/commands.js +3 -2
  62. package/dist/cli/commands.js.map +1 -1
  63. package/dist/cli/config.js +2 -2
  64. package/dist/cli/config.js.map +1 -1
  65. package/dist/cli/credentials.d.ts +28 -0
  66. package/dist/cli/credentials.d.ts.map +1 -0
  67. package/dist/cli/credentials.js +213 -0
  68. package/dist/cli/credentials.js.map +1 -0
  69. package/dist/cli/dashboard.d.ts +26 -0
  70. package/dist/cli/dashboard.d.ts.map +1 -1
  71. package/dist/cli/dashboard.js +123 -3
  72. package/dist/cli/dashboard.js.map +1 -1
  73. package/dist/cli/failover-runner.d.ts.map +1 -1
  74. package/dist/cli/failover-runner.js +9 -3
  75. package/dist/cli/failover-runner.js.map +1 -1
  76. package/dist/cli/intent.d.ts +1 -1
  77. package/dist/cli/intent.js +2 -2
  78. package/dist/cli/intent.js.map +1 -1
  79. package/dist/cli/loop-executor.d.ts +7 -0
  80. package/dist/cli/loop-executor.d.ts.map +1 -1
  81. package/dist/cli/loop-executor.js +75 -7
  82. package/dist/cli/loop-executor.js.map +1 -1
  83. package/dist/cli/nlu.d.ts.map +1 -1
  84. package/dist/cli/nlu.js +8 -2
  85. package/dist/cli/nlu.js.map +1 -1
  86. package/dist/cli/process-control.d.ts +15 -0
  87. package/dist/cli/process-control.d.ts.map +1 -1
  88. package/dist/cli/process-control.js +38 -14
  89. package/dist/cli/process-control.js.map +1 -1
  90. package/dist/cli/publish.d.ts +22 -0
  91. package/dist/cli/publish.d.ts.map +1 -1
  92. package/dist/cli/publish.js +109 -13
  93. package/dist/cli/publish.js.map +1 -1
  94. package/dist/config/live-credentials.d.ts +57 -0
  95. package/dist/config/live-credentials.d.ts.map +1 -0
  96. package/dist/config/live-credentials.js +126 -0
  97. package/dist/config/live-credentials.js.map +1 -0
  98. package/dist/config/paths.d.ts +18 -0
  99. package/dist/config/paths.d.ts.map +1 -1
  100. package/dist/config/paths.js +25 -0
  101. package/dist/config/paths.js.map +1 -1
  102. package/dist/federation/a2a-types.js +1 -1
  103. package/dist/federation/a2a-types.js.map +1 -1
  104. package/dist/forwarded.d.ts +2 -0
  105. package/dist/forwarded.d.ts.map +1 -0
  106. package/dist/forwarded.js +2 -0
  107. package/dist/forwarded.js.map +1 -0
  108. package/dist/inference/model-validator.d.ts +6 -1
  109. package/dist/inference/model-validator.d.ts.map +1 -1
  110. package/dist/inference/model-validator.js +7 -2
  111. package/dist/inference/model-validator.js.map +1 -1
  112. package/dist/inference/route-resolver.d.ts +116 -0
  113. package/dist/inference/route-resolver.d.ts.map +1 -0
  114. package/dist/inference/route-resolver.js +159 -0
  115. package/dist/inference/route-resolver.js.map +1 -0
  116. package/dist/inference/tool-call-utils.d.ts +44 -0
  117. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  118. package/dist/inference/tool-call-utils.js +126 -4
  119. package/dist/inference/tool-call-utils.js.map +1 -1
  120. package/dist/learning/autonomy-policy.d.ts +24 -0
  121. package/dist/learning/autonomy-policy.d.ts.map +1 -1
  122. package/dist/learning/autonomy-policy.js +110 -23
  123. package/dist/learning/autonomy-policy.js.map +1 -1
  124. package/dist/learning/eval-framework.d.ts +24 -0
  125. package/dist/learning/eval-framework.d.ts.map +1 -1
  126. package/dist/learning/eval-framework.js +291 -0
  127. package/dist/learning/eval-framework.js.map +1 -1
  128. package/dist/learning/intent-envelope.d.ts +162 -0
  129. package/dist/learning/intent-envelope.d.ts.map +1 -0
  130. package/dist/learning/intent-envelope.js +235 -0
  131. package/dist/learning/intent-envelope.js.map +1 -0
  132. package/dist/learning/reasoning-trace.d.ts +2 -2
  133. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  134. package/dist/learning/reasoning-trace.js +25 -1
  135. package/dist/learning/reasoning-trace.js.map +1 -1
  136. package/dist/learning/resilient-call.d.ts.map +1 -1
  137. package/dist/learning/resilient-call.js +29 -17
  138. package/dist/learning/resilient-call.js.map +1 -1
  139. package/dist/learning/run-trace.d.ts +164 -0
  140. package/dist/learning/run-trace.d.ts.map +1 -0
  141. package/dist/learning/run-trace.js +342 -0
  142. package/dist/learning/run-trace.js.map +1 -0
  143. package/dist/learning/skill-store.d.ts.map +1 -1
  144. package/dist/learning/skill-store.js +35 -10
  145. package/dist/learning/skill-store.js.map +1 -1
  146. package/dist/learning/skill-types.d.ts +14 -0
  147. package/dist/learning/skill-types.d.ts.map +1 -1
  148. package/dist/learning/skill-types.js +19 -0
  149. package/dist/learning/skill-types.js.map +1 -1
  150. package/dist/mcp/catalog.js +2 -3
  151. package/dist/mcp/catalog.js.map +1 -1
  152. package/dist/mcp/manager.d.ts.map +1 -1
  153. package/dist/mcp/manager.js +5 -3
  154. package/dist/mcp/manager.js.map +1 -1
  155. package/dist/resources/command-manifest.json +10 -10
  156. package/dist/skills/bundled-skills.d.ts.map +1 -1
  157. package/dist/skills/bundled-skills.js +13 -2
  158. package/dist/skills/bundled-skills.js.map +1 -1
  159. package/dist/skills/secret-capture.d.ts.map +1 -1
  160. package/dist/skills/secret-capture.js +9 -4
  161. package/dist/skills/secret-capture.js.map +1 -1
  162. package/dist/tools/coding-tools.d.ts.map +1 -1
  163. package/dist/tools/coding-tools.js +33 -8
  164. package/dist/tools/coding-tools.js.map +1 -1
  165. package/dist/tools/credentials-tool.d.ts +24 -0
  166. package/dist/tools/credentials-tool.d.ts.map +1 -0
  167. package/dist/tools/credentials-tool.js +125 -0
  168. package/dist/tools/credentials-tool.js.map +1 -0
  169. package/dist/tools/edit-verification.d.ts +78 -0
  170. package/dist/tools/edit-verification.d.ts.map +1 -1
  171. package/dist/tools/edit-verification.js +213 -16
  172. package/dist/tools/edit-verification.js.map +1 -1
  173. package/dist/tools/git-tool.d.ts +25 -7
  174. package/dist/tools/git-tool.d.ts.map +1 -1
  175. package/dist/tools/git-tool.js +155 -15
  176. package/dist/tools/git-tool.js.map +1 -1
  177. package/dist/tools/loop-project-context.d.ts.map +1 -1
  178. package/dist/tools/loop-project-context.js +16 -0
  179. package/dist/tools/loop-project-context.js.map +1 -1
  180. package/dist/tools/loop-route-feed.d.ts +57 -0
  181. package/dist/tools/loop-route-feed.d.ts.map +1 -0
  182. package/dist/tools/loop-route-feed.js +101 -0
  183. package/dist/tools/loop-route-feed.js.map +1 -0
  184. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  185. package/dist/tools/pipeline-tool.js +8 -2
  186. package/dist/tools/pipeline-tool.js.map +1 -1
  187. package/dist/tools/publish-tool.d.ts.map +1 -1
  188. package/dist/tools/publish-tool.js +76 -10
  189. package/dist/tools/publish-tool.js.map +1 -1
  190. package/dist/tools/registry.d.ts +52 -3
  191. package/dist/tools/registry.d.ts.map +1 -1
  192. package/dist/tools/registry.js +88 -11
  193. package/dist/tools/registry.js.map +1 -1
  194. package/dist/tools/run-cli.d.ts.map +1 -1
  195. package/dist/tools/run-cli.js +15 -2
  196. package/dist/tools/run-cli.js.map +1 -1
  197. package/dist/tools/run-terminal.d.ts +9 -0
  198. package/dist/tools/run-terminal.d.ts.map +1 -1
  199. package/dist/tools/run-terminal.js +103 -6
  200. package/dist/tools/run-terminal.js.map +1 -1
  201. package/dist/tools/skill-tool.d.ts.map +1 -1
  202. package/dist/tools/skill-tool.js +5 -0
  203. package/dist/tools/skill-tool.js.map +1 -1
  204. package/dist/tools/tool-loop.d.ts +40 -6
  205. package/dist/tools/tool-loop.d.ts.map +1 -1
  206. package/dist/tools/tool-loop.js +409 -14
  207. package/dist/tools/tool-loop.js.map +1 -1
  208. package/dist/tools/toolsets.js +2 -2
  209. package/dist/tools/toolsets.js.map +1 -1
  210. package/dist/web-dashboard/chat-console.d.ts +5 -0
  211. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  212. package/dist/web-dashboard/chat-console.js +32 -3
  213. package/dist/web-dashboard/chat-console.js.map +1 -1
  214. package/dist/web-dashboard/server.d.ts +46 -0
  215. package/dist/web-dashboard/server.d.ts.map +1 -1
  216. package/dist/web-dashboard/server.js +115 -1
  217. package/dist/web-dashboard/server.js.map +1 -1
  218. package/dist/web-dashboard/src/admin-auth.d.ts +49 -2
  219. package/dist/web-dashboard/src/admin-auth.d.ts.map +1 -1
  220. package/dist/web-dashboard/src/admin-auth.js +64 -3
  221. package/dist/web-dashboard/src/admin-auth.js.map +1 -1
  222. package/dist/web-dashboard/src/types.d.ts +41 -0
  223. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  224. package/dist/workflow/registry.js +1 -1
  225. package/dist/workflow/registry.js.map +1 -1
  226. package/package.json +9 -5
  227. package/src/web-dashboard/public/assets/index-CxDj7p6i.js +207 -0
  228. package/src/web-dashboard/public/assets/index-CxDj7p6i.js.map +1 -0
  229. package/src/web-dashboard/public/index.html +1 -1
  230. package/src/web-dashboard/public/assets/index-kCUkORm7.js +0 -207
  231. package/src/web-dashboard/public/assets/index-kCUkORm7.js.map +0 -1
@@ -19,6 +19,7 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from
19
19
  import { envBuff, resolveNuviraHome } from '../config/paths.js';
20
20
  import { join } from 'node:path';
21
21
  import { createHash } from 'node:crypto';
22
+ import { verifyArtifacts } from './artifact-verification.js';
22
23
  // ─── Storage ────────────────────────────────────────────────────────────────
23
24
  const DEFAULT_MEMORY_DIR = join(resolveNuviraHome(), 'memory');
24
25
  function checkpointsDir() {
@@ -86,6 +87,166 @@ export function loadCheckpoint(id) {
86
87
  return null;
87
88
  }
88
89
  }
90
+ /**
91
+ * The newest checkpoint for this project whose goal is the SAME ASK, possibly
92
+ * worded differently.
93
+ *
94
+ * `checkpointIdFor` hashes `workingDirectory + goal`, so a reworded ask hashes
95
+ * to a different id and finds nothing — which is why "do that addon thing"
96
+ * re-planned from zero while the previous attempt's plan sat on disk.
97
+ *
98
+ * The goal test is deliberately REQUIRED rather than taking the newest
99
+ * checkpoint in the directory. A bare "newest for this project" lookup would
100
+ * hand run B the plan of a completely unrelated run A that merely happened to
101
+ * use the same folder — and it would do so silently, which is worse than the
102
+ * re-plan it replaces. The caller reconciles whatever this returns against the
103
+ * filesystem before trusting a word of it (see `reconcileTaskPlan`).
104
+ *
105
+ * Newest-first among the matching goals, so the most recent attempt wins.
106
+ */
107
+ export function findRelatedCheckpointFor(workingDirectory, goal, options = {}) {
108
+ const wanted = normalizeDir(workingDirectory);
109
+ const candidates = listCheckpoints()
110
+ .filter((c) => normalizeDir(c.workingDirectory) === wanted && c.id !== options.excludeId)
111
+ .sort((a, b) => b.savedAt - a.savedAt);
112
+ for (const meta of candidates) {
113
+ if (!goalsLookSame(meta.goal, goal))
114
+ continue;
115
+ const file = loadCheckpoint(meta.id);
116
+ if (file)
117
+ return file;
118
+ }
119
+ return null;
120
+ }
121
+ /** Compare working directories without caring about a trailing slash. */
122
+ function normalizeDir(dir) {
123
+ return (dir || '').replace(/[\\/]+$/, '');
124
+ }
125
+ /** Words that carry no subject — dropped before comparing two goals. */
126
+ const GOAL_STOPWORDS = new Set([
127
+ 'the', 'a', 'an', 'and', 'or', 'but', 'to', 'of', 'in', 'on', 'at', 'for', 'with', 'from',
128
+ 'can', 'could', 'would', 'should', 'please', 'you', 'your', 'me', 'my', 'i', 'we', 'it', 'its',
129
+ 'is', 'are', 'was', 'be', 'been', 'do', 'does', 'did', 'make', 'made', 'need', 'want', 'get',
130
+ 'this', 'that', 'these', 'those', 'there', 'here', 'then', 'than', 'so', 'as', 'by', 'use',
131
+ 'using', 'into', 'out', 'up', 'down', 'again', 'also', 'just', 'new', 'now', 'save',
132
+ 'folder', 'file', 'path', 'directory', 'dir', 'create', 'build', 'develop', 'write',
133
+ ]);
134
+ /**
135
+ * Subject tokens of a goal. Hyphens and underscores are JOINED, not split, so
136
+ * "add-on" and "addon" are the same token — the exact pair a user is most
137
+ * likely to vary when re-asking.
138
+ */
139
+ function goalTokens(text) {
140
+ const flat = (text || '')
141
+ .toLowerCase()
142
+ .replace(/[-_]+/g, '')
143
+ .replace(/[^a-z0-9]+/g, ' ');
144
+ const tokens = new Set();
145
+ for (const raw of flat.split(' ')) {
146
+ const t = raw.trim();
147
+ if (!t || t.length < 3)
148
+ continue;
149
+ if (GOAL_STOPWORDS.has(t))
150
+ continue;
151
+ tokens.add(t);
152
+ }
153
+ return tokens;
154
+ }
155
+ /** Shared subject tokens needed before two goals are treated as the same ask. */
156
+ const MIN_SHARED_TOKENS = 3;
157
+ /** Fraction of the SHORTER goal's tokens that must be shared. */
158
+ const MIN_SHARED_RATIO = 0.6;
159
+ /**
160
+ * Are these two the same ask, worded differently?
161
+ *
162
+ * Both a floor and a ratio are required. The ratio alone passes two long goals
163
+ * that share a boilerplate opening; the floor alone passes two short goals that
164
+ * share one incidental noun. Together they mean "most of the shorter ask's
165
+ * subject matter appears in the other", which is what rewording looks like and
166
+ * what two unrelated asks in one folder do not.
167
+ *
168
+ * The floor is capped at the shorter goal's own token count, so a SHORT ask
169
+ * still matches its own rewording: "Package the add-on" and "package the addon
170
+ * for me" are two tokens each, and demanding three shared tokens would refuse
171
+ * the pair the rule exists for. At two tokens that means both must match — which
172
+ * is still enough to keep "update the readme" and "update the dockerfile"
173
+ * apart.
174
+ */
175
+ export function goalsLookSame(a, b) {
176
+ const ta = goalTokens(a);
177
+ const tb = goalTokens(b);
178
+ if (ta.size === 0 || tb.size === 0)
179
+ return false;
180
+ let shared = 0;
181
+ for (const t of ta)
182
+ if (tb.has(t))
183
+ shared += 1;
184
+ const smaller = Math.min(ta.size, tb.size);
185
+ if (shared < Math.min(MIN_SHARED_TOKENS, smaller))
186
+ return false;
187
+ return shared / smaller >= MIN_SHARED_RATIO;
188
+ }
189
+ /**
190
+ * Reconcile a saved task plan against what is actually on disk.
191
+ *
192
+ * WHY THIS EXISTS (the live NVDA-addon failure): the checkpoint for that goal
193
+ * said `5/5 tasks completed`, so "resume unless the user asks" looked correct —
194
+ * re-entering a finished plan would skip every task. But three of the five
195
+ * completions were false: the step claimed success, `zip` exited 0 on inputs
196
+ * that did not exist, and the packaged deliverable was a 22-byte empty archive.
197
+ * A checkpoint's statuses are therefore CLAIMS, and the only thing that makes
198
+ * them safe to skip is the artifact behind them.
199
+ *
200
+ * The rule, in one line: a completed step whose DECLARED files are not on disk
201
+ * (or are empty shells) is demoted to `pending`, so a resume re-runs exactly the
202
+ * work that is missing instead of skipping it.
203
+ *
204
+ * Deliberately narrow: only a step's explicit `expectedFiles` is checked. A
205
+ * description like "Delete legacy.js" would look like an unmet deliverable if we
206
+ * inferred artifacts from prose, so prose is never used to decide what re-runs —
207
+ * that stays the planner's declared contract. Steps with nothing declared are
208
+ * left exactly as they are rather than being demoted on a guess.
209
+ *
210
+ * Never throws: reconciliation failure reports, it does not break a resume.
211
+ */
212
+ export function reconcileTaskPlan(context, workingDirectory) {
213
+ const demoted = [];
214
+ let plan;
215
+ try {
216
+ plan = structuredClone(context.taskPlan ?? []);
217
+ }
218
+ catch {
219
+ // An unclonable plan is not a verdict — hand it back untouched.
220
+ return { context, demoted };
221
+ }
222
+ const root = workingDirectory || context.workingDirectory || process.cwd();
223
+ for (const step of plan) {
224
+ if (step.status !== 'completed')
225
+ continue;
226
+ const declared = (step.expectedFiles ?? []).filter((f) => f && f.trim());
227
+ if (declared.length === 0)
228
+ continue;
229
+ try {
230
+ const check = verifyArtifacts(declared, root);
231
+ if (check.ok)
232
+ continue;
233
+ step.status = 'pending';
234
+ step.result =
235
+ `re-opened on resume — the step reported success but its deliverable is not on disk (${check.reason})`;
236
+ demoted.push({ id: step.id, reason: check.reason ?? 'deliverable missing' });
237
+ }
238
+ catch {
239
+ // Best-effort: a filesystem error must not demote a step on a guess.
240
+ }
241
+ }
242
+ if (demoted.length === 0)
243
+ return { context, demoted };
244
+ return { context: { ...context, taskPlan: plan }, demoted };
245
+ }
246
+ /** True when the plan still has work that can be run. */
247
+ export function planHasPendingWork(context) {
248
+ return (context.taskPlan ?? []).some((s) => s.status === 'pending');
249
+ }
89
250
  /** List all saved checkpoints, newest first (for `nuvira execute --checkpoint-list`). */
90
251
  export function listCheckpoints() {
91
252
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint-store.js","sourceRoot":"","sources":["../../src/agents/checkpoint-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint-store.js","sourceRoot":"","sources":["../../src/agents/checkpoint-store.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,32 @@ export interface PublishCredentials {
42
42
  git: GitCredentials;
43
43
  npm: NpmCredentials;
44
44
  }
45
+ /**
46
+ * Release credentials may be STORED, not merely exported for one session.
47
+ *
48
+ * Why this exists: this store used to read only `process.env` and `.npmrc`,
49
+ * and `collectAll()` was the only way to mark credentials as collected. So an
50
+ * agent asked to release needed both tokens re-exported in its environment
51
+ * every session, and the `publish` TOOL — which may never prompt — could never
52
+ * set them up at all: it called `setupGitCredentials()` / `setupNpmAuth()`
53
+ * without `collectAll()`, both threw, and a single `try/catch` swallowed the
54
+ * pair. A tool-driven release therefore ran with NO credentials while
55
+ * reporting a clean pipeline.
56
+ *
57
+ * Tokens now persist in the nuvira env file (0600, resolved by
58
+ * `resolveNuviraEnvFile` — outside the repo, never in shell history), the SAME
59
+ * store the skill-secret path already writes. One place a credential lives.
60
+ */
61
+ export declare const RELEASE_CREDENTIAL_KEYS: {
62
+ /** GitHub PAT / OAuth token used for HTTPS push. */
63
+ readonly gitToken: "GITHUB_TOKEN";
64
+ /** Git username paired with {@link RELEASE_CREDENTIAL_KEYS.gitToken}. */
65
+ readonly gitUsername: "GIT_USERNAME";
66
+ /** npm automation token used for `npm publish`. */
67
+ readonly npmToken: "NPM_TOKEN";
68
+ /** Optional non-default npm registry. */
69
+ readonly npmRegistry: "NPM_REGISTRY";
70
+ };
45
71
  export declare class CredentialStore {
46
72
  private _git;
47
73
  private _npm;
@@ -61,6 +87,24 @@ export declare class CredentialStore {
61
87
  * Does NOT prompt — call collectAll() for interactive collection.
62
88
  */
63
89
  constructor();
90
+ /**
91
+ * Non-interactive initialisation.
92
+ *
93
+ * Adopts whatever was auto-detected — environment variables, the persisted
94
+ * store, and the project `.npmrc` — and marks the store collected, so
95
+ * {@link setupGitCredentials} / {@link setupNpmAuth} can run with NO TTY.
96
+ *
97
+ * This is the method the `publish` TOOL must call: a tool call may never
98
+ * block on a prompt, whereas `nuvira publish` on a terminal still uses
99
+ * `collectAll()` to ask for anything missing.
100
+ */
101
+ initialize(): PublishCredentials;
102
+ /**
103
+ * Validate the detected credentials against the live services.
104
+ * Best-effort and NON-FATAL: a network hiccup reports `unknown`, never a
105
+ * failure, so a preflight check can advise without blocking a release.
106
+ */
107
+ verify(): Promise<PublishVerification>;
64
108
  /**
65
109
  * Collect missing credentials interactively.
66
110
  * Skips prompts for already-detected values.
@@ -99,4 +143,80 @@ export declare function checkNpmCredentials(): boolean;
99
143
  * Get a human-readable summary of the current credential status.
100
144
  */
101
145
  export declare function getCredentialStatus(): string;
146
+ /** Where a credential was found. */
147
+ export type CredentialOrigin = 'env' | 'stored' | 'npmrc' | 'ssh' | 'none';
148
+ /** One row of the release-credential status table. */
149
+ export interface ReleaseCredentialRow {
150
+ /** Env var name the credential lives under. */
151
+ key: string;
152
+ /** What the credential is for. */
153
+ role: 'git' | 'npm';
154
+ /** Whether a usable value was found anywhere. */
155
+ set: boolean;
156
+ /** Masked value — enough to identify the key, never the key itself. */
157
+ masked?: string;
158
+ /** Where the value came from. */
159
+ origin: CredentialOrigin;
160
+ }
161
+ /** Result of a live credential probe against GitHub / the npm registry. */
162
+ export interface CredentialProbe {
163
+ /** False when the check could not be completed (offline, timeout). */
164
+ checked: boolean;
165
+ /** True only when the service CONFIRMED the credential works. */
166
+ ok: boolean;
167
+ /** Human-readable outcome. */
168
+ detail: string;
169
+ }
170
+ /** Both probes from {@link CredentialStore.verify}. */
171
+ export interface PublishVerification {
172
+ git: CredentialProbe;
173
+ npm: CredentialProbe;
174
+ }
175
+ /** The full release-credential picture, for the CLI and the tool. */
176
+ export interface ReleaseCredentialStatus {
177
+ rows: ReleaseCredentialRow[];
178
+ git: {
179
+ canPush: boolean;
180
+ remoteUrl?: string;
181
+ repoSlug?: string;
182
+ origin: CredentialOrigin;
183
+ };
184
+ npm: {
185
+ canPublish: boolean;
186
+ registry: string;
187
+ origin: CredentialOrigin;
188
+ };
189
+ /** Path of the store the values are persisted to. */
190
+ storePath: string;
191
+ }
192
+ /**
193
+ * Describe every release credential, masked, and say whether a release could
194
+ * run right now. Never returns a raw secret — only {@link maskSecret} shapes.
195
+ */
196
+ export declare function releaseCredentialStatus(): ReleaseCredentialStatus;
197
+ /**
198
+ * Persist a release credential so it survives the session.
199
+ *
200
+ * Writes to the nuvira env file (created 0600 by {@link saveEnvValue}), which
201
+ * lives OUTSIDE the repository — a token in a committed file is a leak, and a
202
+ * token in a shell export is gone at the next login.
203
+ */
204
+ export declare function storeReleaseCredential(name: string, value: string): {
205
+ success: boolean;
206
+ path: string;
207
+ reason?: string;
208
+ };
209
+ /**
210
+ * Forget a stored release credential.
211
+ * A value that was never stored is a SUCCESS — the caller's intent already
212
+ * holds, and reporting failure would only surface a pointless error.
213
+ */
214
+ export declare function forgetReleaseCredential(name: string): {
215
+ success: boolean;
216
+ path: string;
217
+ removed: boolean;
218
+ reason?: string;
219
+ };
220
+ /** Whether `name` is a credential this module is willing to store. */
221
+ export declare function isReleaseCredentialKey(name: string): boolean;
102
222
  //# sourceMappingURL=credential-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../src/agents/credential-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,cAAc,CAAC;IACpB,GAAG,EAAE,cAAc,CAAC;CACrB;AAwGD,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,IAAI,CAAyC;IACrD,OAAO,CAAC,UAAU,CAAS;IAE3B,kCAAkC;IAClC,IAAI,GAAG,IAAI,cAAc,CAExB;IAED,kCAAkC;IAClC,IAAI,GAAG,IAAI,cAAc,CAExB;IAED,8CAA8C;IAC9C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,wDAAwD;IACxD,IAAI,OAAO,IAAI,OAAO,CAIrB;IAED,2DAA2D;IAC3D,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;OAGG;;IAcH;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA8H/C;;;;;;OAMG;IACH,mBAAmB,IAAI,IAAI;IA+G3B;;;;;OAKG;IACH,YAAY,IAAI,IAAI;IAyBpB;;;OAGG;IACH,OAAO,IAAI,IAAI;CAqBhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAiB5C"}
1
+ {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../src/agents/credential-store.ts"],"names":[],"mappings":"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"}