@agent-native/core 0.35.0 → 0.35.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 (104) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/context-xray-local.d.ts +2 -2
  3. package/dist/cli/context-xray-local.d.ts.map +1 -1
  4. package/dist/cli/context-xray-local.js +1449 -53
  5. package/dist/cli/context-xray-local.js.map +1 -1
  6. package/dist/cli/create.d.ts.map +1 -1
  7. package/dist/cli/create.js +1 -0
  8. package/dist/cli/create.js.map +1 -1
  9. package/dist/cli/skills.d.ts.map +1 -1
  10. package/dist/cli/skills.js +226 -78
  11. package/dist/cli/skills.js.map +1 -1
  12. package/dist/cli/templates-meta.d.ts.map +1 -1
  13. package/dist/cli/templates-meta.js +8 -4
  14. package/dist/cli/templates-meta.js.map +1 -1
  15. package/dist/client/AgentPanel.d.ts.map +1 -1
  16. package/dist/client/AgentPanel.js +5 -11
  17. package/dist/client/AgentPanel.js.map +1 -1
  18. package/dist/client/AssistantChat.d.ts +6 -0
  19. package/dist/client/AssistantChat.d.ts.map +1 -1
  20. package/dist/client/AssistantChat.js +33 -5
  21. package/dist/client/AssistantChat.js.map +1 -1
  22. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  23. package/dist/client/MultiTabAssistantChat.js +63 -3
  24. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  25. package/dist/client/agent-chat.d.ts +39 -3
  26. package/dist/client/agent-chat.d.ts.map +1 -1
  27. package/dist/client/agent-chat.js +168 -33
  28. package/dist/client/agent-chat.js.map +1 -1
  29. package/dist/client/application-state.d.ts +13 -0
  30. package/dist/client/application-state.d.ts.map +1 -0
  31. package/dist/client/application-state.js +99 -0
  32. package/dist/client/application-state.js.map +1 -0
  33. package/dist/client/frame-protocol.d.ts +11 -3
  34. package/dist/client/frame-protocol.d.ts.map +1 -1
  35. package/dist/client/frame-protocol.js.map +1 -1
  36. package/dist/client/index.d.ts +4 -2
  37. package/dist/client/index.d.ts.map +1 -1
  38. package/dist/client/index.js +4 -2
  39. package/dist/client/index.js.map +1 -1
  40. package/dist/client/progress/RunsTray.d.ts +1 -0
  41. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  42. package/dist/client/progress/RunsTray.js +50 -16
  43. package/dist/client/progress/RunsTray.js.map +1 -1
  44. package/dist/client/use-action.d.ts +12 -0
  45. package/dist/client/use-action.d.ts.map +1 -1
  46. package/dist/client/use-action.js +14 -2
  47. package/dist/client/use-action.js.map +1 -1
  48. package/dist/client/use-agent-chat-context.d.ts +15 -0
  49. package/dist/client/use-agent-chat-context.d.ts.map +1 -0
  50. package/dist/client/use-agent-chat-context.js +32 -0
  51. package/dist/client/use-agent-chat-context.js.map +1 -0
  52. package/dist/deploy/build.d.ts.map +1 -1
  53. package/dist/deploy/build.js +1 -2
  54. package/dist/deploy/build.js.map +1 -1
  55. package/dist/index.browser.d.ts +1 -1
  56. package/dist/index.browser.d.ts.map +1 -1
  57. package/dist/index.browser.js +1 -1
  58. package/dist/index.browser.js.map +1 -1
  59. package/dist/index.d.ts +1 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/mcp/server.d.ts +4 -2
  64. package/dist/mcp/server.d.ts.map +1 -1
  65. package/dist/mcp/server.js +33 -4
  66. package/dist/mcp/server.js.map +1 -1
  67. package/dist/provider-api/index.d.ts.map +1 -1
  68. package/dist/provider-api/index.js +14 -6
  69. package/dist/provider-api/index.js.map +1 -1
  70. package/dist/server/agent-teams.d.ts +4 -1
  71. package/dist/server/agent-teams.d.ts.map +1 -1
  72. package/dist/server/agent-teams.js +104 -28
  73. package/dist/server/agent-teams.js.map +1 -1
  74. package/dist/server/auth.d.ts.map +1 -1
  75. package/dist/server/auth.js +21 -11
  76. package/dist/server/auth.js.map +1 -1
  77. package/dist/server/request-context.d.ts +3 -4
  78. package/dist/server/request-context.d.ts.map +1 -1
  79. package/dist/server/request-context.js.map +1 -1
  80. package/dist/server/self-dispatch.d.ts.map +1 -1
  81. package/dist/server/self-dispatch.js +17 -1
  82. package/dist/server/self-dispatch.js.map +1 -1
  83. package/dist/server/ssr-handler.d.ts.map +1 -1
  84. package/dist/server/ssr-handler.js +9 -18
  85. package/dist/server/ssr-handler.js.map +1 -1
  86. package/dist/templates/default/AGENTS.md +1 -1
  87. package/dist/templates/default/DEVELOPING.md +7 -13
  88. package/dist/templates/default/package.json +3 -3
  89. package/dist/templates/workspace-core/AGENTS.md +6 -4
  90. package/dist/templates/workspace-root/AGENTS.md +6 -4
  91. package/docs/content/actions.md +5 -7
  92. package/docs/content/client.md +49 -44
  93. package/docs/content/context-awareness.md +20 -33
  94. package/docs/content/creating-templates.md +2 -2
  95. package/docs/content/key-concepts.md +3 -3
  96. package/docs/content/sharing.md +1 -1
  97. package/docs/content/template-mail.md +1 -1
  98. package/docs/content/voice-input.md +1 -1
  99. package/package.json +11 -7
  100. package/src/templates/default/AGENTS.md +1 -1
  101. package/src/templates/default/DEVELOPING.md +7 -13
  102. package/src/templates/default/package.json +3 -3
  103. package/src/templates/workspace-core/AGENTS.md +6 -4
  104. package/src/templates/workspace-root/AGENTS.md +6 -4
