@zhuk/spego 0.11.0 → 0.12.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/README.md +1 -2
  3. package/dist/artifacts/engine.d.ts +3 -7
  4. package/dist/artifacts/engine.js +39 -23
  5. package/dist/artifacts/engine.js.map +1 -1
  6. package/dist/artifacts/storage.d.ts +3 -2
  7. package/dist/artifacts/storage.js +42 -7
  8. package/dist/artifacts/storage.js.map +1 -1
  9. package/dist/artifacts/validation.js +1 -1
  10. package/dist/artifacts/validation.js.map +1 -1
  11. package/dist/cli/body-input.js +12 -2
  12. package/dist/cli/body-input.js.map +1 -1
  13. package/dist/cli/commands/artifact.js +53 -12
  14. package/dist/cli/commands/artifact.js.map +1 -1
  15. package/dist/cli/commands/meta.js +1 -1
  16. package/dist/cli/commands/meta.js.map +1 -1
  17. package/dist/cli/commands/view.js +29 -27
  18. package/dist/cli/commands/view.js.map +1 -1
  19. package/dist/cli/runtime.d.ts +2 -0
  20. package/dist/cli/runtime.js +2 -1
  21. package/dist/cli/runtime.js.map +1 -1
  22. package/dist/command-meta/registry.js.map +1 -0
  23. package/dist/errors.d.ts +1 -1
  24. package/dist/errors.js.map +1 -1
  25. package/dist/generator/claude.js +1 -1
  26. package/dist/generator/claude.js.map +1 -1
  27. package/dist/index/indexer.js +37 -8
  28. package/dist/index/indexer.js.map +1 -1
  29. package/dist/index/revisions.d.ts +2 -2
  30. package/dist/index/revisions.js +18 -3
  31. package/dist/index/revisions.js.map +1 -1
  32. package/dist/workspace/config.d.ts +0 -66
  33. package/dist/workspace/config.js +4 -13
  34. package/dist/workspace/config.js.map +1 -1
  35. package/dist/workspace/init.js +16 -2
  36. package/dist/workspace/init.js.map +1 -1
  37. package/dist/workspace/paths.d.ts +12 -0
  38. package/dist/workspace/paths.js +69 -0
  39. package/dist/workspace/paths.js.map +1 -1
  40. package/package.json +2 -4
  41. package/dist/commands/registry.js.map +0 -1
  42. package/dist/index.d.ts +0 -32
  43. package/dist/index.js +0 -20
  44. package/dist/index.js.map +0 -1
  45. /package/dist/{commands → command-meta}/registry.d.ts +0 -0
  46. /package/dist/{commands → command-meta}/registry.js +0 -0
@@ -1,3 +1,5 @@
1
+ import fs from 'node:fs/promises';
2
+ import { SpegoError } from '../errors.js';
1
3
  import path from 'node:path';
