@tiangong-ai/cli 0.0.60 → 0.0.62
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/AGENTS.md +17 -6
- package/README.md +577 -55
- package/dist/data/builtins.js +33 -5
- package/dist/data/builtins.js.map +1 -1
- package/dist/data/catalog.js +46 -0
- package/dist/data/catalog.js.map +1 -1
- package/dist/data/commands.js +15 -1
- package/dist/data/commands.js.map +1 -1
- package/dist/data/connectors/airnow-hourly-observations.js +60 -10
- package/dist/data/connectors/airnow-hourly-observations.js.map +1 -1
- package/dist/data/connectors/epa-eis-records.js +16 -2
- package/dist/data/connectors/epa-eis-records.js.map +1 -1
- package/dist/data/connectors/gdelt-doc-search.js +54 -18
- package/dist/data/connectors/gdelt-doc-search.js.map +1 -1
- package/dist/data/connectors/gdelt-file-feeds.js +20 -11
- package/dist/data/connectors/gdelt-file-feeds.js.map +1 -1
- package/dist/data/connectors/gdelt-web-ngrams.d.ts +2 -0
- package/dist/data/connectors/gdelt-web-ngrams.js +350 -0
- package/dist/data/connectors/gdelt-web-ngrams.js.map +1 -0
- package/dist/data/connectors/gdelt-web-ngrams.schemas.d.ts +188 -0
- package/dist/data/connectors/gdelt-web-ngrams.schemas.js +138 -0
- package/dist/data/connectors/gdelt-web-ngrams.schemas.js.map +1 -0
- package/dist/data/connectors/nasa-firms-fire.js +4 -0
- package/dist/data/connectors/nasa-firms-fire.js.map +1 -1
- package/dist/data/connectors/open-meteo-air-quality.js +27 -22
- package/dist/data/connectors/open-meteo-air-quality.js.map +1 -1
- package/dist/data/connectors/open-meteo-air-quality.schemas.d.ts +4 -1
- package/dist/data/connectors/open-meteo-air-quality.schemas.js +21 -1
- package/dist/data/connectors/open-meteo-air-quality.schemas.js.map +1 -1
- package/dist/data/connectors/open-meteo-flood.js +28 -23
- package/dist/data/connectors/open-meteo-flood.js.map +1 -1
- package/dist/data/connectors/open-meteo-flood.schemas.d.ts +4 -1
- package/dist/data/connectors/open-meteo-flood.schemas.js +21 -1
- package/dist/data/connectors/open-meteo-flood.schemas.js.map +1 -1
- package/dist/data/connectors/open-meteo-historical-weather.js +26 -21
- package/dist/data/connectors/open-meteo-historical-weather.js.map +1 -1
- package/dist/data/connectors/open-meteo-historical-weather.schemas.d.ts +4 -1
- package/dist/data/connectors/open-meteo-historical-weather.schemas.js +21 -1
- package/dist/data/connectors/open-meteo-historical-weather.schemas.js.map +1 -1
- package/dist/data/connectors/openaq-air-quality.js +50 -12
- package/dist/data/connectors/openaq-air-quality.js.map +1 -1
- package/dist/data/connectors/openaq-air-quality.schemas.d.ts +0 -4
- package/dist/data/connectors/openaq-air-quality.schemas.js +2 -2
- package/dist/data/connectors/openaq-air-quality.schemas.js.map +1 -1
- package/dist/data/connectors/youtube-public-content.js +76 -6
- package/dist/data/connectors/youtube-public-content.js.map +1 -1
- package/dist/data/connectors/youtube-public-content.schemas.d.ts +63 -3
- package/dist/data/connectors/youtube-public-content.schemas.js +56 -2
- package/dist/data/connectors/youtube-public-content.schemas.js.map +1 -1
- package/dist/data/contracts.d.ts +22 -1
- package/dist/data/runtime/bounded-http.d.ts +2 -0
- package/dist/data/runtime/bounded-http.js +221 -59
- package/dist/data/runtime/bounded-http.js.map +1 -1
- package/dist/data/runtime/execute.d.ts +2 -0
- package/dist/data/runtime/execute.js +82 -60
- package/dist/data/runtime/execute.js.map +1 -1
- package/dist/data/runtime/http-timing.d.ts +15 -0
- package/dist/data/runtime/http-timing.js +59 -0
- package/dist/data/runtime/http-timing.js.map +1 -0
- package/dist/data/runtime/http-transport.d.ts +1 -0
- package/dist/data/runtime/http-transport.js +27 -0
- package/dist/data/runtime/http-transport.js.map +1 -0
- package/dist/data/schemas/catalog.v1.json +46 -0
- package/dist/data/schemas/discovery.v1.json +12 -0
- package/dist/data/schemas/error.v1.json +1 -0
- package/dist/data/schemas/manifest.v1.json +19 -1
- package/dist/research/orchestration.js +341 -28
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/setup-command.js +37 -6
- package/dist/research/setup-command.js.map +1 -1
- package/dist/research/workspace/acquisition-routes.d.ts +1 -1
- package/dist/research/workspace/acquisition-routes.js +2 -11
- package/dist/research/workspace/acquisition-routes.js.map +1 -1
- package/dist/research/workspace/artifact-read-audit.d.ts +16 -0
- package/dist/research/workspace/artifact-read-audit.js +176 -0
- package/dist/research/workspace/artifact-read-audit.js.map +1 -0
- package/dist/research/workspace/artifact-trace.d.ts +12 -0
- package/dist/research/workspace/artifact-trace.js +109 -0
- package/dist/research/workspace/artifact-trace.js.map +1 -0
- package/dist/research/workspace/artifact-view-mcp.d.ts +75 -0
- package/dist/research/workspace/artifact-view-mcp.js +214 -0
- package/dist/research/workspace/artifact-view-mcp.js.map +1 -0
- package/dist/research/workspace/artifact-views.d.ts +100 -0
- package/dist/research/workspace/artifact-views.js +395 -0
- package/dist/research/workspace/artifact-views.js.map +1 -0
- package/dist/research/workspace/audit-bundle.d.ts +4 -0
- package/dist/research/workspace/audit-bundle.js +130 -11
- package/dist/research/workspace/audit-bundle.js.map +1 -1
- package/dist/research/workspace/broker.js +25 -4
- package/dist/research/workspace/broker.js.map +1 -1
- package/dist/research/workspace/constants.d.ts +1 -0
- package/dist/research/workspace/constants.js +1 -0
- package/dist/research/workspace/constants.js.map +1 -1
- package/dist/research/workspace/content-evidence.d.ts +1 -0
- package/dist/research/workspace/content-evidence.js +1 -1
- package/dist/research/workspace/content-evidence.js.map +1 -1
- package/dist/research/workspace/credentials.js +2 -1
- package/dist/research/workspace/credentials.js.map +1 -1
- package/dist/research/workspace/data-evidence-adapter.d.ts +71 -0
- package/dist/research/workspace/data-evidence-adapter.js +269 -59
- package/dist/research/workspace/data-evidence-adapter.js.map +1 -1
- package/dist/research/workspace/data-evidence-view.d.ts +58 -0
- package/dist/research/workspace/data-evidence-view.js +411 -0
- package/dist/research/workspace/data-evidence-view.js.map +1 -0
- package/dist/research/workspace/evidence-ledger.js +32 -29
- package/dist/research/workspace/evidence-ledger.js.map +1 -1
- package/dist/research/workspace/evidence.d.ts +28 -0
- package/dist/research/workspace/evidence.js +48 -0
- package/dist/research/workspace/evidence.js.map +1 -1
- package/dist/research/workspace/executor.d.ts +32 -2
- package/dist/research/workspace/executor.js +286 -42
- package/dist/research/workspace/executor.js.map +1 -1
- package/dist/research/workspace/investigation-attempt.d.ts +159 -0
- package/dist/research/workspace/investigation-attempt.js +619 -0
- package/dist/research/workspace/investigation-attempt.js.map +1 -0
- package/dist/research/workspace/investigation-audit.d.ts +20 -0
- package/dist/research/workspace/investigation-audit.js +306 -0
- package/dist/research/workspace/investigation-audit.js.map +1 -0
- package/dist/research/workspace/investigation-candidate.d.ts +84 -0
- package/dist/research/workspace/investigation-candidate.js +156 -0
- package/dist/research/workspace/investigation-candidate.js.map +1 -0
- package/dist/research/workspace/investigation-certification.d.ts +39 -0
- package/dist/research/workspace/investigation-certification.js +152 -0
- package/dist/research/workspace/investigation-certification.js.map +1 -0
- package/dist/research/workspace/investigation-close.d.ts +47 -0
- package/dist/research/workspace/investigation-close.js +153 -0
- package/dist/research/workspace/investigation-close.js.map +1 -0
- package/dist/research/workspace/investigation-lineage.d.ts +8 -0
- package/dist/research/workspace/investigation-lineage.js +10 -0
- package/dist/research/workspace/investigation-lineage.js.map +1 -0
- package/dist/research/workspace/investigation-observer.d.ts +22 -0
- package/dist/research/workspace/investigation-observer.js +122 -0
- package/dist/research/workspace/investigation-observer.js.map +1 -0
- package/dist/research/workspace/investigation-promotion.d.ts +129 -0
- package/dist/research/workspace/investigation-promotion.js +316 -0
- package/dist/research/workspace/investigation-promotion.js.map +1 -0
- package/dist/research/workspace/investigation-requirements.d.ts +5 -0
- package/dist/research/workspace/investigation-requirements.js +32 -0
- package/dist/research/workspace/investigation-requirements.js.map +1 -0
- package/dist/research/workspace/investigation-resources.d.ts +12 -0
- package/dist/research/workspace/investigation-resources.js +78 -0
- package/dist/research/workspace/investigation-resources.js.map +1 -0
- package/dist/research/workspace/investigation-source-export.d.ts +6 -0
- package/dist/research/workspace/investigation-source-export.js +68 -0
- package/dist/research/workspace/investigation-source-export.js.map +1 -0
- package/dist/research/workspace/investigation-store.d.ts +9 -0
- package/dist/research/workspace/investigation-store.js +55 -0
- package/dist/research/workspace/investigation-store.js.map +1 -0
- package/dist/research/workspace/investigation.d.ts +424 -0
- package/dist/research/workspace/investigation.js +716 -0
- package/dist/research/workspace/investigation.js.map +1 -0
- package/dist/research/workspace/native-process-supervisor.d.ts +1 -0
- package/dist/research/workspace/native-process-supervisor.js +97 -0
- package/dist/research/workspace/native-process-supervisor.js.map +1 -0
- package/dist/research/workspace/native-run.d.ts +150 -0
- package/dist/research/workspace/native-run.js +879 -0
- package/dist/research/workspace/native-run.js.map +1 -0
- package/dist/research/workspace/preflight.d.ts +11 -2
- package/dist/research/workspace/preflight.js +28 -20
- package/dist/research/workspace/preflight.js.map +1 -1
- package/dist/research/workspace/project-authority.js +2 -0
- package/dist/research/workspace/project-authority.js.map +1 -1
- package/dist/research/workspace/project-budget.d.ts +41 -0
- package/dist/research/workspace/project-budget.js +265 -0
- package/dist/research/workspace/project-budget.js.map +1 -0
- package/dist/research/workspace/project-mutations.d.ts +1 -1
- package/dist/research/workspace/project-mutations.js +29 -3
- package/dist/research/workspace/project-mutations.js.map +1 -1
- package/dist/research/workspace/projects.d.ts +66 -0
- package/dist/research/workspace/projects.js +182 -3
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/provider-budget.d.ts +3 -0
- package/dist/research/workspace/provider-budget.js +45 -0
- package/dist/research/workspace/provider-budget.js.map +1 -0
- package/dist/research/workspace/provider-state.d.ts +1 -0
- package/dist/research/workspace/provider-state.js +20 -0
- package/dist/research/workspace/provider-state.js.map +1 -0
- package/dist/research/workspace/publication-lineage.d.ts +34 -0
- package/dist/research/workspace/publication-lineage.js +165 -0
- package/dist/research/workspace/publication-lineage.js.map +1 -0
- package/dist/research/workspace/publication-workflow.d.ts +24 -0
- package/dist/research/workspace/publication-workflow.js +118 -14
- package/dist/research/workspace/publication-workflow.js.map +1 -1
- package/dist/research/workspace/request-provenance.d.ts +67 -0
- package/dist/research/workspace/request-provenance.js +115 -0
- package/dist/research/workspace/request-provenance.js.map +1 -0
- package/dist/research/workspace/review-executor.d.ts +6 -1
- package/dist/research/workspace/review-executor.js +39 -14
- package/dist/research/workspace/review-executor.js.map +1 -1
- package/dist/research/workspace/runtime.d.ts +64 -1
- package/dist/research/workspace/runtime.js +359 -112
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/sanitization.js +1 -1
- package/dist/research/workspace/sanitization.js.map +1 -1
- package/dist/research/workspace/schema-compatibility.d.ts +5 -0
- package/dist/research/workspace/schema-compatibility.js +55 -0
- package/dist/research/workspace/schema-compatibility.js.map +1 -0
- package/dist/research/workspace/scientific-amendment.d.ts +103 -0
- package/dist/research/workspace/scientific-amendment.js +537 -0
- package/dist/research/workspace/scientific-amendment.js.map +1 -0
- package/dist/research/workspace/scientific-design.js +8 -17
- package/dist/research/workspace/scientific-design.js.map +1 -1
- package/dist/research/workspace/scientific-fulfillment-audit.d.ts +21 -0
- package/dist/research/workspace/scientific-fulfillment-audit.js +217 -0
- package/dist/research/workspace/scientific-fulfillment-audit.js.map +1 -0
- package/dist/research/workspace/scientific-fulfillment.d.ts +130 -0
- package/dist/research/workspace/scientific-fulfillment.js +553 -0
- package/dist/research/workspace/scientific-fulfillment.js.map +1 -0
- package/dist/research/workspace/scientific-review-execution.js +236 -75
- package/dist/research/workspace/scientific-review-execution.js.map +1 -1
- package/dist/research/workspace/scientific-review.d.ts +6 -1
- package/dist/research/workspace/scientific-review.js +228 -52
- package/dist/research/workspace/scientific-review.js.map +1 -1
- package/dist/research/workspace/setup-catalog.js +3 -3
- package/dist/research/workspace/setup-release.d.ts +22 -0
- package/dist/research/workspace/setup-release.js +426 -0
- package/dist/research/workspace/setup-release.js.map +1 -0
- package/dist/research/workspace/setup-runtime-integrity.d.ts +2 -0
- package/dist/research/workspace/setup-runtime-integrity.js +31 -0
- package/dist/research/workspace/setup-runtime-integrity.js.map +1 -0
- package/dist/research/workspace/setup-upgrade.d.ts +17 -0
- package/dist/research/workspace/setup-upgrade.js +784 -0
- package/dist/research/workspace/setup-upgrade.js.map +1 -0
- package/dist/research/workspace/setup.d.ts +31 -39
- package/dist/research/workspace/setup.js +220 -17
- package/dist/research/workspace/setup.js.map +1 -1
- package/dist/research/workspace/task-acceptance.d.ts +17 -2
- package/dist/research/workspace/task-acceptance.js +106 -10
- package/dist/research/workspace/task-acceptance.js.map +1 -1
- package/dist/research/workspace/task-audit.d.ts +5 -1
- package/dist/research/workspace/task-audit.js +70 -5
- package/dist/research/workspace/task-audit.js.map +1 -1
- package/dist/research/workspace/task-contract.d.ts +4 -1
- package/dist/research/workspace/task-contract.js +26 -5
- package/dist/research/workspace/task-contract.js.map +1 -1
- package/dist/research/workspace/types.d.ts +50 -3
- package/dist/research/workspace/workspace.js +34 -4
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +2 -1
|
@@ -27,7 +27,7 @@ export function sanitizeResearchText(value, secrets = []) {
|
|
|
27
27
|
sanitized = sanitized.replaceAll(secret, "[REDACTED]");
|
|
28
28
|
}
|
|
29
29
|
sanitized = sanitized
|
|
30
|
-
.replace(/(["']?(?:
|
|
30
|
+
.replace(/((?<![\p{L}\p{N}_-])["']?(?:[\p{L}\p{N}_-]*(?:token|secret|password|passwd|cookie|api[_-]?key|private[_-]?key|secret[_-]?access[_-]?key|authorization|auth|credential)|(?:(?:browser|auth|user|login)[_-]?)?session(?:[_-]?id)?)["']?\s*:\s*)(["'])(?:\\.|(?!\2)[^\\])*\2/giu, "$1$2[REDACTED]$2")
|
|
31
31
|
.replace(/\b((?:proxy-)?authorization)\s*:\s*((?:Bearer|Basic)\s+)?[^\s,;}"'<>\\]+/gi, "$1: $2[REDACTED]")
|
|
32
32
|
.replace(/\b(access_token|api[_-]?key|apikey|auth|authorization|cookie|password|secret|session|token)\s*=\s*[^\s,;}&"'<>\\]+/gi, "$1=[REDACTED]")
|
|
33
33
|
.replace(/\b(cookie|set-cookie|x-api-key|api-key)\s*:\s*[^\s,;}"'<>\\]+/gi, "$1: [REDACTED]");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/research/workspace/sanitization.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GACjB,4JAA4J,CAAC;AAC/J,MAAM,mBAAmB,GACvB,wPAAwP,CAAC;AAC3P,MAAM,sBAAsB,GAC1B,2JAA2J,CAAC;AAE9J,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,OAAO,GAAsB,EAAE;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC3E,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;YACtC,CAAC,CAAC,IAAI,KAAK,IAAI;gBACb,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,YAAY;YAChB,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA8B,EAC9B,OAAO,GAAsB,EAAE;IAE/B,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAA4B,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,OAAO,GAAsB,EAAE;IACjF,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACxF,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IACD,SAAS,GAAG,SAAS;SAClB,OAAO,CACN
|
|
1
|
+
{"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/research/workspace/sanitization.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GACjB,4JAA4J,CAAC;AAC/J,MAAM,mBAAmB,GACvB,wPAAwP,CAAC;AAC3P,MAAM,sBAAsB,GAC1B,2JAA2J,CAAC;AAE9J,MAAM,UAAU,qBAAqB,CAAC,KAAc,EAAE,OAAO,GAAsB,EAAE;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC3E,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;YACtC,CAAC,CAAC,IAAI,KAAK,IAAI;gBACb,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,YAAY;YAChB,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA8B,EAC9B,OAAO,GAAsB,EAAE;IAE/B,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAA4B,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,OAAO,GAAsB,EAAE;IACjF,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACxF,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IACD,SAAS,GAAG,SAAS;SAClB,OAAO,CACN,8QAA8Q,EAC9Q,kBAAkB,CACnB;SACA,OAAO,CACN,4EAA4E,EAC5E,kBAAkB,CACnB;SACA,OAAO,CACN,sHAAsH,EACtH,eAAe,CAChB;SACA,OAAO,CAAC,iEAAiE,EAAE,gBAAgB,CAAC,CAAC;IAChG,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAyB;IACjE,OAAO;QACL,GAAG,IAAI,GAAG,CACR,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACnB,MAAM,CACL,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAChB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAC7E;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAe,CAAC,CACvC;KACF,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACrF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC;gBAC1B,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC/C,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;oBACxC,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC;gBACtB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAE,CAAC;QACpC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,gBAAgB,IAAI,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACzB,gBAAgB,IAAI,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/E,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { JsonSchema } from "./schemas.js";
|
|
2
|
+
/** Claude Code loads the supplied schema with its default Ajv dialect. Keep
|
|
3
|
+
* validation constraints intact, remove dialect/id annotations and make implied
|
|
4
|
+
* scalar types explicit; the controller still uses the canonical schema. */
|
|
5
|
+
export declare function claudeCodeCompatibleSchema(schema: JsonSchema): JsonSchema;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** Claude Code loads the supplied schema with its default Ajv dialect. Keep
|
|
2
|
+
* validation constraints intact, remove dialect/id annotations and make implied
|
|
3
|
+
* scalar types explicit; the controller still uses the canonical schema. */
|
|
4
|
+
export function claudeCodeCompatibleSchema(schema) {
|
|
5
|
+
const compatible = structuredClone(schema);
|
|
6
|
+
const dataKeywords = new Set(["const", "enum", "default", "examples"]);
|
|
7
|
+
const schemaMaps = new Set(["properties", "patternProperties", "$defs", "definitions"]);
|
|
8
|
+
const stripMetadata = (value, isSchemaMap = false) => {
|
|
9
|
+
if (Array.isArray(value)) {
|
|
10
|
+
for (const item of value)
|
|
11
|
+
stripMetadata(item);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (!value || typeof value !== "object")
|
|
15
|
+
return;
|
|
16
|
+
const record = value;
|
|
17
|
+
if (!isSchemaMap) {
|
|
18
|
+
delete record.$schema;
|
|
19
|
+
delete record.$id;
|
|
20
|
+
// Claude's StructuredOutput tool can otherwise present an untyped
|
|
21
|
+
// numeric const as a string parameter. This adds only types already
|
|
22
|
+
// implied by scalar const/enum values; never coerce returned data.
|
|
23
|
+
if (record.type === undefined) {
|
|
24
|
+
const literals = Object.hasOwn(record, "const")
|
|
25
|
+
? [record.const]
|
|
26
|
+
: Array.isArray(record.enum)
|
|
27
|
+
? record.enum
|
|
28
|
+
: [];
|
|
29
|
+
const types = [...new Set(literals.map(scalarType))];
|
|
30
|
+
if (types.length && !types.includes(undefined)) {
|
|
31
|
+
const normalized = types.includes("number")
|
|
32
|
+
? types.filter((type) => type !== "integer")
|
|
33
|
+
: types;
|
|
34
|
+
record.type = normalized.length === 1 ? normalized[0] : normalized;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
for (const [key, item] of Object.entries(record)) {
|
|
39
|
+
if (isSchemaMap || !dataKeywords.has(key))
|
|
40
|
+
stripMetadata(item, !isSchemaMap && schemaMaps.has(key));
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
stripMetadata(compatible);
|
|
44
|
+
return compatible;
|
|
45
|
+
}
|
|
46
|
+
function scalarType(value) {
|
|
47
|
+
if (value === null)
|
|
48
|
+
return "null";
|
|
49
|
+
if (typeof value === "string" || typeof value === "boolean")
|
|
50
|
+
return typeof value;
|
|
51
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
52
|
+
return Number.isInteger(value) ? "integer" : "number";
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=schema-compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-compatibility.js","sourceRoot":"","sources":["../../../src/research/workspace/schema-compatibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { type ScientificDesignContract } from "./scientific-design.js";
|
|
2
|
+
import { type ScientificFulfillmentRecord } from "./scientific-fulfillment.js";
|
|
3
|
+
import type { JournalEvent, ProjectState } from "./types.js";
|
|
4
|
+
type Rule = ScientificDesignContract["policyRuleDispositions"][number];
|
|
5
|
+
export interface ScientificAmendmentPlan {
|
|
6
|
+
schemaVersion: 1;
|
|
7
|
+
kind: "tiangong-scientific-amendment-plan";
|
|
8
|
+
projectId: string;
|
|
9
|
+
parentDesignSha256: string;
|
|
10
|
+
parentFulfillmentSha256: string | null;
|
|
11
|
+
parentAmendmentSha256: string | null;
|
|
12
|
+
parentEffectiveDesignSha256: string;
|
|
13
|
+
parentProjectSha256: string;
|
|
14
|
+
reason: string;
|
|
15
|
+
changes: Array<{
|
|
16
|
+
ruleId: string;
|
|
17
|
+
before: Rule;
|
|
18
|
+
after: Rule;
|
|
19
|
+
}>;
|
|
20
|
+
proposedEffectiveDesignSha256: string;
|
|
21
|
+
invalidatedScientificRoles: string[];
|
|
22
|
+
affectedTaskRequirementIds: string[];
|
|
23
|
+
preservedAcquisitionSnapshotSha256: string | null;
|
|
24
|
+
planSha256: string;
|
|
25
|
+
nextAction: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ScientificAmendmentRecord {
|
|
28
|
+
schemaVersion: 1;
|
|
29
|
+
kind: "tiangong-scientific-amendment";
|
|
30
|
+
projectId: string;
|
|
31
|
+
plan: ScientificAmendmentPlan;
|
|
32
|
+
amendmentAuthorization: {
|
|
33
|
+
kind: "operator-confirmation";
|
|
34
|
+
planSha256: string;
|
|
35
|
+
sourceSha256: string;
|
|
36
|
+
sourceLocator: string;
|
|
37
|
+
sourceBytes: number;
|
|
38
|
+
};
|
|
39
|
+
design: {
|
|
40
|
+
sha256: string;
|
|
41
|
+
objectLocator: string;
|
|
42
|
+
};
|
|
43
|
+
recordSha256: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ScientificAmendmentImpact {
|
|
46
|
+
claims: Map<string, {
|
|
47
|
+
sha256: string;
|
|
48
|
+
ordinal: number;
|
|
49
|
+
}>;
|
|
50
|
+
coverage: Map<string, {
|
|
51
|
+
sha256: string;
|
|
52
|
+
ordinal: number;
|
|
53
|
+
}>;
|
|
54
|
+
}
|
|
55
|
+
/** An operation-local dependency index over the already verified design history. */
|
|
56
|
+
export declare function scientificAmendmentImpact(records: ScientificAmendmentRecord[], design: ScientificDesignContract): ScientificAmendmentImpact;
|
|
57
|
+
export declare function requirementAmendmentBinding(requirement: {
|
|
58
|
+
designClaimIds: string[];
|
|
59
|
+
coverageDimensionIds: string[];
|
|
60
|
+
}, impact?: ScientificAmendmentImpact): string | null;
|
|
61
|
+
export declare function loadScientificAmendmentImpact(root: string, project: ProjectState, events: JournalEvent[]): Promise<ScientificAmendmentImpact | undefined>;
|
|
62
|
+
export declare function scientificAmendmentSchema(): Record<string, unknown>;
|
|
63
|
+
/** Derive a reviewable proposal without changing frozen bytes or authority. */
|
|
64
|
+
export declare function planScientificAmendment(root: string, projectId: string, value: unknown): Promise<ScientificAmendmentPlan>;
|
|
65
|
+
export declare function scientificAmendmentLocator(projectId: string, hash: string): string;
|
|
66
|
+
export declare function validateScientificAmendmentRecord(value: unknown, projectId: string, hash: string): ScientificAmendmentRecord;
|
|
67
|
+
/** Shared by the live loader and portable verifier; rule patches commute with slot fulfillment. */
|
|
68
|
+
export declare function projectScientificAmendments(base: ScientificDesignContract, baseSha256: string, fulfillments: ScientificFulfillmentRecord[], records: ScientificAmendmentRecord[]): ScientificDesignContract;
|
|
69
|
+
export declare function loadScientificAmendments(root: string, project: ProjectState, events: JournalEvent[]): Promise<ScientificAmendmentRecord[]>;
|
|
70
|
+
export declare function applyScientificAmendment(root: string, projectId: string, value: unknown, confirmation: string | undefined, sourcePath: string | undefined): Promise<ScientificAmendmentRecord>;
|
|
71
|
+
export declare function inspectScientificAmendment(root: string, projectId: string): Promise<{
|
|
72
|
+
projectId: string;
|
|
73
|
+
amendmentSha256: string | null;
|
|
74
|
+
originalDesignSha256: string | undefined;
|
|
75
|
+
effectiveDesignSha256: string;
|
|
76
|
+
plannedRules: {
|
|
77
|
+
ruleId: string;
|
|
78
|
+
dueGate: "evidence-construct" | "pilot-methods" | "publication-freeze" | "research-design";
|
|
79
|
+
rationale: string;
|
|
80
|
+
modelStructureIds: string[];
|
|
81
|
+
uncertaintyParameterIds: string[];
|
|
82
|
+
}[];
|
|
83
|
+
records: {
|
|
84
|
+
recordSha256: string;
|
|
85
|
+
planSha256: string;
|
|
86
|
+
parentAmendmentSha256: string | null;
|
|
87
|
+
design: {
|
|
88
|
+
sha256: string;
|
|
89
|
+
objectLocator: string;
|
|
90
|
+
};
|
|
91
|
+
reason: string;
|
|
92
|
+
affectedTaskRequirementIds: string[];
|
|
93
|
+
}[];
|
|
94
|
+
gates: Record<import("./types.js").ScientificReviewRole, {
|
|
95
|
+
status: import("./types.js").ScientificGateStatus;
|
|
96
|
+
packetSha256: string | null;
|
|
97
|
+
assessmentSha256: string | null;
|
|
98
|
+
reviewSha256: string | null;
|
|
99
|
+
reviewerSessionSha256: string | null;
|
|
100
|
+
}> | undefined;
|
|
101
|
+
nextAction: string;
|
|
102
|
+
}>;
|
|
103
|
+
export {};
|