@@ -15,13 +15,13 @@ const HELP = `agent-native skills
15
15
 
16
16
  Usage:
17
17
  agent-native skills list
18
- agent-native skills add assets|design-exploration|visual-plans|context-xray [--client codex|claude-code|claude-code-cli|cowork|all] [--scope user|project] [--mcp-url <url>] [--yes] [--dry-run] [--json]
18
+ agent-native skills add assets|design-exploration|plans|visual-plan|visualize-plan|context-xray [--client codex|claude-code|claude-code-cli|cowork|all] [--scope user|project] [--mcp-url <url>] [--yes] [--dry-run] [--json]
19
19
  agent-native skills add <manifest-or-app-dir> [--client ...] [--yes]
20
20
 
21
21
  Examples:
22
22
  agent-native skills add assets
23
23
  agent-native skills add design-exploration
24
- agent-native skills add visual-plans
24
+ agent-native skills add plans
25
25
  agent-native skills add context-xray --client all
26
26
  agent-native skills add assets --client claude-code
27
27
  agent-native skills add assets --mcp-url https://my-app.ngrok-free.dev
@@ -188,21 +188,45 @@ iteration, or a human-in-the-loop choice among design directions.
188
188
  const VISUAL_PLANS_SKILL_MD = `---
189
189
  name: visual-plans
190
190
  description: >-
191
- Use Visual Plans for coding-agent work that needs an interactive HTML plan,
192
- diagrams, wireframes, prototype options, annotations, implementation tasks,
193
- feedback, and proof gates through the hosted Visual Plans MCP app.
191
+ Use Agent-Native Plans when coding-agent work needs an interactive HTML plan
192
+ document with diagrams, wireframes, mockups, prototypes, annotations, and
193
+ comments.
194
194
  metadata:
195
195
  visibility: exported
196
196
  ---
197
197
 
198
- # Visual Plans
198
+ # Agent-Native Plans
199
199
 
200
- Use Visual Plans as HTML plan mode for coding work. The point is not to create a
201
- prettier Markdown plan. The point is to give the user something visual to react
202
- to before the agent edits code: diagrams, wireframes, option cards, clickable
203
- prototype sketches, assumptions, tasks, annotations, and proof gates.
200
+ Agent-Native Plans is HTML plan mode for coding agents. Generate the kind of
201
+ plan you would normally write in Markdown, but as a scannable HTML plan
202
+ document with visual blocks mixed in: diagrams, wireframes, mockups, prototype
203
+ options, tradeoff cards, file/symbol implementation maps, code previews, and
204
+ annotation prompts. It is a plan document, not a marketing page.
204
205
 