2
4
  /**
3
5
  * `.spego/` workspace layout. Markdown files are the source of truth;
@@ -31,4 +33,71 @@ export function artifactFilePath(paths, type, slug) {
31
33
  export function revisionFilePath(paths, type, slug, revision) {
32
34
  return path.join(paths.revisionsRoot, type, `${slug}.r${revision}.md`);
33
35
  }
36
+ /** Lstat-guard .spego then resolve realpath for containment root. */
37
+ export async function resolveContainmentRoot(workspaceRoot) {
38
+ await rejectIfSymlink(workspaceRoot);
39
+ return fs.realpath(workspaceRoot);
40
+ }
41
+ /** Reject if target path exists and is a symbolic link; no-op if missing. */
42
+ export async function rejectIfSymlink(targetPath) {
43
+ let stat;
44
+ try {
45
+ stat = await fs.lstat(targetPath);
46
+ }
47
+ catch (err) {
48
+ if (err.code === 'ENOENT')
49
+ return;
50
+ throw err;
51
+ }
52
+ if (stat.isSymbolicLink()) {
53
+ throw new SpegoError('WORKSPACE_CONTAINMENT', `Symlink detected at ${targetPath}`, {
54
+ path: targetPath,
55
+ });
56
+ }
57
+ }
58
+ /** Assert a resolved path is strictly inside the workspace root. */
59
+ export function assertContained(resolvedRoot, targetPath) {
60
+ const target = path.resolve(targetPath);
61
+ const root = resolvedRoot.endsWith(path.sep) ? resolvedRoot : resolvedRoot + path.sep;
62
+ if (target !== resolvedRoot && !target.startsWith(root)) {
63
+ throw new SpegoError('WORKSPACE_CONTAINMENT', `Path escapes workspace: ${targetPath}`, {
64
+ path: targetPath,
65
+ resolvedRoot,
66
+ });
67
+ }
68
+ }
69
+ /**
70
+ * Realpath-verify that targetPath's parent is strictly within resolvedRoot.
71
+ * For non-existent parents, walk up to the nearest existing ancestor and
72
+ * check containment — never reject a valid symlink alias before realpath.
73
+ */
74
+ export async function assertParentContained(resolvedRoot, targetPath) {
75
+ const parent = path.dirname(targetPath);
76
+ try {
77
+ const real = await fs.realpath(parent);
78
+ assertContained(resolvedRoot, real);
79
+ return;
80
+ }
81
+ catch (err) {
82
+ if (err.code !== 'ENOENT')
83
+ throw err;
84
+ }
85
+ // Parent doesn't exist yet. Walk up to nearest existing ancestor.
86
+ let ancestor = parent;
87
+ for (;;) {
88
+ const grandparent = path.dirname(ancestor);
89
+ if (grandparent === ancestor)
90
+ break;
91
+ try {
92
+ const realAncestor = await fs.realpath(ancestor);
93
+ assertContained(resolvedRoot, realAncestor);
94
+ return;
95
+ }
96
+ catch (e) {
97
+ if (e.code !== 'ENOENT')
98
+ throw e;
99
+ }
100
+ ancestor = grandparent;
101
+ }
102
+ }
34
103
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/workspace/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAmB7C,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC1D,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,aAAa;QACb,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACtD,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAC3D,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAC3D,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC;QACnD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,kBAAkB,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,IAAY;IACjE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAqB,EAAE,IAAY,EAAE,IAAY;IAChF,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAqB,EACrB,IAAY,EACZ,IAAY,EACZ,QAAgB;IAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,QAAQ,KAAK,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/workspace/paths.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,11 @@
1
1
  {
2
2
  "name": "@zhuk/spego",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Agent-first product orchestration: markdown-first artifact engine with SQLite indexing.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "spego": "dist/cli.js"
8
8
  },
9
- "main": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
9
  "files": [
12
10
  "dist",
13
11
  "README.md",
@@ -20,7 +18,7 @@
20
18
  "test": "vitest run",
21
19
  "test:watch": "vitest",
22
20
  "typecheck": "tsc -p tsconfig.json --noEmit",
23
- "lint": "eslint src test"
21
+ "lint": "eslint src test --max-warnings 0"
24
22
  },
