@organon-methodology/tools 0.4.0 → 0.5.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/README.md +7 -3
- package/dist/cli/commands/export.d.ts +12 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +74 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/query.d.ts +1 -0
- package/dist/cli/commands/query.d.ts.map +1 -1
- package/dist/cli/commands/query.js +8 -1
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +2 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/discover.d.ts +12 -0
- package/dist/core/discover.d.ts.map +1 -0
- package/dist/core/discover.js +30 -0
- package/dist/core/discover.js.map +1 -0
- package/dist/core/discover.test.d.ts +7 -0
- package/dist/core/discover.test.d.ts.map +1 -0
- package/dist/core/discover.test.js +135 -0
- package/dist/core/discover.test.js.map +1 -0
- package/dist/core/export.d.ts +17 -0
- package/dist/core/export.d.ts.map +1 -0
- package/dist/core/export.js +167 -0
- package/dist/core/export.js.map +1 -0
- package/dist/core/export.test.d.ts +7 -0
- package/dist/core/export.test.d.ts.map +1 -0
- package/dist/core/export.test.js +265 -0
- package/dist/core/export.test.js.map +1 -0
- package/dist/core/find.d.ts.map +1 -1
- package/dist/core/find.js +1 -16
- package/dist/core/find.js.map +1 -1
- package/dist/core/find.test.js +1 -1
- package/dist/core/find.test.js.map +1 -1
- package/dist/core/generate-tests.d.ts.map +1 -1
- package/dist/core/generate-tests.js +11 -22
- package/dist/core/generate-tests.js.map +1 -1
- package/dist/core/health.d.ts.map +1 -1
- package/dist/core/health.js +1 -19
- package/dist/core/health.js.map +1 -1
- package/dist/core/invariant-coverage.d.ts.map +1 -1
- package/dist/core/invariant-coverage.js +12 -23
- package/dist/core/invariant-coverage.js.map +1 -1
- package/dist/core/query.d.ts +11 -1
- package/dist/core/query.d.ts.map +1 -1
- package/dist/core/query.js +21 -16
- package/dist/core/query.js.map +1 -1
- package/dist/core/query.test.js +71 -1
- package/dist/core/query.test.js.map +1 -1
- package/dist/core/suggest-tools.d.ts.map +1 -1
- package/dist/core/suggest-tools.js +1 -19
- package/dist/core/suggest-tools.js.map +1 -1
- package/dist/core/types.d.ts +35 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/validate-frontmatter.d.ts.map +1 -1
- package/dist/core/validate-frontmatter.js +9 -20
- package/dist/core/validate-frontmatter.js.map +1 -1
- package/dist/core/verify-placeholders.d.ts.map +1 -1
- package/dist/core/verify-placeholders.js +1 -19
- package/dist/core/verify-placeholders.js.map +1 -1
- package/dist/core/verify-references.d.ts.map +1 -1
- package/dist/core/verify-references.js +1 -15
- package/dist/core/verify-references.js.map +1 -1
- package/dist/core/verify-references.test.js +3 -3
- package/dist/core/verify-references.test.js.map +1 -1
- package/dist/core/verify-triplets.d.ts.map +1 -1
- package/dist/core/verify-triplets.js +1 -16
- package/dist/core/verify-triplets.js.map +1 -1
- package/dist/core/verify-version-alignment.d.ts +0 -1
- package/dist/core/verify-version-alignment.d.ts.map +1 -1
- package/dist/core/verify-version-alignment.js +0 -17
- package/dist/core/verify-version-alignment.js.map +1 -1
- package/dist/core/verify-version-alignment.test.js +2 -12
- package/dist/core/verify-version-alignment.test.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +17 -2
- package/dist/mcp/tools.js.map +1 -1
- package/dist/templates/config.d.ts +2 -2
- package/dist/templates/config.d.ts.map +1 -1
- package/dist/templates/config.js +5 -3
- package/dist/templates/config.js.map +1 -1
- package/dist/templates/skills/domain-feature-design.js +1 -1
- package/dist/templates/skills/organon-file-creation.js +1 -1
- package/dist/templates/skills/quality-review.js +1 -1
- package/dist/templates/skills/session-compounding.js +1 -1
- package/dist/templates/skills/verify-and-health.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -42,10 +42,10 @@ packages/tools/src/
|
|
|
42
42
|
│ ├── suggest-tools.ts ← Automation tier suggestions
|
|
43
43
|
│ └── verify.ts ← Gate registry orchestrator
|
|
44
44
|
├── cli/ ← Thin yargs adapter
|
|
45
|
-
│ └── commands/ ← validate, generate, query, health, find, verify, mcp
|
|
45
|
+
│ └── commands/ ← validate, generate, query, health, find, verify, export, mcp
|
|
46
46
|
├── mcp/ ← Thin MCP adapter
|
|
47
47
|
│ ├── server.ts ← stdio transport
|
|
48
|
-
│ ├── tools.ts ←
|
|
48
|
+
│ ├── tools.ts ← 9 MCP tools
|
|
49
49
|
│ ├── resources.ts ← 4 MCP resources
|
|
50
50
|
│ └── prompts.ts ← 4 MCP prompts
|
|
51
51
|
└── index.ts ← Public API
|
|
@@ -81,6 +81,10 @@ organon find --name=frontmatter
|
|
|
81
81
|
organon verify
|
|
82
82
|
organon verify --gate frontmatter triplets
|
|
83
83
|
|
|
84
|
+
# Export knowledge graph as JSON
|
|
85
|
+
organon export
|
|
86
|
+
organon export --no-pretty
|
|
87
|
+
|
|
84
88
|
# Start MCP server
|
|
85
89
|
organon mcp
|
|
86
90
|
```
|
|
@@ -89,7 +93,7 @@ organon mcp
|
|
|
89
93
|
|
|
90
94
|
Start with `organon mcp`. Exposes:
|
|
91
95
|
|
|
92
|
-
**
|
|
96
|
+
**9 Tools:** `organon_validate_frontmatter`, `organon_generate_frontmatter`, `organon_query`, `organon_health`, `organon_find`, `organon_verify_triplets`, `organon_suggest_tools`, `organon_export`, `organon_verify`
|
|
93
97
|
|
|
94
98
|
**4 Resources:** `organon://index`, `organon://file/{path}`, `organon://scope/{scope}`, `organon://health`
|
|
95
99
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* organon export — Export knowledge graph as structured JSON.
|
|
3
|
+
*/
|
|
4
|
+
import type { CommandModule } from 'yargs';
|
|
5
|
+
interface ExportArgs {
|
|
6
|
+
'project-root': string;
|
|
7
|
+
config?: string;
|
|
8
|
+
pretty: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const exportCommand: CommandModule<{}, ExportArgs>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,UAAU,UAAU;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,UAAU,CAwEvD,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* organon export — Export knowledge graph as structured JSON.
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { resolveConfig, resolveProjectRoot } from '../../core/config.js';
|
|
6
|
+
import { exportKnowledgeGraph } from '../../core/export.js';
|
|
7
|
+
import { NodeFileSystem } from '../../core/node-fs.js';
|
|
8
|
+
export const exportCommand = {
|
|
9
|
+
command: 'export',
|
|
10
|
+
describe: 'Export organon knowledge graph as structured JSON',
|
|
11
|
+
builder: (yargs) => {
|
|
12
|
+
return yargs
|
|
13
|
+
.option('project-root', {
|
|
14
|
+
describe: 'Project root directory',
|
|
15
|
+
type: 'string',
|
|
16
|
+
default: process.cwd(),
|
|
17
|
+
})
|
|
18
|
+
.option('config', {
|
|
19
|
+
describe: 'Path to organon.config.json',
|
|
20
|
+
type: 'string',
|
|
21
|
+
})
|
|
22
|
+
.option('pretty', {
|
|
23
|
+
describe: 'Pretty-print JSON output',
|
|
24
|
+
type: 'boolean',
|
|
25
|
+
default: true,
|
|
26
|
+
})
|
|
27
|
+
.example('$0 export', 'Export knowledge graph as JSON')
|
|
28
|
+
.example('$0 export --no-pretty', 'Export compact JSON (for piping)');
|
|
29
|
+
},
|
|
30
|
+
handler: async (args) => {
|
|
31
|
+
const fs = new NodeFileSystem();
|
|
32
|
+
const projectRoot = await resolveProjectRoot(args['project-root'], fs);
|
|
33
|
+
const config = await resolveConfig(projectRoot, fs, args.config);
|
|
34
|
+
// Read version: try package.json first, then methodology_version from config
|
|
35
|
+
let version = '0.0.0';
|
|
36
|
+
try {
|
|
37
|
+
const pkgContent = await fs.readFile(`${projectRoot}/package.json`);
|
|
38
|
+
const pkg = JSON.parse(pkgContent);
|
|
39
|
+
if (pkg.version) {
|
|
40
|
+
version = pkg.version;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Fall through to config-based version
|
|
45
|
+
}
|
|
46
|
+
if (version === '0.0.0') {
|
|
47
|
+
try {
|
|
48
|
+
const cfgContent = await fs.readFile(`${projectRoot}/organon.config.json`);
|
|
49
|
+
const cfg = JSON.parse(cfgContent);
|
|
50
|
+
if (cfg.methodology_version) {
|
|
51
|
+
version = cfg.methodology_version;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Use default version
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const result = await exportKnowledgeGraph({
|
|
59
|
+
projectRoot,
|
|
60
|
+
config,
|
|
61
|
+
fs,
|
|
62
|
+
version,
|
|
63
|
+
});
|
|
64
|
+
if (args.pretty) {
|
|
65
|
+
console.log(JSON.stringify(result, null, 2));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
console.log(JSON.stringify(result));
|
|
69
|
+
}
|
|
70
|
+
// Summary to stderr so it doesn't pollute JSON output
|
|
71
|
+
console.error(chalk.dim(`Exported: ${result.entities.length} entities, ${result.assertions.length} assertions, ${result.relationships.length} relationships, ${result.rules.length} rules`));
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,UAAU,SAAS;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,UAAU,SAAS;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,CA4GrD,CAAC"}
|
|
@@ -49,6 +49,11 @@ export const queryCommand = {
|
|
|
49
49
|
.option('related', {
|
|
50
50
|
describe: 'Filter by related domain or feature',
|
|
51
51
|
type: 'string',
|
|
52
|
+
})
|
|
53
|
+
.option('category', {
|
|
54
|
+
describe: 'Filter by epistemic category',
|
|
55
|
+
type: 'string',
|
|
56
|
+
choices: ['constraint', 'assertion', 'rule'],
|
|
52
57
|
})
|
|
53
58
|
.option('verbose', {
|
|
54
59
|
describe: 'Show full file content',
|
|
@@ -57,7 +62,8 @@ export const queryCommand = {
|
|
|
57
62
|
})
|
|
58
63
|
.example('$0 query --scope=meta', 'List all meta-scope organons')
|
|
59
64
|
.example('$0 query --budget=20000', 'Plan context loading within 20K tokens')
|
|
60
|
-
.example('$0 query --task=genesis_tool_impl', 'Find organons for a specific task')
|
|
65
|
+
.example('$0 query --task=genesis_tool_impl', 'Find organons for a specific task')
|
|
66
|
+
.example('$0 query --category=constraint', 'List all constraint (ETHOS) files');
|
|
61
67
|
},
|
|
62
68
|
handler: async (args) => {
|
|
63
69
|
const fs = new NodeFileSystem();
|
|
@@ -75,6 +81,7 @@ export const queryCommand = {
|
|
|
75
81
|
namePattern: args.name,
|
|
76
82
|
relatedDomain: args.related,
|
|
77
83
|
relatedFeature: args.related,
|
|
84
|
+
category: args.category,
|
|
78
85
|
verbose: args.verbose,
|
|
79
86
|
});
|
|
80
87
|
console.log(chalk.blue('Organon Query'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* coverage — Invariant coverage analysis
|
|
15
15
|
* generate-tests — Generate test scaffolds for uncovered invariants
|
|
16
16
|
* suggest — Suggest automation tier upgrades
|
|
17
|
+
* export — Export knowledge graph as JSON
|
|
17
18
|
* release — Version bump and release
|
|
18
19
|
* mcp — Start MCP server
|
|
19
20
|
*/
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;GAkBG"}
|
package/dist/cli/index.js
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* coverage — Invariant coverage analysis
|
|
15
15
|
* generate-tests — Generate test scaffolds for uncovered invariants
|
|
16
16
|
* suggest — Suggest automation tier upgrades
|
|
17
|
+
* export — Export knowledge graph as JSON
|
|
17
18
|
* release — Version bump and release
|
|
18
19
|
* mcp — Start MCP server
|
|
19
20
|
*/
|
|
@@ -31,6 +32,7 @@ import { verifyCommand } from './commands/verify.js';
|
|
|
31
32
|
import { coverageCommand } from './commands/coverage.js';
|
|
32
33
|
import { generateTestsCommand } from './commands/generate-tests.js';
|
|
33
34
|
import { suggestCommand } from './commands/suggest.js';
|
|
35
|
+
import { exportCommand } from './commands/export.js';
|
|
34
36
|
import { releaseCommand } from './commands/release.js';
|
|
35
37
|
import { mcpCommand } from './commands/mcp.js';
|
|
36
38
|
async function main() {
|
|
@@ -48,6 +50,7 @@ async function main() {
|
|
|
48
50
|
.command(coverageCommand)
|
|
49
51
|
.command(generateTestsCommand)
|
|
50
52
|
.command(suggestCommand)
|
|
53
|
+
.command(exportCommand)
|
|
51
54
|
.command(releaseCommand)
|
|
52
55
|
.command(mcpCommand)
|
|
53
56
|
.demandCommand(1, chalk.red('Please specify a command'))
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/B,UAAU,CAAC,SAAS,CAAC;SACrB,KAAK,CAAC,wBAAwB,CAAC;SAC/B,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,YAAY,CAAC;SACrB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,oBAAoB,CAAC;SAC7B,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,UAAU,CAAC;SACnB,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;SACvD,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,OAAO,EAAE;SACT,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,MAAM,EAAE;SACR,KAAK,EAAE,CAAC;AACb,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAU5D,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;kBASX,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAU5D,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;kBASX,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiC1D;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,UAAU,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAyBxB;AAqCD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAKtD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,UAAU,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BxB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,EAAE,EAAE,UAAU,GACb,OAAO,CAAC,MAAM,CAAC,CASjB"}
|
package/dist/core/config.js
CHANGED
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC7C,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,qBAAqB,GAAG;IAC5B,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,kBAAkB;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared organon file discovery.
|
|
3
|
+
*
|
|
4
|
+
* Resolves organonPaths × organonGlobs into a deduplicated, sorted list of
|
|
5
|
+
* organon file paths. When the organon path is "." (project root),
|
|
6
|
+
* recursive glob prefixes are stripped so that only root-level files match — this
|
|
7
|
+
* prevents false-positive frontmatter checks on non-organon markdown files
|
|
8
|
+
* buried deeper in the project tree.
|
|
9
|
+
*/
|
|
10
|
+
import type { FileSystem, OrganonConfig } from './types.js';
|
|
11
|
+
export declare function discoverOrganonFiles(projectRoot: string, config: OrganonConfig, fs: FileSystem): Promise<string[]>;
|
|
12
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/core/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,UAAU,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBnB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared organon file discovery.
|
|
3
|
+
*
|
|
4
|
+
* Resolves organonPaths × organonGlobs into a deduplicated, sorted list of
|
|
5
|
+
* organon file paths. When the organon path is "." (project root),
|
|
6
|
+
* recursive glob prefixes are stripped so that only root-level files match — this
|
|
7
|
+
* prevents false-positive frontmatter checks on non-organon markdown files
|
|
8
|
+
* buried deeper in the project tree.
|
|
9
|
+
*/
|
|
10
|
+
export async function discoverOrganonFiles(projectRoot, config, fs) {
|
|
11
|
+
const allFiles = new Set();
|
|
12
|
+
for (const organonPath of config.organonPaths) {
|
|
13
|
+
for (const pattern of config.organonGlobs) {
|
|
14
|
+
// "." means project root — match root-level files only (no recursion).
|
|
15
|
+
// Named paths like "organon" or "book-llms" keep recursive ** globs.
|
|
16
|
+
const fullPattern = organonPath === '.'
|
|
17
|
+
? pattern.replace(/^\*\*\//, '')
|
|
18
|
+
: `${organonPath}/${pattern}`;
|
|
19
|
+
const matches = await fs.glob(fullPattern, {
|
|
20
|
+
cwd: projectRoot,
|
|
21
|
+
ignore: config.ignorePatterns,
|
|
22
|
+
});
|
|
23
|
+
for (const m of matches) {
|
|
24
|
+
allFiles.add(m);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return [...allFiles].sort();
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/core/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,MAAqB,EACrB,EAAc;IAEd,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAC1C,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,WAAW,GAAG,WAAW,KAAK,GAAG;gBACrC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBAChC,CAAC,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzC,GAAG,EAAE,WAAW;gBAChB,MAAM,EAAE,MAAM,CAAC,cAAc;aAC9B,CAAC,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.test.d.ts","sourceRoot":"","sources":["../../src/core/discover.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for shared organon file discovery.
|
|
3
|
+
*
|
|
4
|
+
* @organon-invariant INV-TOOLS-2 every-command-has-tests
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect } from 'vitest';
|
|
7
|
+
import { discoverOrganonFiles } from './discover.js';
|
|
8
|
+
import { MemoryFileSystem } from './test-helpers.js';
|
|
9
|
+
function makeConfig(overrides) {
|
|
10
|
+
return {
|
|
11
|
+
projectRoot: '/project',
|
|
12
|
+
organonPaths: ['.', 'organon'],
|
|
13
|
+
organonGlobs: ['**/ETHOS.md', '**/PHILOSOPHY.md', '**/README.md'],
|
|
14
|
+
ignorePatterns: [],
|
|
15
|
+
workflowPaths: {},
|
|
16
|
+
freshnessThresholdHours: 24,
|
|
17
|
+
...overrides,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
describe('discoverOrganonFiles', () => {
|
|
21
|
+
it('discovers files in named organon paths recursively', async () => {
|
|
22
|
+
const fs = new MemoryFileSystem({
|
|
23
|
+
'/project/organon/ETHOS.md': 'ethos',
|
|
24
|
+
'/project/organon/domains/tools/ETHOS.md': 'ethos nested',
|
|
25
|
+
'/project/organon/domains/tools/PHILOSOPHY.md': 'philosophy nested',
|
|
26
|
+
});
|
|
27
|
+
const config = makeConfig({ organonPaths: ['organon'] });
|
|
28
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
29
|
+
expect(result).toEqual([
|
|
30
|
+
'organon/ETHOS.md',
|
|
31
|
+
'organon/domains/tools/ETHOS.md',
|
|
32
|
+
'organon/domains/tools/PHILOSOPHY.md',
|
|
33
|
+
]);
|
|
34
|
+
});
|
|
35
|
+
it('discovers root-level files via "." path', async () => {
|
|
36
|
+
const fs = new MemoryFileSystem({
|
|
37
|
+
'/project/ETHOS.md': 'root ethos',
|
|
38
|
+
'/project/README.md': 'root readme',
|
|
39
|
+
});
|
|
40
|
+
const config = makeConfig({ organonPaths: ['.'] });
|
|
41
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
42
|
+
expect(result).toContain('ETHOS.md');
|
|
43
|
+
expect(result).toContain('README.md');
|
|
44
|
+
});
|
|
45
|
+
it('does NOT discover nested files via "." path (the fix)', async () => {
|
|
46
|
+
const fs = new MemoryFileSystem({
|
|
47
|
+
'/project/README.md': 'root readme — organon file',
|
|
48
|
+
'/project/ETHOS.md': 'root ethos — organon file',
|
|
49
|
+
'/project/experiments/001/README.md': 'experiment readme — NOT organon',
|
|
50
|
+
'/project/modules/app/README.md': 'module readme — NOT organon',
|
|
51
|
+
'/project/research/README.md': 'research readme — NOT organon',
|
|
52
|
+
});
|
|
53
|
+
const config = makeConfig({ organonPaths: ['.'] });
|
|
54
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
55
|
+
expect(result).toContain('README.md');
|
|
56
|
+
expect(result).toContain('ETHOS.md');
|
|
57
|
+
expect(result).not.toContain('experiments/001/README.md');
|
|
58
|
+
expect(result).not.toContain('modules/app/README.md');
|
|
59
|
+
expect(result).not.toContain('research/README.md');
|
|
60
|
+
});
|
|
61
|
+
it('combines "." root-only with named path recursive discovery', async () => {
|
|
62
|
+
const fs = new MemoryFileSystem({
|
|
63
|
+
'/project/README.md': 'root readme',
|
|
64
|
+
'/project/ETHOS.md': 'root ethos',
|
|
65
|
+
'/project/experiments/README.md': 'should be excluded',
|
|
66
|
+
'/project/organon/ETHOS.md': 'organon ethos',
|
|
67
|
+
'/project/organon/domains/tools/ETHOS.md': 'nested organon ethos',
|
|
68
|
+
});
|
|
69
|
+
const config = makeConfig({ organonPaths: ['.', 'organon'] });
|
|
70
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
71
|
+
expect(result).toEqual([
|
|
72
|
+
'ETHOS.md',
|
|
73
|
+
'README.md',
|
|
74
|
+
'organon/ETHOS.md',
|
|
75
|
+
'organon/domains/tools/ETHOS.md',
|
|
76
|
+
]);
|
|
77
|
+
});
|
|
78
|
+
it('applies ignorePatterns', async () => {
|
|
79
|
+
const fs = new MemoryFileSystem({
|
|
80
|
+
'/project/organon/ETHOS.md': 'ethos',
|
|
81
|
+
'/project/organon/vendor/ETHOS.md': 'vendor ethos',
|
|
82
|
+
});
|
|
83
|
+
const config = makeConfig({
|
|
84
|
+
organonPaths: ['organon'],
|
|
85
|
+
ignorePatterns: ['**/vendor/**'],
|
|
86
|
+
});
|
|
87
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
88
|
+
expect(result).toEqual(['organon/ETHOS.md']);
|
|
89
|
+
expect(result).not.toContain('organon/vendor/ETHOS.md');
|
|
90
|
+
});
|
|
91
|
+
it('deduplicates files matched by multiple paths', async () => {
|
|
92
|
+
const fs = new MemoryFileSystem({
|
|
93
|
+
'/project/organon/ETHOS.md': 'ethos',
|
|
94
|
+
});
|
|
95
|
+
// Both paths could match the same file
|
|
96
|
+
const config = makeConfig({
|
|
97
|
+
organonPaths: ['organon', 'organon'],
|
|
98
|
+
});
|
|
99
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
100
|
+
expect(result).toEqual(['organon/ETHOS.md']);
|
|
101
|
+
});
|
|
102
|
+
it('returns sorted results', async () => {
|
|
103
|
+
const fs = new MemoryFileSystem({
|
|
104
|
+
'/project/organon/domains/z/ETHOS.md': 'z',
|
|
105
|
+
'/project/organon/domains/a/ETHOS.md': 'a',
|
|
106
|
+
'/project/organon/ETHOS.md': 'root',
|
|
107
|
+
});
|
|
108
|
+
const config = makeConfig({ organonPaths: ['organon'] });
|
|
109
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
110
|
+
expect(result).toEqual([
|
|
111
|
+
'organon/ETHOS.md',
|
|
112
|
+
'organon/domains/a/ETHOS.md',
|
|
113
|
+
'organon/domains/z/ETHOS.md',
|
|
114
|
+
]);
|
|
115
|
+
});
|
|
116
|
+
it('returns empty array when no files match', async () => {
|
|
117
|
+
const fs = new MemoryFileSystem({});
|
|
118
|
+
const config = makeConfig();
|
|
119
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
120
|
+
expect(result).toEqual([]);
|
|
121
|
+
});
|
|
122
|
+
it('handles globs without **/ prefix via "." path unchanged', async () => {
|
|
123
|
+
// A glob like "ETHOS.md" (no **/ prefix) should work as-is
|
|
124
|
+
const fs = new MemoryFileSystem({
|
|
125
|
+
'/project/ETHOS.md': 'ethos',
|
|
126
|
+
});
|
|
127
|
+
const config = makeConfig({
|
|
128
|
+
organonPaths: ['.'],
|
|
129
|
+
organonGlobs: ['ETHOS.md'],
|
|
130
|
+
});
|
|
131
|
+
const result = await discoverOrganonFiles('/project', config, fs);
|
|
132
|
+
expect(result).toEqual(['ETHOS.md']);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=discover.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.test.js","sourceRoot":"","sources":["../../src/core/discover.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export organon knowledge graph as structured JSON.
|
|
3
|
+
*
|
|
4
|
+
* Produces a snapshot of entities, assertions, relationships, and rules
|
|
5
|
+
* classified by epistemic category. This is the interoperability surface —
|
|
6
|
+
* external tools consume this instead of parsing organon files directly.
|
|
7
|
+
*/
|
|
8
|
+
import type { ExportResult, FileSystem, OrganonConfig } from './types.js';
|
|
9
|
+
export interface ExportOptions {
|
|
10
|
+
projectRoot: string;
|
|
11
|
+
config: OrganonConfig;
|
|
12
|
+
fs: FileSystem;
|
|
13
|
+
/** Package version to include in export metadata */
|
|
14
|
+
version?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function exportKnowledgeGraph(options: ExportOptions): Promise<ExportResult>;
|
|
17
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/core/export.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAIV,YAAY,EAEZ,UAAU,EACV,aAAa,EAEd,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,EAAE,EAAE,UAAU,CAAC;IACf,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAgCxF"}
|