205
- Text is the fallback layer. Default to visual artifacts.
206
+ The goal is impatient review. The user should be able to react to visuals first
207
+ and read prose only where it helps.
208
+
209
+ Install with the Agent-Native CLI. It adds the skills and the MCP connector:
210
+
211
+ \`\`\`bash
212
+ npx @agent-native/core@latest skills add plans
213
+ \`\`\`
214
+
215
+ Then start typing \`/visual-plan\` for a fresh plan or \`/visualize-plan\` to
216
+ turn an existing Codex, Claude Code, Markdown, or pasted plan into a visual
217
+ companion. The hosted MCP app opens inline where supported and falls back to a
218
+ browser link everywhere else.
219
+
220
+ ## Slash Commands
221
+
222
+ - \`/visual-plan\`: create a fresh rich HTML plan before implementation. Include
223
+ a docs-level plan, visual architecture/flow diagrams, detailed wireframes or
224
+ mockups when UI is involved, an implementation map with files/symbols/snippets,
225
+ tradeoffs, open questions, and clear feedback prompts.
226
+ - \`/visualize-plan\`: import an existing Codex, Claude Code, Markdown, or pasted
227
+ text plan and turn it into a visual companion. Preserve the plan's intent,
228
+ then add diagrams, wireframes, option cards, file/symbol maps, and annotation
229
+ prompts.
206
230
 
207
231
  ## When To Use
208
232
 
@@ -212,74 +236,182 @@ Create or update a visual plan when:
212
236
  diagrams, wireframes, mockups, prototype options, comments, or annotations;
213
237
  - work is multi-file, ambiguous, long-running, risky, or UI-heavy;
214
238
  - the user needs to react quickly to direction rather than read prose;
215
- - the task touches auth, billing, migrations, public APIs, tests, production
216
- config, data, security, permissions, or deploy behavior;
217
- - you would otherwise proceed on a material assumption;
218
- - you are about to claim the work is complete and need proof gates checked.
239
+ - architecture, data flow, UI direction, options, or open questions would be
240
+ clearer visually;
241
+ - you need the user to react before implementation.
219
242
 
220
- Do not log every trivial inference. An assumption is material when changing it
221
- would affect user-visible behavior, data model, permissions, billing, public API
222
- shape, migrations/backfills/data loss, test strategy, architecture boundaries,
223
- deployment/configuration, file scope, or the definition of done.
243
+ The companion \`visualize-plan\` skill is installed with this one. Use it when
244
+ the user already has a Codex, Claude Code, Markdown, or pasted text plan and
245
+ wants a visual companion instead of a fresh plan.
224
246
 
225
247
  ## Core Workflow
226
248
 
227
- 1. Call \`create-visual-plan\` with the goal, source, repo path, and initial
228
- plan nodes before implementation.
229
- 2. Surface the returned Visual Plans link or inline MCP App. In CLI hosts, tell
230
- the user to open the link and review the visual plan.
231
- 3. Prefer diagrams, wireframes, UI mockups, option cards, and small interactive
232
- prototypes over paragraphs.
233
- 4. Call \`get-plan-feedback\` before editing, after review, after any long pause,
249
+ 1. Call \`create-visual-plan\` with the title, brief, source, repo path, and plan
250
+ sections before implementation.
251
+ 2. Put the best possible plan document in \`html\` when you can. It should feel
252
+ like a bespoke HTML version of a strong Markdown implementation plan, not a
253
+ dashboard or landing page.
254
+ 3. Surface the returned Plans link or inline MCP App. In CLI hosts, ask the user
255
+ to review the plan visually.
256
+ 4. Prefer diagrams, wireframes, UI mockups, option cards, implementation maps,
257
+ and small interactive prototypes over paragraphs.
258
+ 5. Call \`get-plan-feedback\` before editing, after review, after any long pause,
234
259
  and before the final response.
235
- 5. If the user comments, accepts, rejects, corrects, or requests proof, consume
236
- the structured feedback and update the implementation plan accordingly.
237
- 6. If new facts require a change after approval, create an amendment or
238
- deviation with \`update-visual-plan\` instead of drifting silently.
239
- 7. Attach command/test/log/diff/screenshot/design artifacts with
240
- \`record-plan-evidence\`. Agent claims are not proof.
241
- 8. Export an HTML/JSON/Markdown receipt with \`export-visual-plan\` when the
260
+ 6. Incorporate comments/corrections with \`update-visual-plan\`; update the HTML
261
+ document when feedback changes the direction.
262
+ 7. Export an HTML/JSON/Markdown receipt with \`export-visual-plan\` when the
242
263
  user wants a shareable summary.
243
264
 
244
265
  ## Visual Defaults
245
266
 
246
- - UI work gets wireframes or prototype options before coding.
267
+ - Use implementation-plan structure first: objective, scope/non-goals, proposed
268
+ approach, phases or steps, files/symbols/snippets, risks, open questions, and
269
+ validation.
270
+ - UI work gets detailed wireframes, mockups, or prototype options before coding.
271
+ - Wireframes should be concrete enough to critique: layout regions, controls,
272
+ states, empty/loading/error paths, review affordances, and copy placeholders.
247
273
  - Backend/refactor work gets architecture and data-flow diagrams.
248
274
  - Complex tradeoffs get two or three option cards with consequences.
249
- - Assumptions are shown as reviewable visual callouts, not hidden prose.
250
- - Proof gates stay compact: what must pass, current evidence, and missing proof.
251
- - Long prose is collapsed behind the visual plan.
275
+ - Open questions are surfaced as visual callouts, not buried in paragraphs.
276
+ - Long prose is split into readable document sections with clear headings.
277
+ - Visuals should be review aids, not decoration. Avoid decorative hero art,
278
+ gradient/hero backgrounds, brand/logo chrome, nav bars, slogans, fluffy value
279
+ props, huge landing-page H1s, or marketing-style cards unless the user
280
+ explicitly asks.
281
+ - Implementation plans include a file map: file path, symbols/components to
282
+ touch, reason for the change, risk/coordination notes when relevant, and short
283
+ syntax-highlighted snippets for the code shape the agent expects to modify.
284
+ - File previews should be concise and reviewable. Do not paste entire large
285
+ files; show the key region, public API, component boundary, schema, action, or
286
+ selector that matters for review.
287
+ - Include README-like detail when helpful: command names, tool behavior,
288
+ install flow, MCP/link fallback, data shape, and what is in or out of scope.
289
+ - Comments, corrections, replacements, and annotations should feel
290
+ plannotator-style: fast to mark up, structured enough for the agent to
291
+ consume, and easy to share when the user chooses.
252
292
 
253
293
  ## Tool Guidance
254
294
 
255
- - \`create-visual-plan\`: start one visual plan per agent task/run.
256
- - \`update-visual-plan\`: bulk add/update plan nodes, options, assumptions,
257
- decisions, tasks, risks, deviations, annotations, and proof gates.
258
- - \`get-visual-plan\` and \`get-plan-review-queue\`: read current plan state.
295
+ - \`create-visual-plan\`: start one HTML plan per agent task/run.
296
+ - \`visualize-plan\`: create a visual companion from an existing text plan.
297
+ - \`update-visual-plan\`: revise the plan document, sections, status, or comments.
298
+ - \`get-visual-plan\`: read the current plan document and annotations.
259
299
  - \`get-plan-feedback\`: read unconsumed human feedback. Use it frequently.
260
- - \`record-plan-progress\`: update phase/status and mark feedback consumed only
261
- after you incorporated it.
262
- - \`record-plan-evidence\`: attach artifacts and provenance. Use high trust for
263
- captured commands/tests/CI, human_confirmed for explicit human confirmation,
264
- and low trust for agent-only statements.
265
- - \`analyze-visual-plan\`: import pasted Markdown/text and create possible
266
- visual plan nodes. Treat detections as possible, not authoritative.
300
+ - \`export-visual-plan\`: export HTML, Markdown fallback, and structured JSON.
301
+
302
+ ## HTML Guidance
303
+
304
+ - Prefer semantic HTML with scoped CSS inside the document.
305
+ - Match Agent-Native's dark, restrained theme unless the user asks otherwise.
306
+ - Keep the first viewport legible and plan-like: title, brief, concise scope,
307
+ and a useful diagram/checklist/table when it helps.
308
+ - Use tabs, accordions, or small interactions only when they make review faster.
309
+ - Do not paste huge HTML into chat. Store it in Plans and surface the MCP app or
310
+ link.
267
311
 
268
312
  ## Guardrails
269
313
 
270
314
  - Keep it simple. Do not build a ten-tab dashboard unless the user asks.
271
- - Before high-risk actions, create a blocking review item or ask the user
272
- directly.
273
- - Never modify tests merely to make implementation pass unless the visual plan
274
- explicitly approves test expectation changes.
275
- - If proof is missing, say so. Do not call the task complete just because code
276
- was changed.
277
315
  - Do not hand-roll MCP HTTP requests with curl. Use host-exposed tools after
278
316
  restart/reload, or use the returned browser/deep-link fallback.
279
317
  - Hosted default: connect
280
- \`https://plans.agent-native.com/_agent-native/mcp\`. Do not put shared
318
+ \`https://plan.agent-native.com/_agent-native/mcp\`. Do not put shared
281
319
  secrets in skill files.
282
320
  `;