25
23
  "dependencies": {
26
24
  "commander": "^12.1.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/commands/registry.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,32 +0,0 @@
1
- /**
2
- * Public API for embedding the spego artifact engine in other tools.
3
- * The CLI in `cli.ts` is built on top of these exports.
4
- */
5
- export { ArtifactEngine } from './artifacts/engine.js';
6
- export type { EngineOptions } from './artifacts/engine.js';
7
- export { artifactFrontmatterSchema, BUILTIN_ARTIFACT_TYPES, } from './artifacts/types.js';
8
- export type { ArtifactFrontmatter, ArtifactRecord, ArtifactType, BuiltinArtifactType, } from './artifacts/types.js';
9
- export { initWorkspace, workspaceStatus, } from './workspace/init.js';
10
- export type { InitOptions, InitSummary, WorkspaceStatus } from './workspace/init.js';
11
- export { resolveWorkspacePaths, artifactFilePath, artifactTypeDir, revisionFilePath, WORKSPACE_DIR_NAME, ARTIFACTS_DIR_NAME, REVISIONS_DIR_NAME, INDEX_DIR_NAME, CONFIG_FILE_NAME, INDEX_DB_FILE_NAME, } from './workspace/paths.js';
12
- export type { WorkspacePaths } from './workspace/paths.js';
13
- export { defaultConfig, knownArtifactTypes, readConfig, writeConfig, workspaceConfigSchema, } from './workspace/config.js';
14
- export type { WorkspaceConfig, SupportedAgent } from './workspace/config.js';
15
- export type { CreateArtifactInput, UpdateArtifactInput } from './artifacts/validation.js';
16
- export type { IndexedArtifact, RebuildReport } from './index/indexer.js';
17
- export { viewArtifacts, renderMarkdownBundle, renderJsonBundle } from './export/view.js';
18
- export type { ViewOptions, ViewResult, MarkdownBundle, JsonBundle, JsonArtifact, } from './export/view.js';
19
- export { SpegoError } from './errors.js';
20
- export type { SpegoErrorCode } from './errors.js';
21
- export { validateMetaForType, hasTypeSchema, ARTIFACT_META_SCHEMAS } from './artifacts/schemas.js';
22
- export { COMMAND_REGISTRY, getCommandByName } from './commands/registry.js';
23
- export type { CommandMeta, InputField } from './commands/registry.js';
24
- export { generateAll, registerGenerator, getGenerator, availableTargets } from './generator/index.js';
25
- export { ClaudeGenerator } from './generator/claude.js';
26
- export { OpencodeGenerator } from './generator/opencode.js';
27
- export type { TargetGenerator, GenerationReport, GeneratedFile, FileAction } from './generator/types.js';
28
- export { SPEGO_GENERATED_YAML_KEY, isSpegoGenerated, isLegacySpegoGenerated, wrapWithMarker } from './generator/markers.js';
29
- export { resolveAdapter } from './delivery/index.js';
30
- export type { DeliveryAdapter, DeliveryEpicLink, DeliveryItemStatus, DeliveryStatus, DeliveryTaskSummary, } from './delivery/index.js';
31
- export { WORKFLOW_REGISTRY, getWorkflowByName, listWorkflowNames } from './workflows/index.js';
32
- export type { WorkflowMeta, PersonaSpec, PhaseSpec, WorkflowInput, WorkflowOutput } from './workflows/index.js';
package/dist/index.js DELETED
@@ -1,20 +0,0 @@
1
- /**
2
- * Public API for embedding the spego artifact engine in other tools.
3
- * The CLI in `cli.ts` is built on top of these exports.
4
- */
5
- export { ArtifactEngine } from './artifacts/engine.js';
6
- export { artifactFrontmatterSchema, BUILTIN_ARTIFACT_TYPES, } from './artifacts/types.js';
7
- export { initWorkspace, workspaceStatus, } from './workspace/init.js';
8
- export { resolveWorkspacePaths, artifactFilePath, artifactTypeDir, revisionFilePath, WORKSPACE_DIR_NAME, ARTIFACTS_DIR_NAME, REVISIONS_DIR_NAME, INDEX_DIR_NAME, CONFIG_FILE_NAME, INDEX_DB_FILE_NAME, } from './workspace/paths.js';
9
- export { defaultConfig, knownArtifactTypes, readConfig, writeConfig, workspaceConfigSchema, } from './workspace/config.js';
10
- export { viewArtifacts, renderMarkdownBundle, renderJsonBundle } from './export/view.js';
11
- export { SpegoError } from './errors.js';
12
- export { validateMetaForType, hasTypeSchema, ARTIFACT_META_SCHEMAS } from './artifacts/schemas.js';
13
- export { COMMAND_REGISTRY, getCommandByName } from './commands/registry.js';
14
- export { generateAll, registerGenerator, getGenerator, availableTargets } from './generator/index.js';
15
- export { ClaudeGenerator } from './generator/claude.js';
16
- export { OpencodeGenerator } from './generator/opencode.js';
17
- export { SPEGO_GENERATED_YAML_KEY, isSpegoGenerated, isLegacySpegoGenerated, wrapWithMarker } from './generator/markers.js';
18
- export { resolveAdapter } from './delivery/index.js';
19
- export { WORKFLOW_REGISTRY, getWorkflowByName, listWorkflowNames } from './workflows/index.js';
20
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAQzF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5H,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
File without changes
File without changes