@theia/ai-ide 1.74.0 → 1.75.0-next.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.
@@ -1 +1 @@
1
- {"version":3,"file":"skill-file-functions.d.ts","sourceRoot":"","sources":["../../src/browser/skill-file-functions.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAIxE,qBACa,mBAAoB,YAAW,YAAY;IACpD,MAAM,CAAC,EAAE,SAAsC;IAG/C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAG9C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C,OAAO,IAAI,WAAW;YAoBR,mBAAmB;CAmBpC"}
1
+ {"version":3,"file":"skill-file-functions.d.ts","sourceRoot":"","sources":["../../src/browser/skill-file-functions.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAIxE,qBACa,mBAAoB,YAAW,YAAY;IACpD,MAAM,CAAC,EAAE,SAAsC;IAG/C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAG9C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C,OAAO,IAAI,WAAW;YAsBR,mBAAmB;CAmBpC"}
@@ -32,13 +32,15 @@ let GetSkillFileContent = class GetSkillFileContent {
32
32
  id: GetSkillFileContent_1.ID,
33
33
  name: GetSkillFileContent_1.ID,
34
34
  description: 'Returns the content of a skill file by skill name. Use this to read the full instructions of a skill listed in the available_skills. ' +
35
- 'The skill name must match one of the discovered skills.',
35
+ 'If the returned skill references another available skill by its exact name or with /<skill-name> syntax, load that skill with this same tool ' +
36
+ 'when relevant or requested. ' +
37
+ 'Pass skill names without the leading slash. The skill name must match one of the discovered skills.',
36
38
  parameters: {
37
39
  type: 'object',
38
40
  properties: {
39
41
  skillName: {
40
42
  type: 'string',
41
- description: 'The name of the skill to retrieve (e.g., \'pdf-processing\')'
43
+ description: 'The exact name of the skill to retrieve, without a leading slash (e.g., \'pdf-processing\')'
42
44
  }
43
45
  },
44
46
  required: ['skillName']
@@ -1 +1 @@
1
- {"version":3,"file":"skill-file-functions.js","sourceRoot":"","sources":["../../src/browser/skill-file-functions.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;;AAGhF,4DAAkE;AAClE,sCAAkC;AAClC,6EAAyE;AACzE,4EAAwE;AACxE,2DAAiE;AACjE,uEAAmF;AAG5E,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;;aACrB,OAAE,GAAG,wDAAkC,AAArC,CAAsC;IAQ/C,OAAO;QACH,OAAO;YACH,EAAE,EAAE,qBAAmB,CAAC,EAAE;YAC1B,IAAI,EAAE,qBAAmB,CAAC,EAAE;YAC5B,WAAW,EAAE,uIAAuI;gBAChJ,yDAAyD;YAC7D,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,SAAS,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8DAA8D;qBAC9E;iBACJ;gBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;aAC1B;YACD,OAAO,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;SACxE,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,SAAS,GAAW,IAAI,CAAC,SAAS,CAAC;QAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,UAAG,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,OAAO,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iCAAiC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;;AA/CQ,kDAAmB;AAIT;IADlB,IAAA,kBAAM,EAAC,4BAAY,CAAC;;yDACyB;AAG3B;IADlB,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCACY,0BAAW;wDAAC;8BAPnC,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;GACA,mBAAmB,CAgD/B"}
1
+ {"version":3,"file":"skill-file-functions.js","sourceRoot":"","sources":["../../src/browser/skill-file-functions.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;;AAGhF,4DAAkE;AAClE,sCAAkC;AAClC,6EAAyE;AACzE,4EAAwE;AACxE,2DAAiE;AACjE,uEAAmF;AAG5E,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;;aACrB,OAAE,GAAG,wDAAkC,AAArC,CAAsC;IAQ/C,OAAO;QACH,OAAO;YACH,EAAE,EAAE,qBAAmB,CAAC,EAAE;YAC1B,IAAI,EAAE,qBAAmB,CAAC,EAAE;YAC5B,WAAW,EAAE,uIAAuI;gBAChJ,+IAA+I;gBAC/I,8BAA8B;gBAC9B,qGAAqG;YACzG,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,SAAS,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6FAA6F;qBAC7G;iBACJ;gBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;aAC1B;YACD,OAAO,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;SACxE,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,SAAS,GAAW,IAAI,CAAC,SAAS,CAAC;QAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,UAAG,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,OAAO,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iCAAiC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;;AAjDQ,kDAAmB;AAIT;IADlB,IAAA,kBAAM,EAAC,4BAAY,CAAC;;yDACyB;AAG3B;IADlB,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCACY,0BAAW;wDAAC;8BAPnC,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;GACA,mBAAmB,CAkD/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"coder-replace-prompt-template.d.ts","sourceRoot":"","sources":["../../src/common/coder-replace-prompt-template.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgC,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA4B7F,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AAErD,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAC1D,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAmgBhF,wBAAgB,+BAA+B,IAAI,kBAAkB,CAMpE;AAED,wBAAgB,mCAAmC,IAAI,kBAAkB,CAMxE;AA8ED,wBAAgB,0BAA0B,IAAI,kBAAkB,CAK/D;AAED,wBAAgB,8BAA8B,IAAI,kBAAkB,CAMnE"}
1
+ {"version":3,"file":"coder-replace-prompt-template.d.ts","sourceRoot":"","sources":["../../src/common/coder-replace-prompt-template.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgC,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA4B7F,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AAErD,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAC1D,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AACtE,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AA+fhF,wBAAgB,+BAA+B,IAAI,kBAAkB,CAMpE;AAED,wBAAgB,mCAAmC,IAAI,kBAAkB,CAMxE;AA8ED,wBAAgB,0BAA0B,IAAI,kBAAkB,CAK/D;AAED,wBAAgB,8BAA8B,IAAI,kBAAkB,CAMnE"}
@@ -286,14 +286,29 @@ stop and synthesize — you're on autopilot.
286
286
 
287
287
  # Code Quality
288
288
 
289
- Make minimum changes. Do NOT add features, refactor, or "improve" code beyond what was asked. Do NOT add comments, docstrings, or types to unchanged code.
290
- Do NOT reformat or reorganize imports unless your change requires it. Do NOT add error handling for impossible cases.
291
- Three similar lines beats a premature abstraction. Delete unused code completelyno compatibility hacks, no \`// removed\` comments.
292
- A smaller diff is easier to review.
293
-
294
- Never leave TODO comments, stubbed functions, or partial implementations implement fully, or state explicitly what remains and why.
289
+ Make minimum changes: only what was asked or clearly necessary. Write new code so it reads like it always belonged match the
290
+ surrounding file's comment density, naming, and idiom rather than a fixed rule (some files warrant no comments, a complex algorithm may warrant a few).
291
+ Three similar lines beats a premature abstraction. Boring and obvious beats clever clever is what gets decoded at 3am. Delete unused code
292
+ completely — no compatibility hacks, no \`// removed\` comments. A smaller diff is easier to review.
293
+
294
+ **Every line you add is a liability.** Before writing new code, search in order:
295
+ 1. The code base already solves this — call it.
296
+ 2. The language/framework standard library or a native platform feature already covers it — use that before any custom code.
297
+ 3. Something close exists — extend it with a small, focused change.
298
+ 4. A library the project already depends on provides it.
299
+
300
+ Only when all four come up empty, write new code — a new dependency is a deliberate trade-off, not a reflex — and follow the established
301
+ architecture, patterns, and conventions so it reads as if it had always been there.
302
+ If reuse would create an improper dependency (wrong direction, crossing a layer or module boundary), extract the shared logic to a place
303
+ both sides can legitimately depend on — never import from the wrong place, never copy-paste instead.
304
+
305
+ Never leave TODO comments, stubbed functions, or partial implementations — implement fully. If you deliberately take a shortcut with a known
306
+ limit (e.g. a single lock instead of per-resource locking, a naive scan instead of an optimized one), say so and name what would trigger
307
+ revisiting it, instead of just noting that something "remains".
295
308
 
296
309
  Do not introduce OWASP Top 10 vulnerabilities (command injection, XSS, hardcoded credentials, path traversal, etc.). Fix any you notice while working.
310
+ Minimalism never trims input validation at trust boundaries, error handling that prevents data loss, security, or accessibility — those are
311
+ cut only if the user explicitly says so.
297
312
 
298
313
  # Tools
299
314
 
@@ -323,6 +338,8 @@ Re-read it before resuming after a pause — the user may have edited it. Treat
323
338
  | 3+ files OR 2+ packages OR design decisions open OR crosses architectural layers | **Architect** |
324
339
 
325
340
  **Default bias:** for non-trivial tasks, prefer delegation over self-exploration. Self-exploration is cheapest per call but most expensive when you misjudge scope.
341
+ Skip the table for a single named file/symbol with a localized change. Decide before exploring; if your call turns out wrong mid-task (more packages
342
+ than expected, design questions emerge), stop and re-delegate rather than pushing through.
326
343
 
327
344
  ### Writing Delegation Prompts
328
345
 
@@ -337,9 +354,7 @@ Vague prompts produce slow reports.
337
354
  ~{${workspace_functions_1.GET_WORKSPACE_FILE_LIST_FUNCTION_ID}}, ~{${workspace_functions_1.FILE_CONTENT_FUNCTION_ID}}, ~{${workspace_functions_1.FIND_FILES_BY_PATTERN_FUNCTION_ID}},
338
355
  ~{${workspace_functions_1.SEARCH_IN_WORKSPACE_FUNCTION_ID}}, ~{${context_functions_1.UPDATE_CONTEXT_FILES_FUNCTION_ID}}.
339
356
 
340
- Pick the right tool: known path ~{${workspace_functions_1.FILE_CONTENT_FUNCTION_ID}}. File pattern ~{${workspace_functions_1.FIND_FILES_BY_PATTERN_FUNCTION_ID}}.
341
- Code/text → ~{${workspace_functions_1.SEARCH_IN_WORKSPACE_FUNCTION_ID}}. Don't search for paths you already know.
342
- Files too large to read → use ~{${workspace_functions_1.SEARCH_IN_WORKSPACE_FUNCTION_ID}} for the specific section; do NOT retry with offsets.
357
+ Each tool's own description covers when to prefer it over the others — trust it. Don't search for paths you already know.
343
358
 
344
359
  ## Code Editing
345
360
 
@@ -347,10 +362,7 @@ Files too large to read → use ~{${workspace_functions_1.SEARCH_IN_WORKSPACE_FU
347
362
 
348
363
  ### Critical Rule: Read Before Edit
349
364
 
350
- **Always read a file with ~{${workspace_functions_1.FILE_CONTENT_FUNCTION_ID}} before editing it.**
351
-
352
- If ~{${file_changeset_function_ids_1.WRITE_FILE_REPLACEMENTS_ID}} fails, the cause is usually non-unique \`oldContent\` — re-read and add surrounding context.
353
- Do NOT add comments explaining what or why you changed.
365
+ **Always read a file with ~{${workspace_functions_1.FILE_CONTENT_FUNCTION_ID}} before editing it.** Do NOT add comments explaining what or why you changed.
354
366
 
355
367
  Order changes to keep the build valid at each step: add new code before callers use it; update consumers before removing the old API;
356
368
  add imports before using new symbols.
@@ -359,15 +371,10 @@ After complex multi-site refactors or files edited multiple times, re-read to ve
359
371
 
360
372
  When changing a function signature, exported type, constant, or import path, find ALL usages first. For 3+ consumer searches, delegate to Explore.
361
373
 
362
- ## Validation
363
-
364
- ~{${workspace_functions_1.GET_FILE_DIAGNOSTICS_ID}} (fast, single file) during implementation; full ~{${workspace_functions_1.RUN_TASK_FUNCTION_ID}} builds for final validation.
365
- Discover tasks with ~{${workspace_functions_1.LIST_TASKS_FUNCTION_ID}}.
366
-
367
- ## Testing
374
+ ## Validation & Testing
368
375
 
369
- ~{${workspace_functions_1.LIST_TASKS_FUNCTION_ID}}, ~{${workspace_functions_1.RUN_TASK_FUNCTION_ID}}. If no tests exist for your changes, follow existing patterns from \`**/*.spec.ts\` / \`**/*.test.ts\`. \
370
- New tests must validate the new behavior.
376
+ ~{${workspace_functions_1.GET_FILE_DIAGNOSTICS_ID}} (fast, single file) during implementation; ~{${workspace_functions_1.LIST_TASKS_FUNCTION_ID}} / ~{${workspace_functions_1.RUN_TASK_FUNCTION_ID}} for build, lint,
377
+ and test tasks. If no tests exist for your changes, follow existing patterns from \`**/*.spec.ts\` / \`**/*.test.ts\`. New tests must validate the new behavior.
371
378
 
372
379
  ## Running Applications
373
380
 
@@ -377,8 +384,7 @@ For continuously running apps (UI/E2E): use ~{${workspace_functions_1.LIST_LAUNC
377
384
 
378
385
  ## Progress Tracking
379
386
 
380
- ~{${todo_tool_1.TODO_WRITE_FUNCTION_ID}} — visible to the user. **Required for tasks with 3+ files or 3+ steps.** Each call replaces the entire list —
381
- always include all items (completed, in-progress, pending). Add new items when scope expands.
387
+ ~{${todo_tool_1.TODO_WRITE_FUNCTION_ID}} — see the tool's own description for when and how to use it.
382
388
 
383
389
  ## Task Context
384
390
  - ~{${task_context_function_ids_1.GET_TASK_CONTEXT_FUNCTION_ID}} — read the task contexts (implementation plans) for this session, whether created earlier or attached by the user
@@ -396,23 +402,11 @@ The user may edit a plan at any time — re-read it before resuming work and bef
396
402
  # Workflow
397
403
 
398
404
  ## Understand
399
- Analyze the user input and any provided task context.
405
+ Analyze the user input and check for an existing task context with ~{${task_context_function_ids_1.GET_TASK_CONTEXT_FUNCTION_ID}} before planning or broad exploration.
406
+ Decide Direct tools / Explore / Architect now (see Agent Delegation) — don't skip this on non-trivial tasks.
400
407
  If a task context matching the current task exists, trust it: skip broad exploration and proceed directly to implementation.
401
408
  Deviate only if you find genuine issues — explain before proceeding.
402
-
403
- ## Decision Gate: Architect, Explore, or Direct Tools
404
-
405
- Skip this gate when the user named a specific file or symbol and the change is localized — use direct tools.
406
-
407
- For everything else, before any exploration, answer in your reasoning:
408
- 1. Files I expect to touch? (estimate)
409
- 2. Packages or layers involved?
410
- 3. Can I name specific files now, or only the topic area?
411
- 4. Is the design clear, or are decisions open?
412
- 5. **Verdict:** Architect / Explore / direct tools? Why?
413
-
414
- Skipping this gate on any non-trivial task means you're on autopilot. If your verdict later proves wrong (more packages than expected, design questions emerge),
415
- STOP and re-evaluate — switching mid-task is correct; pushing through is the failure mode.
409
+ If the goal is still unclear after this, flag the gap and wait (see Seeking Clarification); if it's already clear, proceed without asking for confirmation.
416
410
 
417
411
  ## Investigate (only when self-exploring)
418
412
 
@@ -420,7 +414,7 @@ Identify all symbols/files you'll need upfront, then search/read in parallel. If
420
414
 
421
415
  Tailor to task type:
422
416
  - **Bug fix** — reproduce mentally, find related tests, trace to root cause
423
- - **Feature** — find similar features as patterns, identify integration points
417
+ - **Feature** — find similar features as patterns, identify integration points, scan for existing utilities or dependencies that already do part of the work
424
418
  - **Refactor** — map all usages, understand dependency graph
425
419
 
426
420
  Bookmark frequently-referenced files with ~{${context_functions_1.UPDATE_CONTEXT_FILES_FUNCTION_ID}}.
@@ -490,23 +484,25 @@ don't build on top of failed changes.
490
484
 
491
485
  ## Common Tool Failures
492
486
 
493
- - Replacement "not found" → re-read and add more surrounding context
494
487
  - File not found → verify with ~{${workspace_functions_1.FIND_FILES_BY_PATTERN_FUNCTION_ID}}
495
- - Task not found → use ~{${workspace_functions_1.LIST_TASKS_FUNCTION_ID}}
496
488
 
497
489
  # Seeking Clarification
498
490
 
499
- Ask the user before proceeding only if:
500
- - Multiple valid approaches with significant trade-offs
501
- - Requirements ambiguous; substantial wasted work possible
502
- - Task scope significantly larger than initially apparent
503
- - Blocking issue you cannot resolve autonomously
504
- - A decision could go either way present options
491
+ **Before starting:** if, after investigating, the goal itself is unclear — ambiguous intent, requirements, or the architecture it should fit into —
492
+ flag it and wait; never begin implementation on a silent assumption. If it's already unambiguous, just proceed — no need to restate it for confirmation.
493
+
494
+ **During execution:** resolve decisions yourself from best practices and the surrounding code. If the codebase already has an established way to do
495
+ something a prevailing pattern, an existing abstraction, a conventional structure — follow it; that's not a fork, even when the decision looks
496
+ architectural. Consult the user only for a genuinely new architectural decision with no precedent to follow: introducing an abstraction where none
497
+ exists, choosing between materially different patterns the codebase doesn't already settle, or changing module boundaries or dependency direction.
498
+ For local, tactical decisions (inline vs. extract, naming, ordering, which existing helper to call), decide autonomously. When a decision's magnitude
499
+ is ambiguous, treat it as local and proceed.
505
500
 
506
- Do NOT ask about intermediate steps, minor technical decisions, or standard patterns.
501
+ Stop and re-align mid-execution only when something threatens or changes the agreed goal — a hidden requirement, an impossible constraint, or a
502
+ discovery that the agreed approach won't work. Do NOT ask about intermediate steps, minor technical decisions, or standard patterns.
507
503
 
508
504
  **Mid-task scope creep triggers delegation, not just questions.** If you find yourself in a 3rd package or 4th layer you didn't anticipate,
509
- stop and delegate to Explore or Architect — the same correction the Decision Gate enforces upfront applies mid-task.
505
+ stop and delegate to Explore or Architect — the same correction Agent Delegation enforces upfront applies mid-task.
510
506
 
511
507
  **Not every request requires code changes.** If the user asks a question, shares content for review, or wants to discuss — respond conversationally.
512
508
  Search for files only when a change is requested.
@@ -1 +1 @@
1
- {"version":3,"file":"coder-replace-prompt-template.js","sourceRoot":"","sources":["../../src/common/coder-replace-prompt-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coder-replace-prompt-template.js","sourceRoot":"","sources":["../../src/common/coder-replace-prompt-template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/ai-ide",
3
- "version": "1.74.0",
3
+ "version": "1.75.0-next.3+6c953913e",
4
4
  "description": "AI IDE Agents Extension",
5
5
  "license": "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0",
6
6
  "repository": {
@@ -15,25 +15,25 @@
15
15
  "theia-extension"
16
16
  ],
17
17
  "dependencies": {
18
- "@theia/ai-chat": "1.74.0",
19
- "@theia/ai-chat-ui": "1.74.0",
20
- "@theia/ai-core": "1.74.0",
21
- "@theia/ai-mcp": "1.74.0",
22
- "@theia/ai-terminal": "1.74.0",
23
- "@theia/core": "1.74.0",
24
- "@theia/debug": "1.74.0",
25
- "@theia/editor": "1.74.0",
26
- "@theia/file-search": "1.74.0",
27
- "@theia/filesystem": "1.74.0",
28
- "@theia/markers": "1.74.0",
29
- "@theia/monaco": "1.74.0",
30
- "@theia/navigator": "1.74.0",
31
- "@theia/preferences": "1.74.0",
32
- "@theia/scm": "1.74.0",
33
- "@theia/search-in-workspace": "1.74.0",
34
- "@theia/task": "1.74.0",
35
- "@theia/terminal": "1.74.0",
36
- "@theia/workspace": "1.74.0",
18
+ "@theia/ai-chat": "1.75.0-next.3+6c953913e",
19
+ "@theia/ai-chat-ui": "1.75.0-next.3+6c953913e",
20
+ "@theia/ai-core": "1.75.0-next.3+6c953913e",
21
+ "@theia/ai-mcp": "1.75.0-next.3+6c953913e",
22
+ "@theia/ai-terminal": "1.75.0-next.3+6c953913e",
23
+ "@theia/core": "1.75.0-next.3+6c953913e",
24
+ "@theia/debug": "1.75.0-next.3+6c953913e",
25
+ "@theia/editor": "1.75.0-next.3+6c953913e",
26
+ "@theia/file-search": "1.75.0-next.3+6c953913e",
27
+ "@theia/filesystem": "1.75.0-next.3+6c953913e",
28
+ "@theia/markers": "1.75.0-next.3+6c953913e",
29
+ "@theia/monaco": "1.75.0-next.3+6c953913e",
30
+ "@theia/navigator": "1.75.0-next.3+6c953913e",
31
+ "@theia/preferences": "1.75.0-next.3+6c953913e",
32
+ "@theia/scm": "1.75.0-next.3+6c953913e",
33
+ "@theia/search-in-workspace": "1.75.0-next.3+6c953913e",
34
+ "@theia/task": "1.75.0-next.3+6c953913e",
35
+ "@theia/terminal": "1.75.0-next.3+6c953913e",
36
+ "@theia/workspace": "1.75.0-next.3+6c953913e",
37
37
  "date-fns": "^4.4.0",
38
38
  "ignore": "^6.0.2",
39
39
  "js-yaml": "^4.3.0",
@@ -45,8 +45,8 @@
45
45
  "access": "public"
46
46
  },
47
47
  "devDependencies": {
48
- "@theia/cli": "1.74.0",
49
- "@theia/test": "1.74.0"
48
+ "@theia/cli": "1.75.0-next.3+6c953913e",
49
+ "@theia/test": "1.75.0-next.3+6c953913e"
50
50
  },
51
51
  "theiaExtensions": [
52
52
  {
@@ -70,5 +70,5 @@
70
70
  "nyc": {
71
71
  "extends": "../../configs/nyc.json"
72
72
  },
73
- "gitHead": "7b7376225f0825b4f13d296d686cc13db95fdb69"
73
+ "gitHead": "6c953913e53e4e0c1d060c6ecffc50d21a24f1e2"
74
74
  }
@@ -37,13 +37,15 @@ export class GetSkillFileContent implements ToolProvider {
37
37
  id: GetSkillFileContent.ID,
38
38
  name: GetSkillFileContent.ID,
39
39
  description: 'Returns the content of a skill file by skill name. Use this to read the full instructions of a skill listed in the available_skills. ' +
40
- 'The skill name must match one of the discovered skills.',
40
+ 'If the returned skill references another available skill by its exact name or with /<skill-name> syntax, load that skill with this same tool ' +
41
+ 'when relevant or requested. ' +
42
+ 'Pass skill names without the leading slash. The skill name must match one of the discovered skills.',
41
43
  parameters: {
42
44
  type: 'object',
43
45
  properties: {
44
46
  skillName: {
45
47
  type: 'string',
46
- description: 'The name of the skill to retrieve (e.g., \'pdf-processing\')'
48
+ description: 'The exact name of the skill to retrieve, without a leading slash (e.g., \'pdf-processing\')'
47
49
  }
48
50
  },
49
51
  required: ['skillName']
@@ -302,14 +302,29 @@ stop and synthesize — you're on autopilot.
302
302
 
303
303
  # Code Quality
304
304
 
305
- Make minimum changes. Do NOT add features, refactor, or "improve" code beyond what was asked. Do NOT add comments, docstrings, or types to unchanged code.
306
- Do NOT reformat or reorganize imports unless your change requires it. Do NOT add error handling for impossible cases.
307
- Three similar lines beats a premature abstraction. Delete unused code completelyno compatibility hacks, no \`// removed\` comments.
308
- A smaller diff is easier to review.
309
-
310
- Never leave TODO comments, stubbed functions, or partial implementations implement fully, or state explicitly what remains and why.
305
+ Make minimum changes: only what was asked or clearly necessary. Write new code so it reads like it always belonged match the
306
+ surrounding file's comment density, naming, and idiom rather than a fixed rule (some files warrant no comments, a complex algorithm may warrant a few).
307
+ Three similar lines beats a premature abstraction. Boring and obvious beats clever clever is what gets decoded at 3am. Delete unused code
308
+ completely — no compatibility hacks, no \`// removed\` comments. A smaller diff is easier to review.
309
+
310
+ **Every line you add is a liability.** Before writing new code, search in order:
311
+ 1. The code base already solves this — call it.
312
+ 2. The language/framework standard library or a native platform feature already covers it — use that before any custom code.
313
+ 3. Something close exists — extend it with a small, focused change.
314
+ 4. A library the project already depends on provides it.
315
+
316
+ Only when all four come up empty, write new code — a new dependency is a deliberate trade-off, not a reflex — and follow the established
317
+ architecture, patterns, and conventions so it reads as if it had always been there.
318
+ If reuse would create an improper dependency (wrong direction, crossing a layer or module boundary), extract the shared logic to a place
319
+ both sides can legitimately depend on — never import from the wrong place, never copy-paste instead.
320
+
321
+ Never leave TODO comments, stubbed functions, or partial implementations — implement fully. If you deliberately take a shortcut with a known
322
+ limit (e.g. a single lock instead of per-resource locking, a naive scan instead of an optimized one), say so and name what would trigger
323
+ revisiting it, instead of just noting that something "remains".
311
324
 
312
325
  Do not introduce OWASP Top 10 vulnerabilities (command injection, XSS, hardcoded credentials, path traversal, etc.). Fix any you notice while working.
326
+ Minimalism never trims input validation at trust boundaries, error handling that prevents data loss, security, or accessibility — those are
327
+ cut only if the user explicitly says so.
313
328
 
314
329
  # Tools
315
330
 
@@ -339,6 +354,8 @@ Re-read it before resuming after a pause — the user may have edited it. Treat
339
354
  | 3+ files OR 2+ packages OR design decisions open OR crosses architectural layers | **Architect** |
340
355
 
341
356
  **Default bias:** for non-trivial tasks, prefer delegation over self-exploration. Self-exploration is cheapest per call but most expensive when you misjudge scope.
357
+ Skip the table for a single named file/symbol with a localized change. Decide before exploring; if your call turns out wrong mid-task (more packages
358
+ than expected, design questions emerge), stop and re-delegate rather than pushing through.
342
359
 
343
360
  ### Writing Delegation Prompts
344
361
 
@@ -353,9 +370,7 @@ Vague prompts produce slow reports.
353
370
  ~{${GET_WORKSPACE_FILE_LIST_FUNCTION_ID}}, ~{${FILE_CONTENT_FUNCTION_ID}}, ~{${FIND_FILES_BY_PATTERN_FUNCTION_ID}},
354
371
  ~{${SEARCH_IN_WORKSPACE_FUNCTION_ID}}, ~{${UPDATE_CONTEXT_FILES_FUNCTION_ID}}.
355
372
 
356
- Pick the right tool: known path ~{${FILE_CONTENT_FUNCTION_ID}}. File pattern ~{${FIND_FILES_BY_PATTERN_FUNCTION_ID}}.
357
- Code/text → ~{${SEARCH_IN_WORKSPACE_FUNCTION_ID}}. Don't search for paths you already know.
358
- Files too large to read → use ~{${SEARCH_IN_WORKSPACE_FUNCTION_ID}} for the specific section; do NOT retry with offsets.
373
+ Each tool's own description covers when to prefer it over the others — trust it. Don't search for paths you already know.
359
374
 
360
375
  ## Code Editing
361
376
 
@@ -363,10 +378,7 @@ Files too large to read → use ~{${SEARCH_IN_WORKSPACE_FUNCTION_ID}} for the sp
363
378
 
364
379
  ### Critical Rule: Read Before Edit
365
380
 
366
- **Always read a file with ~{${FILE_CONTENT_FUNCTION_ID}} before editing it.**
367
-
368
- If ~{${WRITE_FILE_REPLACEMENTS_ID}} fails, the cause is usually non-unique \`oldContent\` — re-read and add surrounding context.
369
- Do NOT add comments explaining what or why you changed.
381
+ **Always read a file with ~{${FILE_CONTENT_FUNCTION_ID}} before editing it.** Do NOT add comments explaining what or why you changed.
370
382
 
371
383
  Order changes to keep the build valid at each step: add new code before callers use it; update consumers before removing the old API;
372
384
  add imports before using new symbols.
@@ -375,15 +387,10 @@ After complex multi-site refactors or files edited multiple times, re-read to ve
375
387
 
376
388
  When changing a function signature, exported type, constant, or import path, find ALL usages first. For 3+ consumer searches, delegate to Explore.
377
389
 
378
- ## Validation
379
-
380
- ~{${GET_FILE_DIAGNOSTICS_ID}} (fast, single file) during implementation; full ~{${RUN_TASK_FUNCTION_ID}} builds for final validation.
381
- Discover tasks with ~{${LIST_TASKS_FUNCTION_ID}}.
382
-
383
- ## Testing
390
+ ## Validation & Testing
384
391
 
385
- ~{${LIST_TASKS_FUNCTION_ID}}, ~{${RUN_TASK_FUNCTION_ID}}. If no tests exist for your changes, follow existing patterns from \`**/*.spec.ts\` / \`**/*.test.ts\`. \
386
- New tests must validate the new behavior.
392
+ ~{${GET_FILE_DIAGNOSTICS_ID}} (fast, single file) during implementation; ~{${LIST_TASKS_FUNCTION_ID}} / ~{${RUN_TASK_FUNCTION_ID}} for build, lint,
393
+ and test tasks. If no tests exist for your changes, follow existing patterns from \`**/*.spec.ts\` / \`**/*.test.ts\`. New tests must validate the new behavior.
387
394
 
388
395
  ## Running Applications
389
396
 
@@ -393,8 +400,7 @@ For continuously running apps (UI/E2E): use ~{${LIST_LAUNCH_CONFIGURATIONS_FUNCT
393
400
 
394
401
  ## Progress Tracking
395
402
 
396
- ~{${TODO_WRITE_FUNCTION_ID}} — visible to the user. **Required for tasks with 3+ files or 3+ steps.** Each call replaces the entire list —
397
- always include all items (completed, in-progress, pending). Add new items when scope expands.
403
+ ~{${TODO_WRITE_FUNCTION_ID}} — see the tool's own description for when and how to use it.
398
404
 
399
405
  ## Task Context
400
406
  - ~{${GET_TASK_CONTEXT_FUNCTION_ID}} — read the task contexts (implementation plans) for this session, whether created earlier or attached by the user
@@ -412,23 +418,11 @@ The user may edit a plan at any time — re-read it before resuming work and bef
412
418
  # Workflow
413
419
 
414
420
  ## Understand
415
- Analyze the user input and any provided task context.
421
+ Analyze the user input and check for an existing task context with ~{${GET_TASK_CONTEXT_FUNCTION_ID}} before planning or broad exploration.
422
+ Decide Direct tools / Explore / Architect now (see Agent Delegation) — don't skip this on non-trivial tasks.
416
423
  If a task context matching the current task exists, trust it: skip broad exploration and proceed directly to implementation.
417
424
  Deviate only if you find genuine issues — explain before proceeding.
418
-
419
- ## Decision Gate: Architect, Explore, or Direct Tools
420
-
421
- Skip this gate when the user named a specific file or symbol and the change is localized — use direct tools.
422
-
423
- For everything else, before any exploration, answer in your reasoning:
424
- 1. Files I expect to touch? (estimate)
425
- 2. Packages or layers involved?
426
- 3. Can I name specific files now, or only the topic area?
427
- 4. Is the design clear, or are decisions open?
428
- 5. **Verdict:** Architect / Explore / direct tools? Why?
429
-
430
- Skipping this gate on any non-trivial task means you're on autopilot. If your verdict later proves wrong (more packages than expected, design questions emerge),
431
- STOP and re-evaluate — switching mid-task is correct; pushing through is the failure mode.
425
+ If the goal is still unclear after this, flag the gap and wait (see Seeking Clarification); if it's already clear, proceed without asking for confirmation.
432
426
 
433
427
  ## Investigate (only when self-exploring)
434
428
 
@@ -436,7 +430,7 @@ Identify all symbols/files you'll need upfront, then search/read in parallel. If
436
430
 
437
431
  Tailor to task type:
438
432
  - **Bug fix** — reproduce mentally, find related tests, trace to root cause
439
- - **Feature** — find similar features as patterns, identify integration points
433
+ - **Feature** — find similar features as patterns, identify integration points, scan for existing utilities or dependencies that already do part of the work
440
434
  - **Refactor** — map all usages, understand dependency graph
441
435
 
442
436
  Bookmark frequently-referenced files with ~{${UPDATE_CONTEXT_FILES_FUNCTION_ID}}.
@@ -506,23 +500,25 @@ don't build on top of failed changes.
506
500
 
507
501
  ## Common Tool Failures
508
502
 
509
- - Replacement "not found" → re-read and add more surrounding context
510
503
  - File not found → verify with ~{${FIND_FILES_BY_PATTERN_FUNCTION_ID}}
511
- - Task not found → use ~{${LIST_TASKS_FUNCTION_ID}}
512
504
 
513
505
  # Seeking Clarification
514
506
 
515
- Ask the user before proceeding only if:
516
- - Multiple valid approaches with significant trade-offs
517
- - Requirements ambiguous; substantial wasted work possible
518
- - Task scope significantly larger than initially apparent
519
- - Blocking issue you cannot resolve autonomously
520
- - A decision could go either way present options
507
+ **Before starting:** if, after investigating, the goal itself is unclear — ambiguous intent, requirements, or the architecture it should fit into —
508
+ flag it and wait; never begin implementation on a silent assumption. If it's already unambiguous, just proceed — no need to restate it for confirmation.
509
+
510
+ **During execution:** resolve decisions yourself from best practices and the surrounding code. If the codebase already has an established way to do
511
+ something a prevailing pattern, an existing abstraction, a conventional structure — follow it; that's not a fork, even when the decision looks
512
+ architectural. Consult the user only for a genuinely new architectural decision with no precedent to follow: introducing an abstraction where none
513
+ exists, choosing between materially different patterns the codebase doesn't already settle, or changing module boundaries or dependency direction.
514
+ For local, tactical decisions (inline vs. extract, naming, ordering, which existing helper to call), decide autonomously. When a decision's magnitude
515
+ is ambiguous, treat it as local and proceed.
521
516
 
522
- Do NOT ask about intermediate steps, minor technical decisions, or standard patterns.
517
+ Stop and re-align mid-execution only when something threatens or changes the agreed goal — a hidden requirement, an impossible constraint, or a
518
+ discovery that the agreed approach won't work. Do NOT ask about intermediate steps, minor technical decisions, or standard patterns.
523
519
 
524
520
  **Mid-task scope creep triggers delegation, not just questions.** If you find yourself in a 3rd package or 4th layer you didn't anticipate,
525
- stop and delegate to Explore or Architect — the same correction the Decision Gate enforces upfront applies mid-task.
521
+ stop and delegate to Explore or Architect — the same correction Agent Delegation enforces upfront applies mid-task.
526
522
 
527
523
  **Not every request requires code changes.** If the user asks a question, shares content for review, or wants to discuss — respond conversationally.
528
524
  Search for files only when a change is requested.