@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.
- package/lib/browser/skill-file-functions.d.ts.map +1 -1
- package/lib/browser/skill-file-functions.js +4 -2
- package/lib/browser/skill-file-functions.js.map +1 -1
- package/lib/common/coder-replace-prompt-template.d.ts.map +1 -1
- package/lib/common/coder-replace-prompt-template.js +45 -49
- package/lib/common/coder-replace-prompt-template.js.map +1 -1
- package/package.json +23 -23
- package/src/browser/skill-file-functions.ts +4 -2
- package/src/common/coder-replace-prompt-template.ts +45 -49
|
@@ -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;
|
|
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
|
-
'
|
|
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,
|
|
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;
|
|
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
|
|
290
|
-
|
|
291
|
-
Three similar lines beats a premature abstraction.
|
|
292
|
-
A smaller diff is easier to review.
|
|
293
|
-
|
|
294
|
-
|
|
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
|
-
|
|
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.
|
|
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}} —
|
|
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
|
|
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
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
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
|
-
|
|
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
|
|
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":";AAAA,qDAAqD;AACrD,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,+CAA+C;AAC/C,mEAAmE;AACnE,sCAAsC;AACtC,EAAE;AACF,+BAA+B;AAC/B,gFAAgF;;;
|
|
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.
|
|
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.
|
|
19
|
-
"@theia/ai-chat-ui": "1.
|
|
20
|
-
"@theia/ai-core": "1.
|
|
21
|
-
"@theia/ai-mcp": "1.
|
|
22
|
-
"@theia/ai-terminal": "1.
|
|
23
|
-
"@theia/core": "1.
|
|
24
|
-
"@theia/debug": "1.
|
|
25
|
-
"@theia/editor": "1.
|
|
26
|
-
"@theia/file-search": "1.
|
|
27
|
-
"@theia/filesystem": "1.
|
|
28
|
-
"@theia/markers": "1.
|
|
29
|
-
"@theia/monaco": "1.
|
|
30
|
-
"@theia/navigator": "1.
|
|
31
|
-
"@theia/preferences": "1.
|
|
32
|
-
"@theia/scm": "1.
|
|
33
|
-
"@theia/search-in-workspace": "1.
|
|
34
|
-
"@theia/task": "1.
|
|
35
|
-
"@theia/terminal": "1.
|
|
36
|
-
"@theia/workspace": "1.
|
|
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.
|
|
49
|
-
"@theia/test": "1.
|
|
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": "
|
|
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
|
-
'
|
|
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
|
|
306
|
-
|
|
307
|
-
Three similar lines beats a premature abstraction.
|
|
308
|
-
A smaller diff is easier to review.
|
|
309
|
-
|
|
310
|
-
|
|
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
|
-
|
|
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
|
-
~{${
|
|
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}} —
|
|
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
|
|
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
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
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
|
-
|
|
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
|
|
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.
|