@dharma-ai-labs/agent-fabric 0.2.109 → 0.2.111
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 +41 -0
- package/dist/codexInboxSession.d.ts +1 -1
- package/dist/cooperativeInboxSession.d.ts +1 -1
- package/dist/demoDeviceTransport.d.ts +33 -0
- package/dist/demoDeviceTransport.d.ts.map +1 -0
- package/dist/demoDeviceTransport.js +52 -0
- package/dist/demoDeviceTransport.js.map +1 -0
- package/dist/demoDeviceTransport.test.d.ts +2 -0
- package/dist/demoDeviceTransport.test.d.ts.map +1 -0
- package/dist/demoDeviceTransport.test.js +178 -0
- package/dist/demoDeviceTransport.test.js.map +1 -0
- package/dist/demoEnrollment.d.ts +2 -1
- package/dist/demoEnrollment.d.ts.map +1 -1
- package/dist/demoEnrollment.js +99 -21
- package/dist/demoEnrollment.js.map +1 -1
- package/dist/demoEnrollment.test.js +288 -2
- package/dist/demoEnrollment.test.js.map +1 -1
- package/dist/demoPackage.js +1 -1
- package/dist/demoPackage.js.map +1 -1
- package/dist/demoSigningTrust.d.ts +24 -0
- package/dist/demoSigningTrust.d.ts.map +1 -0
- package/dist/demoSigningTrust.js +326 -0
- package/dist/demoSigningTrust.js.map +1 -0
- package/dist/demoSigningTrust.test.d.ts +2 -0
- package/dist/demoSigningTrust.test.d.ts.map +1 -0
- package/dist/demoSigningTrust.test.js +445 -0
- package/dist/demoSigningTrust.test.js.map +1 -0
- package/dist/demoSigningUpgradeProof.d.ts +52 -0
- package/dist/demoSigningUpgradeProof.d.ts.map +1 -0
- package/dist/demoSigningUpgradeProof.js +137 -0
- package/dist/demoSigningUpgradeProof.js.map +1 -0
- package/dist/demoSigningUpgradeProof.test.d.ts +2 -0
- package/dist/demoSigningUpgradeProof.test.d.ts.map +1 -0
- package/dist/demoSigningUpgradeProof.test.js +564 -0
- package/dist/demoSigningUpgradeProof.test.js.map +1 -0
- package/dist/demoSigningUpgradeSubmission.d.ts +21 -0
- package/dist/demoSigningUpgradeSubmission.d.ts.map +1 -0
- package/dist/demoSigningUpgradeSubmission.js +178 -0
- package/dist/demoSigningUpgradeSubmission.js.map +1 -0
- package/dist/demoSupervisor.d.ts.map +1 -1
- package/dist/demoSupervisor.js +2 -1
- package/dist/demoSupervisor.js.map +1 -1
- package/dist/demoSupervisor.test.js +35 -0
- package/dist/demoSupervisor.test.js.map +1 -1
- package/dist/demoTransportCommand.test.d.ts +2 -0
- package/dist/demoTransportCommand.test.d.ts.map +1 -0
- package/dist/demoTransportCommand.test.js +28 -0
- package/dist/demoTransportCommand.test.js.map +1 -0
- package/dist/demoTransportContinuity.d.ts +39 -0
- package/dist/demoTransportContinuity.d.ts.map +1 -0
- package/dist/demoTransportContinuity.js +82 -0
- package/dist/demoTransportContinuity.js.map +1 -0
- package/dist/demoTransportContinuity.test.d.ts +2 -0
- package/dist/demoTransportContinuity.test.d.ts.map +1 -0
- package/dist/demoTransportContinuity.test.js +145 -0
- package/dist/demoTransportContinuity.test.js.map +1 -0
- package/dist/demoTransportFetch.d.ts +12 -0
- package/dist/demoTransportFetch.d.ts.map +1 -0
- package/dist/demoTransportFetch.js +109 -0
- package/dist/demoTransportFetch.js.map +1 -0
- package/dist/demoTransportFetch.test.d.ts +2 -0
- package/dist/demoTransportFetch.test.d.ts.map +1 -0
- package/dist/demoTransportFetch.test.js +150 -0
- package/dist/demoTransportFetch.test.js.map +1 -0
- package/dist/demoTransportRequest.d.ts +35 -0
- package/dist/demoTransportRequest.d.ts.map +1 -0
- package/dist/demoTransportRequest.js +193 -0
- package/dist/demoTransportRequest.js.map +1 -0
- package/dist/demoTransportRequest.test.d.ts +2 -0
- package/dist/demoTransportRequest.test.d.ts.map +1 -0
- package/dist/demoTransportRequest.test.js +203 -0
- package/dist/demoTransportRequest.test.js.map +1 -0
- package/dist/demoTransportState.d.ts +31 -0
- package/dist/demoTransportState.d.ts.map +1 -0
- package/dist/demoTransportState.js +204 -0
- package/dist/demoTransportState.js.map +1 -0
- package/dist/demoTransportState.test.d.ts +2 -0
- package/dist/demoTransportState.test.d.ts.map +1 -0
- package/dist/demoTransportState.test.js +192 -0
- package/dist/demoTransportState.test.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -13
- package/dist/index.js.map +1 -1
- package/dist/providerSessionReplyRecovery.d.ts +1 -1
- package/dist/relaySupervisor.test.js +3 -1
- package/dist/relaySupervisor.test.js.map +1 -1
- package/dist/schemas/demo-enrollment-approval.schema.json +19 -0
- package/dist/schemas/demo-signing-update.schema.json +18 -0
- package/dist/schemas/demo-transport-continuity.schema.json +27 -0
- package/dist/schemas/demo-transport-journal.schema.json +13 -0
- package/dist/schemas/demo-transport-request.schema.json +27 -0
- package/dist/schemas/demo-transport-state.schema.json +13 -0
- package/dist/schemas/lifecycle-event.schema.json +178 -0
- package/dist/schemas/signing-upgrade-context.schema.json +28 -0
- package/dist/schemas/signing-upgrade-source.schema.json +32 -0
- package/dist/usage.d.ts +1 -1
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +1 -1
- package/dist/usage.js.map +1 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -39,13 +39,16 @@ import { connectDemoDevice, verifyDemoDevice } from './demoEnrollment.js';
|
|
|
39
39
|
import { performDemoPeerAction, withDemoDeviceLock } from './demoPeer.js';
|
|
40
40
|
import { demoRepositoryPackage } from './demoPackage.js';
|
|
41
41
|
import { demoDeviceAndPackageStatus } from './demoStatus.js';
|
|
42
|
+
import { prepareDemoSigningUpgradeProof, readDemoSigningUpgradeContext } from './demoSigningUpgradeProof.js';
|
|
43
|
+
import { submitDemoSigningUpgradeProof } from './demoSigningUpgradeSubmission.js';
|
|
44
|
+
import { createDemoDeviceTransport } from './demoDeviceTransport.js';
|
|
42
45
|
import { runDemoWatch } from './demoWatch.js';
|
|
43
46
|
import { runDemoSupervisor } from './demoSupervisor.js';
|
|
44
47
|
import { demoWatchRegistrationKey, listDemoWatchRegistrations } from './demoWatchRegistry.js';
|
|
45
48
|
import { createDemoWatchHealthRecorder } from './demoWatchHealth.js';
|
|
46
49
|
import { demoWatchStatus, disableDemoWatch, enableDemoWatch, inspectDemoWatchSupervisor } from './demoWatchControl.js';
|
|
47
50
|
export { openCooperativeInboxSession } from './cooperativeInboxSession.js';
|
|
48
|
-
const VERSION = '0.2.
|
|
51
|
+
const VERSION = '0.2.111';
|
|
49
52
|
const USAGE = CLI_USAGE;
|
|
50
53
|
const execFileAsync = promisify(execFile);
|
|
51
54
|
const LOCAL_PROVIDER_IDS = ['codex', 'claude', 'agy', 'hermes'];
|
|
@@ -1604,14 +1607,15 @@ async function supervisedDemoCycle(registration, signal) {
|
|
|
1604
1607
|
const nativeDirectory = registration.provider === 'codex' ? resolve(workspace, '.agents', 'skills')
|
|
1605
1608
|
: registration.provider === 'claude' ? resolve(workspace, '.claude', 'skills')
|
|
1606
1609
|
: nativeSkillDirectory(registration.provider);
|
|
1607
|
-
return withDemoDeviceLock(scope, () => {
|
|
1610
|
+
return withDemoDeviceLock(scope, async () => {
|
|
1608
1611
|
signal.throwIfAborted();
|
|
1609
|
-
|
|
1610
|
-
nativeSkillDirectory: nativeDirectory }, { fetcher: (url, options) => {
|
|
1612
|
+
const deps = await createDemoDeviceTransport(scope, { fetcher: (url, options) => {
|
|
1611
1613
|
signal.throwIfAborted();
|
|
1612
1614
|
return fetch(url, { ...options,
|
|
1613
1615
|
signal: options?.signal ? AbortSignal.any([options.signal, signal]) : signal });
|
|
1614
1616
|
} });
|
|
1617
|
+
return demoRepositoryPackage({ scope, workspace, provider: registration.provider,
|
|
1618
|
+
nativeSkillDirectory: nativeDirectory }, deps);
|
|
1615
1619
|
});
|
|
1616
1620
|
}
|
|
1617
1621
|
async function relaySupervise(flags) {
|
|
@@ -5896,7 +5900,8 @@ export async function run(argv) {
|
|
|
5896
5900
|
if (flags.has('version') || command === 'version')
|
|
5897
5901
|
return { version: VERSION };
|
|
5898
5902
|
if (command === 'demo' && ['connect', 'status', 'role', 'peers', 'ask', 'reply', 'inbox', 'ack', 'resume',
|
|
5899
|
-
'package', 'package-status', 'watch', 'watch-enable', 'watch-status', 'watch-disable'
|
|
5903
|
+
'package', 'package-status', 'watch', 'watch-enable', 'watch-status', 'watch-disable',
|
|
5904
|
+
'signing-client-proof', 'signing-owner-proof', 'transport-connect']
|
|
5900
5905
|
.includes(String(subcommand))) {
|
|
5901
5906
|
const hqUrl = normalizeHqUrl(portalUrl(flags));
|
|
5902
5907
|
const organizationId = required(flags, 'organization-id');
|
|
@@ -5911,18 +5916,41 @@ export async function run(argv) {
|
|
|
5911
5916
|
throw new Error('Local Git remote does not match the private Demo repository binding.');
|
|
5912
5917
|
}
|
|
5913
5918
|
const watchControl = ['watch-enable', 'watch-status', 'watch-disable'].includes(String(subcommand));
|
|
5919
|
+
const signingProof = ['signing-client-proof', 'signing-owner-proof'].includes(String(subcommand));
|
|
5920
|
+
if (signingProof && subcommand === 'signing-owner-proof' && flags.has('submit')) {
|
|
5921
|
+
throw new Error('Owner signing approval requires explicit browser confirmation.');
|
|
5922
|
+
}
|
|
5914
5923
|
if (watchControl && await realpath(root) !== workspace) {
|
|
5915
5924
|
throw new Error('Demo watch setup must select the exact Git repository root.');
|
|
5916
5925
|
}
|
|
5926
|
+
let transportOrigin = null;
|
|
5927
|
+
if (subcommand === 'transport-connect') {
|
|
5928
|
+
transportOrigin = required(flags, 'transport-origin');
|
|
5929
|
+
try {
|
|
5930
|
+
const target = new URL(transportOrigin);
|
|
5931
|
+
if (transportOrigin.length > 2048 || target.protocol !== 'https:' || target.origin !== transportOrigin || transportOrigin === hqUrl)
|
|
5932
|
+
throw new Error();
|
|
5933
|
+
}
|
|
5934
|
+
catch {
|
|
5935
|
+
throw new Error('Demo transport recovery target_invalid. Use the exact reviewed HTTPS origin.');
|
|
5936
|
+
}
|
|
5937
|
+
}
|
|
5917
5938
|
if (flags.has('dry-run'))
|
|
5918
|
-
return { ok: true, stage:
|
|
5939
|
+
return { ok: true, stage: transportOrigin ? 'demo_transport_plan' : signingProof ? 'demo_signing_proof_plan'
|
|
5940
|
+
: watchControl ? 'demo_watch_plan' : 'demo_device_plan',
|
|
5919
5941
|
organizationId, repositoryId, normalizedRepository, workspaceVerified: true,
|
|
5920
|
-
repositoryPackageState: 'not_connected' };
|
|
5942
|
+
repositoryPackageState: 'not_connected', ...(transportOrigin ? { transportOrigin } : {}) };
|
|
5921
5943
|
const grant = subcommand === 'connect' ? required(flags, 'grant') : null;
|
|
5922
5944
|
const scope = {
|
|
5923
5945
|
hqUrl, organizationId, repositoryId, normalizedRepository,
|
|
5924
5946
|
installationId: await loadOrCreateInstallationId(), stateRoot: dharmaHome(),
|
|
5925
5947
|
};
|
|
5948
|
+
if (signingProof) {
|
|
5949
|
+
const context = await readDemoSigningUpgradeContext(resolve(required(flags, 'review-context')));
|
|
5950
|
+
if (flags.has('submit'))
|
|
5951
|
+
return withDemoDeviceLock(scope, async () => submitDemoSigningUpgradeProof(scope, context, await createDemoDeviceTransport(scope)));
|
|
5952
|
+
return withDemoDeviceLock(scope, () => prepareDemoSigningUpgradeProof(scope, context, subcommand === 'signing-owner-proof' ? 'owner' : 'client'));
|
|
5953
|
+
}
|
|
5926
5954
|
if (watchControl) {
|
|
5927
5955
|
const existing = (await listDemoWatchRegistrations(dharmaHome()))
|
|
5928
5956
|
.find(row => row.hqUrl === hqUrl && row.organizationId === organizationId && row.repositoryId === repositoryId);
|
|
@@ -5935,7 +5963,9 @@ export async function run(argv) {
|
|
|
5935
5963
|
hqUrl, organizationId, repositoryId, normalizedRepository, provider, workspace };
|
|
5936
5964
|
const input = { home: dharmaHome(), registration, version: VERSION };
|
|
5937
5965
|
const deps = {
|
|
5938
|
-
verify: async () => {
|
|
5966
|
+
verify: async () => {
|
|
5967
|
+
await withDemoDeviceLock(scope, async () => verifyDemoDevice(scope, await createDemoDeviceTransport(scope)));
|
|
5968
|
+
},
|
|
5939
5969
|
exclusive: operation => withRelayStartupMutation(operation),
|
|
5940
5970
|
prepareStartup: async () => {
|
|
5941
5971
|
const launcher = await installStableRepositoryLauncher(workspace);
|
|
@@ -5963,9 +5993,9 @@ export async function run(argv) {
|
|
|
5963
5993
|
const demoNativeSkillDirectory = provider === 'codex' ? resolve(workspace, '.agents', 'skills')
|
|
5964
5994
|
: provider === 'claude' ? resolve(workspace, '.claude', 'skills')
|
|
5965
5995
|
: nativeSkillDirectory(provider);
|
|
5966
|
-
const cycle = () => withDemoDeviceLock(scope, () => demoRepositoryPackage({ scope, workspace,
|
|
5996
|
+
const cycle = () => withDemoDeviceLock(scope, async () => demoRepositoryPackage({ scope, workspace,
|
|
5967
5997
|
statusOnly: subcommand === 'package-status', provider,
|
|
5968
|
-
nativeSkillDirectory: demoNativeSkillDirectory }));
|
|
5998
|
+
nativeSkillDirectory: demoNativeSkillDirectory }, await createDemoDeviceTransport(scope)));
|
|
5969
5999
|
if (subcommand !== 'watch')
|
|
5970
6000
|
return cycle();
|
|
5971
6001
|
const rawInterval = flags.get('interval-ms');
|
|
@@ -5988,8 +6018,6 @@ export async function run(argv) {
|
|
|
5988
6018
|
}
|
|
5989
6019
|
}
|
|
5990
6020
|
return withDemoDeviceLock(scope, async () => {
|
|
5991
|
-
if (subcommand === 'status')
|
|
5992
|
-
return demoDeviceAndPackageStatus(scope, workspace);
|
|
5993
6021
|
if (subcommand === 'connect') {
|
|
5994
6022
|
const connected = await connectDemoDevice({
|
|
5995
6023
|
...scope, grant: grant,
|
|
@@ -6003,6 +6031,11 @@ export async function run(argv) {
|
|
|
6003
6031
|
const { configPath: _configPath, ...receipt } = connected;
|
|
6004
6032
|
return receipt;
|
|
6005
6033
|
}
|
|
6034
|
+
const deps = await createDemoDeviceTransport(scope);
|
|
6035
|
+
if (transportOrigin)
|
|
6036
|
+
return deps.connectTransport(transportOrigin);
|
|
6037
|
+
if (subcommand === 'status')
|
|
6038
|
+
return demoDeviceAndPackageStatus(scope, workspace, deps);
|
|
6006
6039
|
let action = null;
|
|
6007
6040
|
if (subcommand === 'role') {
|
|
6008
6041
|
const categories = repeated.get('category') || [];
|
|
@@ -6026,7 +6059,7 @@ export async function run(argv) {
|
|
|
6026
6059
|
action = { kind: 'inbox' };
|
|
6027
6060
|
if (subcommand === 'ack')
|
|
6028
6061
|
action = { kind: 'ack', messageId: required(flags, 'message-id') };
|
|
6029
|
-
return performDemoPeerAction(scope, action);
|
|
6062
|
+
return performDemoPeerAction(scope, action, deps);
|
|
6030
6063
|
});
|
|
6031
6064
|
}
|
|
6032
6065
|
if (command === 'bootstrap')
|