@bastani/atomic 0.8.17 → 0.8.18

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 (53) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/builtin/intercom/CHANGELOG.md +5 -0
  3. package/dist/builtin/intercom/package.json +1 -1
  4. package/dist/builtin/mcp/CHANGELOG.md +5 -0
  5. package/dist/builtin/mcp/package.json +1 -1
  6. package/dist/builtin/subagents/CHANGELOG.md +5 -0
  7. package/dist/builtin/subagents/package.json +1 -1
  8. package/dist/builtin/web-access/CHANGELOG.md +5 -0
  9. package/dist/builtin/web-access/package.json +1 -1
  10. package/dist/builtin/workflows/CHANGELOG.md +25 -0
  11. package/dist/builtin/workflows/README.md +62 -3
  12. package/dist/builtin/workflows/builtin/deep-research-codebase.ts +555 -537
  13. package/dist/builtin/workflows/builtin/goal.ts +5 -0
  14. package/dist/builtin/workflows/builtin/open-claude-design.ts +3 -3
  15. package/dist/builtin/workflows/builtin/ralph.ts +737 -713
  16. package/dist/builtin/workflows/builtin/shared-prompts.ts +11 -0
  17. package/dist/builtin/workflows/package.json +1 -1
  18. package/dist/builtin/workflows/src/extension/discovery.ts +61 -22
  19. package/dist/builtin/workflows/src/extension/index.ts +2 -0
  20. package/dist/builtin/workflows/src/extension/runtime.ts +4 -0
  21. package/dist/builtin/workflows/src/extension/workflow-schema.ts +4 -0
  22. package/dist/builtin/workflows/src/runs/foreground/executor.ts +96 -6
  23. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +2 -0
  24. package/dist/builtin/workflows/src/runs/shared/workflow-runner.ts +7 -0
  25. package/dist/builtin/workflows/src/runs/shared/worktree.ts +214 -1
  26. package/dist/builtin/workflows/src/sdk-surface.ts +2 -0
  27. package/dist/builtin/workflows/src/shared/types.ts +32 -3
  28. package/dist/builtin/workflows/src/workflows/define-workflow.ts +18 -1
  29. package/dist/core/agent-session-services.d.ts +2 -1
  30. package/dist/core/agent-session-services.d.ts.map +1 -1
  31. package/dist/core/agent-session-services.js +1 -0
  32. package/dist/core/agent-session-services.js.map +1 -1
  33. package/dist/core/agent-session.d.ts +3 -0
  34. package/dist/core/agent-session.d.ts.map +1 -1
  35. package/dist/core/agent-session.js +16 -5
  36. package/dist/core/agent-session.js.map +1 -1
  37. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  38. package/dist/core/atomic-guide-command.js +40 -28
  39. package/dist/core/atomic-guide-command.js.map +1 -1
  40. package/dist/core/sdk.d.ts +9 -1
  41. package/dist/core/sdk.d.ts.map +1 -1
  42. package/dist/core/sdk.js +2 -2
  43. package/dist/core/sdk.js.map +1 -1
  44. package/dist/core/system-prompt.d.ts +2 -0
  45. package/dist/core/system-prompt.d.ts.map +1 -1
  46. package/dist/core/system-prompt.js +22 -13
  47. package/dist/core/system-prompt.js.map +1 -1
  48. package/docs/quickstart.md +13 -5
  49. package/docs/sdk.md +20 -5
  50. package/docs/workflows.md +44 -17
  51. package/examples/sdk/05-tools.ts +22 -1
  52. package/examples/sdk/README.md +7 -3
  53. package/package.json +1 -1