321
+ const VISUALIZE_PLAN_SKILL_MD = `---
322
+ name: visualize-plan
323
+ description: >-
324
+ Convert an existing Codex, Claude Code, Markdown, or pasted plan into a
325
+ Agent-Native Plans HTML companion with diagrams, wireframes, annotations, and
326
+ feedback.
327
+ metadata:
328
+ visibility: exported
329
+ ---
330
+
331
+ # Visualize Plan
332
+
333
+ Use this as the visual companion for an existing text plan. The native Codex or
334
+ Claude Code plan can stay exactly where it is; Agent-Native Plans turns it into
335
+ an interactive HTML review surface with diagrams, wireframes, prototype options,
336
+ annotations, questions, and feedback.
337
+
338
+ This is for impatient review. Default to things the user can scan and react to.
339
+ It should still read like a plan, not a marketing page.
340
+
341
+ Install with the Agent-Native CLI if Plans is not already available:
342
+
343
+ \`\`\`bash
344
+ npx @agent-native/core@latest skills add plans
345
+ \`\`\`
346
+
347
+ That installs both \`/visual-plan\` and \`/visualize-plan\` plus the MCP
348
+ connector.
349
+
350
+ ## When To Use
351
+
352
+ Use \`visualize-plan\` when:
353
+
354
+ - the user has an existing Codex, Claude Code, Markdown, or pasted plan;
355
+ - the user asks to visualize, annotate, plannotate, mock up, diagram, or make a
356
+ plan easier to review;
357
+ - the plan is long enough that the user may not read it closely;
358
+ - UI direction, architecture, data flow, risky assumptions, or open questions
359
+ would be clearer visually;
360
+ - the user wants feedback on wireframes, design/prototype options, diagrams, or
361
+ tradeoffs before implementation.
362
+
363
+ If there is no existing plan text available, ask for it or use \`visual-plans\`
364
+ to create a fresh plan instead.
365
+
366
+ ## Workflow
367
+
368
+ 1. Gather the existing plan text from the user's paste, a referenced file, or
369
+ the recent agent-visible plan. Do not invent a source plan.
370
+ 2. Call \`visualize-plan\` with \`planText\`, \`title\`, \`goal\`, \`source\`,
371
+ and \`repoPath\` when available.
372
+ 3. Surface the returned Plans link or inline MCP App.
373
+ 4. Enrich the imported plan with \`update-visual-plan\` when helpful:
374
+ - diagrams for architecture, data flow, state machines, or dependencies;
375
+ - detailed wireframes/mockups for user-visible UI changes, including layout,
376
+ controls, states, empty/loading/error paths, and copy placeholders;
377
+ - two or three option cards when there are real tradeoffs;
378
+ - small prototype sketches for interactions, states, or animation choices;
379
+ - reviewable assumptions and open questions;
380
+ 5. Ask the user to react in the visual plan. Then call \`get-plan-feedback\`
381
+ before implementing, after review, and before final response.
382
+ 6. Treat the imported text as source material. Structured Plans state is
383
+ canonical for feedback, assumptions, and decisions.
384
+
385
+ ## Visual Defaults
386
+
387
+ - Keep the first screen simple and plan-like: title, brief, concise scope, and
388
+ one useful diagram/checklist/table when it helps.
389
+ - Prefer one strong diagram or wireframe over a wall of sections.
390
+ - Preserve the source plan's implementation substance: phases or steps,
391
+ files/symbols/snippets, risks, open questions, and validation.
392
+ - Hide long prose behind disclosure controls or source references when it helps
393
+ review speed.
394
+ - Add README-like detail when the source is too terse: slash commands, tool
395
+ behavior, install flow, MCP/link fallback, data shape, and scope.
396
+ - Avoid decorative hero art, gradient/hero backgrounds, logos, nav bars,
397
+ slogans, fluffy value props, huge landing-page H1s, and marketing-style cards
398
+ unless the user explicitly asks.
399
+ - Visuals should be review aids, not decoration.
400
+ - Label inferred items as possible, not confirmed.
401
+ - Ask for feedback with targeted prompts: "Which option?", "Is this flow
402
+ right?", "What assumption is wrong?", "What should change?"
403
+ - Preserve native-agent momentum: this companion should make the plan easier to
404
+ approve or revise, not force a giant planning ceremony.
405
+
406
+ ## Guardrails
407
+
408
+ - Do not replace a native plan unless the user asks. Build beside it.
409
+ - Do not pretend the companion has feedback until \`get-plan-feedback\` returns
410
+ it or the user pastes it back.
411
+ - Do not use visual polish as a substitute for clarity. The point is review.
412
+ - Do not hand-roll MCP HTTP requests with curl. Use host-exposed tools after
413
+ restart/reload, or use the returned browser/deep-link fallback.
414
+ `;
283
415
  const BUILT_IN_APP_SKILLS = {
284
416
  assets: {
285
417
  skillName: "assets",
@@ -369,19 +501,22 @@ const BUILT_IN_APP_SKILLS = {
369
501
  },
370
502
  "visual-plans": {
371
503
  skillName: "visual-plans",
504
+ extraSkills: {
505
+ "visualize-plan": VISUALIZE_PLAN_SKILL_MD,
506
+ },
372
507
  manifest: normalizeAppSkillManifest({
373
508
  schemaVersion: 1,
374
509
  id: "visual-plans",
375
- displayName: "Visual Plans",
376
- description: "Review coding-agent plans as interactive HTML with diagrams, wireframes, annotations, and proof gates.",
510
+ displayName: "Agent-Native Plans",
511
+ description: "Generate and review coding-agent plans as interactive HTML with diagrams, wireframes, prototypes, annotations, and feedback.",
377
512
  hosted: {
378
- url: "https://plans.agent-native.com",
379
- mcpUrl: "https://plans.agent-native.com/_agent-native/mcp",
513
+ url: "https://plan.agent-native.com",
514
+ mcpUrl: "https://plan.agent-native.com/_agent-native/mcp",
380
515
  },
381
- mcp: { serverName: "agent-native-visual-plans" },
516
+ mcp: { serverName: "agent-native-plans" },
382
517
  auth: {
383
518
  mode: "oauth",
384
- setup: "Authenticate with the Visual Plans MCP connector in the host app. No shared secrets are stored in skill files.",
519
+ setup: "Install with the Agent-Native CLI to add /visual-plan and /visualize-plan skills plus the Plans MCP connector. Authenticate only for hosted/account-backed sharing.",
385
520
  },
386
521
  surfaces: [
387
522
  {
@@ -389,6 +524,11 @@ const BUILT_IN_APP_SKILLS = {
389
524
  action: "create-visual-plan",
390
525
  path: "/plans",
391
526
  },
527
+ {
528
+ id: "visualize-plan",
529
+ action: "visualize-plan",
530
+ path: "/plans",
531
+ },
392
532
  ],
393
533
  skills: [
394
534
  {
@@ -396,6 +536,11 @@ const BUILT_IN_APP_SKILLS = {
396
536
  visibility: "exported",
397
537
  exportAs: "visual-plans",
398
538
  },
539
+ {
540
+ path: "skills/visualize-plan",
541
+ visibility: "exported",
542
+ exportAs: "visualize-plan",
543
+ },
399
544
  ],
400
545
  hostAdapters: [
401
546
  "codex-plugin",
@@ -459,18 +604,14 @@ const BUILT_IN_APP_SKILL_ALIASES = {
459
604
  "agent-native-design-exploration": "design",
460
605
  "visual-plans": "visual-plans",
461
606
  "visual-plan": "visual-plans",
607
+ "visualize-plan": "visual-plans",
608
+ "visualize-plans": "visual-plans",
462
609
  plans: "visual-plans",
463
610
  plan: "visual-plans",
464
611
  "html-plan": "visual-plans",
465
612
  "plan-mode": "visual-plans",
466
613
  plannotate: "visual-plans",
467
614
  plannotator: "visual-plans",
468
- contracts: "visual-plans",
469
- contract: "visual-plans",
470
- proof: "visual-plans",
471
- "proof-check": "visual-plans",
472
- "assumption-review": "visual-plans",
473
- "agent-native-contracts": "visual-plans",
474
615
  "agent-native-visual-plans": "visual-plans",
475
616
  "context-xray": "context-xray",
476
617
  "local-context-xray": "context-xray",
@@ -486,13 +627,7 @@ const BUILT_IN_APP_SKILL_DISPLAY_ALIASES = {
486
627
  "ux-exploration",
487
628
  "agent-native-design-exploration",
488
629
  ],
489
- "visual-plans": [
490
- "plans",
491
- "html-plan",
492
- "plannotate",
493
- "contracts",
494
- "proof-check",
495
- ],
630
+ "visual-plans": ["plans", "visualize-plan", "html-plan", "plannotate"],
496
631
  "context-xray": ["xray", "context-window", "context-usage"],
497
632
  };
498
633
  const CLIENT_LABELS = {
@@ -519,6 +654,12 @@ function isKnownSkill(value) {
519
654
  function isLocalOnlyBuiltInSkill(entry) {
520
655
  return Boolean(entry && "localOnly" in entry && entry.localOnly);
521
656
  }
657
+ function builtInExtraSkills(entry) {
658
+ return "extraSkills" in entry && entry.extraSkills ? entry.extraSkills : {};
659
+ }
660
+ function builtInSkillNames(entry) {
661
+ return [entry.skillName, ...Object.keys(builtInExtraSkills(entry))];
662
+ }
522
663
  function normalizeClientIds(values) {
523
664
  if (!Array.isArray(values))
524
665
  return [];
@@ -707,6 +848,7 @@ function loadSkillTarget(target) {
707
848
  const knownTarget = normalizeKnownSkillTarget(target);
708
849
  if (knownTarget) {
709
850
  const builtIn = BUILT_IN_APP_SKILLS[knownTarget];
851
+ const skillNames = builtInSkillNames(builtIn);
710
852
  return {
711
853
  id: builtIn.manifest.id,
712
854
  displayName: builtIn.manifest.displayName,
@@ -715,11 +857,17 @@ function loadSkillTarget(target) {
715
857
  file: `<built-in:${builtIn.manifest.id}>`,
716
858
  dir: process.cwd(),
717
859
  },
718
- skillNames: [builtIn.skillName],
860
+ skillNames,
719
861
  materializeInstructions(outDir) {
720
- const skillDir = path.join(outDir, "skills", builtIn.skillName);
721
- fs.mkdirSync(skillDir, { recursive: true });
722
- fs.writeFileSync(path.join(skillDir, "SKILL.md"), builtIn.skillMarkdown, "utf-8");
862
+ const skills = {
863
+ [builtIn.skillName]: builtIn.skillMarkdown,
864
+ ...builtInExtraSkills(builtIn),
865
+ };
866
+ for (const [skillName, skillMarkdown] of Object.entries(skills)) {
867
+ const skillDir = path.join(outDir, "skills", skillName);
868
+ fs.mkdirSync(skillDir, { recursive: true });
869
+ fs.writeFileSync(path.join(skillDir, "SKILL.md"), skillMarkdown, "utf-8");
870
+ }
723
871
  return outDir;
724
872
  },
725
873
  };