ai-prompt-guide-mcp 1.0.0
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/LICENSE +21 -0
- package/README.md +271 -0
- package/dist/__tests__/config-loading.test.d.ts +5 -0
- package/dist/__tests__/config-loading.test.d.ts.map +1 -0
- package/dist/__tests__/config-loading.test.js +127 -0
- package/dist/__tests__/config-loading.test.js.map +1 -0
- package/dist/__tests__/config-logging.test.d.ts +5 -0
- package/dist/__tests__/config-logging.test.d.ts.map +1 -0
- package/dist/__tests__/config-logging.test.js +146 -0
- package/dist/__tests__/config-logging.test.js.map +1 -0
- package/dist/__tests__/config-path-resolution.test.d.ts +5 -0
- package/dist/__tests__/config-path-resolution.test.d.ts.map +1 -0
- package/dist/__tests__/config-path-resolution.test.js +88 -0
- package/dist/__tests__/config-path-resolution.test.js.map +1 -0
- package/dist/__tests__/config-path-validation.test.d.ts +6 -0
- package/dist/__tests__/config-path-validation.test.d.ts.map +1 -0
- package/dist/__tests__/config-path-validation.test.js +203 -0
- package/dist/__tests__/config-path-validation.test.js.map +1 -0
- package/dist/__tests__/config-precedence.test.d.ts +5 -0
- package/dist/__tests__/config-precedence.test.d.ts.map +1 -0
- package/dist/__tests__/config-precedence.test.js +200 -0
- package/dist/__tests__/config-precedence.test.js.map +1 -0
- package/dist/__tests__/config-types.test.d.ts +5 -0
- package/dist/__tests__/config-types.test.d.ts.map +1 -0
- package/dist/__tests__/config-types.test.js +189 -0
- package/dist/__tests__/config-types.test.js.map +1 -0
- package/dist/__tests__/config.test.d.ts +5 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +229 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/config.d.ts +87 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +498 -0
- package/dist/config.js.map +1 -0
- package/dist/constants/defaults.d.ts +78 -0
- package/dist/constants/defaults.d.ts.map +1 -0
- package/dist/constants/defaults.js +78 -0
- package/dist/constants/defaults.js.map +1 -0
- package/dist/document-cache.d.ts +485 -0
- package/dist/document-cache.d.ts.map +1 -0
- package/dist/document-cache.hierarchical.test.d.ts +2 -0
- package/dist/document-cache.hierarchical.test.d.ts.map +1 -0
- package/dist/document-cache.hierarchical.test.js +243 -0
- package/dist/document-cache.hierarchical.test.js.map +1 -0
- package/dist/document-cache.js +965 -0
- package/dist/document-cache.js.map +1 -0
- package/dist/document-cache.test.d.ts +8 -0
- package/dist/document-cache.test.d.ts.map +1 -0
- package/dist/document-cache.test.js +624 -0
- package/dist/document-cache.test.js.map +1 -0
- package/dist/document-manager.d.ts +252 -0
- package/dist/document-manager.d.ts.map +1 -0
- package/dist/document-manager.js +760 -0
- package/dist/document-manager.js.map +1 -0
- package/dist/document-manager.race-condition.test.d.ts +8 -0
- package/dist/document-manager.race-condition.test.d.ts.map +1 -0
- package/dist/document-manager.race-condition.test.js +139 -0
- package/dist/document-manager.race-condition.test.js.map +1 -0
- package/dist/fingerprint-index.d.ts +177 -0
- package/dist/fingerprint-index.d.ts.map +1 -0
- package/dist/fingerprint-index.js +374 -0
- package/dist/fingerprint-index.js.map +1 -0
- package/dist/fingerprint-index.test.d.ts +15 -0
- package/dist/fingerprint-index.test.d.ts.map +1 -0
- package/dist/fingerprint-index.test.js +482 -0
- package/dist/fingerprint-index.test.js.map +1 -0
- package/dist/fsio.d.ts +76 -0
- package/dist/fsio.d.ts.map +1 -0
- package/dist/fsio.js +506 -0
- package/dist/fsio.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown-tools.test.d.ts +5 -0
- package/dist/markdown-tools.test.d.ts.map +1 -0
- package/dist/markdown-tools.test.js +200 -0
- package/dist/markdown-tools.test.js.map +1 -0
- package/dist/parse.d.ts +19 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +144 -0
- package/dist/parse.js.map +1 -0
- package/dist/prompts/__tests__/prompt-loader.test.d.ts +5 -0
- package/dist/prompts/__tests__/prompt-loader.test.d.ts.map +1 -0
- package/dist/prompts/__tests__/prompt-loader.test.js +300 -0
- package/dist/prompts/__tests__/prompt-loader.test.js.map +1 -0
- package/dist/prompts/prompt-loader.d.ts +58 -0
- package/dist/prompts/prompt-loader.d.ts.map +1 -0
- package/dist/prompts/prompt-loader.js +215 -0
- package/dist/prompts/prompt-loader.js.map +1 -0
- package/dist/prompts/prompt-validator.d.ts +30 -0
- package/dist/prompts/prompt-validator.d.ts.map +1 -0
- package/dist/prompts/prompt-validator.js +65 -0
- package/dist/prompts/prompt-validator.js.map +1 -0
- package/dist/prompts/types.d.ts +46 -0
- package/dist/prompts/types.d.ts.map +1 -0
- package/dist/prompts/types.js +14 -0
- package/dist/prompts/types.js.map +1 -0
- package/dist/prompts/workflow-prompts.d.ts +42 -0
- package/dist/prompts/workflow-prompts.d.ts.map +1 -0
- package/dist/prompts/workflow-prompts.js +61 -0
- package/dist/prompts/workflow-prompts.js.map +1 -0
- package/dist/sections.d.ts +67 -0
- package/dist/sections.d.ts.map +1 -0
- package/dist/sections.hierarchical.test.d.ts +8 -0
- package/dist/sections.hierarchical.test.d.ts.map +1 -0
- package/dist/sections.hierarchical.test.js +397 -0
- package/dist/sections.hierarchical.test.js.map +1 -0
- package/dist/sections.js +1229 -0
- package/dist/sections.js.map +1 -0
- package/dist/server/default-dependencies.d.ts +134 -0
- package/dist/server/default-dependencies.d.ts.map +1 -0
- package/dist/server/default-dependencies.js +176 -0
- package/dist/server/default-dependencies.js.map +1 -0
- package/dist/server/dependencies.d.ts +161 -0
- package/dist/server/dependencies.d.ts.map +1 -0
- package/dist/server/dependencies.js +50 -0
- package/dist/server/dependencies.js.map +1 -0
- package/dist/server/index.d.ts +10 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +9 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/middleware/error-handling.d.ts +52 -0
- package/dist/server/middleware/error-handling.d.ts.map +1 -0
- package/dist/server/middleware/error-handling.js +76 -0
- package/dist/server/middleware/error-handling.js.map +1 -0
- package/dist/server/middleware/index.d.ts +7 -0
- package/dist/server/middleware/index.d.ts.map +1 -0
- package/dist/server/middleware/index.js +7 -0
- package/dist/server/middleware/index.js.map +1 -0
- package/dist/server/middleware/logging.d.ts +29 -0
- package/dist/server/middleware/logging.d.ts.map +1 -0
- package/dist/server/middleware/logging.js +49 -0
- package/dist/server/middleware/logging.js.map +1 -0
- package/dist/server/middleware/session-management.d.ts +38 -0
- package/dist/server/middleware/session-management.d.ts.map +1 -0
- package/dist/server/middleware/session-management.js +66 -0
- package/dist/server/middleware/session-management.js.map +1 -0
- package/dist/server/request-handlers/index.d.ts +5 -0
- package/dist/server/request-handlers/index.d.ts.map +1 -0
- package/dist/server/request-handlers/index.js +5 -0
- package/dist/server/request-handlers/index.js.map +1 -0
- package/dist/server/request-handlers/prompt-handlers.d.ts +13 -0
- package/dist/server/request-handlers/prompt-handlers.d.ts.map +1 -0
- package/dist/server/request-handlers/prompt-handlers.js +80 -0
- package/dist/server/request-handlers/prompt-handlers.js.map +1 -0
- package/dist/server/request-handlers/tool-handlers.d.ts +11 -0
- package/dist/server/request-handlers/tool-handlers.d.ts.map +1 -0
- package/dist/server/request-handlers/tool-handlers.js +85 -0
- package/dist/server/request-handlers/tool-handlers.js.map +1 -0
- package/dist/server/server-factory.d.ts +68 -0
- package/dist/server/server-factory.d.ts.map +1 -0
- package/dist/server/server-factory.js +135 -0
- package/dist/server/server-factory.js.map +1 -0
- package/dist/server/transport/stdio-transport.d.ts +9 -0
- package/dist/server/transport/stdio-transport.d.ts.map +1 -0
- package/dist/server/transport/stdio-transport.js +11 -0
- package/dist/server/transport/stdio-transport.js.map +1 -0
- package/dist/session/index.d.ts +5 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +7 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/session-store.d.ts +74 -0
- package/dist/session/session-store.d.ts.map +1 -0
- package/dist/session/session-store.js +150 -0
- package/dist/session/session-store.js.map +1 -0
- package/dist/session/types.d.ts +96 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +9 -0
- package/dist/session/types.js.map +1 -0
- package/dist/shared/__tests__/addressing-system.batch-cache.test.d.ts +12 -0
- package/dist/shared/__tests__/addressing-system.batch-cache.test.d.ts.map +1 -0
- package/dist/shared/__tests__/addressing-system.batch-cache.test.js +306 -0
- package/dist/shared/__tests__/addressing-system.batch-cache.test.js.map +1 -0
- package/dist/shared/__tests__/addressing-system.hierarchical.test.d.ts +6 -0
- package/dist/shared/__tests__/addressing-system.hierarchical.test.d.ts.map +1 -0
- package/dist/shared/__tests__/addressing-system.hierarchical.test.js +205 -0
- package/dist/shared/__tests__/addressing-system.hierarchical.test.js.map +1 -0
- package/dist/shared/__tests__/addressing-system.lru.test.d.ts +6 -0
- package/dist/shared/__tests__/addressing-system.lru.test.d.ts.map +1 -0
- package/dist/shared/__tests__/addressing-system.lru.test.js +159 -0
- package/dist/shared/__tests__/addressing-system.lru.test.js.map +1 -0
- package/dist/shared/__tests__/addressing-system.relative-paths.test.d.ts +14 -0
- package/dist/shared/__tests__/addressing-system.relative-paths.test.d.ts.map +1 -0
- package/dist/shared/__tests__/addressing-system.relative-paths.test.js +249 -0
- package/dist/shared/__tests__/addressing-system.relative-paths.test.js.map +1 -0
- package/dist/shared/__tests__/document-analysis-enhanced.test.d.ts +9 -0
- package/dist/shared/__tests__/document-analysis-enhanced.test.d.ts.map +1 -0
- package/dist/shared/__tests__/document-analysis-enhanced.test.js +419 -0
- package/dist/shared/__tests__/document-analysis-enhanced.test.js.map +1 -0
- package/dist/shared/__tests__/document-analysis.test.d.ts +8 -0
- package/dist/shared/__tests__/document-analysis.test.d.ts.map +1 -0
- package/dist/shared/__tests__/document-analysis.test.js +904 -0
- package/dist/shared/__tests__/document-analysis.test.js.map +1 -0
- package/dist/shared/__tests__/keyword-utils-integration.test.d.ts +9 -0
- package/dist/shared/__tests__/keyword-utils-integration.test.d.ts.map +1 -0
- package/dist/shared/__tests__/keyword-utils-integration.test.js +317 -0
- package/dist/shared/__tests__/keyword-utils-integration.test.js.map +1 -0
- package/dist/shared/__tests__/link-utils.test.d.ts +5 -0
- package/dist/shared/__tests__/link-utils.test.d.ts.map +1 -0
- package/dist/shared/__tests__/link-utils.test.js +560 -0
- package/dist/shared/__tests__/link-utils.test.js.map +1 -0
- package/dist/shared/__tests__/link-validation.test.d.ts +5 -0
- package/dist/shared/__tests__/link-validation.test.d.ts.map +1 -0
- package/dist/shared/__tests__/link-validation.test.js +473 -0
- package/dist/shared/__tests__/link-validation.test.js.map +1 -0
- package/dist/shared/__tests__/reference-extractor.test.d.ts +8 -0
- package/dist/shared/__tests__/reference-extractor.test.d.ts.map +1 -0
- package/dist/shared/__tests__/reference-extractor.test.js +260 -0
- package/dist/shared/__tests__/reference-extractor.test.js.map +1 -0
- package/dist/shared/__tests__/reference-loader.test.d.ts +8 -0
- package/dist/shared/__tests__/reference-loader.test.d.ts.map +1 -0
- package/dist/shared/__tests__/reference-loader.test.js +622 -0
- package/dist/shared/__tests__/reference-loader.test.js.map +1 -0
- package/dist/shared/__tests__/section-operations.append.test.d.ts +8 -0
- package/dist/shared/__tests__/section-operations.append.test.d.ts.map +1 -0
- package/dist/shared/__tests__/section-operations.append.test.js +150 -0
- package/dist/shared/__tests__/section-operations.append.test.js.map +1 -0
- package/dist/shared/__tests__/section-operations.test.d.ts +7 -0
- package/dist/shared/__tests__/section-operations.test.d.ts.map +1 -0
- package/dist/shared/__tests__/section-operations.test.js +118 -0
- package/dist/shared/__tests__/section-operations.test.js.map +1 -0
- package/dist/shared/__tests__/slug-utils.test.d.ts +5 -0
- package/dist/shared/__tests__/slug-utils.test.d.ts.map +1 -0
- package/dist/shared/__tests__/slug-utils.test.js +542 -0
- package/dist/shared/__tests__/slug-utils.test.js.map +1 -0
- package/dist/shared/__tests__/task-operations.test.d.ts +9 -0
- package/dist/shared/__tests__/task-operations.test.d.ts.map +1 -0
- package/dist/shared/__tests__/task-operations.test.js +257 -0
- package/dist/shared/__tests__/task-operations.test.js.map +1 -0
- package/dist/shared/__tests__/task-validation.test.d.ts +6 -0
- package/dist/shared/__tests__/task-validation.test.d.ts.map +1 -0
- package/dist/shared/__tests__/task-validation.test.js +129 -0
- package/dist/shared/__tests__/task-validation.test.js.map +1 -0
- package/dist/shared/__tests__/task-view-utilities.test.d.ts +5 -0
- package/dist/shared/__tests__/task-view-utilities.test.d.ts.map +1 -0
- package/dist/shared/__tests__/task-view-utilities.test.js +312 -0
- package/dist/shared/__tests__/task-view-utilities.test.js.map +1 -0
- package/dist/shared/__tests__/tool-integration.array-validation.test.d.ts +7 -0
- package/dist/shared/__tests__/tool-integration.array-validation.test.d.ts.map +1 -0
- package/dist/shared/__tests__/tool-integration.array-validation.test.js +169 -0
- package/dist/shared/__tests__/tool-integration.array-validation.test.js.map +1 -0
- package/dist/shared/__tests__/tool-integration.hierarchical.test.d.ts +7 -0
- package/dist/shared/__tests__/tool-integration.hierarchical.test.d.ts.map +1 -0
- package/dist/shared/__tests__/tool-integration.hierarchical.test.js +204 -0
- package/dist/shared/__tests__/tool-integration.hierarchical.test.js.map +1 -0
- package/dist/shared/__tests__/workflow-prompt-utilities.test.d.ts +8 -0
- package/dist/shared/__tests__/workflow-prompt-utilities.test.d.ts.map +1 -0
- package/dist/shared/__tests__/workflow-prompt-utilities.test.js +722 -0
- package/dist/shared/__tests__/workflow-prompt-utilities.test.js.map +1 -0
- package/dist/shared/addressing-system.d.ts +799 -0
- package/dist/shared/addressing-system.d.ts.map +1 -0
- package/dist/shared/addressing-system.js +1074 -0
- package/dist/shared/addressing-system.js.map +1 -0
- package/dist/shared/document-analysis/__tests__/keyword-utils.test.d.ts +8 -0
- package/dist/shared/document-analysis/__tests__/keyword-utils.test.d.ts.map +1 -0
- package/dist/shared/document-analysis/__tests__/keyword-utils.test.js +601 -0
- package/dist/shared/document-analysis/__tests__/keyword-utils.test.js.map +1 -0
- package/dist/shared/document-analysis/index.d.ts +67 -0
- package/dist/shared/document-analysis/index.d.ts.map +1 -0
- package/dist/shared/document-analysis/index.js +166 -0
- package/dist/shared/document-analysis/index.js.map +1 -0
- package/dist/shared/document-analysis/keyword-utils.d.ts +405 -0
- package/dist/shared/document-analysis/keyword-utils.d.ts.map +1 -0
- package/dist/shared/document-analysis/keyword-utils.js +1147 -0
- package/dist/shared/document-analysis/keyword-utils.js.map +1 -0
- package/dist/shared/document-analysis/reference-validation.d.ts +27 -0
- package/dist/shared/document-analysis/reference-validation.d.ts.map +1 -0
- package/dist/shared/document-analysis/reference-validation.js +173 -0
- package/dist/shared/document-analysis/reference-validation.js.map +1 -0
- package/dist/shared/document-analysis/related-docs.d.ts +27 -0
- package/dist/shared/document-analysis/related-docs.d.ts.map +1 -0
- package/dist/shared/document-analysis/related-docs.js +459 -0
- package/dist/shared/document-analysis/related-docs.js.map +1 -0
- package/dist/shared/document-analysis/types.d.ts +89 -0
- package/dist/shared/document-analysis/types.d.ts.map +1 -0
- package/dist/shared/document-analysis/types.js +41 -0
- package/dist/shared/document-analysis/types.js.map +1 -0
- package/dist/shared/document-analysis.d.ts +15 -0
- package/dist/shared/document-analysis.d.ts.map +1 -0
- package/dist/shared/document-analysis.js +16 -0
- package/dist/shared/document-analysis.js.map +1 -0
- package/dist/shared/document-manager-factory.d.ts +32 -0
- package/dist/shared/document-manager-factory.d.ts.map +1 -0
- package/dist/shared/document-manager-factory.js +75 -0
- package/dist/shared/document-manager-factory.js.map +1 -0
- package/dist/shared/index.d.ts +5 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +7 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/link-analysis.d.ts +84 -0
- package/dist/shared/link-analysis.d.ts.map +1 -0
- package/dist/shared/link-analysis.js +213 -0
- package/dist/shared/link-analysis.js.map +1 -0
- package/dist/shared/link-context.d.ts +23 -0
- package/dist/shared/link-context.d.ts.map +1 -0
- package/dist/shared/link-context.js +172 -0
- package/dist/shared/link-context.js.map +1 -0
- package/dist/shared/link-utils.d.ts +33 -0
- package/dist/shared/link-utils.d.ts.map +1 -0
- package/dist/shared/link-utils.js +301 -0
- package/dist/shared/link-utils.js.map +1 -0
- package/dist/shared/link-validation.d.ts +79 -0
- package/dist/shared/link-validation.d.ts.map +1 -0
- package/dist/shared/link-validation.js +340 -0
- package/dist/shared/link-validation.js.map +1 -0
- package/dist/shared/namespace-analysis.d.ts +10 -0
- package/dist/shared/namespace-analysis.d.ts.map +1 -0
- package/dist/shared/namespace-analysis.js +100 -0
- package/dist/shared/namespace-analysis.js.map +1 -0
- package/dist/shared/namespace-constants.d.ts +69 -0
- package/dist/shared/namespace-constants.d.ts.map +1 -0
- package/dist/shared/namespace-constants.js +97 -0
- package/dist/shared/namespace-constants.js.map +1 -0
- package/dist/shared/path-utilities.d.ts +13 -0
- package/dist/shared/path-utilities.d.ts.map +1 -0
- package/dist/shared/path-utilities.js +39 -0
- package/dist/shared/path-utilities.js.map +1 -0
- package/dist/shared/reference-extractor.d.ts +121 -0
- package/dist/shared/reference-extractor.d.ts.map +1 -0
- package/dist/shared/reference-extractor.js +195 -0
- package/dist/shared/reference-extractor.js.map +1 -0
- package/dist/shared/reference-loader.d.ts +163 -0
- package/dist/shared/reference-loader.d.ts.map +1 -0
- package/dist/shared/reference-loader.js +265 -0
- package/dist/shared/reference-loader.js.map +1 -0
- package/dist/shared/section-operations.d.ts +14 -0
- package/dist/shared/section-operations.d.ts.map +1 -0
- package/dist/shared/section-operations.js +115 -0
- package/dist/shared/section-operations.js.map +1 -0
- package/dist/shared/slug-utils.d.ts +109 -0
- package/dist/shared/slug-utils.d.ts.map +1 -0
- package/dist/shared/slug-utils.js +302 -0
- package/dist/shared/slug-utils.js.map +1 -0
- package/dist/shared/task-operations.d.ts +152 -0
- package/dist/shared/task-operations.d.ts.map +1 -0
- package/dist/shared/task-operations.js +416 -0
- package/dist/shared/task-operations.js.map +1 -0
- package/dist/shared/task-utilities.d.ts +63 -0
- package/dist/shared/task-utilities.d.ts.map +1 -0
- package/dist/shared/task-utilities.js +86 -0
- package/dist/shared/task-utilities.js.map +1 -0
- package/dist/shared/task-validation.d.ts +50 -0
- package/dist/shared/task-validation.d.ts.map +1 -0
- package/dist/shared/task-validation.js +97 -0
- package/dist/shared/task-validation.js.map +1 -0
- package/dist/shared/task-view-utilities.d.ts +109 -0
- package/dist/shared/task-view-utilities.d.ts.map +1 -0
- package/dist/shared/task-view-utilities.js +255 -0
- package/dist/shared/task-view-utilities.js.map +1 -0
- package/dist/shared/utilities.d.ts +14 -0
- package/dist/shared/utilities.d.ts.map +1 -0
- package/dist/shared/utilities.js +23 -0
- package/dist/shared/utilities.js.map +1 -0
- package/dist/shared/utilities.test.d.ts +5 -0
- package/dist/shared/utilities.test.d.ts.map +1 -0
- package/dist/shared/utilities.test.js +422 -0
- package/dist/shared/utilities.test.js.map +1 -0
- package/dist/shared/validation-utils.d.ts +57 -0
- package/dist/shared/validation-utils.d.ts.map +1 -0
- package/dist/shared/validation-utils.js +63 -0
- package/dist/shared/validation-utils.js.map +1 -0
- package/dist/shared/workflow-prompt-utilities.d.ts +64 -0
- package/dist/shared/workflow-prompt-utilities.d.ts.map +1 -0
- package/dist/shared/workflow-prompt-utilities.js +163 -0
- package/dist/shared/workflow-prompt-utilities.js.map +1 -0
- package/dist/slug.d.ts +9 -0
- package/dist/slug.d.ts.map +1 -0
- package/dist/slug.js +40 -0
- package/dist/slug.js.map +1 -0
- package/dist/template-loader.d.ts +6 -0
- package/dist/template-loader.d.ts.map +1 -0
- package/dist/template-loader.js +8 -0
- package/dist/template-loader.js.map +1 -0
- package/dist/tools/__tests__/create-document-self-reference.test.d.ts +2 -0
- package/dist/tools/__tests__/create-document-self-reference.test.d.ts.map +1 -0
- package/dist/tools/__tests__/create-document-self-reference.test.js +124 -0
- package/dist/tools/__tests__/create-document-self-reference.test.js.map +1 -0
- package/dist/tools/__tests__/create-document-workflow-regression.test.d.ts +16 -0
- package/dist/tools/__tests__/create-document-workflow-regression.test.d.ts.map +1 -0
- package/dist/tools/__tests__/create-document-workflow-regression.test.js +655 -0
- package/dist/tools/__tests__/create-document-workflow-regression.test.js.map +1 -0
- package/dist/tools/__tests__/create-document.test.d.ts +2 -0
- package/dist/tools/__tests__/create-document.test.d.ts.map +1 -0
- package/dist/tools/__tests__/create-document.test.js +255 -0
- package/dist/tools/__tests__/create-document.test.js.map +1 -0
- package/dist/tools/__tests__/delete-document.test.d.ts +7 -0
- package/dist/tools/__tests__/delete-document.test.d.ts.map +1 -0
- package/dist/tools/__tests__/delete-document.test.js +311 -0
- package/dist/tools/__tests__/delete-document.test.js.map +1 -0
- package/dist/tools/__tests__/edit-document.test.d.ts +2 -0
- package/dist/tools/__tests__/edit-document.test.d.ts.map +1 -0
- package/dist/tools/__tests__/edit-document.test.js +644 -0
- package/dist/tools/__tests__/edit-document.test.js.map +1 -0
- package/dist/tools/__tests__/error-scenarios.test.d.ts +5 -0
- package/dist/tools/__tests__/error-scenarios.test.d.ts.map +1 -0
- package/dist/tools/__tests__/error-scenarios.test.js +105 -0
- package/dist/tools/__tests__/error-scenarios.test.js.map +1 -0
- package/dist/tools/__tests__/mocks/document-manager.mock.d.ts +99 -0
- package/dist/tools/__tests__/mocks/document-manager.mock.d.ts.map +1 -0
- package/dist/tools/__tests__/mocks/document-manager.mock.js +457 -0
- package/dist/tools/__tests__/mocks/document-manager.mock.js.map +1 -0
- package/dist/tools/__tests__/mocks/filesystem.mock.d.ts +103 -0
- package/dist/tools/__tests__/mocks/filesystem.mock.d.ts.map +1 -0
- package/dist/tools/__tests__/mocks/filesystem.mock.js +247 -0
- package/dist/tools/__tests__/mocks/filesystem.mock.js.map +1 -0
- package/dist/tools/__tests__/move-document.test.d.ts +12 -0
- package/dist/tools/__tests__/move-document.test.d.ts.map +1 -0
- package/dist/tools/__tests__/move-document.test.js +214 -0
- package/dist/tools/__tests__/move-document.test.js.map +1 -0
- package/dist/tools/__tests__/move.test.d.ts +13 -0
- package/dist/tools/__tests__/move.test.d.ts.map +1 -0
- package/dist/tools/__tests__/move.test.js +939 -0
- package/dist/tools/__tests__/move.test.js.map +1 -0
- package/dist/tools/__tests__/section.integration.improved.test.d.ts +5 -0
- package/dist/tools/__tests__/section.integration.improved.test.d.ts.map +1 -0
- package/dist/tools/__tests__/section.integration.improved.test.js +199 -0
- package/dist/tools/__tests__/section.integration.improved.test.js.map +1 -0
- package/dist/tools/__tests__/section.integration.test.d.ts +5 -0
- package/dist/tools/__tests__/section.integration.test.d.ts.map +1 -0
- package/dist/tools/__tests__/section.integration.test.js +637 -0
- package/dist/tools/__tests__/section.integration.test.js.map +1 -0
- package/dist/tools/__tests__/setup/test-environment.d.ts +111 -0
- package/dist/tools/__tests__/setup/test-environment.d.ts.map +1 -0
- package/dist/tools/__tests__/setup/test-environment.js +322 -0
- package/dist/tools/__tests__/setup/test-environment.js.map +1 -0
- package/dist/tools/__tests__/suggestion-generator.test.d.ts +8 -0
- package/dist/tools/__tests__/suggestion-generator.test.d.ts.map +1 -0
- package/dist/tools/__tests__/suggestion-generator.test.js +508 -0
- package/dist/tools/__tests__/suggestion-generator.test.js.map +1 -0
- package/dist/tools/__tests__/task-consistency.test.d.ts +11 -0
- package/dist/tools/__tests__/task-consistency.test.d.ts.map +1 -0
- package/dist/tools/__tests__/task-consistency.test.js +93 -0
- package/dist/tools/__tests__/task-consistency.test.js.map +1 -0
- package/dist/tools/__tests__/task-status-parsing.test.d.ts +15 -0
- package/dist/tools/__tests__/task-status-parsing.test.d.ts.map +1 -0
- package/dist/tools/__tests__/task-status-parsing.test.js +126 -0
- package/dist/tools/__tests__/task-status-parsing.test.js.map +1 -0
- package/dist/tools/__tests__/view-section-boundary.test.d.ts +2 -0
- package/dist/tools/__tests__/view-section-boundary.test.d.ts.map +1 -0
- package/dist/tools/__tests__/view-section-boundary.test.js +132 -0
- package/dist/tools/__tests__/view-section-boundary.test.js.map +1 -0
- package/dist/tools/__tests__/write-operations-integration.test.d.ts +8 -0
- package/dist/tools/__tests__/write-operations-integration.test.d.ts.map +1 -0
- package/dist/tools/__tests__/write-operations-integration.test.js +136 -0
- package/dist/tools/__tests__/write-operations-integration.test.js.map +1 -0
- package/dist/tools/browse/content-analyzer.d.ts +27 -0
- package/dist/tools/browse/content-analyzer.d.ts.map +1 -0
- package/dist/tools/browse/content-analyzer.js +150 -0
- package/dist/tools/browse/content-analyzer.js.map +1 -0
- package/dist/tools/browse/dependency-analyzer.d.ts +63 -0
- package/dist/tools/browse/dependency-analyzer.d.ts.map +1 -0
- package/dist/tools/browse/dependency-analyzer.js +261 -0
- package/dist/tools/browse/dependency-analyzer.js.map +1 -0
- package/dist/tools/browse/folder-navigator.d.ts +35 -0
- package/dist/tools/browse/folder-navigator.d.ts.map +1 -0
- package/dist/tools/browse/folder-navigator.js +154 -0
- package/dist/tools/browse/folder-navigator.js.map +1 -0
- package/dist/tools/browse/index.d.ts +10 -0
- package/dist/tools/browse/index.d.ts.map +1 -0
- package/dist/tools/browse/index.js +14 -0
- package/dist/tools/browse/index.js.map +1 -0
- package/dist/tools/browse/relationship-classifier.d.ts +9 -0
- package/dist/tools/browse/relationship-classifier.d.ts.map +1 -0
- package/dist/tools/browse/relationship-classifier.js +38 -0
- package/dist/tools/browse/relationship-classifier.js.map +1 -0
- package/dist/tools/browse/search-engine.d.ts +69 -0
- package/dist/tools/browse/search-engine.d.ts.map +1 -0
- package/dist/tools/browse/search-engine.js +197 -0
- package/dist/tools/browse/search-engine.js.map +1 -0
- package/dist/tools/create/__tests__/file-creator.test.d.ts +6 -0
- package/dist/tools/create/__tests__/file-creator.test.d.ts.map +1 -0
- package/dist/tools/create/__tests__/file-creator.test.js +138 -0
- package/dist/tools/create/__tests__/file-creator.test.js.map +1 -0
- package/dist/tools/create/__tests__/template-processor.test.d.ts +6 -0
- package/dist/tools/create/__tests__/template-processor.test.d.ts.map +1 -0
- package/dist/tools/create/__tests__/template-processor.test.js +130 -0
- package/dist/tools/create/__tests__/template-processor.test.js.map +1 -0
- package/dist/tools/create/file-creator.d.ts +35 -0
- package/dist/tools/create/file-creator.d.ts.map +1 -0
- package/dist/tools/create/file-creator.js +103 -0
- package/dist/tools/create/file-creator.js.map +1 -0
- package/dist/tools/create/index.d.ts +6 -0
- package/dist/tools/create/index.d.ts.map +1 -0
- package/dist/tools/create/index.js +7 -0
- package/dist/tools/create/index.js.map +1 -0
- package/dist/tools/create/pipeline.d.ts +39 -0
- package/dist/tools/create/pipeline.d.ts.map +1 -0
- package/dist/tools/create/pipeline.js +112 -0
- package/dist/tools/create/pipeline.js.map +1 -0
- package/dist/tools/create/suggestion-generator.d.ts +47 -0
- package/dist/tools/create/suggestion-generator.d.ts.map +1 -0
- package/dist/tools/create/suggestion-generator.js +51 -0
- package/dist/tools/create/suggestion-generator.js.map +1 -0
- package/dist/tools/create/template-processor.d.ts +27 -0
- package/dist/tools/create/template-processor.d.ts.map +1 -0
- package/dist/tools/create/template-processor.js +74 -0
- package/dist/tools/create/template-processor.js.map +1 -0
- package/dist/tools/create/validation-processor.d.ts +48 -0
- package/dist/tools/create/validation-processor.d.ts.map +1 -0
- package/dist/tools/create/validation-processor.js +107 -0
- package/dist/tools/create/validation-processor.js.map +1 -0
- package/dist/tools/executor.d.ts +19 -0
- package/dist/tools/executor.d.ts.map +1 -0
- package/dist/tools/executor.js +53 -0
- package/dist/tools/executor.js.map +1 -0
- package/dist/tools/implementations/__tests__/browse-documents.test.d.ts +8 -0
- package/dist/tools/implementations/__tests__/browse-documents.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/browse-documents.test.js +319 -0
- package/dist/tools/implementations/__tests__/browse-documents.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/complete-coordinator-task.test.d.ts +7 -0
- package/dist/tools/implementations/__tests__/complete-coordinator-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/complete-coordinator-task.test.js +440 -0
- package/dist/tools/implementations/__tests__/complete-coordinator-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/complete-subagent-task.test.d.ts +14 -0
- package/dist/tools/implementations/__tests__/complete-subagent-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/complete-subagent-task.test.js +851 -0
- package/dist/tools/implementations/__tests__/complete-subagent-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/complete-task-notes.test.d.ts +6 -0
- package/dist/tools/implementations/__tests__/complete-task-notes.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/complete-task-notes.test.js +157 -0
- package/dist/tools/implementations/__tests__/complete-task-notes.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/complete-task.test.d.ts +14 -0
- package/dist/tools/implementations/__tests__/complete-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/complete-task.test.js +867 -0
- package/dist/tools/implementations/__tests__/complete-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/continue-task.test.d.ts +11 -0
- package/dist/tools/implementations/__tests__/continue-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/continue-task.test.js +845 -0
- package/dist/tools/implementations/__tests__/continue-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/coordinator-task.test.d.ts +7 -0
- package/dist/tools/implementations/__tests__/coordinator-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/coordinator-task.test.js +495 -0
- package/dist/tools/implementations/__tests__/coordinator-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/get-guide.test.d.ts +8 -0
- package/dist/tools/implementations/__tests__/get-guide.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/get-guide.test.js +242 -0
- package/dist/tools/implementations/__tests__/get-guide.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/get-workflow.test.d.ts +8 -0
- package/dist/tools/implementations/__tests__/get-workflow.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/get-workflow.test.js +232 -0
- package/dist/tools/implementations/__tests__/get-workflow.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/search-documents.test.d.ts +8 -0
- package/dist/tools/implementations/__tests__/search-documents.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/search-documents.test.js +336 -0
- package/dist/tools/implementations/__tests__/search-documents.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/start-coordinator-task.test.d.ts +7 -0
- package/dist/tools/implementations/__tests__/start-coordinator-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/start-coordinator-task.test.js +177 -0
- package/dist/tools/implementations/__tests__/start-coordinator-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/start-subagent-task.test.d.ts +11 -0
- package/dist/tools/implementations/__tests__/start-subagent-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/start-subagent-task.test.js +846 -0
- package/dist/tools/implementations/__tests__/start-subagent-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/start-task.test.d.ts +11 -0
- package/dist/tools/implementations/__tests__/start-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/start-task.test.js +828 -0
- package/dist/tools/implementations/__tests__/start-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/subagent-task-batch-operations.test.d.ts +8 -0
- package/dist/tools/implementations/__tests__/subagent-task-batch-operations.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/subagent-task-batch-operations.test.js +199 -0
- package/dist/tools/implementations/__tests__/subagent-task-batch-operations.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/subagent-task.test.d.ts +7 -0
- package/dist/tools/implementations/__tests__/subagent-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/subagent-task.test.js +720 -0
- package/dist/tools/implementations/__tests__/subagent-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/task-batch-operations.test.d.ts +8 -0
- package/dist/tools/implementations/__tests__/task-batch-operations.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/task-batch-operations.test.js +200 -0
- package/dist/tools/implementations/__tests__/task-batch-operations.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/task.test.d.ts +7 -0
- package/dist/tools/implementations/__tests__/task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/task.test.js +578 -0
- package/dist/tools/implementations/__tests__/task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/view-coordinator-task.test.d.ts +13 -0
- package/dist/tools/implementations/__tests__/view-coordinator-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/view-coordinator-task.test.js +1404 -0
- package/dist/tools/implementations/__tests__/view-coordinator-task.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/view-document.linked-context.test.d.ts +8 -0
- package/dist/tools/implementations/__tests__/view-document.linked-context.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/view-document.linked-context.test.js +235 -0
- package/dist/tools/implementations/__tests__/view-document.linked-context.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/view-document.simplification.test.d.ts +9 -0
- package/dist/tools/implementations/__tests__/view-document.simplification.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/view-document.simplification.test.js +160 -0
- package/dist/tools/implementations/__tests__/view-document.simplification.test.js.map +1 -0
- package/dist/tools/implementations/__tests__/view-task.test.d.ts +12 -0
- package/dist/tools/implementations/__tests__/view-task.test.d.ts.map +1 -0
- package/dist/tools/implementations/__tests__/view-task.test.js +1158 -0
- package/dist/tools/implementations/__tests__/view-task.test.js.map +1 -0
- package/dist/tools/implementations/browse-documents.d.ts +36 -0
- package/dist/tools/implementations/browse-documents.d.ts.map +1 -0
- package/dist/tools/implementations/browse-documents.js +123 -0
- package/dist/tools/implementations/browse-documents.js.map +1 -0
- package/dist/tools/implementations/complete-coordinator-task.d.ts +53 -0
- package/dist/tools/implementations/complete-coordinator-task.d.ts.map +1 -0
- package/dist/tools/implementations/complete-coordinator-task.js +159 -0
- package/dist/tools/implementations/complete-coordinator-task.js.map +1 -0
- package/dist/tools/implementations/complete-subagent-task.d.ts +47 -0
- package/dist/tools/implementations/complete-subagent-task.d.ts.map +1 -0
- package/dist/tools/implementations/complete-subagent-task.js +141 -0
- package/dist/tools/implementations/complete-subagent-task.js.map +1 -0
- package/dist/tools/implementations/complete-task.d.ts +32 -0
- package/dist/tools/implementations/complete-task.d.ts.map +1 -0
- package/dist/tools/implementations/complete-task.hierarchical.test.d.ts +8 -0
- package/dist/tools/implementations/complete-task.hierarchical.test.d.ts.map +1 -0
- package/dist/tools/implementations/complete-task.hierarchical.test.js +363 -0
- package/dist/tools/implementations/complete-task.hierarchical.test.js.map +1 -0
- package/dist/tools/implementations/complete-task.js +122 -0
- package/dist/tools/implementations/complete-task.js.map +1 -0
- package/dist/tools/implementations/continue-task.d.ts +48 -0
- package/dist/tools/implementations/continue-task.d.ts.map +1 -0
- package/dist/tools/implementations/continue-task.js +167 -0
- package/dist/tools/implementations/continue-task.js.map +1 -0
- package/dist/tools/implementations/coordinator-task.d.ts +72 -0
- package/dist/tools/implementations/coordinator-task.d.ts.map +1 -0
- package/dist/tools/implementations/coordinator-task.js +169 -0
- package/dist/tools/implementations/coordinator-task.js.map +1 -0
- package/dist/tools/implementations/create-document.d.ts +12 -0
- package/dist/tools/implementations/create-document.d.ts.map +1 -0
- package/dist/tools/implementations/create-document.js +15 -0
- package/dist/tools/implementations/create-document.js.map +1 -0
- package/dist/tools/implementations/delete-document.d.ts +16 -0
- package/dist/tools/implementations/delete-document.d.ts.map +1 -0
- package/dist/tools/implementations/delete-document.js +70 -0
- package/dist/tools/implementations/delete-document.js.map +1 -0
- package/dist/tools/implementations/edit-document.d.ts +8 -0
- package/dist/tools/implementations/edit-document.d.ts.map +1 -0
- package/dist/tools/implementations/edit-document.js +118 -0
- package/dist/tools/implementations/edit-document.js.map +1 -0
- package/dist/tools/implementations/get-guide.d.ts +13 -0
- package/dist/tools/implementations/get-guide.d.ts.map +1 -0
- package/dist/tools/implementations/get-guide.js +64 -0
- package/dist/tools/implementations/get-guide.js.map +1 -0
- package/dist/tools/implementations/get-workflow.d.ts +12 -0
- package/dist/tools/implementations/get-workflow.d.ts.map +1 -0
- package/dist/tools/implementations/get-workflow.js +71 -0
- package/dist/tools/implementations/get-workflow.js.map +1 -0
- package/dist/tools/implementations/index.d.ts +24 -0
- package/dist/tools/implementations/index.d.ts.map +1 -0
- package/dist/tools/implementations/index.js +24 -0
- package/dist/tools/implementations/index.js.map +1 -0
- package/dist/tools/implementations/manage-document.d.ts +8 -0
- package/dist/tools/implementations/manage-document.d.ts.map +1 -0
- package/dist/tools/implementations/manage-document.js +180 -0
- package/dist/tools/implementations/manage-document.js.map +1 -0
- package/dist/tools/implementations/move-document.d.ts +12 -0
- package/dist/tools/implementations/move-document.d.ts.map +1 -0
- package/dist/tools/implementations/move-document.js +72 -0
- package/dist/tools/implementations/move-document.js.map +1 -0
- package/dist/tools/implementations/move.d.ts +24 -0
- package/dist/tools/implementations/move.d.ts.map +1 -0
- package/dist/tools/implementations/move.js +167 -0
- package/dist/tools/implementations/move.js.map +1 -0
- package/dist/tools/implementations/search-documents.d.ts +39 -0
- package/dist/tools/implementations/search-documents.d.ts.map +1 -0
- package/dist/tools/implementations/search-documents.js +246 -0
- package/dist/tools/implementations/search-documents.js.map +1 -0
- package/dist/tools/implementations/section.d.ts +42 -0
- package/dist/tools/implementations/section.d.ts.map +1 -0
- package/dist/tools/implementations/section.hierarchical.test.d.ts +8 -0
- package/dist/tools/implementations/section.hierarchical.test.d.ts.map +1 -0
- package/dist/tools/implementations/section.hierarchical.test.js +299 -0
- package/dist/tools/implementations/section.hierarchical.test.js.map +1 -0
- package/dist/tools/implementations/section.js +244 -0
- package/dist/tools/implementations/section.js.map +1 -0
- package/dist/tools/implementations/section.test.d.ts +5 -0
- package/dist/tools/implementations/section.test.d.ts.map +1 -0
- package/dist/tools/implementations/section.test.js +371 -0
- package/dist/tools/implementations/section.test.js.map +1 -0
- package/dist/tools/implementations/start-coordinator-task.d.ts +44 -0
- package/dist/tools/implementations/start-coordinator-task.d.ts.map +1 -0
- package/dist/tools/implementations/start-coordinator-task.js +125 -0
- package/dist/tools/implementations/start-coordinator-task.js.map +1 -0
- package/dist/tools/implementations/start-subagent-task.d.ts +53 -0
- package/dist/tools/implementations/start-subagent-task.d.ts.map +1 -0
- package/dist/tools/implementations/start-subagent-task.js +179 -0
- package/dist/tools/implementations/start-subagent-task.js.map +1 -0
- package/dist/tools/implementations/start-task.d.ts +48 -0
- package/dist/tools/implementations/start-task.d.ts.map +1 -0
- package/dist/tools/implementations/start-task.js +216 -0
- package/dist/tools/implementations/start-task.js.map +1 -0
- package/dist/tools/implementations/subagent-task.d.ts +98 -0
- package/dist/tools/implementations/subagent-task.d.ts.map +1 -0
- package/dist/tools/implementations/subagent-task.js +277 -0
- package/dist/tools/implementations/subagent-task.js.map +1 -0
- package/dist/tools/implementations/task.d.ts +97 -0
- package/dist/tools/implementations/task.d.ts.map +1 -0
- package/dist/tools/implementations/task.hierarchical.test.d.ts +8 -0
- package/dist/tools/implementations/task.hierarchical.test.d.ts.map +1 -0
- package/dist/tools/implementations/task.hierarchical.test.js +333 -0
- package/dist/tools/implementations/task.hierarchical.test.js.map +1 -0
- package/dist/tools/implementations/task.js +235 -0
- package/dist/tools/implementations/task.js.map +1 -0
- package/dist/tools/implementations/view-coordinator-task.d.ts +61 -0
- package/dist/tools/implementations/view-coordinator-task.d.ts.map +1 -0
- package/dist/tools/implementations/view-coordinator-task.js +295 -0
- package/dist/tools/implementations/view-coordinator-task.js.map +1 -0
- package/dist/tools/implementations/view-document.d.ts +84 -0
- package/dist/tools/implementations/view-document.d.ts.map +1 -0
- package/dist/tools/implementations/view-document.js +287 -0
- package/dist/tools/implementations/view-document.js.map +1 -0
- package/dist/tools/implementations/view-section.d.ts +28 -0
- package/dist/tools/implementations/view-section.d.ts.map +1 -0
- package/dist/tools/implementations/view-section.hierarchical.test.d.ts +8 -0
- package/dist/tools/implementations/view-section.hierarchical.test.d.ts.map +1 -0
- package/dist/tools/implementations/view-section.hierarchical.test.js +318 -0
- package/dist/tools/implementations/view-section.hierarchical.test.js.map +1 -0
- package/dist/tools/implementations/view-section.js +167 -0
- package/dist/tools/implementations/view-section.js.map +1 -0
- package/dist/tools/implementations/view-subagent-task.d.ts +46 -0
- package/dist/tools/implementations/view-subagent-task.d.ts.map +1 -0
- package/dist/tools/implementations/view-subagent-task.js +283 -0
- package/dist/tools/implementations/view-subagent-task.js.map +1 -0
- package/dist/tools/implementations/view-task.d.ts +43 -0
- package/dist/tools/implementations/view-task.d.ts.map +1 -0
- package/dist/tools/implementations/view-task.hierarchical.test.d.ts +8 -0
- package/dist/tools/implementations/view-task.hierarchical.test.d.ts.map +1 -0
- package/dist/tools/implementations/view-task.hierarchical.test.js +420 -0
- package/dist/tools/implementations/view-task.hierarchical.test.js.map +1 -0
- package/dist/tools/implementations/view-task.js +280 -0
- package/dist/tools/implementations/view-task.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +10 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +132 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/schemas/__tests__/get-guide-schemas.test.d.ts +8 -0
- package/dist/tools/schemas/__tests__/get-guide-schemas.test.d.ts.map +1 -0
- package/dist/tools/schemas/__tests__/get-guide-schemas.test.js +216 -0
- package/dist/tools/schemas/__tests__/get-guide-schemas.test.js.map +1 -0
- package/dist/tools/schemas/__tests__/get-workflow-schemas.test.d.ts +8 -0
- package/dist/tools/schemas/__tests__/get-workflow-schemas.test.d.ts.map +1 -0
- package/dist/tools/schemas/__tests__/get-workflow-schemas.test.js +229 -0
- package/dist/tools/schemas/__tests__/get-workflow-schemas.test.js.map +1 -0
- package/dist/tools/schemas/browse-documents-schemas.d.ts +47 -0
- package/dist/tools/schemas/browse-documents-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/browse-documents-schemas.js +48 -0
- package/dist/tools/schemas/browse-documents-schemas.js.map +1 -0
- package/dist/tools/schemas/complete-coordinator-task-schemas.d.ts +41 -0
- package/dist/tools/schemas/complete-coordinator-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/complete-coordinator-task-schemas.js +42 -0
- package/dist/tools/schemas/complete-coordinator-task-schemas.js.map +1 -0
- package/dist/tools/schemas/complete-subagent-task-schemas.d.ts +38 -0
- package/dist/tools/schemas/complete-subagent-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/complete-subagent-task-schemas.js +41 -0
- package/dist/tools/schemas/complete-subagent-task-schemas.js.map +1 -0
- package/dist/tools/schemas/complete-task-schemas.d.ts +33 -0
- package/dist/tools/schemas/complete-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/complete-task-schemas.js +36 -0
- package/dist/tools/schemas/complete-task-schemas.js.map +1 -0
- package/dist/tools/schemas/continue-task-schemas.d.ts +27 -0
- package/dist/tools/schemas/continue-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/continue-task-schemas.js +28 -0
- package/dist/tools/schemas/continue-task-schemas.js.map +1 -0
- package/dist/tools/schemas/coordinator-task-schemas.d.ts +87 -0
- package/dist/tools/schemas/coordinator-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/coordinator-task-schemas.js +80 -0
- package/dist/tools/schemas/coordinator-task-schemas.js.map +1 -0
- package/dist/tools/schemas/create-document-schemas.d.ts +61 -0
- package/dist/tools/schemas/create-document-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/create-document-schemas.js +143 -0
- package/dist/tools/schemas/create-document-schemas.js.map +1 -0
- package/dist/tools/schemas/delete-document-schemas.d.ts +24 -0
- package/dist/tools/schemas/delete-document-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/delete-document-schemas.js +25 -0
- package/dist/tools/schemas/delete-document-schemas.js.map +1 -0
- package/dist/tools/schemas/edit-document-schemas.d.ts +27 -0
- package/dist/tools/schemas/edit-document-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/edit-document-schemas.js +28 -0
- package/dist/tools/schemas/edit-document-schemas.js.map +1 -0
- package/dist/tools/schemas/get-guide-schemas.d.ts +35 -0
- package/dist/tools/schemas/get-guide-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/get-guide-schemas.js +66 -0
- package/dist/tools/schemas/get-guide-schemas.js.map +1 -0
- package/dist/tools/schemas/get-workflow-schemas.d.ts +35 -0
- package/dist/tools/schemas/get-workflow-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/get-workflow-schemas.js +67 -0
- package/dist/tools/schemas/get-workflow-schemas.js.map +1 -0
- package/dist/tools/schemas/manage-document-schemas.d.ts +59 -0
- package/dist/tools/schemas/manage-document-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/manage-document-schemas.js +83 -0
- package/dist/tools/schemas/manage-document-schemas.js.map +1 -0
- package/dist/tools/schemas/move-document-schemas.d.ts +25 -0
- package/dist/tools/schemas/move-document-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/move-document-schemas.js +26 -0
- package/dist/tools/schemas/move-document-schemas.js.map +1 -0
- package/dist/tools/schemas/move-schemas.d.ts +43 -0
- package/dist/tools/schemas/move-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/move-schemas.js +43 -0
- package/dist/tools/schemas/move-schemas.js.map +1 -0
- package/dist/tools/schemas/search-documents-schemas.d.ts +77 -0
- package/dist/tools/schemas/search-documents-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/search-documents-schemas.js +78 -0
- package/dist/tools/schemas/search-documents-schemas.js.map +1 -0
- package/dist/tools/schemas/section-schemas.d.ts +361 -0
- package/dist/tools/schemas/section-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/section-schemas.js +182 -0
- package/dist/tools/schemas/section-schemas.js.map +1 -0
- package/dist/tools/schemas/start-coordinator-task-schemas.d.ts +30 -0
- package/dist/tools/schemas/start-coordinator-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/start-coordinator-task-schemas.js +31 -0
- package/dist/tools/schemas/start-coordinator-task-schemas.js.map +1 -0
- package/dist/tools/schemas/start-subagent-task-schemas.d.ts +29 -0
- package/dist/tools/schemas/start-subagent-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/start-subagent-task-schemas.js +40 -0
- package/dist/tools/schemas/start-subagent-task-schemas.js.map +1 -0
- package/dist/tools/schemas/start-task-schemas.d.ts +23 -0
- package/dist/tools/schemas/start-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/start-task-schemas.js +39 -0
- package/dist/tools/schemas/start-task-schemas.js.map +1 -0
- package/dist/tools/schemas/subagent-task-schemas.d.ts +93 -0
- package/dist/tools/schemas/subagent-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/subagent-task-schemas.js +81 -0
- package/dist/tools/schemas/subagent-task-schemas.js.map +1 -0
- package/dist/tools/schemas/task-schemas.d.ts +88 -0
- package/dist/tools/schemas/task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/task-schemas.js +80 -0
- package/dist/tools/schemas/task-schemas.js.map +1 -0
- package/dist/tools/schemas/view-coordinator-task-schemas.d.ts +27 -0
- package/dist/tools/schemas/view-coordinator-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/view-coordinator-task-schemas.js +46 -0
- package/dist/tools/schemas/view-coordinator-task-schemas.js.map +1 -0
- package/dist/tools/schemas/view-document-schemas.d.ts +152 -0
- package/dist/tools/schemas/view-document-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/view-document-schemas.js +70 -0
- package/dist/tools/schemas/view-document-schemas.js.map +1 -0
- package/dist/tools/schemas/view-section-schemas.d.ts +31 -0
- package/dist/tools/schemas/view-section-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/view-section-schemas.js +56 -0
- package/dist/tools/schemas/view-section-schemas.js.map +1 -0
- package/dist/tools/schemas/view-subagent-task-schemas.d.ts +31 -0
- package/dist/tools/schemas/view-subagent-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/view-subagent-task-schemas.js +65 -0
- package/dist/tools/schemas/view-subagent-task-schemas.js.map +1 -0
- package/dist/tools/schemas/view-task-schemas.d.ts +31 -0
- package/dist/tools/schemas/view-task-schemas.d.ts.map +1 -0
- package/dist/tools/schemas/view-task-schemas.js +62 -0
- package/dist/tools/schemas/view-task-schemas.js.map +1 -0
- package/dist/tools/types.d.ts +98 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +9 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools-manager.d.ts +8 -0
- package/dist/tools-manager.d.ts.map +1 -0
- package/dist/tools-manager.js +9 -0
- package/dist/tools-manager.js.map +1 -0
- package/dist/types/core.d.ts +71 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +5 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/linking.d.ts +97 -0
- package/dist/types/linking.d.ts.map +1 -0
- package/dist/types/linking.js +5 -0
- package/dist/types/linking.js.map +1 -0
- package/dist/utils/__tests__/path-handler.archive.test.d.ts +8 -0
- package/dist/utils/__tests__/path-handler.archive.test.d.ts.map +1 -0
- package/dist/utils/__tests__/path-handler.archive.test.js +163 -0
- package/dist/utils/__tests__/path-handler.archive.test.js.map +1 -0
- package/dist/utils/error-formatter.d.ts +32 -0
- package/dist/utils/error-formatter.d.ts.map +1 -0
- package/dist/utils/error-formatter.js +79 -0
- package/dist/utils/error-formatter.js.map +1 -0
- package/dist/utils/logger.d.ts +21 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +154 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/path-handler.d.ts +52 -0
- package/dist/utils/path-handler.d.ts.map +1 -0
- package/dist/utils/path-handler.js +129 -0
- package/dist/utils/path-handler.js.map +1 -0
- package/dist/utils/security-audit-logger.d.ts +64 -0
- package/dist/utils/security-audit-logger.d.ts.map +1 -0
- package/dist/utils/security-audit-logger.js +56 -0
- package/dist/utils/security-audit-logger.js.map +1 -0
- package/dist/utils/virtual-path-resolver.d.ts +126 -0
- package/dist/utils/virtual-path-resolver.d.ts.map +1 -0
- package/dist/utils/virtual-path-resolver.js +171 -0
- package/dist/utils/virtual-path-resolver.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,720 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for task tool - Bulk operations only
|
|
3
|
+
*
|
|
4
|
+
* Tests the task tool with bulk operations support for creating, editing, and listing tasks.
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
7
|
+
import { subagentTask } from '../subagent-task.js';
|
|
8
|
+
import { createDocumentManager } from '../../../shared/utilities.js';
|
|
9
|
+
import { resolve } from 'node:path';
|
|
10
|
+
import { mkdtemp, rm, writeFile, mkdir } from 'node:fs/promises';
|
|
11
|
+
import { tmpdir } from 'node:os';
|
|
12
|
+
describe('task tool - Bulk Operations', () => {
|
|
13
|
+
let manager;
|
|
14
|
+
let sessionState;
|
|
15
|
+
let testDir;
|
|
16
|
+
let docsDir;
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
// Set MCP_WORKSPACE_PATH for config loading
|
|
19
|
+
process.env["MCP_WORKSPACE_PATH"] = process.env["MCP_WORKSPACE_PATH"] ?? "/tmp/test-workspace";
|
|
20
|
+
// Create temporary test directory with unique ID
|
|
21
|
+
const uniqueId = `${Date.now()}-${Math.random().toString(36).substring(7)}`;
|
|
22
|
+
testDir = await mkdtemp(resolve(tmpdir(), `task-test-${uniqueId}-`));
|
|
23
|
+
// Configure MCP_WORKSPACE_PATH for config loading
|
|
24
|
+
process.env["MCP_WORKSPACE_PATH"] = testDir;
|
|
25
|
+
docsDir = resolve(testDir, 'docs');
|
|
26
|
+
await mkdir(docsDir, { recursive: true });
|
|
27
|
+
// Create document manager using shared utility
|
|
28
|
+
// Note: testDir is the root, docsDir is {testDir}/docs
|
|
29
|
+
manager = createDocumentManager(docsDir);
|
|
30
|
+
sessionState = {
|
|
31
|
+
sessionId: `test-${Date.now()}-${Math.random()}`,
|
|
32
|
+
createDocumentStage: 0
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
afterEach(async () => {
|
|
36
|
+
// Destroy manager to cancel pending async operations and clean up cache
|
|
37
|
+
await manager.destroy();
|
|
38
|
+
// Clean up test directory
|
|
39
|
+
if (testDir != null) {
|
|
40
|
+
await rm(testDir, { recursive: true, force: true });
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
describe('Parameter Validation', () => {
|
|
44
|
+
it('should throw error when operations array is missing', async () => {
|
|
45
|
+
await expect(subagentTask({
|
|
46
|
+
document: '/test.md'
|
|
47
|
+
}, sessionState, manager))
|
|
48
|
+
.rejects.toThrow('operations array is required');
|
|
49
|
+
});
|
|
50
|
+
it('should throw error when operations is not an array', async () => {
|
|
51
|
+
await expect(subagentTask({
|
|
52
|
+
document: '/test.md',
|
|
53
|
+
operations: 'not-an-array'
|
|
54
|
+
}, sessionState, manager))
|
|
55
|
+
.rejects.toThrow('operations array is required');
|
|
56
|
+
});
|
|
57
|
+
it('should throw error when operations array is empty', async () => {
|
|
58
|
+
await expect(subagentTask({
|
|
59
|
+
document: '/test.md',
|
|
60
|
+
operations: []
|
|
61
|
+
}, sessionState, manager))
|
|
62
|
+
.rejects.toThrow('operations array cannot be empty');
|
|
63
|
+
});
|
|
64
|
+
it('should throw error when document parameter is missing', async () => {
|
|
65
|
+
await expect(subagentTask({
|
|
66
|
+
operations: [{ operation: 'list' }]
|
|
67
|
+
}, sessionState, manager))
|
|
68
|
+
.rejects.toThrow('document');
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('Single Create Operation', () => {
|
|
72
|
+
it('should create a single task via operations array', async () => {
|
|
73
|
+
// Create a test document with Tasks section
|
|
74
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
75
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
76
|
+
await writeFile(docPath, docContent);
|
|
77
|
+
const result = await subagentTask({
|
|
78
|
+
document: '/test.md',
|
|
79
|
+
operations: [
|
|
80
|
+
{
|
|
81
|
+
operation: 'create',
|
|
82
|
+
title: 'Implement Feature',
|
|
83
|
+
content: 'Status: pending\n\nBuild feature X'
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}, sessionState, manager);
|
|
87
|
+
// Optimized response - success field removed
|
|
88
|
+
// Optimized response - document field removed
|
|
89
|
+
expect(result.operations_completed).toBe(1);
|
|
90
|
+
expect(result.results).toHaveLength(1);
|
|
91
|
+
// Optimized response - operation field removed
|
|
92
|
+
// Optimized response - status field removed
|
|
93
|
+
expect(result.results[0]?.task?.slug).toBe('implement-feature');
|
|
94
|
+
expect(result.results[0]?.task?.title).toBe('Implement Feature');
|
|
95
|
+
});
|
|
96
|
+
it('should return error when create operation missing required fields', async () => {
|
|
97
|
+
// Create a test document
|
|
98
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
99
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
100
|
+
await writeFile(docPath, docContent);
|
|
101
|
+
const result = await subagentTask({
|
|
102
|
+
document: '/test.md',
|
|
103
|
+
operations: [
|
|
104
|
+
{
|
|
105
|
+
operation: 'create',
|
|
106
|
+
content: 'Missing title'
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}, sessionState, manager);
|
|
110
|
+
expect(result.results[0]?.error).toContain('title and content');
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
describe('Multiple Create Operations', () => {
|
|
114
|
+
it('should create multiple tasks in one call', async () => {
|
|
115
|
+
// Create a test document
|
|
116
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
117
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
118
|
+
await writeFile(docPath, docContent);
|
|
119
|
+
const result = await subagentTask({
|
|
120
|
+
document: '/test.md',
|
|
121
|
+
operations: [
|
|
122
|
+
{ operation: 'create', title: 'Task 1', content: 'Status: pending\n\nContent 1' },
|
|
123
|
+
{ operation: 'create', title: 'Task 2', content: 'Status: pending\n\nContent 2' },
|
|
124
|
+
{ operation: 'create', title: 'Task 3', content: 'Status: pending\n\nContent 3' }
|
|
125
|
+
]
|
|
126
|
+
}, sessionState, manager);
|
|
127
|
+
expect(result.operations_completed).toBe(3);
|
|
128
|
+
expect(result.results).toHaveLength(3);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
describe('Single List Operation', () => {
|
|
132
|
+
it('should list tasks via operations array', async () => {
|
|
133
|
+
// Create a test document with a task
|
|
134
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
135
|
+
const docContent = '# Test\n\n## Tasks\n\n### Existing Task\n\nStatus: pending\n\nTask content';
|
|
136
|
+
await writeFile(docPath, docContent);
|
|
137
|
+
const result = await subagentTask({
|
|
138
|
+
document: '/test.md',
|
|
139
|
+
operations: [
|
|
140
|
+
{ operation: 'list' }
|
|
141
|
+
]
|
|
142
|
+
}, sessionState, manager);
|
|
143
|
+
expect(result.operations_completed).toBe(1);
|
|
144
|
+
expect(result.results[0]?.tasks).toBeDefined();
|
|
145
|
+
expect(result.results[0]?.count).toBeGreaterThan(0);
|
|
146
|
+
});
|
|
147
|
+
it('should list tasks with status filter', async () => {
|
|
148
|
+
// Create a test document with multiple tasks
|
|
149
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
150
|
+
const docContent = '# Test\n\n## Tasks\n\n### Task 1\n\nStatus: pending\n\nContent\n\n### Task 2\n\nStatus: completed\n\nContent';
|
|
151
|
+
await writeFile(docPath, docContent);
|
|
152
|
+
const result = await subagentTask({
|
|
153
|
+
document: '/test.md',
|
|
154
|
+
operations: [
|
|
155
|
+
{ operation: 'list', status: 'pending' }
|
|
156
|
+
]
|
|
157
|
+
}, sessionState, manager);
|
|
158
|
+
expect(result.results[0]?.tasks).toBeDefined();
|
|
159
|
+
const tasks = result.results[0]?.tasks;
|
|
160
|
+
expect(tasks).toBeDefined();
|
|
161
|
+
if (tasks != null) {
|
|
162
|
+
// Should only return pending tasks
|
|
163
|
+
expect(tasks.every(t => t.status === 'pending')).toBe(true);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
it('should list tasks with has_references flag and NO referenced_documents content', async () => {
|
|
167
|
+
// Create a test document with tasks, one with references
|
|
168
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
169
|
+
const docContent = `# Test
|
|
170
|
+
|
|
171
|
+
## Tasks
|
|
172
|
+
|
|
173
|
+
### Task 1 Without References
|
|
174
|
+
|
|
175
|
+
Status: pending
|
|
176
|
+
|
|
177
|
+
Just normal content.
|
|
178
|
+
|
|
179
|
+
### Task 2 With References
|
|
180
|
+
|
|
181
|
+
Status: pending
|
|
182
|
+
|
|
183
|
+
This task references @/other.md for context.
|
|
184
|
+
|
|
185
|
+
### Task 3 Also Without References
|
|
186
|
+
|
|
187
|
+
Status: completed
|
|
188
|
+
|
|
189
|
+
Normal content here too.`;
|
|
190
|
+
await writeFile(docPath, docContent);
|
|
191
|
+
// Create referenced document to avoid errors
|
|
192
|
+
const otherDocPath = resolve(docsDir, 'other.md');
|
|
193
|
+
const otherDocContent = '# Other Doc\n\nSome reference content.';
|
|
194
|
+
await writeFile(otherDocPath, otherDocContent);
|
|
195
|
+
const result = await subagentTask({
|
|
196
|
+
document: '/test.md',
|
|
197
|
+
operations: [
|
|
198
|
+
{ operation: 'list' }
|
|
199
|
+
]
|
|
200
|
+
}, sessionState, manager);
|
|
201
|
+
const tasks = result.results[0]?.tasks;
|
|
202
|
+
expect(tasks).toBeDefined();
|
|
203
|
+
expect(tasks?.length).toBe(3);
|
|
204
|
+
if (tasks != null) {
|
|
205
|
+
// Find tasks by title
|
|
206
|
+
const task1 = tasks.find(t => t.title === 'Task 1 Without References');
|
|
207
|
+
const task2 = tasks.find(t => t.title === 'Task 2 With References');
|
|
208
|
+
const task3 = tasks.find(t => t.title === 'Task 3 Also Without References');
|
|
209
|
+
// Task without references should NOT have has_references flag
|
|
210
|
+
expect(task1?.has_references).toBeUndefined();
|
|
211
|
+
// Task with references should have has_references: true
|
|
212
|
+
expect(task2?.has_references).toBe(true);
|
|
213
|
+
// CRITICAL: Task with references should NOT have referenced_documents in list operation
|
|
214
|
+
expect(task2?.referenced_documents).toBeUndefined();
|
|
215
|
+
// Task 3 also without references
|
|
216
|
+
expect(task3?.has_references).toBeUndefined();
|
|
217
|
+
// Verify response is compact (no massive referenced_documents content)
|
|
218
|
+
const responseSize = JSON.stringify(result).length;
|
|
219
|
+
// With 3 tasks and no referenced_documents content, should be < 5000 chars
|
|
220
|
+
expect(responseSize).toBeLessThan(5000);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
describe('Single Edit Operation', () => {
|
|
225
|
+
it('should edit a task via operations array', async () => {
|
|
226
|
+
// Create a test document with a task
|
|
227
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
228
|
+
const docContent = '# Test\n\n## Tasks\n\n### Existing Task\n\nStatus: pending\n\nOld content';
|
|
229
|
+
await writeFile(docPath, docContent);
|
|
230
|
+
const result = await subagentTask({
|
|
231
|
+
document: '/test.md',
|
|
232
|
+
operations: [
|
|
233
|
+
{
|
|
234
|
+
operation: 'edit',
|
|
235
|
+
task: 'existing-task',
|
|
236
|
+
content: 'Status: in_progress\n\nUpdated content'
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
}, sessionState, manager);
|
|
240
|
+
expect(result.operations_completed).toBe(1);
|
|
241
|
+
});
|
|
242
|
+
it('should return error when edit operation missing required fields', async () => {
|
|
243
|
+
// Create a test document
|
|
244
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
245
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
246
|
+
await writeFile(docPath, docContent);
|
|
247
|
+
const result = await subagentTask({
|
|
248
|
+
document: '/test.md',
|
|
249
|
+
operations: [
|
|
250
|
+
{
|
|
251
|
+
operation: 'edit',
|
|
252
|
+
content: 'New content'
|
|
253
|
+
}
|
|
254
|
+
]
|
|
255
|
+
}, sessionState, manager);
|
|
256
|
+
expect(result.results[0]?.error).toContain('task slug');
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
describe('Mixed Operations', () => {
|
|
260
|
+
it('should handle create and list in one call', async () => {
|
|
261
|
+
// Create a test document
|
|
262
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
263
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
264
|
+
await writeFile(docPath, docContent);
|
|
265
|
+
const result = await subagentTask({
|
|
266
|
+
document: '/test.md',
|
|
267
|
+
operations: [
|
|
268
|
+
{ operation: 'create', title: 'New Task', content: 'Status: pending\n\nContent' },
|
|
269
|
+
{ operation: 'list' }
|
|
270
|
+
]
|
|
271
|
+
}, sessionState, manager);
|
|
272
|
+
expect(result.operations_completed).toBe(2);
|
|
273
|
+
expect(result.results).toHaveLength(2);
|
|
274
|
+
});
|
|
275
|
+
it('should handle multiple operation types in sequence', async () => {
|
|
276
|
+
// Create a test document with a task
|
|
277
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
278
|
+
const docContent = '# Test\n\n## Tasks\n\n### Existing Task\n\nStatus: pending\n\nOld content';
|
|
279
|
+
await writeFile(docPath, docContent);
|
|
280
|
+
const result = await subagentTask({
|
|
281
|
+
document: '/test.md',
|
|
282
|
+
operations: [
|
|
283
|
+
{ operation: 'create', title: 'New Task 1', content: 'Status: pending\n\nContent 1' },
|
|
284
|
+
{ operation: 'create', title: 'New Task 2', content: 'Status: pending\n\nContent 2' },
|
|
285
|
+
{ operation: 'edit', task: 'existing-task', content: 'Status: completed\n\nUpdated' },
|
|
286
|
+
{ operation: 'list' }
|
|
287
|
+
]
|
|
288
|
+
}, sessionState, manager);
|
|
289
|
+
expect(result.operations_completed).toBe(4);
|
|
290
|
+
expect(result.results).toHaveLength(4);
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
describe('Error Handling', () => {
|
|
294
|
+
it('should handle partial failures gracefully', async () => {
|
|
295
|
+
// Create a test document
|
|
296
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
297
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
298
|
+
await writeFile(docPath, docContent);
|
|
299
|
+
const result = await subagentTask({
|
|
300
|
+
document: '/test.md',
|
|
301
|
+
operations: [
|
|
302
|
+
{ operation: 'create', title: 'Valid Task', content: 'Status: pending\n\nContent' },
|
|
303
|
+
{ operation: 'edit', task: 'nonexistent', content: 'Will fail' }
|
|
304
|
+
]
|
|
305
|
+
}, sessionState, manager);
|
|
306
|
+
expect(result.results[1]?.error).toBeDefined();
|
|
307
|
+
expect(result.operations_completed).toBe(1);
|
|
308
|
+
});
|
|
309
|
+
it('should continue processing after encountering an error', async () => {
|
|
310
|
+
// Create a test document
|
|
311
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
312
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
313
|
+
await writeFile(docPath, docContent);
|
|
314
|
+
const result = await subagentTask({
|
|
315
|
+
document: '/test.md',
|
|
316
|
+
operations: [
|
|
317
|
+
{ operation: 'create', title: 'Task 1', content: 'Status: pending\n\nContent' },
|
|
318
|
+
{ operation: 'create', title: 'Missing content' }, // Will fail
|
|
319
|
+
{ operation: 'create', title: 'Task 3', content: 'Status: pending\n\nContent' }
|
|
320
|
+
]
|
|
321
|
+
}, sessionState, manager);
|
|
322
|
+
expect(result.results[1]?.error).toBeDefined();
|
|
323
|
+
expect(result.results[2]?.task).toBeDefined();
|
|
324
|
+
expect(result.operations_completed).toBe(2);
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
describe('Response Structure', () => {
|
|
328
|
+
it('should return properly formatted bulk response', async () => {
|
|
329
|
+
// Create a test document
|
|
330
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
331
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
332
|
+
await writeFile(docPath, docContent);
|
|
333
|
+
const result = await subagentTask({
|
|
334
|
+
document: '/test.md',
|
|
335
|
+
operations: [
|
|
336
|
+
{ operation: 'create', title: 'Test Task', content: 'Status: pending\n\nContent' }
|
|
337
|
+
]
|
|
338
|
+
}, sessionState, manager);
|
|
339
|
+
// Verify response structure
|
|
340
|
+
expect(result).toHaveProperty('operations_completed');
|
|
341
|
+
expect(result).toHaveProperty('results');
|
|
342
|
+
expect(typeof result.operations_completed).toBe('number');
|
|
343
|
+
expect(Array.isArray(result.results)).toBe(true);
|
|
344
|
+
});
|
|
345
|
+
// Removed test: 'should use date-only timestamp format' - timestamp field no longer in response
|
|
346
|
+
});
|
|
347
|
+
describe('Batch Size Limits', () => {
|
|
348
|
+
it('should accept batch with 100 operations (at limit)', async () => {
|
|
349
|
+
// Create a test document
|
|
350
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
351
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
352
|
+
await writeFile(docPath, docContent);
|
|
353
|
+
// Generate exactly 100 operations
|
|
354
|
+
const operations = Array.from({ length: 100 }, (_, i) => ({
|
|
355
|
+
operation: 'create',
|
|
356
|
+
title: `Task ${i + 1}`,
|
|
357
|
+
content: `Status: pending\n\nContent ${i + 1}`
|
|
358
|
+
}));
|
|
359
|
+
const result = await subagentTask({
|
|
360
|
+
document: '/test.md',
|
|
361
|
+
operations
|
|
362
|
+
}, sessionState, manager);
|
|
363
|
+
expect(result.results).toHaveLength(100);
|
|
364
|
+
});
|
|
365
|
+
it('should reject batch with 101 operations (over limit)', async () => {
|
|
366
|
+
// Create a test document
|
|
367
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
368
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
369
|
+
await writeFile(docPath, docContent);
|
|
370
|
+
// Generate 101 operations (exceeds MAX_BATCH_SIZE)
|
|
371
|
+
const operations = Array.from({ length: 101 }, (_, i) => ({
|
|
372
|
+
operation: 'create',
|
|
373
|
+
title: `Task ${i + 1}`,
|
|
374
|
+
content: `Status: pending\n\nContent ${i + 1}`
|
|
375
|
+
}));
|
|
376
|
+
await expect(subagentTask({
|
|
377
|
+
document: '/test.md',
|
|
378
|
+
operations
|
|
379
|
+
}, sessionState, manager))
|
|
380
|
+
.rejects.toThrow('Batch size 101 exceeds maximum of 100');
|
|
381
|
+
});
|
|
382
|
+
it('should include helpful context in batch size error', async () => {
|
|
383
|
+
// Create a test document
|
|
384
|
+
const docPath = resolve(docsDir, 'test.md');
|
|
385
|
+
const docContent = '# Test\n\n## Tasks\n\n';
|
|
386
|
+
await writeFile(docPath, docContent);
|
|
387
|
+
// Generate 101 operations
|
|
388
|
+
const operations = Array.from({ length: 101 }, (_, i) => ({
|
|
389
|
+
operation: 'create',
|
|
390
|
+
title: `Task ${i + 1}`,
|
|
391
|
+
content: `Status: pending\n\nContent ${i + 1}`
|
|
392
|
+
}));
|
|
393
|
+
try {
|
|
394
|
+
await subagentTask({
|
|
395
|
+
document: '/test.md',
|
|
396
|
+
operations
|
|
397
|
+
}, sessionState, manager);
|
|
398
|
+
// Should not reach here
|
|
399
|
+
expect(true).toBe(false);
|
|
400
|
+
}
|
|
401
|
+
catch (error) {
|
|
402
|
+
// Verify error message includes batch size info
|
|
403
|
+
expect(error).toBeInstanceOf(Error);
|
|
404
|
+
if (error instanceof Error) {
|
|
405
|
+
expect(error.message).toContain('101');
|
|
406
|
+
expect(error.message).toContain('100');
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
});
|
|
411
|
+
describe('Auto-create Tasks Section (TDD)', () => {
|
|
412
|
+
it('should auto-create Tasks section if missing when creating first task', async () => {
|
|
413
|
+
// Create document WITHOUT Tasks section
|
|
414
|
+
const docPath = resolve(docsDir, 'test-autocreate.md');
|
|
415
|
+
const docContent = '# Test Document\n\nSome content here.\n\n';
|
|
416
|
+
await writeFile(docPath, docContent);
|
|
417
|
+
// Create a task - should auto-create Tasks section
|
|
418
|
+
const result = await subagentTask({
|
|
419
|
+
document: '/test-autocreate.md',
|
|
420
|
+
operations: [
|
|
421
|
+
{
|
|
422
|
+
operation: 'create',
|
|
423
|
+
title: 'First Task',
|
|
424
|
+
content: 'Status: pending\n\nThis is the first task'
|
|
425
|
+
}
|
|
426
|
+
]
|
|
427
|
+
}, sessionState, manager);
|
|
428
|
+
// Verify task was created successfully
|
|
429
|
+
expect(result.operations_completed).toBe(1);
|
|
430
|
+
expect(result.results[0]?.task?.slug).toBe('first-task');
|
|
431
|
+
// Verify Tasks section was created
|
|
432
|
+
const document = await manager.getDocument('/test-autocreate.md');
|
|
433
|
+
expect(document).not.toBeNull();
|
|
434
|
+
if (document != null) {
|
|
435
|
+
const tasksSection = document.headings.find(h => h.slug === 'tasks' || h.title.toLowerCase() === 'tasks');
|
|
436
|
+
expect(tasksSection).toBeDefined();
|
|
437
|
+
expect(tasksSection?.title).toBe('Tasks');
|
|
438
|
+
// Verify task is under Tasks section
|
|
439
|
+
const taskHeading = document.headings.find(h => h.slug === 'first-task');
|
|
440
|
+
expect(taskHeading).toBeDefined();
|
|
441
|
+
expect(taskHeading?.title).toBe('First Task');
|
|
442
|
+
}
|
|
443
|
+
});
|
|
444
|
+
it('should not duplicate Tasks section if already exists', async () => {
|
|
445
|
+
// Create document WITH Tasks section
|
|
446
|
+
const docPath = resolve(docsDir, 'test-existing.md');
|
|
447
|
+
const docContent = '# Test Document\n\n## Tasks\n\n';
|
|
448
|
+
await writeFile(docPath, docContent);
|
|
449
|
+
// Create a task
|
|
450
|
+
const result = await subagentTask({
|
|
451
|
+
document: '/test-existing.md',
|
|
452
|
+
operations: [
|
|
453
|
+
{
|
|
454
|
+
operation: 'create',
|
|
455
|
+
title: 'New Task',
|
|
456
|
+
content: 'Status: pending\n\nTask content'
|
|
457
|
+
}
|
|
458
|
+
]
|
|
459
|
+
}, sessionState, manager);
|
|
460
|
+
// Verify task was created successfully
|
|
461
|
+
expect(result.operations_completed).toBe(1);
|
|
462
|
+
// Verify only ONE Tasks section exists
|
|
463
|
+
const document = await manager.getDocument('/test-existing.md');
|
|
464
|
+
expect(document).not.toBeNull();
|
|
465
|
+
if (document != null) {
|
|
466
|
+
const tasksSections = document.headings.filter(h => h.slug === 'tasks' || h.title.toLowerCase() === 'tasks');
|
|
467
|
+
expect(tasksSections).toHaveLength(1);
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
it('should create Tasks section at correct depth (H2)', async () => {
|
|
471
|
+
// Create document with H1 title only
|
|
472
|
+
const docPath = resolve(docsDir, 'test-depth.md');
|
|
473
|
+
const docContent = '# Document Title\n\nSome overview content.\n\n';
|
|
474
|
+
await writeFile(docPath, docContent);
|
|
475
|
+
// Create a task (auto-creates Tasks)
|
|
476
|
+
await subagentTask({
|
|
477
|
+
document: '/test-depth.md',
|
|
478
|
+
operations: [
|
|
479
|
+
{
|
|
480
|
+
operation: 'create',
|
|
481
|
+
title: 'Test Task',
|
|
482
|
+
content: 'Status: pending\n\nTask content'
|
|
483
|
+
}
|
|
484
|
+
]
|
|
485
|
+
}, sessionState, manager);
|
|
486
|
+
// Verify Tasks section is H2 (depth 2)
|
|
487
|
+
const document = await manager.getDocument('/test-depth.md');
|
|
488
|
+
expect(document).not.toBeNull();
|
|
489
|
+
if (document != null) {
|
|
490
|
+
const tasksSection = document.headings.find(h => h.slug === 'tasks' || h.title.toLowerCase() === 'tasks');
|
|
491
|
+
expect(tasksSection).toBeDefined();
|
|
492
|
+
expect(tasksSection?.depth).toBe(2);
|
|
493
|
+
}
|
|
494
|
+
});
|
|
495
|
+
it('should handle case-insensitive Tasks section detection', async () => {
|
|
496
|
+
// Create document with lowercase "tasks" section
|
|
497
|
+
const docPath = resolve(docsDir, 'test-case.md');
|
|
498
|
+
const docContent = '# Test Document\n\n## tasks\n\n';
|
|
499
|
+
await writeFile(docPath, docContent);
|
|
500
|
+
// Create a task
|
|
501
|
+
const result = await subagentTask({
|
|
502
|
+
document: '/test-case.md',
|
|
503
|
+
operations: [
|
|
504
|
+
{
|
|
505
|
+
operation: 'create',
|
|
506
|
+
title: 'Task One',
|
|
507
|
+
content: 'Status: pending\n\nContent'
|
|
508
|
+
}
|
|
509
|
+
]
|
|
510
|
+
}, sessionState, manager);
|
|
511
|
+
// Should not create duplicate, should use existing
|
|
512
|
+
expect(result.operations_completed).toBe(1);
|
|
513
|
+
// Verify only ONE tasks section exists
|
|
514
|
+
const document = await manager.getDocument('/test-case.md');
|
|
515
|
+
expect(document).not.toBeNull();
|
|
516
|
+
if (document != null) {
|
|
517
|
+
const tasksSections = document.headings.filter(h => h.slug === 'tasks' || h.title.toLowerCase() === 'tasks');
|
|
518
|
+
expect(tasksSections).toHaveLength(1);
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
it('should throw error if document has no title heading (H1)', async () => {
|
|
522
|
+
// Create document WITHOUT H1 title
|
|
523
|
+
const docPath = resolve(docsDir, 'test-notitle.md');
|
|
524
|
+
const docContent = '## Section One\n\nSome content.\n\n';
|
|
525
|
+
await writeFile(docPath, docContent);
|
|
526
|
+
// Try to create a task - should fail with helpful error
|
|
527
|
+
const result = await subagentTask({
|
|
528
|
+
document: '/test-notitle.md',
|
|
529
|
+
operations: [
|
|
530
|
+
{
|
|
531
|
+
operation: 'create',
|
|
532
|
+
title: 'Test Task',
|
|
533
|
+
content: 'Status: pending\n\nContent'
|
|
534
|
+
}
|
|
535
|
+
]
|
|
536
|
+
}, sessionState, manager);
|
|
537
|
+
// Should have error result
|
|
538
|
+
expect(result.results[0]?.error).toContain('title heading');
|
|
539
|
+
});
|
|
540
|
+
it('should create Tasks section with proper content on auto-create', async () => {
|
|
541
|
+
// Create document without Tasks section
|
|
542
|
+
const docPath = resolve(docsDir, 'test-content.md');
|
|
543
|
+
const docContent = '# My Document\n\nOverview content.\n\n';
|
|
544
|
+
await writeFile(docPath, docContent);
|
|
545
|
+
// Create a task (auto-creates Tasks)
|
|
546
|
+
await subagentTask({
|
|
547
|
+
document: '/test-content.md',
|
|
548
|
+
operations: [
|
|
549
|
+
{
|
|
550
|
+
operation: 'create',
|
|
551
|
+
title: 'First Task',
|
|
552
|
+
content: 'Status: pending\n\nTask details'
|
|
553
|
+
}
|
|
554
|
+
]
|
|
555
|
+
}, sessionState, manager);
|
|
556
|
+
// Verify Tasks section content
|
|
557
|
+
const sectionContent = await manager.getSectionContent('/test-content.md', 'tasks');
|
|
558
|
+
expect(sectionContent).toBeDefined();
|
|
559
|
+
expect(sectionContent).toContain('Task list for this document');
|
|
560
|
+
});
|
|
561
|
+
it('should handle multiple task creates with auto-created Tasks section', async () => {
|
|
562
|
+
// Create document without Tasks section
|
|
563
|
+
const docPath = resolve(docsDir, 'test-multiple.md');
|
|
564
|
+
const docContent = '# Test Doc\n\nContent.\n\n';
|
|
565
|
+
await writeFile(docPath, docContent);
|
|
566
|
+
// Create multiple tasks in one call
|
|
567
|
+
const result = await subagentTask({
|
|
568
|
+
document: '/test-multiple.md',
|
|
569
|
+
operations: [
|
|
570
|
+
{ operation: 'create', title: 'Task 1', content: 'Status: pending\n\nContent 1' },
|
|
571
|
+
{ operation: 'create', title: 'Task 2', content: 'Status: pending\n\nContent 2' },
|
|
572
|
+
{ operation: 'create', title: 'Task 3', content: 'Status: pending\n\nContent 3' }
|
|
573
|
+
]
|
|
574
|
+
}, sessionState, manager);
|
|
575
|
+
// All should succeed
|
|
576
|
+
expect(result.operations_completed).toBe(3);
|
|
577
|
+
expect(result.results.every(r => r.task != null)).toBe(true);
|
|
578
|
+
// Verify Tasks section exists and contains all tasks
|
|
579
|
+
const document = await manager.getDocument('/test-multiple.md');
|
|
580
|
+
expect(document).not.toBeNull();
|
|
581
|
+
if (document != null) {
|
|
582
|
+
const tasksSection = document.headings.find(h => h.slug === 'tasks');
|
|
583
|
+
expect(tasksSection).toBeDefined();
|
|
584
|
+
const task1 = document.headings.find(h => h.slug === 'task-1');
|
|
585
|
+
const task2 = document.headings.find(h => h.slug === 'task-2');
|
|
586
|
+
const task3 = document.headings.find(h => h.slug === 'task-3');
|
|
587
|
+
expect(task1).toBeDefined();
|
|
588
|
+
expect(task2).toBeDefined();
|
|
589
|
+
expect(task3).toBeDefined();
|
|
590
|
+
}
|
|
591
|
+
});
|
|
592
|
+
});
|
|
593
|
+
describe('next_step conditional display', () => {
|
|
594
|
+
it('should show next_step guidance on first task creation', async () => {
|
|
595
|
+
// Arrange - prepare new document without Tasks section
|
|
596
|
+
const docPath = resolve(docsDir, 'new-project.md');
|
|
597
|
+
const docContent = '# New Project\n\nProject overview content.\n\n';
|
|
598
|
+
await writeFile(docPath, docContent);
|
|
599
|
+
// Act - create first task in new document
|
|
600
|
+
const result = await subagentTask({
|
|
601
|
+
document: '/new-project.md',
|
|
602
|
+
operations: [
|
|
603
|
+
{
|
|
604
|
+
operation: 'create',
|
|
605
|
+
title: 'Initialize Repository',
|
|
606
|
+
content: 'Status: pending\n\nWorkflow: develop-tdd\n\nSet up initial repository structure'
|
|
607
|
+
}
|
|
608
|
+
]
|
|
609
|
+
}, sessionState, manager);
|
|
610
|
+
// Assert - verify next_step is present and contains expected guidance
|
|
611
|
+
expect(result.operations_completed).toBe(1);
|
|
612
|
+
expect(result.results).toHaveLength(1);
|
|
613
|
+
expect(result.results[0]?.next_step).toBeDefined();
|
|
614
|
+
expect(result.results[0]?.next_step).toContain('Give subagent this exact instruction');
|
|
615
|
+
expect(result.results[0]?.next_step).toContain('do not run start_subagent_task yourself');
|
|
616
|
+
expect(result.results[0]?.next_step).toContain('start_subagent_task');
|
|
617
|
+
expect(result.results[0]?.next_step).toContain('/new-project.md#initialize-repository');
|
|
618
|
+
});
|
|
619
|
+
it('should NOT show next_step on second task creation', async () => {
|
|
620
|
+
// Arrange - create document with first task (setup)
|
|
621
|
+
const docPath = resolve(docsDir, 'existing-project.md');
|
|
622
|
+
const docContent = '# Existing Project\n\n## Tasks\n\n### First Task\n\nStatus: pending\n\nExisting task content';
|
|
623
|
+
await writeFile(docPath, docContent);
|
|
624
|
+
// Act - create second task
|
|
625
|
+
const result = await subagentTask({
|
|
626
|
+
document: '/existing-project.md',
|
|
627
|
+
operations: [
|
|
628
|
+
{
|
|
629
|
+
operation: 'create',
|
|
630
|
+
title: 'Second Task',
|
|
631
|
+
content: 'Status: pending\n\nImplement second feature'
|
|
632
|
+
}
|
|
633
|
+
]
|
|
634
|
+
}, sessionState, manager);
|
|
635
|
+
// Assert - verify next_step field is absent
|
|
636
|
+
expect(result.operations_completed).toBe(1);
|
|
637
|
+
expect(result.results).toHaveLength(1);
|
|
638
|
+
expect(result.results[0]?.next_step).toBeUndefined();
|
|
639
|
+
});
|
|
640
|
+
it('should NOT show next_step on third or subsequent task creation', async () => {
|
|
641
|
+
// Arrange - create document with multiple existing tasks
|
|
642
|
+
const docPath = resolve(docsDir, 'multi-task-project.md');
|
|
643
|
+
const docContent = `# Multi Task Project
|
|
644
|
+
|
|
645
|
+
## Tasks
|
|
646
|
+
|
|
647
|
+
### Task One
|
|
648
|
+
|
|
649
|
+
Status: pending
|
|
650
|
+
|
|
651
|
+
First task content
|
|
652
|
+
|
|
653
|
+
### Task Two
|
|
654
|
+
|
|
655
|
+
Status: in_progress
|
|
656
|
+
|
|
657
|
+
Second task content`;
|
|
658
|
+
await writeFile(docPath, docContent);
|
|
659
|
+
// Act - create third task
|
|
660
|
+
const result = await subagentTask({
|
|
661
|
+
document: '/multi-task-project.md',
|
|
662
|
+
operations: [
|
|
663
|
+
{
|
|
664
|
+
operation: 'create',
|
|
665
|
+
title: 'Task Three',
|
|
666
|
+
content: 'Status: pending\n\nThird task content'
|
|
667
|
+
}
|
|
668
|
+
]
|
|
669
|
+
}, sessionState, manager);
|
|
670
|
+
// Assert - verify next_step is still absent
|
|
671
|
+
expect(result.operations_completed).toBe(1);
|
|
672
|
+
expect(result.results[0]?.next_step).toBeUndefined();
|
|
673
|
+
});
|
|
674
|
+
it('should only show next_step on first task in multi-task creation', async () => {
|
|
675
|
+
// Arrange - prepare document without Tasks section
|
|
676
|
+
const docPath = resolve(docsDir, 'batch-project.md');
|
|
677
|
+
const docContent = '# Batch Project\n\nOverview content.\n\n';
|
|
678
|
+
await writeFile(docPath, docContent);
|
|
679
|
+
// Act - create multiple tasks at once in new document
|
|
680
|
+
const result = await subagentTask({
|
|
681
|
+
document: '/batch-project.md',
|
|
682
|
+
operations: [
|
|
683
|
+
{ operation: 'create', title: 'Setup Environment', content: 'Status: pending\n\nWorkflow: develop-tdd\n\nSetup dev environment' },
|
|
684
|
+
{ operation: 'create', title: 'Write Tests', content: 'Status: pending\n\nWrite initial test suite' },
|
|
685
|
+
{ operation: 'create', title: 'Implement Features', content: 'Status: pending\n\nImplement core features' }
|
|
686
|
+
]
|
|
687
|
+
}, sessionState, manager);
|
|
688
|
+
// Assert - only first result should have next_step
|
|
689
|
+
expect(result.operations_completed).toBe(3);
|
|
690
|
+
expect(result.results).toHaveLength(3);
|
|
691
|
+
expect(result.results[0]?.next_step).toBeDefined();
|
|
692
|
+
expect(result.results[0]?.next_step).toContain('Give subagent this exact instruction');
|
|
693
|
+
expect(result.results[0]?.next_step).toContain('/batch-project.md#setup-environment');
|
|
694
|
+
expect(result.results[1]?.next_step).toBeUndefined();
|
|
695
|
+
expect(result.results[2]?.next_step).toBeUndefined();
|
|
696
|
+
});
|
|
697
|
+
it('should show correct full path with slug in next_step', async () => {
|
|
698
|
+
// Arrange - create new document
|
|
699
|
+
const docPath = resolve(docsDir, 'path-test.md');
|
|
700
|
+
const docContent = '# Path Test\n\nOverview.\n\n';
|
|
701
|
+
await writeFile(docPath, docContent);
|
|
702
|
+
// Act - create task with specific title that creates predictable slug
|
|
703
|
+
const result = await subagentTask({
|
|
704
|
+
document: '/path-test.md',
|
|
705
|
+
operations: [
|
|
706
|
+
{
|
|
707
|
+
operation: 'create',
|
|
708
|
+
title: 'Test Task Name',
|
|
709
|
+
content: 'Status: pending\n\nTask content'
|
|
710
|
+
}
|
|
711
|
+
]
|
|
712
|
+
}, sessionState, manager);
|
|
713
|
+
// Assert - verify the full path in next_step includes correct document and slug
|
|
714
|
+
expect(result.results[0]?.next_step).toBeDefined();
|
|
715
|
+
expect(result.results[0]?.next_step).toContain('/path-test.md#test-task-name');
|
|
716
|
+
expect(result.results[0]?.task?.slug).toBe('test-task-name');
|
|
717
|
+
});
|
|
718
|
+
});
|
|
719
|
+
});
|
|
720
|
+
//# sourceMappingURL=subagent-task.test.js.map
|