@@ -137,6 +137,7 @@ export class AgentSession {
137
137
  this._extensionRunnerRef = config.extensionRunnerRef;
138
138
  this._initialActiveToolNames = config.initialActiveToolNames;
139
139
  this._allowedToolNames = config.allowedToolNames ? new Set(config.allowedToolNames) : undefined;
140
+ this._excludedToolNames = config.excludedToolNames ? new Set(config.excludedToolNames) : undefined;
140
141
  this._baseToolsOverride = config.baseToolsOverride;
141
142
  this._sessionStartEvent = config.sessionStartEvent ?? { type: "session_start", reason: "startup" };
142
143
  // Always subscribe to agent events for internal handling
@@ -671,6 +672,7 @@ export class AgentSession {
671
672
  customPrompt: loaderSystemPrompt,
672
673
  appendSystemPrompt,
673
674
  selectedTools: validToolNames,
675
+ excludedTools: this._excludedToolNames ? Array.from(this._excludedToolNames) : undefined,
674
676
  toolSnippets,
675
677
  promptGuidelines,
676
678
  };
@@ -1842,7 +1844,16 @@ export class AgentSession {
1842
1844
  const previousRegistryNames = new Set(this._toolRegistry.keys());
1843
1845
  const previousActiveToolNames = this.getActiveToolNames();
1844
1846
  const allowedToolNames = this._allowedToolNames;
1845
- const isAllowedTool = (name) => !allowedToolNames || allowedToolNames.has(name);
1847
+ const excludedToolNames = this._excludedToolNames;
1848
+ const isExposedTool = (name) => {
1849
+ if (allowedToolNames && !allowedToolNames.has(name)) {
1850
+ return false;
1851
+ }
1852
+ if (excludedToolNames?.has(name)) {
1853
+ return false;
1854
+ }
1855
+ return true;
1856
+ };
1846
1857
  const registeredTools = this._extensionRunner.getAllRegisteredTools();
1847
1858
  const allCustomTools = [
1848
1859
  ...registeredTools,
@@ -1850,9 +1861,9 @@ export class AgentSession {
1850
1861
  definition,
1851
1862
  sourceInfo: createSyntheticSourceInfo(`<sdk:${definition.name}>`, { source: "sdk" }),
1852
1863
  })),
1853
- ].filter((tool) => isAllowedTool(tool.definition.name));
1864
+ ].filter((tool) => isExposedTool(tool.definition.name));
1854
1865
  const definitionRegistry = new Map(Array.from(this._baseToolDefinitions.entries())
1855
- .filter(([name]) => isAllowedTool(name))
1866
+ .filter(([name]) => isExposedTool(name))
1856
1867
  .map(([name, definition]) => [
1857
1868
  name,
1858
1869
  {
@@ -1882,7 +1893,7 @@ export class AgentSession {
1882
1893
  const runner = this._extensionRunner;
1883
1894
  const wrappedExtensionTools = wrapRegisteredTools(allCustomTools, runner);
1884
1895
  const wrappedBuiltInTools = wrapRegisteredTools(Array.from(this._baseToolDefinitions.values())
1885
- .filter((definition) => isAllowedTool(definition.name))
1896
+ .filter((definition) => isExposedTool(definition.name))
1886
1897
  .map((definition) => ({
1887
1898
  definition,
1888
1899
  sourceInfo: createSyntheticSourceInfo(`<builtin:${definition.name}>`, { source: "builtin" }),
@@ -1892,7 +1903,7 @@ export class AgentSession {
1892
1903
  toolRegistry.set(tool.name, tool);
1893
1904
  }
1894
1905
  this._toolRegistry = toolRegistry;
1895
- const nextActiveToolNames = (options?.activeToolNames ? [...options.activeToolNames] : [...previousActiveToolNames]).filter((name) => isAllowedTool(name));
1906
+ const nextActiveToolNames = (options?.activeToolNames ? [...options.activeToolNames] : [...previousActiveToolNames]).filter((name) => isExposedTool(name));
1896
1907
  if (allowedToolNames) {
1897
1908
  for (const toolName of this._toolRegistry.keys()) {
1898
1909
  if (allowedToolNames.has(toolName)) {