@bastani/atomic 0.8.31-alpha.1 → 0.8.31-alpha.2
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/CHANGELOG.md +14 -3
- package/README.md +12 -10
- package/dist/builtin/cursor/CHANGELOG.md +1 -1
- package/dist/builtin/cursor/package.json +2 -2
- package/dist/builtin/intercom/CHANGELOG.md +1 -1
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/mcp/CHANGELOG.md +1 -1
- package/dist/builtin/mcp/package.json +3 -3
- package/dist/builtin/subagents/CHANGELOG.md +10 -1
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +8 -8
- package/dist/builtin/subagents/agents/debugger.md +6 -6
- package/dist/builtin/subagents/package.json +4 -4
- package/dist/builtin/subagents/skills/effective-liteparse/SKILL.md +118 -0
- package/dist/builtin/subagents/skills/effective-liteparse/scripts/search.py +128 -0
- package/dist/builtin/subagents/skills/playwright-cli/SKILL.md +404 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/element-attributes.md +23 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/request-mocking.md +87 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/running-code.md +241 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/session-management.md +225 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/storage-state.md +275 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/test-generation.md +134 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/tracing.md +139 -0
- package/dist/builtin/subagents/skills/playwright-cli/references/video-recording.md +143 -0
- package/dist/builtin/web-access/CHANGELOG.md +1 -1
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +7 -1
- package/dist/builtin/workflows/README.md +4 -4
- package/dist/builtin/workflows/builtin/open-claude-design.ts +59 -56
- package/dist/builtin/workflows/builtin/ralph.ts +56 -3
- package/dist/builtin/workflows/builtin/shared-prompts.ts +1 -1
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/skills/research-codebase/SKILL.md +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session.d.ts +1 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +38 -18
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/context-window.d.ts +11 -1
- package/dist/core/context-window.d.ts.map +1 -1
- package/dist/core/context-window.js +19 -6
- package/dist/core/context-window.js.map +1 -1
- package/dist/core/copilot-model-catalog.d.ts +19 -16
- package/dist/core/copilot-model-catalog.d.ts.map +1 -1
- package/dist/core/copilot-model-catalog.js +14 -11
- package/dist/core/copilot-model-catalog.js.map +1 -1
- package/dist/core/project-trust.d.ts.map +1 -1
- package/dist/core/project-trust.js +2 -1
- package/dist/core/project-trust.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +18 -7
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +11 -2
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +62 -8
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +1 -0
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts +1 -2
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +1 -2
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +5 -7
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +2 -1
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +4 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +165 -15
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +44 -4
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +24 -54
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/model-search.d.ts +7 -0
- package/dist/modes/interactive/model-search.d.ts.map +1 -0
- package/dist/modes/interactive/model-search.js +6 -0
- package/dist/modes/interactive/model-search.js.map +1 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts +30 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme-controller.js +108 -0
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
- package/dist/modes/interactive/theme/theme-schema.json +2 -1
- package/dist/modes/interactive/theme/theme.d.ts +5 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +70 -29
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +1 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +39 -9
- package/dist/package-manager-cli.js.map +1 -1
- package/docs/extensions.md +21 -0
- package/docs/models.md +3 -3
- package/docs/packages.md +13 -9
- package/docs/providers.md +2 -2
- package/docs/quickstart.md +14 -0
- package/docs/rpc.md +3 -3
- package/docs/sdk.md +15 -11
- package/docs/session-format.md +1 -1
- package/docs/settings.md +8 -3
- package/docs/themes.md +3 -1
- package/docs/tui.md +1 -1
- package/docs/usage.md +12 -9
- package/docs/workflows.md +9 -7
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/preset.ts +10 -4
- package/examples/extensions/provider-payload.ts +5 -5
- package/examples/extensions/sandbox/index.ts +2 -2
- package/examples/extensions/sandbox/package-lock.json +3 -3
- package/examples/extensions/sandbox/package.json +2 -2
- package/examples/extensions/subagent/agents.ts +2 -2
- package/examples/extensions/subagent/index.ts +4 -2
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +5 -5
- package/dist/builtin/subagents/skills/browser/EXAMPLES.md +0 -151
- package/dist/builtin/subagents/skills/browser/LICENSE.txt +0 -21
- package/dist/builtin/subagents/skills/browser/REFERENCE.md +0 -451
- package/dist/builtin/subagents/skills/browser/SKILL.md +0 -170
|
@@ -84,6 +84,7 @@ export function parseSkillBlock(text) {
|
|
|
84
84
|
userMessage: afterClosing ? afterClosing.slice(2).trim() || undefined : undefined,
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
+
const COPILOT_CONTEXT_WINDOW_SELECTION_OPTIONS = { allowCopilotLongContextFallback: true };
|
|
87
88
|
function drainAgentMessageQueue(queue) {
|
|
88
89
|
if (!queue)
|
|
89
90
|
return [];
|
|
@@ -1536,7 +1537,7 @@ export class AgentSession {
|
|
|
1536
1537
|
if (!this.model) {
|
|
1537
1538
|
throw new Error("No model selected");
|
|
1538
1539
|
}
|
|
1539
|
-
const selected = selectContextWindow(this.model, contextWindow);
|
|
1540
|
+
const selected = selectContextWindow(this.model, contextWindow, COPILOT_CONTEXT_WINDOW_SELECTION_OPTIONS);
|
|
1540
1541
|
if ("error" in selected) {
|
|
1541
1542
|
throw new Error(selected.error);
|
|
1542
1543
|
}
|
|
@@ -1548,13 +1549,13 @@ export class AgentSession {
|
|
|
1548
1549
|
this._emit({ type: "context_window_changed", contextWindow: selected.contextWindow });
|
|
1549
1550
|
}
|
|
1550
1551
|
if (options.persistDefault === true) {
|
|
1551
|
-
this.settingsManager.
|
|
1552
|
+
this.settingsManager.setDefaultContextWindowForModel(selected.model.provider, selected.model.id, selected.contextWindow);
|
|
1552
1553
|
}
|
|
1553
1554
|
}
|
|
1554
1555
|
_withContextWindowForModelSwitch(model) {
|
|
1555
1556
|
// A source model's scalar contextWindow can be its natural default (for example a 1m-default
|
|
1556
1557
|
// model). Do not treat that alone as an opt-in to larger windows on a 400k-default target.
|
|
1557
|
-
const settingsDefaultContextWindow = this.
|
|
1558
|
+
const settingsDefaultContextWindow = this._getSettingsContextWindowRequestForModel(model)?.contextWindow;
|
|
1558
1559
|
const candidates = [];
|
|
1559
1560
|
const targetDefaultContextWindow = getModelDefaultContextWindow(model);
|
|
1560
1561
|
if (model.contextWindow !== targetDefaultContextWindow) {
|
|
@@ -1570,12 +1571,12 @@ export class AgentSession {
|
|
|
1570
1571
|
candidates.push(settingsDefaultContextWindow);
|
|
1571
1572
|
}
|
|
1572
1573
|
candidates.push(targetDefaultContextWindow);
|
|
1573
|
-
const
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
return
|
|
1574
|
+
for (const candidate of candidates) {
|
|
1575
|
+
const selected = selectContextWindow(model, candidate, COPILOT_CONTEXT_WINDOW_SELECTION_OPTIONS);
|
|
1576
|
+
if (!("error" in selected))
|
|
1577
|
+
return selected.model;
|
|
1578
|
+
}
|
|
1579
|
+
return model;
|
|
1579
1580
|
}
|
|
1580
1581
|
_shouldCarryCurrentContextWindowForModelSwitch(currentModel, settingsDefaultContextWindow) {
|
|
1581
1582
|
if (currentModel.contextWindow !== getModelDefaultContextWindow(currentModel)) {
|
|
@@ -1588,19 +1589,29 @@ export class AgentSession {
|
|
|
1588
1589
|
currentModel.contextWindow === settingsDefaultContextWindow &&
|
|
1589
1590
|
getSupportedContextWindows(currentModel).includes(settingsDefaultContextWindow));
|
|
1590
1591
|
}
|
|
1591
|
-
|
|
1592
|
+
_getSettingsContextWindowRequestForModel(model) {
|
|
1593
|
+
const modelContextWindow = this.settingsManager.getDefaultContextWindowForModel(model.provider, model.id);
|
|
1594
|
+
if (modelContextWindow !== undefined) {
|
|
1595
|
+
return { contextWindow: modelContextWindow, source: "model-settings" };
|
|
1596
|
+
}
|
|
1597
|
+
const globalContextWindow = this.settingsManager.getDefaultContextWindow();
|
|
1598
|
+
return globalContextWindow === undefined
|
|
1599
|
+
? undefined
|
|
1600
|
+
: { contextWindow: globalContextWindow, source: "global-settings" };
|
|
1601
|
+
}
|
|
1602
|
+
_getContextWindowReplayForModel(model, requestedContextWindow, source) {
|
|
1592
1603
|
if (requestedContextWindow !== undefined) {
|
|
1593
|
-
const selected = selectContextWindow(model, requestedContextWindow);
|
|
1604
|
+
const selected = selectContextWindow(model, requestedContextWindow, COPILOT_CONTEXT_WINDOW_SELECTION_OPTIONS);
|
|
1594
1605
|
if (!("error" in selected)) {
|
|
1595
1606
|
return { model: selected.model, contextWindow: selected.contextWindow, wouldWarn: false };
|
|
1596
1607
|
}
|
|
1597
|
-
return this._getDefaultContextWindowReplayForModel(model,
|
|
1608
|
+
return this._getDefaultContextWindowReplayForModel(model, source !== "global-settings");
|
|
1598
1609
|
}
|
|
1599
1610
|
return this._getDefaultContextWindowReplayForModel(model, false);
|
|
1600
1611
|
}
|
|
1601
1612
|
_getDefaultContextWindowReplayForModel(model, wouldWarn) {
|
|
1602
1613
|
const defaultContextWindow = getModelDefaultContextWindow(model);
|
|
1603
|
-
const selected = selectContextWindow(model, defaultContextWindow);
|
|
1614
|
+
const selected = selectContextWindow(model, defaultContextWindow, COPILOT_CONTEXT_WINDOW_SELECTION_OPTIONS);
|
|
1604
1615
|
if (!("error" in selected)) {
|
|
1605
1616
|
return { model: selected.model, contextWindow: selected.contextWindow, wouldWarn };
|
|
1606
1617
|
}
|
|
@@ -1612,15 +1623,20 @@ export class AgentSession {
|
|
|
1612
1623
|
}
|
|
1613
1624
|
_getResumeContextWindowReplayForModel(model) {
|
|
1614
1625
|
const sessionContext = this.sessionManager.buildSessionContext();
|
|
1615
|
-
|
|
1616
|
-
|
|
1626
|
+
if (sessionContext.contextWindow !== undefined) {
|
|
1627
|
+
return this._getContextWindowReplayForModel(model, sessionContext.contextWindow, "session");
|
|
1628
|
+
}
|
|
1629
|
+
const settingsContextWindow = this._getSettingsContextWindowRequestForModel(model);
|
|
1630
|
+
return this._getContextWindowReplayForModel(model, settingsContextWindow?.contextWindow, settingsContextWindow?.source);
|
|
1617
1631
|
}
|
|
1618
1632
|
_applyContextWindowReplay(contextWindow) {
|
|
1619
1633
|
if (!this.model)
|
|
1620
1634
|
return;
|
|
1621
1635
|
const previousContextWindow = this.model.contextWindow;
|
|
1622
|
-
const
|
|
1623
|
-
const
|
|
1636
|
+
const settingsContextWindow = this._getSettingsContextWindowRequestForModel(this.model);
|
|
1637
|
+
const requestedContextWindow = contextWindow ?? settingsContextWindow?.contextWindow;
|
|
1638
|
+
const source = contextWindow !== undefined ? "session" : settingsContextWindow?.source;
|
|
1639
|
+
const replay = this._getContextWindowReplayForModel(this.model, requestedContextWindow, source);
|
|
1624
1640
|
this.agent.state.model = replay.model;
|
|
1625
1641
|
if (previousContextWindow !== replay.contextWindow) {
|
|
1626
1642
|
this._emit({ type: "context_window_changed", contextWindow: replay.contextWindow });
|
|
@@ -2195,7 +2211,11 @@ export class AgentSession {
|
|
|
2195
2211
|
if (!refreshedModel || refreshedModel === currentModel) {
|
|
2196
2212
|
return;
|
|
2197
2213
|
}
|
|
2198
|
-
|
|
2214
|
+
const replay = this._getResumeContextWindowReplayForModel(refreshedModel);
|
|
2215
|
+
this.agent.state.model = replay.model;
|
|
2216
|
+
if (currentModel.contextWindow !== replay.contextWindow) {
|
|
2217
|
+
this._emit({ type: "context_window_changed", contextWindow: replay.contextWindow });
|
|
2218
|
+
}
|
|
2199
2219
|
this._refreshBaseSystemPromptFromActiveTools();
|
|
2200
2220
|
}
|
|
2201
2221
|
_bindExtensionCore(runner) {
|